![]() |
|
|||
File indexing completed on 2024-09-07 04:37:17
0001 //------------------------------------------------------- 0002 // Description: Razor Megajet calculator 0003 // Authors: Maurizio Pierini, CERN 0004 // Authors: Christopher Rogan, Javier Duarte, Caltech 0005 // Authors: Emanuele Di Marco, CERN 0006 //------------------------------------------------------- 0007 0008 /// The Megajet class implements the 0009 /// algorithm to combine jets in hemispheres 0010 /// as defined in CMS SUSY searches 0011 0012 #ifndef Megajet_h 0013 #define Megajet_h 0014 0015 #include <vector> 0016 #include <iostream> 0017 #include <TLorentzVector.h> 0018 0019 namespace heppy { 0020 0021 class Megajet { 0022 public: 0023 // There are 2 constructors: 0024 // 1. Constructor taking as argument vectors of Px, Py, Pz and E of the objects in the event and the hemisphere 0025 // association method, 0026 // 2. Constructor taking as argument vectors of Px, Py, Pz and E of the objects in the event. 0027 // The hemisphere association method should then be defined by SetMethod(association_method). 0028 // 0029 // Hemisphere association method: 0030 // 1: minimum sum of the invariant masses of the two hemispheres 0031 // 2: minimum difference of HT for the two hemispheres 0032 // 3: minimum m1^2/E1 + m2^2/E2 0033 // 4: Georgi distance: maximum (E1-Beta*m1^2/E1 + E2-Beta*m1^2/E2) 0034 0035 Megajet() {} 0036 0037 Megajet(std::vector<float> Px_vector, 0038 std::vector<float> Py_vector, 0039 std::vector<float> Pz_vector, 0040 std::vector<float> E_vector, 0041 int megajet_association_method); 0042 0043 Megajet(std::vector<float> Px_vector, 0044 std::vector<float> Py_vector, 0045 std::vector<float> Pz_vector, 0046 std::vector<float> E_vector); 0047 0048 /// Destructor 0049 ~Megajet() {} 0050 0051 // return Nx, Ny, Nz, P, E of the axis of group 1 0052 std::vector<float> getAxis1(); 0053 // return Nx, Ny, Nz, P, E of the axis of group 2 0054 std::vector<float> getAxis2(); 0055 0056 // where Nx, Ny, Nz are the direction cosines e.g. Nx = Px/P, 0057 // P is the momentum, E is the energy 0058 0059 // set or overwrite the seed and association methods 0060 void SetMethod(int megajet_association_method) { 0061 megajet_meth = megajet_association_method; 0062 status = 0; 0063 } 0064 0065 private: 0066 /// Combining the jets in two hemispheres minimizing the 0067 /// sum of the invariant masses of the two hemispheres 0068 void CombineMinMass(); 0069 0070 /// Combining the jets in two hemispheres minimizing the 0071 /// difference of HT for the two hemispheres 0072 void CombineMinHT(); 0073 0074 /// Combining the jets in two hemispheres by minimizing m1^2/E1 + m2^2/E2 0075 void CombineMinEnergyMass(); 0076 0077 /// Combining the jets in two hemispheres by maximizing (E1-Beta*m1^2/E1 + E2-Beta*m1^2/E2) 0078 void CombineGeorgi(); 0079 0080 /// Combine the jets in all the possible pairs of hemispheres 0081 void Combine(); 0082 0083 std::vector<float> Object_Px; 0084 std::vector<float> Object_Py; 0085 std::vector<float> Object_Pz; 0086 std::vector<float> Object_E; 0087 0088 std::vector<float> Axis1; 0089 std::vector<float> Axis2; 0090 0091 int megajet_meth; 0092 int status; 0093 0094 std::vector<TLorentzVector> jIN; 0095 std::vector<TLorentzVector> jOUT; 0096 std::vector<TLorentzVector> j1; 0097 std::vector<TLorentzVector> j2; 0098 }; 0099 } // namespace heppy 0100 0101 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |
![]() ![]() |