CMS 3D CMS Logo

CaloExtractorByAssociator.h
Go to the documentation of this file.
1 #ifndef MuonIsolation_CaloExtractorByAssociator_H
2 #define MuonIsolation_CaloExtractorByAssociator_H
3 
14 #include <string>
15 
17 
19 
23 
25 
27 
34 
42 
45 class MuonServiceProxy;
46 
47 namespace muonisolation {
48 
50  public:
54 
56  ~CaloExtractorByAssociator() override;
57 
59  void fillVetos(const edm::Event& ev, const edm::EventSetup& evSetup, const reco::TrackCollection& tracks) override;
62  const edm::EventSetup& evSetup,
63  const reco::Track& track) const override;
65  std::vector<reco::IsoDeposit> deposits(const edm::Event& ev,
66  const edm::EventSetup& evSetup,
67  const reco::Track& track) const override;
68 
69  private:
74 
77 
79  std::vector<std::string> theDepositInstanceLabels;
80 
83 
91 
93  double theDR_Veto_E;
94  double theDR_Veto_H;
95  double theDR_Veto_HO;
100  double theDR_Max;
101 
104  double theNoise_EB;
105  double theNoise_EE;
106  double theNoise_HB;
107  double theNoise_HE;
108  double theNoise_HO;
111 
113  std::vector<DetId> theVetoCollection;
114 
117 
121 
124 
125  // Ecal noise thresholds
129 
130  // following are needed to grab HCal thresholds from GT
133  HcalPFCuts* hcalCuts = nullptr;
134 
141 
144 
146  double noiseEcal(const CaloTower& tower) const;
147  double noiseHcal(const CaloTower& tower) const;
148  double noiseHOcal(const CaloTower& tower) const;
149  double noiseRecHit(const DetId& detId) const;
150  };
151 
152 } // namespace muonisolation
153 
154 #endif
double noiseHcal(const CaloTower &tower) const
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > bFieldToken_
edm::ESGetToken< HcalSeverityLevelComputer, HcalSeverityLevelComputerRcd > hcalSevLvlComputerToken_
std::string thePropagatorName
propagator name to feed into the track associator
std::vector< DetId > theVetoCollection
Vector of calo Ids to veto – not used.
std::string theDepositLabel
Label of deposit – suggest to set to "" (all info is in collection name anyways) ...
double theDR_Max
max cone size in which towers are considered
edm::ESGetToken< HcalChannelQuality, HcalChannelQualityRcd > hcalChannelQualityToken_
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
edm::ESGetToken< HcalPFCuts, HcalPFCutsRcd > hcalCutsToken_
edm::ESGetToken< EcalPFRecHitThresholds, EcalPFRecHitThresholdsRcd > ecalPFRechitThresholdsToken_
std::vector< std::string > theDepositInstanceLabels
multiple deposits: labels – expect 3 labels beginning with "e", "h", "ho"
double theDR_Veto_E
cone sizes inside which the Et (towers) are not counted
TrackAssociatorParameters * theAssociatorParameters
associator, its&#39; parameters and the propagator
std::vector< reco::IsoDeposit > deposits(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::Track &track) const override
return deposits for 3 calorimeter subdetectors (ecal, hcal, ho) – in this order
Definition: DetId.h:17
MuonServiceProxy * theService
the event setup proxy, it takes care the services update
double noiseEcal(const CaloTower &tower) const
Determine noise for HCAL and ECAL (take some defaults for the time being)
void fillVetos(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::TrackCollection &tracks) override
allows to set extra vetoes (in addition to the muon) – no-op at this point
edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > hcalTopologyToken_
bool thePrintTimeReport
flag to turn on/off printing of a time report
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_
double noiseHOcal(const CaloTower &tower) const
reco::IsoDeposit deposit(const edm::Event &ev, const edm::EventSetup &evSetup, const reco::Track &track) const override
no-op: by design of this extractor the deposits are pulled out all at a time