00001 #ifndef PrintMcInfo_Header
00002 #define PrintMcInfo_Header
00003
00004 #include "GaudiKernel/Algorithm.h"
00005 #include "GaudiKernel/IHistogramSvc.h"
00006 #include "GaudiKernel/MsgStream.h"
00007 #include "GaudiKernel/ISvcLocator.h"
00008 #include "GaudiKernel/SmartDataPtr.h"
00009 #include "GaudiKernel/SmartDataLocator.h"
00010 #include "GaudiKernel/IDataProviderSvc.h"
00011 #include "GaudiKernel/PropertyMgr.h"
00012
00013 #include "TMath.h"
00014 #include "EventModel/EventModel.h"
00015 #include "EventModel/Event.h"
00016 #include "McTruth/McParticle.h"
00017 #include "McTruth/MdcMcHit.h"
00018 #include "McTruth/TofMcHit.h"
00019 #include "McTruth/EmcMcHit.h"
00020 #include "McTruth/MucMcHit.h"
00021
00022 #include "EvtRecEvent/EvtRecEvent.h"
00023 #include "EvtRecEvent/EvtRecTrack.h"
00024 #include "EventModel/EventHeader.h"
00025
00026 #include "Identifier/MdcID.h"
00027 #include "Identifier/TofID.h"
00028 #include "Identifier/EmcID.h"
00029 #include "Identifier/MucID.h"
00030
00031 #include "MdcRawEvent/MdcDigi.h"
00032 #include "TofRawEvent/TofDigi.h"
00033 #include "EmcRawEvent/EmcDigi.h"
00034 #include "MucRawEvent/MucDigi.h"
00035
00036 #include "Identifier/Identifier.h"
00037 #include <map>
00038 #include <string>
00039
00040 #include <cstdlib>
00041 #include <fstream>
00042 #include <iomanip>
00043
00044
00045
00046 using namespace std;
00047 class PrintMcInfo:public Algorithm {
00048 public:
00049 PrintMcInfo(const std::string& name, ISvcLocator* pSvcLocator);
00050 ~PrintMcInfo();
00051 StatusCode initialize();
00052 StatusCode beginRun();
00053 StatusCode execute();
00054 StatusCode endRun();
00055 StatusCode finalize();
00056 void mkmap();
00057 void printTitle(ofstream& os,int);
00058 void printTree(ofstream&,Event::McParticle*,int,int);
00059 void printPartInf(ofstream&,Event::McParticle*,int,int);
00060 void printHitInf(ofstream&);
00061 void printHit(ofstream&,Event::MdcMcHitCol&,Event::TofMcHitCol&,Event::EmcMcHitCol&,Event::MucMcHitCol&,int&);
00062 void printDigi(ofstream&);
00063 private:
00064 int m_OutputLevel;
00065 int m_pid;
00066 int m_trkIndex;
00067
00068 int m_fstreamOption;
00069 bool m_firstTime;
00070 map<int,string> map_pid;
00071
00072 ofstream os;
00073
00074 string daughters;
00075 string m_FileName;
00076 protected:
00077
00078 };
00079
00080
00081
00082
00083 #endif//PrintMcInfo_Header