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 
32 
35 class MuonServiceProxy;
36 
37 namespace muonisolation {
38 
40  public:
44 
46  ~CaloExtractorByAssociator() override;
47 
49  void fillVetos(const edm::Event& ev, const edm::EventSetup& evSetup, const reco::TrackCollection& tracks) override;
52  const edm::EventSetup& evSetup,
53  const reco::Track& track) const override;
55  std::vector<reco::IsoDeposit> deposits(const edm::Event& ev,
56  const edm::EventSetup& evSetup,
57  const reco::Track& track) const override;
58 
59  private:
62 
65 
67  std::vector<std::string> theDepositInstanceLabels;
68 
71 
77 
79  double theDR_Veto_E;
80  double theDR_Veto_H;
81  double theDR_Veto_HO;
86  double theDR_Max;
87 
90  double theNoise_EB;
91  double theNoise_EE;
92  double theNoise_HB;
93  double theNoise_HE;
94  double theNoise_HO;
97 
99  std::vector<DetId> theVetoCollection;
100 
103 
107 
110 
113 
115  double noiseEcal(const CaloTower& tower) const;
116  double noiseHcal(const CaloTower& tower) const;
117  double noiseHOcal(const CaloTower& tower) const;
118  double noiseRecHit(const DetId& detId) const;
119  };
120 
121 } // namespace muonisolation
122 
123 #endif
double noiseHcal(const CaloTower &tower) const
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > bFieldToken_
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
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
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
auto const & tracks
cannot be loose
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
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