checkmate is hosted by Hepforge, IPPP Durham
DelphesClasses.h
Go to the documentation of this file.
1 #ifndef DelphesClasses_h
2 #define DelphesClasses_h
3 
18 // Dependencies (#includes)
19 
20 #include "TRef.h"
21 #include "TObject.h"
22 #include "TRefArray.h"
23 #include "TLorentzVector.h"
24 
25 #include "classes/SortableObject.h"
26 
27 class DelphesFactory;
28 
29 //---------------------------------------------------------------------------
30 
31 class Event: public TObject
32 {
33 public:
34 
35  Long64_t Number; // event number
36 
37  Float_t ReadTime;
38  Float_t ProcTime;
39 
40  ClassDef(Event, 1)
41 };
42 
43 //---------------------------------------------------------------------------
44 
45 class LHCOEvent: public Event
46 {
47 public:
48 
49  Int_t Trigger; // trigger word
50 
51  ClassDef(LHCOEvent, 1)
52 };
53 
54 //---------------------------------------------------------------------------
55 
56 class LHEFEvent: public Event
57 {
58 public:
59 
60  Int_t ProcessID; // subprocess code for the event | hepup.IDPRUP
61 
62  Float_t Weight; // weight for the event | hepup.XWGTUP
63  Float_t ScalePDF; // scale in GeV used in the calculation of the PDFs in the event | hepup.SCALUP
64  Float_t AlphaQED; // value of the QED coupling used in the event | hepup.AQEDUP
65  Float_t AlphaQCD; // value of the QCD coupling used in the event | hepup.AQCDUP
66 
67  ClassDef(LHEFEvent, 2)
68 };
69 
70 //---------------------------------------------------------------------------
71 
72 class HepMCEvent: public Event
73 {
74 public:
75 
76  Int_t ProcessID; // unique signal process id | signal_process_id()
77  Int_t MPI; // number of multi parton interactions | mpi ()
78 
79  Float_t Weight; // weight for the event
80 
81  Float_t Scale; // energy scale, see hep-ph/0109068 | event_scale()
82  Float_t AlphaQED; // QED coupling, see hep-ph/0109068 | alphaQED()
83  Float_t AlphaQCD; // QCD coupling, see hep-ph/0109068 | alphaQCD()
84 
85  Int_t ID1; // flavour code of first parton | pdf_info()->id1()
86  Int_t ID2; // flavour code of second parton | pdf_info()->id2()
87 
88  Float_t X1; // fraction of beam momentum carried by first parton ("beam side") | pdf_info()->x1()
89  Float_t X2; // fraction of beam momentum carried by second parton ("target side") | pdf_info()->x2()
90 
91  Float_t ScalePDF; // Q-scale used in evaluation of PDF's (in GeV) | pdf_info()->scalePDF()
92 
93  Float_t PDF1; // PDF (id1, x1, Q) | pdf_info()->pdf1()
94  Float_t PDF2; // PDF (id2, x2, Q) | pdf_info()->pdf2()
95 
96  ClassDef(HepMCEvent, 2)
97 };
98 
99 //---------------------------------------------------------------------------
100 
101 class GenParticle: public SortableObject
102 {
103 public:
104  Int_t PID; // particle HEP ID number | hepevt.idhep[number]
105 
106  Int_t Status; // particle status | hepevt.isthep[number]
107  Int_t IsPU; // 0 or 1 for particles from pile-up interactions
108 
109 
110  Int_t M1; // particle 1st mother | hepevt.jmohep[number][0] - 1
111  Int_t M2; // particle 2nd mother | hepevt.jmohep[number][1] - 1
112 
113  Int_t D1; // particle 1st daughter | hepevt.jdahep[number][0] - 1
114  Int_t D2; // particle last daughter | hepevt.jdahep[number][1] - 1
115 
116  Int_t Charge; // particle charge
117 
118  Float_t Mass; // particle mass
119 
120  Float_t E; // particle energy | hepevt.phep[number][3]
121  Float_t Px; // particle momentum vector (x component) | hepevt.phep[number][0]
122  Float_t Py; // particle momentum vector (y component) | hepevt.phep[number][1]
123  Float_t Pz; // particle momentum vector (z component) | hepevt.phep[number][2]
124 
125  Float_t PT; // particle transverse momentum
126  Float_t Eta; // particle pseudorapidity
127  Float_t Phi; // particle azimuthal angle
128 
129  Float_t Rapidity; // particle rapidity
130 
131  Float_t T; // particle vertex position (t component) | hepevt.vhep[number][3]
132  Float_t X; // particle vertex position (x component) | hepevt.vhep[number][0]
133  Float_t Y; // particle vertex position (y component) | hepevt.vhep[number][1]
134  Float_t Z; // particle vertex position (z component) | hepevt.vhep[number][2]
135 
136  static CompBase *fgCompare;
137  const CompBase *GetCompare() const { return fgCompare; }
138 
139  TLorentzVector P4();
140 
141  ClassDef(GenParticle, 1)
142 };
143 
144 //---------------------------------------------------------------------------
145 
146 class MissingET: public TObject
147 {
148 public:
149  Float_t MET; // mising transverse energy
150  Float_t Phi; // mising energy azimuthal angle
151 
152  ClassDef(MissingET, 1)
153 };
154 
155 //---------------------------------------------------------------------------
156 
157 class ScalarHT: public TObject
158 {
159 public:
160  Float_t HT; // scalar sum of transverse momenta
161 
162  ClassDef(ScalarHT, 1)
163 };
164 
165 //---------------------------------------------------------------------------
166 
167 class Rho: public TObject
168 {
169 public:
170  Float_t Rho; // rho energy density
171 
172  ClassDef(Rho, 1)
173 };
174 
175 //---------------------------------------------------------------------------
176 
177 class Weight: public TObject
178 {
179 public:
180  Float_t Weight; // weight for the event
181 
182  ClassDef(Weight, 1)
183 };
184 
185 //---------------------------------------------------------------------------
186 
187 class Photon: public SortableObject
188 {
189 public:
190 
191  Float_t PT; // photon transverse momentum
192  Float_t Eta; // photon pseudorapidity
193  Float_t Phi; // photon azimuthal angle
194 
195  Float_t E; // photon energy
196 
197  Float_t EhadOverEem; // ratio of the hadronic versus electromagnetic energy deposited in the calorimeter
198 
199  TRefArray Particles; // references to generated particles
200 
201  Int_t EfficiencyFlags; // Saves possible identification or reconstruction efficiency flags
202  Int_t IsolationFlags; // Saves possible isolation flags
203  Int_t MiscellaneousFlags; // Saves possible other flags
204 
205  static CompBase *fgCompare;
206  const CompBase *GetCompare() const { return fgCompare; }
207 
208  TLorentzVector P4();
209 
210  ClassDef(Photon, 2)
211 };
212 
213 //---------------------------------------------------------------------------
214 
215 class Electron: public SortableObject
216 {
217 public:
218 
219  Float_t PT; // electron transverse momentum
220  Float_t Eta; // electron pseudorapidity
221  Float_t Phi; // electron azimuthal angle
222 
223  Int_t Charge; // electron charge
224 
225  Float_t EhadOverEem; // ratio of the hadronic versus electromagnetic energy deposited in the calorimeter
226 
227  TRef Particle; // reference to generated particle
228 
229  Int_t EfficiencyFlags; // Saves possible identification or reconstruction efficiency flags
230  Int_t IsolationFlags; // Saves possible isolation flags
231  Int_t MiscellaneousFlags; // Saves possible other flags
232 
233  static CompBase *fgCompare;
234  const CompBase *GetCompare() const { return fgCompare; }
235 
236  TLorentzVector P4();
237 
238  ClassDef(Electron, 2)
239 };
240 
241 //---------------------------------------------------------------------------
242 
243 class Muon: public SortableObject
244 {
245 public:
246 
247  Float_t PT; // muon transverse momentum
248  Float_t Eta; // muon pseudorapidity
249  Float_t Phi; // muon azimuthal angle
250 
251  Int_t Charge; // muon charge
252 
253  TRef Particle; // reference to generated particle
254 
255  Int_t EfficiencyFlags; // Saves possible identification or reconstruction efficiency flags
256  Int_t IsolationFlags; // Saves possible isolation flags
257  Int_t MiscellaneousFlags; // Saves possible other flags
258 
259  static CompBase *fgCompare;
260  const CompBase *GetCompare() const { return fgCompare; }
261 
262  TLorentzVector P4();
263 
264  ClassDef(Muon, 2)
265 };
266 
267 //---------------------------------------------------------------------------
268 
269 class Jet: public SortableObject
270 {
271 public:
272 
273  Float_t PT; // jet transverse momentum
274  Float_t Eta; // jet pseudorapidity
275  Float_t Phi; // jet azimuthal angle
276 
277  Float_t Mass; // jet invariant mass
278 
279  Float_t DeltaEta; // jet radius in pseudorapidity
280  Float_t DeltaPhi; // jet radius in azimuthal angle
281 
282  Int_t EfficiencyFlags; // Saves possible identification or reconstruction efficiency flags
283  Int_t IsolationFlags; // Saves possible isolation flags
284  Int_t MiscellaneousFlags; // Saves possible other flags
285 
286  Int_t BFlags; // Saves possible BJetFlags
287  Float_t BFlagProb; // Saves the random number that is checked against different BFlag probabilities
288  Int_t TauFlags; // Saves possible TauJetFlags
289  Float_t TauFlagProb; // Saves the random number that is checked against different TauFlag probabilities
290 
291  Int_t Charge; // tau charge
292 
293  Float_t EhadOverEem; // ratio of the hadronic versus electromagnetic energy deposited in the calorimeter
294 
295  TRefArray Constituents; // references to constituents
296  TRefArray Particles; // references to generated particles
297 
298  static CompBase *fgCompare;
299  const CompBase *GetCompare() const { return fgCompare; }
300 
301  TLorentzVector P4();
302 
303  ClassDef(Jet, 2)
304 };
305 
306 //---------------------------------------------------------------------------
307 
308 class Track: public SortableObject
309 {
310 public:
311  Int_t PID; // HEP ID number
312 
313  Int_t Charge; // track charge
314 
315  Float_t PT; // track transverse momentum
316 
317  Float_t Eta; // track pseudorapidity
318  Float_t Phi; // track azimuthal angle
319 
320  Float_t EtaOuter; // track pseudorapidity at the tracker edge
321  Float_t PhiOuter; // track azimuthal angle at the tracker edge
322 
323  Float_t X; // track vertex position (x component)
324  Float_t Y; // track vertex position (y component)
325  Float_t Z; // track vertex position (z component)
326 
327  Float_t XOuter; // track position (x component) at the tracker edge
328  Float_t YOuter; // track position (y component) at the tracker edge
329  Float_t ZOuter; // track position (z component) at the tracker edge
330 
331  TRef Particle; // reference to generated particle
332 
333  static CompBase *fgCompare;
334  const CompBase *GetCompare() const { return fgCompare; }
335 
336  TLorentzVector P4();
337 
338  ClassDef(Track, 1)
339 };
340 
341 //---------------------------------------------------------------------------
342 
343 class Tower: public SortableObject
344 {
345 public:
346  Float_t ET; // calorimeter tower transverse energy
347  Float_t Eta; // calorimeter tower pseudorapidity
348  Float_t Phi; // calorimeter tower azimuthal angle
349 
350  Float_t E; // calorimeter tower energy
351 
352  Float_t Eem; // calorimeter tower electromagnetic energy
353  Float_t Ehad; // calorimeter tower hadronic energy
354 
355  Float_t Edges[4]; // calorimeter tower edges
356 
357  TRefArray Particles; // references to generated particles
358 
359  static CompBase *fgCompare;
360  const CompBase *GetCompare() const { return fgCompare; }
361 
362  TLorentzVector P4();
363 
364  ClassDef(Tower, 1)
365 };
366 
367 //---------------------------------------------------------------------------
368 
369 class Candidate: public SortableObject
370 {
371  friend class DelphesFactory;
372 
373 public:
374  Candidate();
375 
376  Int_t PID;
377 
378  Int_t Status;
379  Int_t M1, M2, D1, D2;
380 
381  Int_t Charge;
382 
383  Float_t Mass;
384 
385  Int_t IsPU;
386  Int_t IsConstituent;
387 
388  Int_t EfficiencyFlags; // Saves possible identification or reconstruction efficiency flags
389  Int_t IsolationFlags; // Saves possible isolation flags
390  Int_t MiscellaneousFlags; // Saves possible other flags
391 
392  Int_t BFlags; // Saves possible BJetFlags
393  Float_t BFlagProb; // Saves the random number that is checked against different BFlag probabilities
394  Int_t TauFlags; // Saves possible TauJetFlags
395  Float_t TauFlagProb; // Saves the random number that is checked against different TauFlag probabilities
396 
397  Float_t Eem;
398  Float_t Ehad;
399 
400  Float_t Edges[4];
401  Float_t DeltaEta;
402  Float_t DeltaPhi;
403 
404  TLorentzVector Momentum, Position, Area;
405 
406  static CompBase *fgCompare;
407  const CompBase *GetCompare() const { return fgCompare; }
408 
409  void AddCandidate(Candidate *object);
410  TObjArray *GetCandidates();
411 
412  Bool_t Overlaps(const Candidate *object) const;
413 
414  virtual void Copy(TObject &object) const;
415  virtual TObject *Clone(const char *newname = "") const;
416  virtual void Clear(Option_t* option = "");
417 
418 private:
419  DelphesFactory *fFactory;
420  TObjArray *fArray;
421 
422  void SetFactory(DelphesFactory *factory) { fFactory = factory; }
423 
424  ClassDef(Candidate, 1)
425 };
426 
427 #endif // DelphesClasses_h
428 
429 
TLorentzVector P4()
Int_t Charge
TLorentzVector P4()
TLorentzVector P4()
Int_t Charge
const CompBase * GetCompare() const
Float_t Eta
Float_t Eta
Float_t Eta
Float_t DeltaEta
Float_t PT
Float_t ET
TRef Particle
Int_t IsolationFlags
const CompBase * GetCompare() const
Float_t Z
const CompBase * GetCompare() const
Int_t EfficiencyFlags
Float_t PT
static CompBase * fgCompare
Float_t Phi
Float_t PT
Float_t Y
static CompBase * fgCompare
Int_t MiscellaneousFlags
TRefArray Particles
Float_t PhiOuter
Float_t Mass
Float_t PT
Float_t Rapidity
Float_t Phi
Int_t PID
Float_t X
Float_t E
TRefArray Particles
Float_t Eta
Int_t TauFlags
Int_t Charge
Float_t TauFlagProb
TLorentzVector P4()
Float_t Phi
Float_t XOuter
TLorentzVector P4()
const CompBase * GetCompare() const
Float_t EhadOverEem
Float_t Ehad
static CompBase * fgCompare
TLorentzVector P4()
Float_t E
static CompBase * fgCompare
Float_t Phi
Float_t Eta
static CompBase * fgCompare
Float_t Eem
static CompBase * fgCompare
Float_t YOuter
Float_t Phi
Float_t Eta
Int_t BFlags
Float_t Phi
Float_t EhadOverEem
Float_t PT
Int_t IsolationFlags
Int_t MiscellaneousFlags
Int_t IsolationFlags
Int_t Charge
TRefArray Particles
Float_t ZOuter
const CompBase * GetCompare() const
Float_t EtaOuter
Int_t IsolationFlags
Float_t DeltaPhi
Int_t MiscellaneousFlags
static CompBase * fgCompare
TLorentzVector P4()
Float_t BFlagProb
const CompBase * GetCompare() const
Int_t EfficiencyFlags
Int_t EfficiencyFlags
const CompBase * GetCompare() const
TRef Particle
Float_t Edges[4]
Float_t EhadOverEem
Int_t MiscellaneousFlags
Int_t EfficiencyFlags
TRefArray Constituents