ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/CaloJet.h
Revision: 1.8
Committed: Thu Mar 29 23:41:54 2012 UTC (13 years, 1 month ago) by paus
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_032, Mit_031, Mit_030, Mit_029c, Mit_029b, Mit_030_pre1, Mit_029a, Mit_029, Mit_029_pre1, Mit_028a, Mit_028, Mit_027a, Mit_027, Mit_026, Mit_025e, HEAD
Changes since 1.7: +5 -6 lines
Log Message:
Version with working skimming and last 4.4 tag.

File Contents

# Content
1 //--------------------------------------------------------------------------------------------------
2 // $Id: CaloJet.h,v 1.7 2012/03/28 12:15:34 paus Exp $
3 //
4 // CaloJet
5 //
6 // This class holds information about reconstructed jet based on calorimeter towers.
7 //
8 // Authors: S.Xie, C.Loizides, J.Bendavid, C.Paus
9 //--------------------------------------------------------------------------------------------------
10
11 #ifndef MITANA_DATATREE_CALOJET_H
12 #define MITANA_DATATREE_CALOJET_H
13
14 #include "MitAna/DataTree/interface/Jet.h"
15 #include "MitAna/DataCont/interface/RefArray.h"
16 #include "MitAna/DataTree/interface/CaloTower.h"
17
18 namespace mithep
19 {
20 class CaloJet : public Jet
21 {
22 public:
23 CaloJet() : fMaxEInEmTowers(0), fMaxEInHadTowers(0), fEnergyFractionH(0),
24 fEnergyFractionEm(0), fHadEnergyInHB(0), fHadEnergyInHO(0), fHadEnergyInHE(0),
25 fHadEnergyInHF(0), fEmEnergyInEB(0), fEmEnergyInEE(0), fEmEnergyInHF(0),
26 fTowersArea(0), fHPD(0), fRBX(0), fN90Hits(0), fSubDetector1(0), fSubDetector2(0),
27 fSubDetector3(0), fSubDetector4(0), fRestrictedEMF(0), fNHCalTowers(0),
28 fNECalTowers(0), fApproximatefHPD(0), fApproximatefRBX(0), fHitsInN90(0),
29 fNHits2RPC(0), fNHits3RPC(0), fNHitsRPC(0) {}
30 CaloJet(Double_t px, Double_t py, Double_t pz, Double_t e) :
31 Jet(px,py,pz,e),
32 fMaxEInEmTowers(0), fMaxEInHadTowers(0), fEnergyFractionH(0),
33 fEnergyFractionEm(0), fHadEnergyInHB(0), fHadEnergyInHO(0), fHadEnergyInHE(0),
34 fHadEnergyInHF(0), fEmEnergyInEB(0), fEmEnergyInEE(0), fEmEnergyInHF(0),
35 fTowersArea(0), fHPD(0), fRBX(0), fN90Hits(0), fSubDetector1(0), fSubDetector2(0),
36 fSubDetector3(0), fSubDetector4(0), fRestrictedEMF(0), fNHCalTowers(0),
37 fNECalTowers(0), fApproximatefHPD(0), fApproximatefRBX(0), fHitsInN90(0),
38 fNHits2RPC(0), fNHits3RPC(0), fNHitsRPC(0) {}
39
40 void AddTower(const CaloTower *t) { fTowers.Add(t); }
41 Bool_t HasTower(const CaloTower *t) const { return fTowers.HasObject(t); }
42 UInt_t NTowers() const { return fTowers.Entries(); }
43 const CaloTower *Tower(UInt_t i) const { return fTowers.At(i); }
44 UInt_t NConstituents() const { return NTowers(); }
45 EObjType ObjType() const { return kCaloJet; }
46 Double_t EmEnergyInEB() const { return fEmEnergyInEB; }
47 Double_t EmEnergyInEE() const { return fEmEnergyInEE; }
48 Double_t EmEnergyInHF() const { return fEmEnergyInHF; }
49 Double_t EnergyFractionH() const { return fEnergyFractionH; }
50 Double_t EnergyFractionEm() const { return fEnergyFractionEm; }
51 Double_t HadEnergyInHO() const { return fHadEnergyInHO; }
52 Double_t HadEnergyInHB() const { return fHadEnergyInHB; }
53 Double_t HadEnergyInHF() const { return fHadEnergyInHF; }
54 Double_t HadEnergyInHE() const { return fHadEnergyInHE; }
55 Jet *MakeCopy() const { return new CaloJet(*this); }
56 Double_t MaxEInEmTowers() const { return fMaxEInEmTowers; }
57 Double_t MaxEInHadTowers() const { return fMaxEInHadTowers; }
58 void SetEmEnergyInEB(Double_t val) { fEmEnergyInEB = val; }
59 void SetEmEnergyInEE(Double_t val) { fEmEnergyInEE = val; }
60 void SetEmEnergyInHF(Double_t val) { fEmEnergyInHF = val; }
61 void SetEnergyFractionH(Double_t val) { fEnergyFractionH = val; }
62 void SetEnergyFractionEm(Double_t val) { fEnergyFractionEm = val; }
63 void SetHadEnergyInHO(Double_t val) { fHadEnergyInHO = val; }
64 void SetHadEnergyInHB(Double_t val) { fHadEnergyInHB = val; }
65 void SetHadEnergyInHF(Double_t val) { fHadEnergyInHF = val; }
66 void SetHadEnergyInHE(Double_t val) { fHadEnergyInHE = val; }
67 void SetMaxEInEmTowers(Double_t val) { fMaxEInEmTowers = val; }
68 void SetMaxEInHadTowers(Double_t val) { fMaxEInHadTowers = val; }
69 void SetTowersArea(Double_t val) { fTowersArea = val; }
70 void SetFHPD(Double_t val) { fHPD = val; }
71 void SetFRBX(Double_t val) { fRBX = val; }
72 void SetN90Hits(Int_t val) { fN90Hits = val; }
73 void SetFSubDetector1(Double_t val) { fSubDetector1 = val; }
74 void SetFSubDetector2(Double_t val) { fSubDetector2 = val; }
75 void SetFSubDetector3(Double_t val) { fSubDetector3 = val; }
76 void SetFSubDetector4(Double_t val) { fSubDetector4 = val; }
77 void SetRestrictedEMF(Double_t val) { fRestrictedEMF = val; }
78 void SetNHCalTowers(Int_t val) { fNHCalTowers = val; }
79 void SetNECalTowers(Int_t val) { fNECalTowers = val; }
80 void SetApproximatefHPD(Double_t val) { fApproximatefHPD = val; }
81 void SetApproximatefRBX(Double_t val) { fApproximatefRBX = val; }
82 void SetHitsInN90(Int_t val) { fHitsInN90 = val; }
83 void SetNHits2RPC(Int_t val) { fNHits2RPC = val; }
84 void SetNHits3RPC(Int_t val) { fNHits3RPC = val; }
85 void SetNHitsRPC(Int_t val) { fNHitsRPC = val; }
86 Double_t TowersArea() const { return fTowersArea; }
87 Double_t FHPD() const { return fHPD; }
88 Double_t FRBX() const { return fRBX; }
89 UInt_t N90Hits() const { return fN90Hits; }
90 Double_t FSubDetector1() const { return fSubDetector1; }
91 Double_t FSubDetector2() const { return fSubDetector2; }
92 Double_t FSubDetector3() const { return fSubDetector3; }
93 Double_t FSubDetector4() const { return fSubDetector4; }
94 Double_t RestrictedEMF() const { return fRestrictedEMF; }
95 UInt_t NHCalTowers() const { return fNHCalTowers; }
96 UInt_t NECalTowers() const { return fNECalTowers; }
97 Double_t ApproximatefHPD() const { return fApproximatefHPD; }
98 Double_t ApproximatefRBX() const { return fApproximatefRBX; }
99 UInt_t HitsInN90() const { return fHitsInN90; }
100 UInt_t NHits2RPC() const { return fNHits2RPC; }
101 UInt_t NHits3RPC() const { return fNHits3RPC; }
102 UInt_t NHitsRPC() const { return fNHitsRPC; }
103
104 // Some structural tools
105 void Mark(UInt_t i = 1) const;
106
107 protected:
108
109 Double32_t fMaxEInEmTowers; //[0,0,14]maximum energy in EM towers
110 Double32_t fMaxEInHadTowers; //[0,0,14]maximum energy in HCAL towers
111 Double32_t fEnergyFractionH; //[0,0,14]hadronic energy fraction
112 Double32_t fEnergyFractionEm; //[0,0,14]electromagnetic energy fraction
113 Double32_t fHadEnergyInHB; //[0,0,14]hadronic energy in HB
114 Double32_t fHadEnergyInHO; //[0,0,14]hadronic energy in HO
115 Double32_t fHadEnergyInHE; //[0,0,14]hadronic energy in HE
116 Double32_t fHadEnergyInHF; //[0,0,14]hadronic energy in HF
117 Double32_t fEmEnergyInEB; //[0,0,14]electromagnetic energy in EB
118 Double32_t fEmEnergyInEE; //[0,0,14]electromagnetic energy in EE
119 Double32_t fEmEnergyInHF; //[0,0,14]electromagnetic energy extracted from HF
120 Double32_t fTowersArea; //[0,0,14]area of contributing towers
121 Double32_t fHPD; //[0,0,14]energy from hottest hpd
122 Double32_t fRBX; //[0,0,14]energy fraction from hottest rbx
123 Int_t fN90Hits; //number of hits comprising 90 percent of the energy
124 Double32_t fSubDetector1; //[0,0,14]
125 Double32_t fSubDetector2; //[0,0,14]
126 Double32_t fSubDetector3; //[0,0,14]
127 Double32_t fSubDetector4; //[0,0,14]
128 Double32_t fRestrictedEMF; //[0,0,14]
129 Int_t fNHCalTowers;
130 Int_t fNECalTowers;
131 Double32_t fApproximatefHPD; //[0,0,14]
132 Double32_t fApproximatefRBX; //[0,0,14]
133 Int_t fHitsInN90;
134 Int_t fNHits2RPC;
135 Int_t fNHits3RPC;
136 Int_t fNHitsRPC;
137 RefArray<CaloTower> fTowers; //calotowers in jet
138
139 ClassDef(CaloJet, 2) // CaloJet class
140 };
141 }
142
143 //--------------------------------------------------------------------------------------------------
144 inline void mithep::CaloJet::Mark(UInt_t i) const
145 {
146 // mark myself
147 mithep::DataObject::Mark(i);
148 // mark my dependencies if they are there
149 fTowers.Mark(i);
150 }
151
152 #endif