00001 //$id$ 00002 // 00003 //$log$ 00004 00005 /* 00006 * 2003/09/06 Zhengyun You Peking University 00007 * 00008 * 2005/02/27 Zhengyun You Peking University 00009 * transplanted to Gaudi framework 00010 */ 00011 00012 #ifndef MUC_REC_ROAD_FINDER_H 00013 #define MUC_REC_ROAD_FINDER_H 00014 00015 #include "GaudiKernel/Algorithm.h" 00016 #include "GaudiKernel/NTuple.h" 00017 #include "MucRecEvent/RecMucTrack.h" 00018 #include "MucRecEvent/MucRecHitContainer.h" 00019 #include <string> 00028 class MucRecRoadFinder : public Algorithm 00029 { 00030 public: 00031 MucRecRoadFinder(const std::string &name, ISvcLocator* pSvcLocator); 00032 ~MucRecRoadFinder(){}; 00033 00034 StatusCode initialize(); 00035 StatusCode execute(); 00036 StatusCode finalize(); 00037 00038 void TrackFinding(RecMucTrack *aTrack); 00039 00040 private: 00041 int m_NEvent; 00042 int m_NEventWithHit; 00043 int m_NEventReco; 00044 int m_NHitsLostTotal; 00045 int m_NHitsTotal; 00046 std::vector<int> m_NHitsLost; 00047 std::vector<int> m_NHitsLostInGap; 00048 00049 int m_fittingMethod; 00050 std::string m_configFile; 00051 int m_mccosmic; 00052 int m_NtOutput; //switch of output Muc.root 00053 int m_onlyseedfit; //only fit those layers being seed 00054 int m_maxHitsRec; //too many hits, do not deal with; 00055 int m_united; // judge if that is united or not 00056 int m_seedtype; // 0: find seed gaps event by event, 1: fix seed gaps 00057 bool m_MsOutput; // for debug cout or not 00058 00059 std::string m_filter_filename; 00060 struct FilterEvent { 00061 std::string bossver; 00062 int runid; 00063 int eventid; 00064 }; 00065 std::vector<FilterEvent> m_filter_event; 00066 MucRecHitContainer *aMucRecHitContainer; 00067 00068 NTuple::Tuple* m_tuple; 00069 NTuple::Item<double> m_part; 00070 NTuple::Item<double> m_seg; 00071 NTuple::Item<double> m_gap; 00072 NTuple::Item<double> m_strip; 00073 NTuple::Item<double> m_diff; 00074 NTuple::Item<double> m_dist; 00075 00076 NTuple::Item<double> m_run; 00077 NTuple::Item<double> m_event; 00078 NTuple::Item<double> m_ngapwithhits; 00079 NTuple::Item<double> m_nhit; 00080 NTuple::Item<double> m_maxhit; 00081 NTuple::Item<double> m_multihit; 00082 NTuple::Item<double> m_angle_cosmic; 00083 NTuple::Item<double> m_angle_updown; 00084 NTuple::Item<double> m_px; 00085 NTuple::Item<double> m_py; 00086 NTuple::Item<double> m_pz; 00087 NTuple::Item<double> m_theta; 00088 NTuple::Item<double> m_phi; 00089 NTuple::Item<double> m_theta_pipe; 00090 NTuple::Item<double> m_phi_pipe; 00091 NTuple::Item<double> m_px_mc; 00092 NTuple::Item<double> m_py_mc; 00093 NTuple::Item<double> m_pz_mc; 00094 NTuple::Item<double> m_theta_mc; 00095 NTuple::Item<double> m_phi_mc; 00096 NTuple::Item<double> m_theta_mc_pipe; 00097 NTuple::Item<double> m_phi_mc_pipe; 00098 NTuple::Item<double> m_emcUp; 00099 NTuple::Item<double> m_emcDown; 00100 NTuple::Item<double> m_mucUp; 00101 NTuple::Item<double> m_mucDown; 00102 NTuple::Item<double> m_projx; 00103 NTuple::Item<double> m_projz; 00104 00105 }; 00106 00107 #endif /* MUC_REC_ROAD_FINDER_H */