00001 // ================================================ 00002 // TestTrackViewer class descriptionn 00003 // ================================================ 00004 // 00005 // THIS TEXT TO BE REPLACED BY ATLAS STANDARD FORMAT 00006 // 00007 // Namespace Atlfast:: 00008 // 00009 // class: TestTrackViewer 00010 // 00011 // Description: 00012 // 00013 // Test program 00014 // 00015 // ................................................................ 00016 // 00017 00018 00019 #ifndef __Atlfast_Test__ 00020 #define __Atlfast_Test__ 00021 00022 // STL 00023 #include <string> 00024 #include <vector> 00025 00026 // Athena/Gaudi 00027 #include "GaudiKernel/ISvcLocator.h" 00028 #include "GaudiKernel/IAlgorithm.h" 00029 #include "GaudiKernel/Algorithm.h" 00030 #include "GaudiKernel/MsgStream.h" 00031 #include "GaudiKernel/DataObject.h" 00032 #include "GaudiKernel/ObjectVector.h" 00033 #include "GaudiKernel/IHistogram1D.h" 00034 #include "GaudiKernel/IHistogram2D.h" 00035 #include "GaudiKernel/IHistogramSvc.h" 00036 00037 // Things needed for using MC truth information 00038 #include "HepMC/GenParticle.h" 00039 #include "AtlfastCode/HepMC_helper.h" 00040 00041 // Things needed to use objects through the IKinematic interface 00042 #include "AtlfastCode/IKinematic.h" 00043 #include "AtlfastCode/KinematicHelper.h" 00044 00045 // Atlfast output objects (and their collection types) 00046 #include "AtlfastCode/TrackCollection.h" 00047 #include "AtlfastCode/TesIO.h" 00048 00049 //******************************************** 00050 //Default for parameters of this algorithm 00051 //These can be overridden by job options. 00052 //Descriptions are given in the class declaration 00053 //******************************************** 00054 #define DEFAULT_trackLocation "/Event/AtlfastTracks" 00055 00056 //*************************************************************** 00057 // TestTrackViewer class declaration 00058 // 00059 // An "Athena algorithm" is something which gets scheduled and controlled 00060 // by the framework. In its simplest definition it is something which 00061 // - gets called for each event 00062 // - can get anything it wants out of the Transient Event Store" 00063 // - can put anything it makes into the store. 00064 // 00065 // It must inherit from the Algorithm base class 00066 //**************************************************************** 00067 00068 namespace Atlfast { 00073 class TestTrackViewer : public Algorithm 00074 { 00075 00076 public: 00077 00078 //------------------------- 00079 // Constructors/Destructors 00080 // 00081 // Athena requires that the constructor takes certain arguments 00082 // (and passes them directly to the constructor of the base class) 00083 //------------------------- 00085 TestTrackViewer( const std::string& name, ISvcLocator* pSvcLocator ) ; 00086 00087 00089 virtual ~TestTrackViewer(); 00090 00091 00092 //------------------------------------------------------ 00093 // Methods used by Athena to run the algorithm 00094 //------------------------------------------------------ 00096 StatusCode initialize() ; 00098 StatusCode execute() ; 00100 StatusCode finalize() ; 00101 00102 00103 00104 private: 00105 00106 //--------------------------------------------------- 00107 // Member variables 00108 //--------------------------------------------------- 00109 //--------------------------------------------------- 00110 // Parameters of this algorithm 00111 //--------------------------------------------------- 00112 00114 std::string m_trackLocation ; 00115 int m_nevents; 00116 int m_ntracks; 00117 TesIO* m_tesIO; 00118 //------------------------------- 00119 // Private methods 00120 //------------------------------- 00121 00122 /* To iterate through a collection of ReconstructedParticles and dump out 00123 * to the MsgStream specified, and also plot pT() */ 00124 void testViewer( MsgStream&, std::vector<Track*>&); 00125 }; 00126 00127 } // end of namespace bracket 00128 00129 00130 #endif 00131 00132 00133 00134 00135 00136 00137 00138 00139 00140 00141