HiggsAnalysis/HiggsAnalysis-00-01-00/HiggsAnalysis/JetTruthTrackSelectorTool.h

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

Generated on Tue Oct 21 11:50:42 2008 for NtupleAnalysis by  doxygen 1.5.1