00001 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00002 // 09.08.2007, AUTHOR: OLIVER KORTNER 00003 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00004 00005 #ifndef MyTruthTrackJetInfoContainerH 00006 #define MyTruthTrackJetInfoContainerH 00007 00008 //::::::::::::::::::::::::::::::::::::::::: 00009 //:: CLASS MyTruthTrackJetInfoContainerH :: 00010 //::::::::::::::::::::::::::::::::::::::::: 00011 00020 00021 //:::::::::::::::::: 00022 //:: HEADER FILES :: 00023 //:::::::::::::::::: 00024 00025 // CLHEP // 00026 #include "CLHEP/Vector/ThreeVector.h" 00027 00028 // STL // 00029 #include <vector> 00030 00031 // HiggsAnalysis // 00032 #include "HiggsAnalysis/Vertex.h" 00033 00034 class MyTruthTrackJetInfoContainer { 00035 00036 public: 00037 // Methods // 00038 static MyTruthTrackJetInfoContainer * getTruthTrackJetInfoContainer(); 00041 std::vector<Hep3Vector> vertex(void) const; 00043 std::vector<double> Et(void) const; 00046 std::vector<unsigned int> numberOfTracks(void) const; 00049 void clear(void); 00051 void setVertex(const std::vector<Hep3Vector> & vert); 00053 00054 void setEt(const std::vector<double> & E_T); 00057 void setNumberOfTracks(const std::vector<unsigned int> & nb); 00060 00061 void setVertices(const std::vector<MPIHiggsAnalysis::Vertex> & vert); 00063 void sortVerticesAscendingInEt(void); 00065 std::vector<MPIHiggsAnalysis::Vertex> getVertices(void) const; 00070 void setVertexCut(const double & cut); 00072 double getVertexCut(void) const; 00074 00075 private: 00076 // constructor // 00077 MyTruthTrackJetInfoContainer(void) { 00078 m_vertex.clear(); 00079 m_Et.clear(); 00080 m_nb_tracks.clear(); 00081 m_vertices.clear(); 00082 m_vertex_cut = 0.; 00083 }; 00084 00085 // variables // 00086 static MyTruthTrackJetInfoContainer *m_container; 00087 // pointer to the singleton 00088 std::vector<Hep3Vector> m_vertex; // vertex of the truth track jets 00089 std::vector<double> m_Et; // transverse energy of the vertex 00090 std::vector<unsigned int> m_nb_tracks; // number of tracks from the 00091 // vertices 00092 std::vector<MPIHiggsAnalysis::Vertex> m_vertices; // vertices of the truth track jets 00093 double m_vertex_cut; //vertex_cut used in truth track jet reco 00094 }; 00095 00096 #endif