Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:35

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 #include "DataFormats/RPCRecHit/interface/RPCRecHitCollection.h"
0034 #include "DataFormats/GEMRecHit/interface/GEMRecHitCollection.h"
0035 #include "DataFormats/GEMRecHit/interface/ME0RecHitCollection.h"
0036 
0037 class DetIdAssociator;
0038 class DetIdAssociatorRecord;
0039 class CaloGeometry;
0040 class CaloGeometryRecord;
0041 class GlobalTrackingGeometry;
0042 class GlobalTrackingGeometryRecord;
0043 class MagneticField;
0044 class IdealMagneticFieldRecord;
0045 
0046 namespace edm {
0047   class ParameterSetDescription;
0048 }
0049 
0050 class TrackAssociatorParameters {
0051 public:
0052   TrackAssociatorParameters() {}
0053   TrackAssociatorParameters(const edm::ParameterSet&, edm::ConsumesCollector&&);
0054   void loadParameters(const edm::ParameterSet&, edm::ConsumesCollector&);
0055 
0056   static void fillPSetDescription(edm::ParameterSetDescription& descriptions);
0057 
0058   double dREcal;
0059   double dRHcal;
0060   double dRMuon;
0061 
0062   double dREcalPreselection;
0063   double dRHcalPreselection;
0064   double dRMuonPreselection;
0065   double dRPreshowerPreselection;
0066 
0067   /// account for trajectory change for calorimeters.
0068   /// allows to compute energy around original track direction
0069   /// (for example neutral particles in a jet) as well as energy
0070   /// around track projection on the inner surface of a
0071   /// calorimeter. Affects performance, so use wisely.
0072   bool accountForTrajectoryChangeCalo;
0073 
0074   // account for trajectory change in the muon detector
0075   // helps to ensure that all chambers are found.
0076   // Recomended to be used in default configuration
0077   // bool accountForTrajectoryChangeMuon;
0078 
0079   /// maximal distance from a muon chamber. Can be considered as a preselection
0080   /// cut and fancier cuts can be applied in a muon producer, since the
0081   /// distance from a chamber should be available as output of the TrackAssociation
0082   double muonMaxDistanceX;
0083   double muonMaxDistanceY;
0084   double muonMaxDistanceSigmaX;
0085   double muonMaxDistanceSigmaY;
0086 
0087   bool useEcal;
0088   bool useHcal;
0089   bool useHO;
0090   bool useCalo;
0091   bool usePreshower;
0092   bool useMuon;
0093   bool truthMatch;
0094   bool useGEM;
0095   bool useME0;
0096   bool preselectMuonTracks;
0097 
0098   /// Labels of the detector EDProducts
0099   edm::InputTag theEBRecHitCollectionLabel;
0100   edm::InputTag theEERecHitCollectionLabel;
0101   edm::InputTag theCaloTowerCollectionLabel;
0102   edm::InputTag theHBHERecHitCollectionLabel;
0103   edm::InputTag theHORecHitCollectionLabel;
0104   edm::InputTag theDTRecSegment4DCollectionLabel;
0105   edm::InputTag theCSCSegmentCollectionLabel;
0106   edm::InputTag theGEMSegmentCollectionLabel;
0107   edm::InputTag theME0SegmentCollectionLabel;
0108   edm::InputTag theRPCHitCollectionLabel;
0109   edm::InputTag theGEMHitCollectionLabel;
0110   edm::InputTag theME0HitCollectionLabel;
0111 
0112   // Specify if we want to widen the search pass of the crossed
0113   // calorimeter elements taking into account uncertainty
0114   // of the track trajectory. The parameter below
0115   // specifies how many standard deviations
0116   // to account for. Negative numbers are ignored
0117   // and trajectory is assumed to be known perfectly
0118   double trajectoryUncertaintyTolerance;
0119 
0120   edm::EDGetTokenT<EBRecHitCollection> EBRecHitsToken;
0121   edm::EDGetTokenT<EERecHitCollection> EERecHitsToken;
0122   edm::EDGetTokenT<CaloTowerCollection> caloTowersToken;
0123   edm::EDGetTokenT<HBHERecHitCollection> HBHEcollToken;
0124   edm::EDGetTokenT<HORecHitCollection> HOcollToken;
0125   edm::EDGetTokenT<DTRecSegment4DCollection> dtSegmentsToken;
0126   edm::EDGetTokenT<CSCSegmentCollection> cscSegmentsToken;
0127   edm::EDGetTokenT<GEMSegmentCollection> gemSegmentsToken;
0128   edm::EDGetTokenT<ME0SegmentCollection> me0SegmentsToken;
0129   edm::EDGetTokenT<RPCRecHitCollection> rpcHitsToken;
0130   edm::EDGetTokenT<GEMRecHitCollection> gemHitsToken;
0131   edm::EDGetTokenT<ME0RecHitCollection> me0HitsToken;
0132   edm::EDGetTokenT<edm::SimTrackContainer> simTracksToken;
0133   edm::EDGetTokenT<edm::SimVertexContainer> simVerticesToken;
0134   edm::EDGetTokenT<edm::PCaloHitContainer> simEcalHitsEBToken;
0135   edm::EDGetTokenT<edm::PCaloHitContainer> simEcalHitsEEToken;
0136   edm::EDGetTokenT<edm::PCaloHitContainer> simHcalHitsToken;
0137 
0138   edm::ESGetToken<DetIdAssociator, DetIdAssociatorRecord> ecalDetIdAssociatorToken;
0139   edm::ESGetToken<DetIdAssociator, DetIdAssociatorRecord> hcalDetIdAssociatorToken;
0140   edm::ESGetToken<DetIdAssociator, DetIdAssociatorRecord> hoDetIdAssociatorToken;
0141   edm::ESGetToken<DetIdAssociator, DetIdAssociatorRecord> caloDetIdAssociatorToken;
0142   edm::ESGetToken<DetIdAssociator, DetIdAssociatorRecord> muonDetIdAssociatorToken;
0143   edm::ESGetToken<DetIdAssociator, DetIdAssociatorRecord> preshowerDetIdAssociatorToken;
0144   edm::ESGetToken<CaloGeometry, CaloGeometryRecord> theCaloGeometryToken;
0145   edm::ESGetToken<GlobalTrackingGeometry, GlobalTrackingGeometryRecord> theTrackingGeometryToken;
0146   edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> bFieldToken;
0147 };
0148 #endif