ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbbAnalysis/VHbbDataFormats/interface/VHbbEvent.h
Revision: 1.37
Committed: Fri Jan 25 01:59:57 2013 UTC (12 years, 3 months ago) by jiafulow
Content type: text/plain
Branch: MAIN
Changes since 1.36: +31 -8 lines
Log Message:
Added class RawJet, and jet & subjet collections.

File Contents

# User Rev Content
1 tboccali 1.1 #ifndef VHbbEvent__H
2     #define VHbbEvent__H
3    
4     #include <TLorentzVector.h>
5     #include <TVector2.h>
6     #include <vector>
7    
8     class VHbbEvent{
9     public:
10    
11    
12     class SimpleJet {
13     public:
14 degrutto 1.24 SimpleJet(): flavour(-99), isSemiLept(-99), isSemiLeptMCtruth(-99), SoftLeptpdgId(-99), SoftLeptIdlooseMu(-99), SoftLeptId95(-99), SoftLeptPt(-99), SoftLeptdR(-99), SoftLeptptRel(-99), SoftLeptRelCombIso(-99), tche(-99), tchp(-99), jpb(-99), jp(-99),
15 arizzi 1.28 ssvhe(-99), csv(-99), csvmva(-99), csvivf(-99), cmva(-99),
16 tboccali 1.11 vtxMass(-99), vtx3dL(-99), vtx3deL(-99), vtxNTracks(-99), vtxProb(-99),
17     ntracks(-99), charge(-99),jecunc(-99),
18 malbouis 1.31 chargedHadronEFraction(-99), neutralHadronEFraction(-99), chargedEmEFraction(-99), neutralEmEFraction(-99),nConstituents(-99), ptRaw(-99), ptLeadTrack(-99), jetArea(-99),
19 degrutto 1.34 bestMCid(-99), bestMCmomid(-99),
20     puJetIdL(-99), puJetIdM(-99), puJetIdT(-99), puJetIdMva(-99) {}
21 tboccali 1.1 public:
22 tboccali 1.6 double Pt() {return p4.Pt();}
23 degrutto 1.24 int flavour, isSemiLept, isSemiLeptMCtruth, SoftLeptpdgId , SoftLeptIdlooseMu, SoftLeptId95;
24     float SoftLeptPt, SoftLeptdR, SoftLeptptRel, SoftLeptRelCombIso;
25 arizzi 1.28 float tche,tchp, jpb,jp , ssvhe, csv, csvmva,csvivf,cmva;
26 tboccali 1.11 // CSV vertex info
27     float vtxMass, vtx3dL, vtx3deL, vtxNTracks, vtxProb;
28 arizzi 1.29 TVector3 vtxPosition;
29     TLorentzVector vtxP4;
30 malbouis 1.31 std::vector<unsigned int> vtxTrackIds, btagTrackIds, csvTrackIds;
31     int csvNTracks, btagNTracks;
32 tboccali 1.1 int ntracks;
33     float charge;
34 tboccali 1.6 TLorentzVector p4;
35 tboccali 1.1 TLorentzVector chargedTracksFourMomentum;
36    
37 tboccali 1.11 // jec uncertainty
38    
39     float jecunc;
40     // energy fractions as in
41     /* //chargedHadronEnergyFraction (relative to uncorrected jet energy)
42     float chargedHadronEnergyFraction() const {return chargedHadronEnergy()/((jecSetsAvailable() ? jecFactor(0) : 1.)*energy());}
43     /// neutralHadronEnergyFraction (relative to uncorrected jet energy)
44     float neutralHadronEnergyFraction() const {return neutralHadronEnergy()/((jecSetsAvailable() ? jecFactor(0) : 1.)*energy());}
45     /// chargedEmEnergyFraction (relative to uncorrected jet energy)
46     float chargedEmEnergyFraction() const {return chargedEmEnergy()/((jecSetsAvailable() ? jecFactor(0) : 1.)*energy());}
47     /// neutralEmEnergyFraction (relative to uncorrected jet energy)
48     float neutralEmEnergyFraction() const {return neutralEmEnergy()/((jecSetsAvailable() ? jecFactor(0) : 1.)*energy());}
49     */
50    
51     float chargedHadronEFraction, neutralHadronEFraction, chargedEmEFraction, neutralEmEFraction;
52     int nConstituents;
53 malbouis 1.31 float ptRaw,ptLeadTrack;
54     float jetArea;
55 tboccali 1.11
56 bortigno 1.36 //for quark-gluon tagger
57     float constituentPtDistribution;
58     float constituentEtaPhiSpread;
59 jiafulow 1.37
60 bortigno 1.10 //MC parton matching
61 tboccali 1.11 TLorentzVector bestMCp4,bestMCp4mom;
62 tboccali 1.1 int bestMCid, bestMCmomid;
63     // new
64     TVector2 tVector;
65 bortigno 1.10 //Scale factor
66 bortigno 1.9 float SF_CSVL;
67     float SF_CSVM;
68     float SF_CSVT;
69     float SF_CSVLerr;
70     float SF_CSVMerr;
71     float SF_CSVTerr;
72 degrutto 1.34 // puJet Id
73     float puJetIdL, puJetIdM, puJetIdT, puJetIdMva;
74 bortigno 1.9
75 tboccali 1.1 };
76    
77    
78     class HardJet {
79     public:
80     HardJet(): constituents(-99){}
81     public:
82     int constituents;
83 tboccali 1.6 TLorentzVector p4;
84 tboccali 1.1 std::vector<TLorentzVector> subFourMomentum;
85     std::vector<float> etaSub, phiSub;
86     };
87    
88 jiafulow 1.37 class RawJet {
89     public:
90     RawJet(): Nconstituents(-99), Ngenconstituents(-99){}
91     int Nconstituents;
92     int Ngenconstituents;
93     TLorentzVector p4, genP4;
94     std::vector<float> constituents_px;
95     std::vector<float> constituents_py;
96     std::vector<float> constituents_pz;
97     std::vector<float> constituents_e;
98     std::vector<int> constituents_pdgId;
99     std::vector<float> genconstituents_px;
100     std::vector<float> genconstituents_py;
101     std::vector<float> genconstituents_pz;
102     std::vector<float> genconstituents_e;
103     std::vector<int> genconstituents_pdgId;
104     };
105 tboccali 1.1
106     class METInfo {
107     public:
108     METInfo(): sumEt(-99), metSig(-99), eLong(-99){}
109     public:
110     float sumEt, metSig, eLong;
111 tboccali 1.6 TLorentzVector p4;
112 tboccali 1.1 };
113    
114     class MuonInfo {
115     public:
116 degrutto 1.13 MuonInfo(): charge(-99),tIso(-99), eIso(-99), hIso(-99),pfChaIso(-99),pfChaPUIso(99), pfPhoIso(-99), pfNeuIso(-99),
117 tboccali 1.1 acop(-99), ipDb(-99), ipErrDb(-99), zPVPt(-99),zPVProb(-99), chi2(-99), globChi2(-99),
118 arizzi 1.33 cat(-99), nValidTracker(-99), nValidPixel(-99), nMatches(-99),nHits(-99), nPixelHits(-99), globNHits(-99),validMuStations(-99),emEnergy(-99), hadEnergy(-99),nValidLayers(-99),isPF(-99),
119 tboccali 1.1 mcId(-99), mcMomId(-99), mcgMomId(-99){}
120     public:
121 tboccali 1.6 TLorentzVector p4;
122 tboccali 1.1 int charge;
123 degrutto 1.13 float tIso, eIso, hIso, pfChaIso,pfChaPUIso, pfPhoIso,pfNeuIso,acop, ipDb, ipErrDb, zPVPt,zPVProb, chi2, globChi2;
124 tboccali 1.16 int cat, nValidTracker, nValidPixel, nMatches,nHits, nPixelHits, globNHits, validMuStations;
125 tboccali 1.19 float emEnergy, hadEnergy;
126 tboccali 1.1 TLorentzVector mcFourMomentum;
127     int mcId, mcMomId, mcgMomId;
128 arizzi 1.33 int isPF,nValidLayers;
129 bortigno 1.8 std::vector< int > hltMatchedBits;
130 tboccali 1.1 };
131    
132     class ElectronInfo {
133     public:
134     ElectronInfo() : scEta(-99), scPhi(-99), charge(-99),
135 degrutto 1.13 tIso(-99), eIso(-99), hIso(-99),pfChaIso(-99),pfChaPUIso(-99), pfPhoIso(-99), pfNeuIso(-99), acop(-99),
136 tboccali 1.17 sihih(-99), Dphi(-99), Deta(-99), HoE(-99), convDist(-99), convDcot(-99), innerHits(-99),
137     isEB(false),isEE(false),
138 tboccali 1.18 ipDb(-99), ipErrDb(-99),
139 arizzi 1.7 id95(-99),id85(-99),id80(-99),id70(-99),
140     id95r(-99),id85r(-99),id80r(-99),id70r(-99),
141 arizzi 1.32 mcId(-99), mcMomId(-99), mcgMomId (-99),
142 arizzi 1.35 dxy(-99), dz(-99),pfPhoIsoDoubleCounted(-99),
143 arizzi 1.32 //MVA ELEID 2012 input vars (keep same names to make life easier in integrating with MVA evaluation code
144 arizzi 1.33 fMVAVar_EoP(-99), fMVAVar_HoE(-99), fMVAVar_IoEmIoP(-99), fMVAVar_PreShowerOverRaw(-99), fMVAVar_R9(-99), fMVAVar_d0(-99), fMVAVar_deta(-99), fMVAVar_detacalo(-99), fMVAVar_dphi(-99), fMVAVar_e1x5e5x5(-99), fMVAVar_eleEoPout(-99), fMVAVar_eta(-99), fMVAVar_etawidth(-99), fMVAVar_fbrem(-99), fMVAVar_gsfchi2(-99), fMVAVar_ip3d(-99), fMVAVar_kfchi2(-99), fMVAVar_kfhits(-99), fMVAVar_phiwidth(-99), fMVAVar_pt(-99), fMVAVar_see(-99), fMVAVar_spp(-99), mvaOut(-99),mvaOutTrig(-99)
145 arizzi 1.32 {}
146 tboccali 1.1 public:
147 tboccali 1.6 TLorentzVector p4;
148 tboccali 1.1 float scEta, scPhi;
149     int charge;
150 degrutto 1.13 float tIso, eIso, hIso, pfChaIso,pfChaPUIso, pfPhoIso,pfNeuIso, acop;
151 tboccali 1.17 float sihih, Dphi, Deta, HoE, convDist, convDcot;
152     int innerHits;
153     bool isEB,isEE;
154 arizzi 1.32 float ipDb, ipErrDb, dxy,dz;
155 arizzi 1.35 float pfPhoIsoDoubleCounted;
156 arizzi 1.7 float id95,id85,id80,id70,id95r, id85r,id80r, id70r;
157 arizzi 1.33 float fMVAVar_EoP, fMVAVar_HoE, fMVAVar_IoEmIoP, fMVAVar_PreShowerOverRaw, fMVAVar_R9, fMVAVar_d0, fMVAVar_deta, fMVAVar_detacalo, fMVAVar_dphi, fMVAVar_e1x5e5x5, fMVAVar_eleEoPout, fMVAVar_eta, fMVAVar_etawidth, fMVAVar_fbrem, fMVAVar_gsfchi2, fMVAVar_ip3d, fMVAVar_kfchi2, fMVAVar_kfhits, fMVAVar_phiwidth, fMVAVar_pt, fMVAVar_see, fMVAVar_spp, mvaOut,mvaOutTrig;
158 tboccali 1.1 TLorentzVector mcFourMomentum;
159     int mcId, mcMomId, mcgMomId;
160 bortigno 1.8 std::vector< int > hltMatchedBits;
161 tboccali 1.1 };
162    
163     class TauInfo{
164     public:
165 sethzenz 1.27 TauInfo() : charge(-99), tIso(-99), eIso(-99), hIso(-99),pfChaIso(-99), pfChaPUIso(-99),pfPhoIso(-99), pfNeuIso(-99), acop(-99),
166 sethzenz 1.26 byIsolation(-99),trackIsolation(-99),byTaNCfrOnePercent(-99),
167     byTaNCfrHalfPercent(-99), byTaNCfrQuarterPercent(-99),
168     byTaNCfrTenthPercent(-99), byTaNC(-99), mcId(-99), mcMomId(-99), mcgMomId(-99),
169     againstElectronLoose(-99), againstElectronMedium(-99), againstElectronTight(-99), againstMuonLoose(-99), againstMuonTight(-99),
170     byLooseIsolation(-99), byMediumIsolation(-99), byTightIsolation(-99), byVLooseIsolation(-99), decayModeFinding(-99),
171 sethzenz 1.23 isolationPFChargedHadrCandsPtSum(-999999.), isolationPFGammaCandsEtSum(-999999.),leadPFChargedHadrCandPt(-999999.),
172 sethzenz 1.26 NsignalPFChargedHadrCands (-99),NsignalPFGammaCands(-99), byLooseCombinedIsolationDeltaBetaCorr(-99), againstElectronMVA(-99) {}
173 tboccali 1.1 public:
174 tboccali 1.6 TLorentzVector p4;
175 tboccali 1.1 int charge;
176 sethzenz 1.27 float tIso, eIso, hIso,pfChaIso,pfChaPUIso,pfPhoIso,pfNeuIso, acop;
177 sethzenz 1.26 float byIsolation,trackIsolation,byTaNCfrOnePercent,byTaNCfrHalfPercent, byTaNCfrQuarterPercent, byTaNCfrTenthPercent, byTaNC;
178 dlopes 1.22 int mcId, mcMomId, mcgMomId;
179 sethzenz 1.26 float againstElectronLoose, againstElectronMedium, againstElectronTight, againstMuonLoose, againstMuonTight;
180     float byLooseIsolation, byMediumIsolation, byTightIsolation, byVLooseIsolation, decayModeFinding;
181 dlopes 1.22
182     float isolationPFChargedHadrCandsPtSum,isolationPFGammaCandsEtSum,leadPFChargedHadrCandPt;
183 sethzenz 1.23 int NsignalPFChargedHadrCands, NsignalPFGammaCands;
184 sethzenz 1.26 float byLooseCombinedIsolationDeltaBetaCorr, againstElectronMVA;
185    
186    
187 tboccali 1.1 TLorentzVector mcFourMomentum;
188     };
189    
190    
191     class DiMuonInfo {
192     public:
193 tboccali 1.6 TLorentzVector p4;
194 tboccali 1.1 MuonInfo daughter1, daughter2;
195     };
196    
197    
198     class DiElectronInfo {
199     public:
200 tboccali 1.6 TLorentzVector p4;
201 tboccali 1.1 ElectronInfo daughter1, daughter2;
202     };
203    
204    
205    
206     public:
207 jiafulow 1.37 std::vector<SimpleJet> simpleJets; // unused
208     std::vector<SimpleJet> simpleJets2; // anti-kt R=0.5 PF jets
209     std::vector<SimpleJet> simpleJets3; // unused
210     std::vector<SimpleJet> simpleJets4; // anti-kt R=0.7 PF jets
211     std::vector<SimpleJet> subJets; // CA R=1.2 mass drop subjets (FastJet 2)
212     std::vector<SimpleJet> filterJets; // CA R=1.2 mass drop filtered R=0.3 subjets (FastJet 2)
213     std::vector<HardJet> hardJets; // CA R=1.2 mass drop fatjets (FastJet 2)
214    
215     std::vector<SimpleJet> CA12mdft_subJets; // CA R=1.2 mass drop filtered R=0.3 subjets (FastJet 3)
216     std::vector<HardJet> CA12mdft_hardJets; // CA R=1.2 mass drop fatjets (FastJet 3)
217     std::vector<SimpleJet> CA12pr_subJets; // CA R=1.2 pruned subjets (FastJet 3)
218     std::vector<SimpleJet> CA12ft_subJets; // CA R=1.2 filtered subjets (FastJet 3)
219     std::vector<RawJet> CA12_rawJets; // CA R=1.2 raw fatjets (FastJet 3)
220 tboccali 1.1
221 degrutto 1.25 METInfo calomet;
222 tboccali 1.1 METInfo tcmet;
223     METInfo pfmet;
224 degrutto 1.25 METInfo pfmetType1corr;
225     METInfo pfmetType1p2corr;
226     METInfo pfmetNoPUType1corr;
227     METInfo pfmetNoPUType1p2corr;
228 tboccali 1.11 METInfo mht;
229 arizzi 1.14 METInfo metNoPU;
230 tboccali 1.20 METInfo metCh;
231 degrutto 1.25 std::vector<METInfo> metUncInfo;
232 tboccali 1.11
233 tboccali 1.1 std::vector<MuonInfo> muInfo;
234     std::vector<ElectronInfo> eleInfo;
235     std::vector<TauInfo> tauInfo;
236    
237     std::vector<DiMuonInfo> diMuonInfo;
238     std::vector<DiElectronInfo> diElectronInfo;
239    
240     // HiggsCandidate dijetHiggs;
241     // HiggsCandidate fatjetHiggs;
242    
243     // to be decided.. one single or many V?
244     // VCandidate vcand;
245     // WCandidate wele;
246     // WCandidate wmu;
247     //WCandidate wtau;
248     // ZCandidate zmu;
249     // ZCandidate zele;
250     //ZInvCandidate znunu;
251    
252     //
253     // really needed????
254     //
255    
256     };
257     #endif