Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-02-08 03:12:39

0001 #ifndef TrackAssociator_TrackAssociatorParameters_h
0002 #define TrackAssociator_TrackAssociatorParameters_h 1
0003 
0004 // -*- C++ -*-
0005 //
0006 // Package:    TrackAssociator
0007 // Class:      TrackAssociatorParameters
0008 //
0009 /*
0010 
0011  Description: track associator parameters
0012 
0013 */
0014 //
0015 // Original Author:  Dmytro Kovalskyi
0016 //
0017 //
0018 
0019 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0020 #include "FWCore/Framework/interface/ConsumesCollector.h"
0021 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
0022 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
0023 #include "SimDataFormats/Track/interface/SimTrackContainer.h"
0024 #include "SimDataFormats/TrackingHit/interface/PSimHit.h"
0025 #include "SimDataFormats/Vertex/interface/SimVertexContainer.h"
0026 #include "SimDataFormats/CaloHit/interface/PCaloHitContainer.h"
0027 #include "DataFormats/CaloTowers/interface/CaloTowerCollection.h"
0028 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
0029 #include "DataFormats/DTRecHit/interface/DTRecSegment4DCollection.h"
0030 #include "DataFormats/CSCRecHit/interface/CSCSegmentCollection.h"
0031 #include "DataFormats/GEMRecHit/interface/GEMSegmentCollection.h"
0032 #include "DataFormats/GEMRecHit/interface/ME0SegmentCollection.h"
0033 
0034 class DetIdAssociator;
0035 class DetIdAssociatorRecord;
0036 class CaloGeometry;
0037 class CaloGeometryRecord;
0038 class GlobalTrackingGeometry;
0039 class GlobalTrackingGeometryRecord;
0040 class MagneticField;
0041 class IdealMagneticFieldRecord;
0042 
0043 namespace edm {
0044   class ParameterSetDescription;
0045 }
0046 
0047 class TrackAssociatorParameters {
0048 public:
0049   TrackAssociatorParameters() {}
0050   TrackAssociatorParameters(const edm::ParameterSet&, edm::ConsumesCollector&&);
0051   void loadParameters(const edm::ParameterSet&, edm::ConsumesCollector&);
0052 
0053   static void fillPSetDescription(edm::ParameterSetDescription& descriptions);
0054 
0055   double dREcal;
0056   double dRHcal;
0057   double dRMuon;
0058 
0059   double dREcalPreselection;
0060   double dRHcalPreselection;
0061   double dRMuonPreselection;
0062   double dRPreshowerPreselection;
0063 
0064   /// account for trajectory change for calorimeters.
0065   /// allows to compute energy around original track direction
0066   /// (for example neutral particles in a jet) as well as energy
0067   /// around track projection on the inner surface of a
0068   /// calorimeter. Affects performance, so use wisely.
0069   bool accountForTrajectoryChangeCalo;
0070 
0071   // account for trajectory change in the muon detector
0072   // helps to ensure that all chambers are found.
0073   // Recomended to be used in default configuration
0074   // bool accountForTrajectoryChangeMuon;
0075 
0076   /// maximal distance from a muon chamber. Can be considered as a preselection
0077   /// cut and fancier cuts can be applied in a muon producer, since the
0078   /// distance from a chamber should be available as output of the TrackAssociation
0079   double muonMaxDistanceX;
0080   double muonMaxDistanceY;
0081   double muonMaxDistanceSigmaX;
0082   double muonMaxDistanceSigmaY;
0083 
0084   bool useEcal;
0085   bool useHcal;
0086   bool useHO;
0087   bool useCalo;
0088   bool usePreshower;
0089   bool useMuon;
0090   bool truthMatch;
0091   bool useGEM;
0092   bool useME0;
0093 
0094   /// Labels of the detector EDProducts
0095   edm::InputTag theEBRecHitCollectionLabel;
0096   edm::InputTag theEERecHitCollectionLabel;
0097   edm::InputTag theCaloTowerCollectionLabel;
0098   edm::InputTag theHBHERecHitCollectionLabel;
0099   edm::InputTag theHORecHitCollectionLabel;
0100   edm::InputTag theDTRecSegment4DCollectionLabel;
0101   edm::InputTag theCSCSegmentCollectionLabel;
0102   edm::InputTag theGEMSegmentCollectionLabel;
0103   edm::InputTag theME0SegmentCollectionLabel;
0104 
0105   // Specify if we want to widen the search pass of the crossed
0106   // calorimeter elements taking into account uncertainty
0107   // of the track trajectory. The parameter below
0108   // specifies how many standard deviations
0109   // to account for. Negative numbers are ignored
0110   // and trajectory is assumed to be known perfectly
0111   double trajectoryUncertaintyTolerance;
0112 
0113   edm::EDGetTokenT<EBRecHitCollection> EBRecHitsToken;
0114   edm::EDGetTokenT<EERecHitCollection> EERecHitsToken;
0115   edm::EDGetTokenT<CaloTowerCollection> caloTowersToken;
0116   edm::EDGetTokenT<HBHERecHitCollection> HBHEcollToken;
0117   edm::EDGetTokenT<HORecHitCollection> HOcollToken;
0118   edm::EDGetTokenT<DTRecSegment4DCollection> dtSegmentsToken;
0119   edm::EDGetTokenT<CSCSegmentCollection> cscSegmentsToken;
0120   edm::EDGetTokenT<GEMSegmentCollection> gemSegmentsToken;
0121   edm::EDGetTokenT<ME0SegmentCollection> me0SegmentsToken;
0122   edm::EDGetTokenT<edm::SimTrackContainer> simTracksToken;
0123   edm::EDGetTokenT<edm::SimVertexContainer> simVerticesToken;
0124   edm::EDGetTokenT<edm::PCaloHitContainer> simEcalHitsEBToken;
0125   edm::EDGetTokenT<edm::PCaloHitContainer> simEcalHitsEEToken;
0126   edm::EDGetTokenT<edm::PCaloHitContainer> simHcalHitsToken;
0127 
0128   edm::ESGetToken<DetIdAssociator, DetIdAssociatorRecord> ecalDetIdAssociatorToken;
0129   edm::ESGetToken<DetIdAssociator, DetIdAssociatorRecord> hcalDetIdAssociatorToken;
0130   edm::ESGetToken<DetIdAssociator, DetIdAssociatorRecord> hoDetIdAssociatorToken;
0131   edm::ESGetToken<DetIdAssociator, DetIdAssociatorRecord> caloDetIdAssociatorToken;
0132   edm::ESGetToken<DetIdAssociator, DetIdAssociatorRecord> muonDetIdAssociatorToken;
0133   edm::ESGetToken<DetIdAssociator, DetIdAssociatorRecord> preshowerDetIdAssociatorToken;
0134   edm::ESGetToken<CaloGeometry, CaloGeometryRecord> theCaloGeometryToken;
0135   edm::ESGetToken<GlobalTrackingGeometry, GlobalTrackingGeometryRecord> theTrackingGeometryToken;
0136   edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> bFieldToken;
0137 };
0138 #endif