Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:18

0001 // -*- C++ -*-
0002 //
0003 // Package:    V0Producer
0004 // Class:      V0Fitter
0005 //
0006 /**\class V0Fitter V0Fitter.h RecoVertex/V0Producer/interface/V0Fitter.h
0007 
0008  Description: <one line class summary>
0009 
0010  Implementation:
0011      <Notes on implementation>
0012 */
0013 //
0014 // Original Author:  Brian Drell
0015 //         Created:  Fri May 18 22:57:40 CEST 2007
0016 //
0017 //
0018 
0019 #ifndef RECOVERTEX__V0_FITTER_H
0020 #define RECOVERTEX__V0_FITTER_H
0021 
0022 #include "FWCore/Framework/interface/Event.h"
0023 #include "FWCore/Framework/interface/ESHandle.h"
0024 #include "FWCore/Utilities/interface/InputTag.h"
0025 #include "DataFormats/Common/interface/Ref.h"
0026 #include "DataFormats/TrackReco/interface/Track.h"
0027 #include "RecoVertex/VertexPrimitives/interface/TransientVertex.h"
0028 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
0029 #include "RecoVertex/KalmanVertexFit/interface/KalmanVertexFitter.h"
0030 #include "RecoVertex/AdaptiveVertexFit/interface/AdaptiveVertexFitter.h"
0031 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0032 #include "MagneticField/VolumeBasedEngine/interface/VolumeBasedMagneticField.h"
0033 #include "DataFormats/Candidate/interface/VertexCompositeCandidate.h"
0034 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h"
0035 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0036 #include "FWCore/Framework/interface/ConsumesCollector.h"
0037 #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h"
0038 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
0039 
0040 class dso_hidden V0Fitter {
0041 public:
0042   V0Fitter(const edm::ParameterSet& theParams, edm::ConsumesCollector&& iC);
0043   void fitAll(const edm::Event& iEvent,
0044               const edm::EventSetup& iSetup,
0045               reco::VertexCompositeCandidateCollection& k,
0046               reco::VertexCompositeCandidateCollection& l);
0047 
0048 private:
0049   const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> esTokenMF_;
0050 
0051   bool doFit_;
0052   bool vertexFitter_;
0053   bool useRefTracks_;
0054   bool doKShorts_;
0055   bool doLambdas_;
0056 
0057   // cuts on initial track selection
0058   double tkChi2Cut_;
0059   int tkNHitsCut_;
0060   double tkPtCut_;
0061   double tkIPSigXYCut_;
0062   double tkIPSigZCut_;
0063   // cuts on the vertex
0064   double vtxChi2Cut_;
0065   double vtxDecaySigXYCut_;
0066   double vtxDecaySigXYZCut_;
0067   double vtxDecayXYCut_;
0068   double ssVtxDecayXYCut_;
0069   // miscellaneous cuts
0070   bool allowSS_;
0071   double innerOuterTkDCAThreshold_;
0072   double innerTkDCACut_;
0073   double outerTkDCACut_;
0074   bool allowWideAngleVtx_;
0075   double mPiPiCut_;
0076   double innerHitPosCut_;
0077   double cosThetaXYCut_;
0078   double cosThetaXYZCut_;
0079   // cuts on the V0 candidate mass
0080   double kShortMassCut_;
0081   double lambdaMassCut_;
0082 
0083   edm::EDGetTokenT<reco::TrackCollection> token_tracks;
0084   edm::EDGetTokenT<reco::BeamSpot> token_beamSpot;
0085   bool useVertex_;
0086   edm::EDGetTokenT<std::vector<reco::Vertex>> token_vertices;
0087 };
0088 
0089 #endif