CMS 3D CMS Logo

JetMatchingTools.h
Go to the documentation of this file.
1 #ifndef JetMatchingTools_h
2 #define JetMatchingTools_h
3 
4 #include <vector>
5 
14 
15 namespace edm {
16  class Event;
17 }
18 namespace reco {
19  class CaloJet;
20  class GenJet;
21 } // namespace reco
22 
23 class CaloTower;
24 class CaloRecHit;
25 class DetId;
26 class PCaloHit;
27 
29 public:
30  struct JetConstituent {
32  double energy;
33 
36  JetConstituent(const JetConstituent& j) : id(j.id), energy(j.energy) {}
37  JetConstituent(const EcalRecHit& ehit) : id(ehit.detid()), energy(ehit.energy()) {}
38  JetConstituent(const CaloRecHit& ehit) : id(ehit.detid()), energy(ehit.energy()) {}
39  };
40 
43 
45  std::vector<const CaloTower*> getConstituents(const reco::CaloJet& fJet);
47  std::vector<JetConstituent> getConstituentHits(const CaloTower& fTower);
49  std::vector<DetId> getConstituentIds(const CaloTower& fTower);
51  std::vector<const PCaloHit*> getPCaloHits(DetId fId);
53  int getTrackId(const PCaloHit& fHit);
55  const SimTrack* getTrack(unsigned fSimTrackId);
57  int generatorId(unsigned fSimTrackId);
59  const reco::GenParticle* getGenParticle(int fGeneratorId);
61  std::vector<const reco::GenParticle*> getGenParticles(const reco::CaloJet& fJet, bool fVerbose = true);
63  std::vector<const reco::GenParticle*> getGenParticles(const reco::GenJet& fJet);
64 
65  // reverse propagation
67  std::vector<const PCaloHit*> getPCaloHits(int fGeneratorId);
69  std::vector<const CaloTower*> getCaloTowers(int fGeneratorId);
70 
72  double lostEnergyFraction(const reco::CaloJet& fJet);
73 
75  double overlapEnergyFraction(const std::vector<const reco::GenParticle*>& fObject,
76  const std::vector<const reco::GenParticle*>& fReference) const;
77 
78  const EBRecHitCollection* getEBRecHitCollection();
79  const EERecHitCollection* getEERecHitCollection();
80  const HBHERecHitCollection* getHBHERecHitCollection();
81  const HORecHitCollection* getHORecHitCollection();
82  const HFRecHitCollection* getHFRecHitCollection();
83  const edm::PCaloHitContainer* getEBSimHitCollection();
84  const edm::PCaloHitContainer* getEESimHitCollection();
85  const edm::PCaloHitContainer* getHcalSimHitCollection();
86  const edm::SimTrackContainer* getSimTrackCollection();
87  const edm::SimVertexContainer* getSimVertexCollection();
88  const reco::CandidateCollection* getGenParticlesCollection();
89 
90 private:
103 
115 };
116 
117 #endif
const edm::PCaloHitContainer * mHcalSimHitCollection
std::vector< PCaloHit > PCaloHitContainer
const EBRecHitCollection * mEBRecHitCollection
Jets made from CaloTowers.
Definition: CaloJet.h:27
edm::EDGetTokenT< edm::PCaloHitContainer > input_pcalohits_ebcal_token_
const edm::PCaloHitContainer * mEBSimHitCollection
edm::EDGetTokenT< edm::SimVertexContainer > input_simvertex_token_
const reco::CandidateCollection * mGenParticleCollection
JetConstituent(const EcalRecHit &ehit)
edm::EDGetTokenT< EERecHitCollection > input_eerechits_token_
const edm::PCaloHitContainer * mEESimHitCollection
edm::EDGetTokenT< reco::CandidateCollection > input_cands_token_
edm::EDGetTokenT< EBRecHitCollection > input_ebrechits_token_
const edm::SimTrackContainer * mSimTrackCollection
const EERecHitCollection * mEERecHitCollection
Jets made from MC generator particles.
Definition: GenJet.h:23
JetConstituent(const CaloRecHit &ehit)
edm::EDGetTokenT< HFRecHitCollection > input_hfrechits_token_
static const TrackGhostTrackState * getTrack(const BasicGhostTrackState *basic)
Definition: DetId.h:17
edm::EDGetTokenT< HORecHitCollection > input_horechits_token_
const edm::SimVertexContainer * mSimVertexCollection
edm::EDGetTokenT< edm::PCaloHitContainer > input_pcalohits_eecal_token_
edm::EDGetTokenT< edm::SimTrackContainer > input_simtrack_token_
std::vector< SimVertex > SimVertexContainer
const edm::Event * mEvent
fixed size matrix
HLT enums.
JetConstituent(const JetConstituent &j)
const HORecHitCollection * mHORecHitCollection
edm::EDGetTokenT< HBHERecHitCollection > input_hbherechits_token_
std::vector< SimTrack > SimTrackContainer
edm::EDGetTokenT< edm::PCaloHitContainer > input_pcalohits_hcal_token_
const HFRecHitCollection * mHFRecHitCollection
const HBHERecHitCollection * mHBHERecHitCollection