00001 #ifndef JETREC_JetTruthTrackSelectorTool_H 00002 #define JETREC_JetTruthTrackSelectorTool_H 00015 00016 #include "Particle/TrackParticleContainer.h" 00017 #include "JetRec/JetAlgToolBase.h" 00018 00019 #include <string> 00020 00021 class StoreGateSvc; 00022 00023 class GenAccessIO; 00024 00025 class JetTruthTrackSelectorTool : public JetAlgToolBase 00026 { 00027 public: 00028 00030 JetTruthTrackSelectorTool( const std::string& name, const std::string& type, 00031 const IInterface* parent ); 00032 00033 virtual ~JetTruthTrackSelectorTool(); 00034 00036 virtual StatusCode initialize(); 00037 virtual StatusCode execute(JetAlgToolBase::jetcollection_t* theJets); 00038 static JetTruthTrackSelectorTool * getPointer(void); 00039 00040 protected: 00041 00043 // Properties // 00045 00046 double m_ptMin, m_etaMax; 00047 bool m_includeMuons; 00048 std::string m_outputCollectionName; 00049 00051 // Store // 00053 00054 StoreGateSvc* m_storeGate; 00055 GenAccessIO* m_truthAccess; 00056 00057 private: 00058 00059 bool m_ignore_multivertices; // option how to treat multivertex events 00060 bool m_remove_isol_leptons; //flag to remove isolated e,mu from tracks list 00061 00062 double m_electron_cone; //cone size for electron isolation 00063 double m_electron_et_cut; //et cut for electron isolation 00064 double m_muon_cone; //cone size for muon isolation 00065 double m_muon_et_cut; //et cut for muon isolation 00066 double m_inner_cone; //size of the inner cone 00067 // -> et_in_cone: inner_cone < dR < m_lepton_cone 00068 00069 00070 double m_Et_min_vert; // minimum track Et in vertex selection 00071 double m_vertex_cut; // vertex cut 00072 00073 00074 00075 // private methods // 00076 Hep3Vector highest_Et_vertex( 00077 std::vector<const HepMC::GenParticle*> theParticles); 00078 // get the primary vertex 00079 // with the highest transverse 00080 // momentum; 00081 // theParticles: truth particle 00082 // collection 00083 00084 double get_energy_in_cone(const double & cone, 00085 const HepLorentzVector & p, 00086 const Hep3Vector & vertex, 00087 std::vector<const HepMC::GenParticle*> theParticles); 00088 // get the energy of particle emerging 00089 // from the vertex "vertex" in a cone 00090 // of "cone" in delta R of p 00091 00092 }; 00093 #endif