00001 // ================================================ 00002 // AnalysisSkeleton class descriptionn 00003 // ================================================ 00004 // 00005 // THIS TEXT TO BE REPLACED BY ATLAS STANDARD FORMAT 00006 // 00007 // Namespace Atlfast:: 00008 // 00009 // class: AnalysisSkeleton 00010 // 00011 // Description: 00012 // 00013 // This is an example Algorithm designed to show new users 00014 // of Athena/Atlfast how to access and use Atlfast objects from 00015 // the TES. 00016 // 00017 // 00018 // ................................................................ 00019 // 00020 00021 00022 #ifndef __Atlfast_example__ 00023 #define __Atlfast_example__ 00024 00025 // STL 00026 #include <string> 00027 #include <vector> 00028 00029 // Athena/Gaudi 00030 #include "GaudiKernel/ISvcLocator.h" 00031 #include "GaudiKernel/IAlgorithm.h" 00032 #include "GaudiKernel/Algorithm.h" 00033 #include "GaudiKernel/DataObject.h" 00034 #include "GaudiKernel/ObjectVector.h" 00035 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/ReconstructedParticle.h" 00047 #include "AtlfastCode/ReconstructedParticleCollection.h" 00048 #include "AtlfastCode/Cell.h" 00049 #include "AtlfastCode/CellCollection.h" 00050 #include "AtlfastCode/Cluster.h" 00051 #include "AtlfastCode/ClusterCollection.h" 00052 00053 00054 //*************************************************************** 00055 // AnalysisSkeleton class declaration 00056 // 00057 // An "Athena algorithm" is something which gets scheduled and controlled 00058 // by the framework. In its simplest definition it is something which 00059 // - gets called for each event 00060 // - can get anything it wants out of the Transient Event Store" 00061 // - can put anything it makes into the store. 00062 // 00063 // It must inherit from the Algorithm base class 00064 //**************************************************************** 00065 00066 namespace Atlfast { 00071 class AnalysisSkeleton : public Algorithm 00072 { 00073 00074 public: 00075 00076 //------------------------- 00077 // Constructors/Destructors 00078 // 00079 // Athena requires that the constructor takes certain arguments 00080 // (and passes them directly to the constructor of the base class) 00081 //------------------------- 00083 AnalysisSkeleton( const std::string& name, ISvcLocator* pSvcLocator ) ; 00085 virtual ~AnalysisSkeleton(); 00086 00087 00088 //------------------------------------------------------ 00089 // Methods used by Athena to run the algorithm 00090 //------------------------------------------------------ 00092 StatusCode initialize() ; 00094 StatusCode execute() ; 00096 StatusCode finalize() ; 00097 00098 00099 00100 private: 00101 00102 //--------------------------------------------------- 00103 // Member variables 00104 //--------------------------------------------------- 00105 00106 00107 //--------------------------------------------------- 00108 // Parameters of this algorithm 00109 //--------------------------------------------------- 00110 00111 00112 00113 //------------------------------- 00114 // Objects used by this class to do its job 00115 //------------------------------- 00116 00117 // This contains some trivial but oft used procedures 00118 // See the WWW documentation for details. 00120 KinematicHelper m_kinehelp ; 00121 00122 00123 00124 //------------------------------- 00125 // Private methods 00126 //------------------------------- 00127 00128 00129 }; 00130 00131 } // end of namespace bracket 00132 00133 00134 #endif 00135 00136 00137 00138 00139 00140 00141 00142 00143 00144 00145