00001 #ifndef ATLFAST_TAUMAKER_H 00002 #define ATLFAST_TAUMAKER_H 00003 00004 #include <string> 00005 #include <vector> 00006 00007 #include "GaudiKernel/Algorithm.h" 00008 00009 #include "CLHEP/Random/RandomEngine.h" 00010 #include "CLHEP/Random/RandGauss.h" 00011 #include "CLHEP/Random/RandFlat.h" 00012 00013 #include "AtlfastUtils/TesIO.h" 00014 00015 #include "AtlfastEvent/Track.h" 00016 #include "AtlfastEvent/Tau.h" 00017 #include "AtlfastEvent/TauContainer.h" 00018 00019 namespace Atlfast 00020 { 00029 class TauMaker: public Algorithm 00030 { 00031 00032 public: 00033 00041 TauMaker( const std::string& name, ISvcLocator* pSvcLocator ); 00042 ~TauMaker(); 00043 00049 StatusCode initialize(); 00050 00056 StatusCode execute(); 00057 00063 StatusCode finalize(); 00064 00065 inline RandGauss* randGauss( ) { return m_randGauss;} 00066 inline RandFlat* randFlat( ) { return m_randFlat;} 00067 00068 double GetTrackEfficiency( const Track* ); 00069 00070 private: 00071 00072 TesIO* m_tesIO; 00073 00074 HepRandomEngine* m_randEngine; 00075 RandGauss* m_randGauss; 00076 RandFlat* m_randFlat; 00077 00078 00079 // Vectors of TrackEfficiency 00080 std::vector<double> m_trackPTPoint; 00081 std::vector<double> m_trackHadEff; 00082 std::vector<double> m_trackMuoEff; 00083 std::vector<double> m_trackEleEff; 00084 00085 //------------------------------------- 00086 00088 std::string m_TrackCollection; 00090 std::string m_outputLocation ; 00092 double m_recoEtaCut; 00094 double m_pTLeadTrackCut; 00096 double m_pTOtherTrackCut; 00098 double m_maxNumTracks; 00100 double m_detRCoreTrackCut; 00102 double m_detRCoreCaloCut; 00104 double m_detRRecoSeparation; 00106 double m_detRTrueTauCut; 00108 double m_resEflowEne; 00110 double m_recoETCut; 00112 double m_resNeuhEne; 00113 00115 double m_eleVetoEff; 00117 double m_muoVetoEff; 00118 00120 double m_resTrack; 00121 00123 std::string m_TrackEffFile; 00124 00125 }; 00126 } 00127 00128 #endif // ATLFAST_TAUMAKER_H