00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef ATLFAST_TRACKNTUPLEMAKER_H
00015 #define ATLFAST_TRACKNTUPLEMAKER_H
00016
00017
00018
00019 #include <string>
00020
00021
00022 #include "GaudiKernel/Algorithm.h"
00023 #include "GaudiKernel/NTuple.h"
00024 #include "AtlfastUtils/TesIO.h"
00025
00026 namespace Atlfast {
00027 using std::string;
00028
00029 class TrackNtupleMaker: public Algorithm {
00030 protected:
00031
00032
00033 NTuple::Item<long> m_ntra;
00034 NTuple::Array<long> m_kpTruth, m_kfTruth;
00035 NTuple::Array<long> m_kpm1tra, m_kfm1tra;
00036 NTuple::Array<long> m_kpm2tra, m_kfm2tra;
00037 NTuple::Array<long> m_kpm3tra, m_kfm3tra;
00038 NTuple::Array<long> m_kpm4tra, m_kfm4tra;
00039 NTuple::Array<long> m_kpm5tra, m_kfm5tra;
00040 NTuple::Array<long> m_kpm6tra, m_kfm6tra;
00041 NTuple::Array<float> m_d0Track, m_z0Track, m_phiTrack,
00042 m_thetaTrack, m_pInvTrack,
00043 m_radiusTrack, m_curvTrack;
00044 NTuple::Array<float> m_d0Truth, m_z0Truth, m_phiTruth,
00045 m_thetaTruth, m_pInvTruth,
00046 m_radiusTruth, m_curvTruth;
00047 NTuple::Array<float> m_corr11tra, m_corr12tra, m_corr13tra, m_corr14tra, m_corr15tra;
00048 NTuple::Array<float> m_corr22tra, m_corr23tra, m_corr24tra, m_corr25tra;
00049 NTuple::Array<float> m_corr33tra, m_corr34tra, m_corr35tra;
00050 NTuple::Array<float> m_corr44tra, m_corr45tra, m_corr55tra;
00051
00052
00053 NTuple::Tuple* p_nt1;
00054
00055 public:
00057 TrackNtupleMaker(const std::string& name, ISvcLocator* pSvcLocator);
00058 StatusCode initialize();
00059 StatusCode execute();
00060 StatusCode finalize();
00061
00062 private:
00063
00064 long m_nEvents;
00065 TesIO* m_tesIO;
00066
00067 std::string m_mcLocation;
00068
00069
00070 std::string m_trackLocation;
00071
00072
00073 static const std::string DEFAULT_trackLocation;
00074
00075 };
00076
00077 }
00078
00079 #endif