2 |
|
#define TopJet_H |
3 |
|
|
4 |
|
#include "Jet.h" |
5 |
+ |
#include "TLorentzVector.h" |
6 |
+ |
|
7 |
+ |
|
8 |
+ |
/** |
9 |
+ |
* @short top-jet class |
10 |
+ |
* @author Thomas Peiffer |
11 |
+ |
*/ |
12 |
|
|
13 |
|
class TopJet : public Jet{ |
14 |
|
public: |
15 |
|
TopJet(){ |
16 |
|
m_subjets.clear(); |
17 |
+ |
|
18 |
+ |
// initialize substructure variables to -1 |
19 |
+ |
m_qjets_volatility = -1.; |
20 |
+ |
m_tau1 = -1.; |
21 |
+ |
m_tau2 = -1.; |
22 |
+ |
m_tau3 = -1.; |
23 |
+ |
|
24 |
+ |
//clear btag variables |
25 |
+ |
m_subCSV.clear(); |
26 |
+ |
m_subFlavour.clear(); |
27 |
+ |
|
28 |
+ |
//clear track impact parameter tag info |
29 |
+ |
m_subTrackMomentum.clear(); |
30 |
+ |
m_subTrackEta.clear(); |
31 |
+ |
m_subTrackEtaRel.clear(); |
32 |
+ |
m_subTrackDeltaR.clear(); |
33 |
+ |
m_subTrackSip3dVal.clear(); |
34 |
+ |
m_subTrackSip3dSig.clear(); |
35 |
+ |
m_subTrackSip2dVal.clear(); |
36 |
+ |
m_subTrackSip2dSig.clear(); |
37 |
+ |
m_subTrackDecayLenVal.clear(); |
38 |
+ |
m_subTrackChi2.clear(); |
39 |
+ |
m_subTrackNTotalHits.clear(); |
40 |
+ |
m_subTrackNPixelHits.clear(); |
41 |
+ |
m_subTrackPtRel.clear(); |
42 |
+ |
m_subTrackPPar.clear(); |
43 |
+ |
m_subTrackPtRatio.clear(); |
44 |
+ |
m_subTrackPParRatio.clear(); |
45 |
+ |
m_subTrackJetDistVal.clear(); |
46 |
+ |
m_subTrackJetDistSig.clear(); |
47 |
+ |
m_subTrackGhostTrackDistVal.clear(); |
48 |
+ |
m_subTrackGhostTrackDistSig.clear(); |
49 |
+ |
m_subTrackGhostTrackWeight.clear(); |
50 |
+ |
|
51 |
+ |
//clear secondary vertex tag info |
52 |
+ |
m_subFlightDistance2dVal.clear(); |
53 |
+ |
m_subFlightDistance2dSig.clear(); |
54 |
+ |
m_subFlightDistance3dVal.clear(); |
55 |
+ |
m_subFlightDistance3dSig.clear(); |
56 |
+ |
m_subVertexJetDeltaR.clear(); |
57 |
+ |
m_subJetNSecondaryVertices.clear(); |
58 |
+ |
m_subVertexNTracks.clear(); |
59 |
+ |
m_subSecondaryVertex.clear(); |
60 |
+ |
m_subVertexChi2.clear(); |
61 |
+ |
m_subVertexNdof.clear(); |
62 |
+ |
m_subVertexNormalizedChi2.clear(); |
63 |
+ |
m_subVertexTracksSize.clear(); |
64 |
+ |
//JTC SV variables |
65 |
+ |
m_subVertexCategoryJTC.clear(); |
66 |
+ |
m_subVertexMassJTC.clear(); |
67 |
+ |
m_subVertexEnergyRatioJTC.clear(); |
68 |
+ |
m_subTrackSip3dSigAboveCharmJTC.clear(); |
69 |
+ |
|
70 |
+ |
|
71 |
|
}; |
72 |
|
~TopJet(){ |
73 |
|
}; |
74 |
|
|
75 |
+ |
// substructure getters |
76 |
+ |
float qjets_volatility(){return m_qjets_volatility;} |
77 |
+ |
float tau1(){return m_tau1;} |
78 |
+ |
float tau2(){return m_tau2;} |
79 |
+ |
float tau3(){return m_tau3;} |
80 |
+ |
|
81 |
+ |
//btag variables getters |
82 |
|
std::vector<Particle> subjets() const{return m_subjets;} |
83 |
+ |
std::vector<float> subCSV() const{return m_subCSV;} |
84 |
+ |
std::vector<int> subFlavour() const{return m_subFlavour;} |
85 |
+ |
std::vector<float> btagsub_combinedSecondaryVertex() const{return m_subCSV;} |
86 |
+ |
std::vector<int> flavorsub() const{return m_subFlavour;} |
87 |
+ |
|
88 |
+ |
//track impact parameter tag info getters |
89 |
+ |
std::vector<std::vector<float> > subTrackMomentum() const{return m_subTrackMomentum;} |
90 |
+ |
std::vector<std::vector<float> > subTrackEta() const{return m_subTrackEta;} |
91 |
+ |
std::vector<std::vector<float> > subTrackEtaRel() const{return m_subTrackEtaRel;} |
92 |
+ |
std::vector<std::vector<float> > subTrackDeltaR() const{return m_subTrackDeltaR;} |
93 |
+ |
std::vector<std::vector<float> > subTrackSip3dVal() const{return m_subTrackSip3dVal;} |
94 |
+ |
std::vector<std::vector<float> > subTrackSip3dSig() const{return m_subTrackSip3dSig;} |
95 |
+ |
std::vector<std::vector<float> > subTrackSip2dVal() const{return m_subTrackSip2dVal;} |
96 |
+ |
std::vector<std::vector<float> > subTrackSip2dSig() const{return m_subTrackSip2dSig;} |
97 |
+ |
std::vector<std::vector<float> > subTrackDecayLenVal() const{return m_subTrackDecayLenVal;} |
98 |
+ |
std::vector<std::vector<float> > subTrackChi2() const{return m_subTrackChi2;} |
99 |
+ |
std::vector<std::vector<float> > subTrackNTotalHits() const{return m_subTrackNTotalHits;} |
100 |
+ |
std::vector<std::vector<float> > subTrackNPixelHits() const{return m_subTrackNPixelHits;} |
101 |
+ |
std::vector<std::vector<float> > subTrackPtRel() const{return m_subTrackPtRel;} |
102 |
+ |
std::vector<std::vector<float> > subTrackPPar() const{return m_subTrackPPar;} |
103 |
+ |
std::vector<std::vector<float> > subTrackPtRatio() const{return m_subTrackPtRatio;} |
104 |
+ |
std::vector<std::vector<float> > subTrackPParRatio() const{return m_subTrackPParRatio;} |
105 |
+ |
std::vector<std::vector<float> > subTrackJetDistVal() const{return m_subTrackJetDistVal;} |
106 |
+ |
std::vector<std::vector<float> > subTrackJetDistSig() const{return m_subTrackJetDistSig;} |
107 |
+ |
std::vector<std::vector<float> > subTrackGhostTrackDistVal() const{return m_subTrackGhostTrackDistVal;} |
108 |
+ |
std::vector<std::vector<float> > subTrackGhostTrackDistSig() const{return m_subTrackGhostTrackDistSig;} |
109 |
+ |
std::vector<std::vector<float> > subTrackGhostTrackWeight() const{return m_subTrackGhostTrackWeight;} |
110 |
+ |
|
111 |
+ |
//secondary vertex tag info getters |
112 |
+ |
std::vector<std::vector<float> > subFlightDistance2dVal() const{return m_subFlightDistance2dVal;} |
113 |
+ |
std::vector<std::vector<float> > subFlightDistance2dSig() const{return m_subFlightDistance2dSig;} |
114 |
+ |
std::vector<std::vector<float> > subFlightDistance3dVal() const{return m_subFlightDistance3dVal;} |
115 |
+ |
std::vector<std::vector<float> > subFlightDistance3dSig() const{return m_subFlightDistance3dSig;} |
116 |
+ |
std::vector<std::vector<float> > subVertexJetDeltaR() const{return m_subVertexJetDeltaR;} |
117 |
+ |
std::vector<float> subJetNSecondaryVertices() const{return m_subJetNSecondaryVertices;} |
118 |
+ |
std::vector<float> subVertexNTracks() const{return m_subVertexNTracks;} |
119 |
+ |
//std::vector<std::vector< ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > > > subSecondaryVertex() const{return m_subSecondaryVertex;} |
120 |
+ |
std::vector<std::vector<TLorentzVector > > subSecondaryVertex() const{return m_subSecondaryVertex;} |
121 |
+ |
std::vector<std::vector<float> > subVertexChi2() const{return m_subVertexChi2;} |
122 |
+ |
std::vector<std::vector<float> > subVertexNdof() const{return m_subVertexNdof;} |
123 |
+ |
std::vector<std::vector<float> > subVertexNormalizedChi2() const{return m_subVertexNormalizedChi2;} |
124 |
+ |
std::vector<std::vector<float> > subVertexTracksSize() const{return m_subVertexTracksSize;} |
125 |
+ |
//JTC SV variables |
126 |
+ |
std::vector<int> subVertexCategoryJTC() const{return m_subVertexCategoryJTC;} |
127 |
+ |
std::vector<float> subVertexMassJTC() const{return m_subVertexMassJTC;} |
128 |
+ |
std::vector<float> subVertexEnergyRatioJTC() const{return m_subVertexEnergyRatioJTC;} |
129 |
+ |
std::vector<float> subTrackSip3dSigAboveCharmJTC() const{return m_subTrackSip3dSigAboveCharmJTC;} |
130 |
+ |
|
131 |
+ |
// substructure setters |
132 |
+ |
void set_qjets_volatility(float x){m_qjets_volatility = x;} |
133 |
+ |
void set_tau1(float x){m_tau1 = x;} |
134 |
+ |
void set_tau2(float x){m_tau2 = x;} |
135 |
+ |
void set_tau3(float x){m_tau3 = x;} |
136 |
|
|
137 |
+ |
//btag variables setters |
138 |
|
void add_subjet(Particle p){m_subjets.push_back(p);} |
139 |
+ |
void add_subCSV(float discriminant){m_subCSV.push_back(discriminant);} |
140 |
+ |
void add_subFlavour(int flavour){m_subFlavour.push_back(flavour);} |
141 |
+ |
|
142 |
+ |
//track impact parameter tag info setters |
143 |
+ |
void add_subTrackMomentum(std::vector<float> t){ m_subTrackMomentum.push_back(t);} |
144 |
+ |
void add_subTrackEta(std::vector<float> t){ m_subTrackEta.push_back(t);} |
145 |
+ |
void add_subTrackEtaRel(std::vector<float> t){ m_subTrackEtaRel.push_back(t);} |
146 |
+ |
void add_subTrackDeltaR(std::vector<float> t){ m_subTrackDeltaR.push_back(t);} |
147 |
+ |
void add_subTrackSip3dVal(std::vector<float> t){ m_subTrackSip3dVal.push_back(t);} |
148 |
+ |
void add_subTrackSip3dSig(std::vector<float> t){ m_subTrackSip3dSig.push_back(t);} |
149 |
+ |
void add_subTrackSip2dVal(std::vector<float> t){ m_subTrackSip2dVal.push_back(t);} |
150 |
+ |
void add_subTrackSip2dSig(std::vector<float> t){ m_subTrackSip2dSig.push_back(t);} |
151 |
+ |
void add_subTrackDecayLenVal(std::vector<float> t){ m_subTrackDecayLenVal.push_back(t);} |
152 |
+ |
void add_subTrackChi2(std::vector<float> t){ m_subTrackChi2.push_back(t);} |
153 |
+ |
void add_subTrackNTotalHits(std::vector<float> t){ m_subTrackNTotalHits.push_back(t);} |
154 |
+ |
void add_subTrackNPixelHits(std::vector<float> t){ m_subTrackNPixelHits.push_back(t);} |
155 |
+ |
void add_subTrackPtRel(std::vector<float> t){ m_subTrackPtRel.push_back(t);} |
156 |
+ |
void add_subTrackPPar(std::vector<float> t){ m_subTrackPPar.push_back(t);} |
157 |
+ |
void add_subTrackPtRatio(std::vector<float> t){ m_subTrackPtRatio.push_back(t);} |
158 |
+ |
void add_subTrackPParRatio(std::vector<float> t){ m_subTrackPParRatio.push_back(t);} |
159 |
+ |
void add_subTrackJetDistVal(std::vector<float> t){ m_subTrackJetDistVal.push_back(t);} |
160 |
+ |
void add_subTrackJetDistSig(std::vector<float> t){ m_subTrackJetDistSig.push_back(t);} |
161 |
+ |
void add_subTrackGhostTrackDistVal(std::vector<float> t){ m_subTrackGhostTrackDistVal.push_back(t);} |
162 |
+ |
void add_subTrackGhostTrackDistSig(std::vector<float> t){ m_subTrackGhostTrackDistSig.push_back(t);} |
163 |
+ |
void add_subTrackGhostTrackWeight(std::vector<float> t){ m_subTrackGhostTrackWeight.push_back(t);} |
164 |
+ |
|
165 |
+ |
//secondary vertex tag info setters |
166 |
+ |
void add_subFlightDistance2dVal(std::vector<float> t){ m_subFlightDistance2dVal.push_back(t);} |
167 |
+ |
void add_subFlightDistance2dSig(std::vector<float> t){ m_subFlightDistance2dSig.push_back(t);} |
168 |
+ |
void add_subFlightDistance3dVal(std::vector<float> t){ m_subFlightDistance3dVal.push_back(t);} |
169 |
+ |
void add_subFlightDistance3dSig(std::vector<float> t){ m_subFlightDistance3dSig.push_back(t);} |
170 |
+ |
void add_subVertexJetDeltaR(std::vector<float> t){ m_subVertexJetDeltaR.push_back(t);} |
171 |
+ |
void add_subJetNSecondaryVertices(float t){ m_subJetNSecondaryVertices.push_back(t);} |
172 |
+ |
void add_subVertexNTracks(float t){ m_subVertexNTracks.push_back(t);} |
173 |
+ |
//void add_subSecondaryVertex(std::vector< ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > > t){ m_subSecondaryVertex.push_back(t);} |
174 |
+ |
void add_subSecondaryVertex(std::vector<TLorentzVector > t){ m_subSecondaryVertex.push_back(t);} |
175 |
+ |
void add_subVertexChi2(std::vector<float> t){ m_subVertexChi2.push_back(t);} |
176 |
+ |
void add_subVertexNdof(std::vector<float> t){ m_subVertexNdof.push_back(t);} |
177 |
+ |
void add_subVertexNormalizedChi2(std::vector<float> t){ m_subVertexNormalizedChi2.push_back(t);} |
178 |
+ |
void add_subVertexTracksSize(std::vector<float> t){ m_subVertexTracksSize.push_back(t);} |
179 |
+ |
//JTC SV variables |
180 |
+ |
void add_subVertexCategoryJTC(int t){ m_subVertexCategoryJTC.push_back(t);} |
181 |
+ |
void add_subVertexMassJTC(float t){ m_subVertexMassJTC.push_back(t);} |
182 |
+ |
void add_subVertexEnergyRatioJTC(float t){ m_subVertexEnergyRatioJTC.push_back(t);} |
183 |
+ |
void add_subTrackSip3dSigAboveCharmJTC(float t){ m_subTrackSip3dSigAboveCharmJTC.push_back(t);} |
184 |
+ |
|
185 |
|
|
186 |
|
private: |
187 |
|
std::vector<Particle> m_subjets; |
188 |
|
|
189 |
+ |
// substructure information |
190 |
+ |
float m_qjets_volatility; |
191 |
+ |
float m_tau1; |
192 |
+ |
float m_tau2; |
193 |
+ |
float m_tau3; |
194 |
+ |
|
195 |
+ |
//btag variables |
196 |
+ |
std::vector<float> m_subCSV; |
197 |
+ |
std::vector<int> m_subFlavour; |
198 |
+ |
|
199 |
+ |
//track impact parameter tag info |
200 |
+ |
std::vector<std::vector<float> > m_subTrackMomentum; |
201 |
+ |
std::vector<std::vector<float> > m_subTrackEta; |
202 |
+ |
std::vector<std::vector<float> > m_subTrackEtaRel; |
203 |
+ |
std::vector<std::vector<float> > m_subTrackDeltaR; |
204 |
+ |
std::vector<std::vector<float> > m_subTrackSip3dVal; |
205 |
+ |
std::vector<std::vector<float> > m_subTrackSip3dSig; |
206 |
+ |
std::vector<std::vector<float> > m_subTrackSip2dVal; |
207 |
+ |
std::vector<std::vector<float> > m_subTrackSip2dSig; |
208 |
+ |
std::vector<std::vector<float> > m_subTrackDecayLenVal; |
209 |
+ |
std::vector<std::vector<float> > m_subTrackChi2; |
210 |
+ |
std::vector<std::vector<float> > m_subTrackNTotalHits; |
211 |
+ |
std::vector<std::vector<float> > m_subTrackNPixelHits; |
212 |
+ |
std::vector<std::vector<float> > m_subTrackPtRel; |
213 |
+ |
std::vector<std::vector<float> > m_subTrackPPar; |
214 |
+ |
std::vector<std::vector<float> > m_subTrackPtRatio; |
215 |
+ |
std::vector<std::vector<float> > m_subTrackPParRatio; |
216 |
+ |
std::vector<std::vector<float> > m_subTrackJetDistVal; |
217 |
+ |
std::vector<std::vector<float> > m_subTrackJetDistSig; |
218 |
+ |
std::vector<std::vector<float> > m_subTrackGhostTrackDistVal; |
219 |
+ |
std::vector<std::vector<float> > m_subTrackGhostTrackDistSig; |
220 |
+ |
std::vector<std::vector<float> > m_subTrackGhostTrackWeight; |
221 |
+ |
|
222 |
+ |
//secondary vertex tag info |
223 |
+ |
std::vector<std::vector<float> > m_subFlightDistance2dVal; |
224 |
+ |
std::vector<std::vector<float> > m_subFlightDistance2dSig; |
225 |
+ |
std::vector<std::vector<float> > m_subFlightDistance3dVal; |
226 |
+ |
std::vector<std::vector<float> > m_subFlightDistance3dSig; |
227 |
+ |
std::vector<std::vector<float> > m_subVertexJetDeltaR; |
228 |
+ |
std::vector<float> m_subJetNSecondaryVertices; |
229 |
+ |
std::vector<float> m_subVertexNTracks; |
230 |
+ |
|
231 |
+ |
//std::vector<std::vector< ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > > > m_subSecondaryVertex; |
232 |
+ |
std::vector<std::vector<TLorentzVector> > m_subSecondaryVertex; |
233 |
+ |
std::vector<std::vector<float> > m_subVertexChi2; |
234 |
+ |
std::vector<std::vector<float> > m_subVertexNdof; |
235 |
+ |
std::vector<std::vector<float> > m_subVertexNormalizedChi2; |
236 |
+ |
std::vector<std::vector<float> > m_subVertexTracksSize; |
237 |
+ |
//JTC SV variables |
238 |
+ |
std::vector<int> m_subVertexCategoryJTC; |
239 |
+ |
std::vector<float> m_subVertexMassJTC; |
240 |
+ |
std::vector<float> m_subVertexEnergyRatioJTC; |
241 |
+ |
std::vector<float> m_subTrackSip3dSigAboveCharmJTC; |
242 |
+ |
|
243 |
|
}; |
244 |
|
|
245 |
|
#endif |