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_ANALYSISSKELETON_H 00023 #define ATLFAST_ANALYSISSKELETON_H 00024 00025 #include "AtlfastCode/KinematicHelper.h" 00026 00027 // STL 00028 #include <string> 00029 #include <vector> 00030 00031 // Athena/Gaudi 00032 #include "GaudiKernel/Algorithm.h" //needed for inheritance 00033 class ISvcLocator; 00034 00035 00036 00037 //*************************************************************** 00038 // AnalysisSkeleton class declaration 00039 // 00040 // An "Athena algorithm" is something which gets scheduled and controlled 00041 // by the framework. In its simplest definition it is something which 00042 // - gets called for each event 00043 // - can get anything it wants out of the Transient Event Store" 00044 // - can put anything it makes into the store. 00045 // 00046 // It must inherit from the Algorithm base class 00047 //**************************************************************** 00048 00049 namespace Atlfast { 00054 class AnalysisSkeleton : public Algorithm 00055 { 00056 00057 public: 00058 00059 //------------------------- 00060 // Constructors/Destructors 00061 // 00062 // Athena requires that the constructor takes certain arguments 00063 // (and passes them directly to the constructor of the base class) 00064 //------------------------- 00066 AnalysisSkeleton( const std::string& name, ISvcLocator* pSvcLocator ) ; 00068 virtual ~AnalysisSkeleton(); 00069 00070 00071 //------------------------------------------------------ 00072 // Methods used by Athena to run the algorithm 00073 //------------------------------------------------------ 00075 StatusCode initialize() ; 00077 StatusCode execute() ; 00079 StatusCode finalize() ; 00080 00081 00082 00083 private: 00084 00085 //--------------------------------------------------- 00086 // Member variables 00087 //--------------------------------------------------- 00088 00089 00090 //--------------------------------------------------- 00091 // Parameters of this algorithm 00092 //--------------------------------------------------- 00093 00094 00095 00096 //------------------------------- 00097 // Objects used by this class to do its job 00098 //------------------------------- 00099 00100 // This contains some trivial but oft used procedures 00101 // See the WWW documentation for details. 00103 KinematicHelper m_kinehelp ; 00104 00105 00106 00107 //------------------------------- 00108 // Private methods 00109 //------------------------------- 00110 00111 00112 }; 00113 00114 } // end of namespace bracket 00115 00116 00117 #endif 00118 00119 00120 00121 00122 00123 00124 00125 00126 00127 00128