00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef ATLFAST_ATLFASTDUMPER_H
00023 #define ATLFAST_ATLFASTDUMPER_H
00024
00025
00026 #include <vector>
00027 #include <string>
00028
00029
00030 #ifndef GAUDIKERNEL_ALGORITHM_H
00031 #include "GaudiKernel/Algorithm.h"
00032 #define GAUDIKERNEL_ALGORITHM_H
00033 #endif
00034
00035 #ifndef GAUDIKERNEL_MSGSTREAM_H
00036 #include "GaudiKernel/MsgStream.h"
00037 #define GAUDIKERNEL_MSGSTREAM_H
00038 #endif
00039
00040
00041 #include <algorithm>
00042
00043 #include "AtlfastUtils/TesIO.h"
00044 #include "AtlfastUtils/FunctionObjects.h"
00045 #include "AtlfastEvent/AtlfastDumperObject.h"
00046
00047 class ISvcLocator;
00048
00049 namespace Atlfast {
00050 using std::string;
00051
00052 class EventHeader;
00053
00060 class AtlfastDumper : public Algorithm {
00061
00062 public:
00063
00065 AtlfastDumper( const std::string& name, ISvcLocator* pSvcLocator ) ;
00067 virtual ~AtlfastDumper();
00068
00069
00071 virtual StatusCode initialize() ;
00073 virtual StatusCode execute() ;
00075 virtual StatusCode finalize() ;
00076
00077
00078
00079 private:
00081 std::string m_clusterLocation ;
00082 std::string m_jetLocation ;
00083 std::string m_jetBLocation ;
00084 std::string m_cellLocation ;
00085 std::string m_imuonLocation ;
00086 std::string m_nimuonLocation ;
00087 std::string m_ielectronLocation ;
00088 std::string m_nielectronLocation ;
00089 std::string m_iphotonLocation ;
00090 std::string m_niphotonLocation ;
00091 std::string m_coordinates ;
00092 TesIO* m_tesIO;
00093 int m_eventNo;
00095 template<class Iter>
00096 void sortAndDump(Iter, Iter, const std::string&) const;
00097 void dumpEH(const EventHeader*) const;
00098
00099
00100 std::string m_mcLocation;
00101
00102 };
00103
00104
00107 template<class Iter>
00108 inline
00109 void AtlfastDumper::sortAndDump(Iter start,
00110 Iter end,
00111 const std::string& location) const {
00112
00113 std::sort(start, end, SortAttribute::AscendingEta());
00114 std::for_each(start, end, AtlfastDumperObject(location, m_coordinates) );
00115
00116 }
00117
00118
00119
00120 }
00121
00122 #endif
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135