CMS 3D CMS Logo

Megajet.h
Go to the documentation of this file.
1 //-------------------------------------------------------
2 // Description: Razor Megajet calculator
3 // Authors: Maurizio Pierini, CERN
4 // Authors: Christopher Rogan, Javier Duarte, Caltech
5 // Authors: Emanuele Di Marco, CERN
6 //-------------------------------------------------------
7 
11 
12 #ifndef Megajet_h
13 #define Megajet_h
14 
15 #include <vector>
16 #include <iostream>
17 #include <TLorentzVector.h>
18 
19 namespace heppy {
20 
21  class Megajet {
22  public:
23  // There are 2 constructors:
24  // 1. Constructor taking as argument vectors of Px, Py, Pz and E of the objects in the event and the hemisphere
25  // association method,
26  // 2. Constructor taking as argument vectors of Px, Py, Pz and E of the objects in the event.
27  // The hemisphere association method should then be defined by SetMethod(association_method).
28  //
29  // Hemisphere association method:
30  // 1: minimum sum of the invariant masses of the two hemispheres
31  // 2: minimum difference of HT for the two hemispheres
32  // 3: minimum m1^2/E1 + m2^2/E2
33  // 4: Georgi distance: maximum (E1-Beta*m1^2/E1 + E2-Beta*m1^2/E2)
34 
35  Megajet() {}
36 
37  Megajet(std::vector<float> Px_vector,
38  std::vector<float> Py_vector,
39  std::vector<float> Pz_vector,
40  std::vector<float> E_vector,
41  int megajet_association_method);
42 
43  Megajet(std::vector<float> Px_vector,
44  std::vector<float> Py_vector,
45  std::vector<float> Pz_vector,
46  std::vector<float> E_vector);
47 
49  ~Megajet() {}
50 
51  // return Nx, Ny, Nz, P, E of the axis of group 1
52  std::vector<float> getAxis1();
53  // return Nx, Ny, Nz, P, E of the axis of group 2
54  std::vector<float> getAxis2();
55 
56  // where Nx, Ny, Nz are the direction cosines e.g. Nx = Px/P,
57  // P is the momentum, E is the energy
58 
59  // set or overwrite the seed and association methods
60  void SetMethod(int megajet_association_method) {
61  megajet_meth = megajet_association_method;
62  status = 0;
63  }
64 
65  private:
68  void CombineMinMass();
69 
72  void CombineMinHT();
73 
75  void CombineMinEnergyMass();
76 
78  void CombineGeorgi();
79 
81  void Combine();
82 
83  std::vector<float> Object_Px;
84  std::vector<float> Object_Py;
85  std::vector<float> Object_Pz;
86  std::vector<float> Object_E;
87 
88  std::vector<float> Axis1;
89  std::vector<float> Axis2;
90 
92  int status;
93 
94  std::vector<TLorentzVector> jIN;
95  std::vector<TLorentzVector> jOUT;
96  std::vector<TLorentzVector> j1;
97  std::vector<TLorentzVector> j2;
98  };
99 } // namespace heppy
100 
101 #endif
std::vector< float > Object_E
Definition: Megajet.h:86
void CombineGeorgi()
Combining the jets in two hemispheres by maximizing (E1-Beta*m1^2/E1 + E2-Beta*m1^2/E2) ...
Definition: Megajet.cc:186
std::vector< float > Object_Pz
Definition: Megajet.h:85
std::vector< TLorentzVector > jIN
Definition: Megajet.h:94
std::vector< float > getAxis2()
Definition: Megajet.cc:64
std::vector< float > Axis2
Definition: Megajet.h:89
void CombineMinHT()
Definition: Megajet.cc:215
std::vector< TLorentzVector > jOUT
Definition: Megajet.h:95
std::vector< TLorentzVector > j1
Definition: Megajet.h:96
std::vector< TLorentzVector > j2
Definition: Megajet.h:97
~Megajet()
Destructor.
Definition: Megajet.h:49
std::vector< float > Object_Py
Definition: Megajet.h:84
std::vector< float > Object_Px
Definition: Megajet.h:83
void CombineMinMass()
Definition: Megajet.cc:131
TAKEN FROM http://cmssw.cvs.cern.ch/cgi-bin/cmssw.cgi/CMSSW/ElectroWeakAnalysis/Utilities/src/PdfWeig...
Definition: AlphaT.h:16
void SetMethod(int megajet_association_method)
Definition: Megajet.h:60
int megajet_meth
Definition: Megajet.h:91
std::vector< float > Axis1
Definition: Megajet.h:88
std::vector< float > getAxis1()
Definition: Megajet.cc:41
void Combine()
Combine the jets in all the possible pairs of hemispheres.
Definition: Megajet.cc:88
void CombineMinEnergyMass()
Combining the jets in two hemispheres by minimizing m1^2/E1 + m2^2/E2.
Definition: Megajet.cc:158