// ================================================ // MyAnalysis class description // ================================================ // // THIS TEXT TO BE REPLACED BY ATLAS STANDARD FORMAT // // Namespace Atlfast:: // // class: MyAnalysis // // Description: // // This is an Example Algorithm designed to show new users // of Athena/Atlfast how to access and use Atlfast objects from // the TES. // // // ................................................................ // #ifndef __Atlfast_MyAnalysis_H #define __Atlfast_MyAnalysis_H // STL #include #include // Athena/Gaudi #include "Gaudi/Interfaces/ISvcLocator.h" #include "Gaudi/Interfaces/IAlgorithm.h" #include "Gaudi/Algorithm/Algorithm.h" #include "Gaudi/MessageSvc/MsgStream.h" #include "Gaudi/Kernel/DataObject.h" #include "LHCbEvent/TopLevel/ObjectVector.h" #include "Gaudi/Interfaces/IHistogram1D.h" #include "Gaudi/Interfaces/IHistogram2D.h" #include "Gaudi/Interfaces/IHistogramSvc.h" // Things needed for using MC truth information #include "HepMC/Particle.h" #include "AtlfastCode/HepMC_helper.h" // Things needed to use objects through the IKinematic interface #include "AtlfastCode/IKinematic.h" #include "AtlfastCode/KinematicHelper.h" //*************************************************************** // MyAnalysis class declaration // // An "Athena algorithm" is something which gets scheduled and controlled // by the framework. In its simplest definition it is something which // - gets called for each event // - can get anything it wants out of the Transient Event Store" // - can put anything it makes into the store. // // It must inherit from the Algorithm base class //**************************************************************** namespace Atlfast { /** This is an Example Algorithm designed to show new users * of Athena/Atlfast how to access and use Atlfast objects from * the TES. */ class MyAnalysis : public Algorithm { public: //------------------------- // Constructors/Destructors // // Athena requires that the constructor takes certain arguments // (and passes them directly to the constructor of the base class) //------------------------- /** Standard Athena-Algorithm Constructor */ MyAnalysis( const std::string& name, ISvcLocator* pSvcLocator ) ; /** Default Constructor */ virtual ~MyAnalysis(); //------------------------------------------------------ // Methods used by Athena to run the algorithm //------------------------------------------------------ /** Standard Athena-Algorithm method */ StatusCode initialize() ; /** Standard Athena-Algorithm method */ StatusCode execute() ; /** Standard Athena-Algorithm method */ StatusCode finalize() ; private: //--------------------------------------------------- // Member variables //--------------------------------------------------- //--------------------------------------------------- // Parameters of this algorithm //--------------------------------------------------- //------------------------------- // Objects used by this class to do its job //------------------------------- // This contains some trivial but oft used procedures // See the WWW documentation for details. /** helper class for oft used kinematic operations */ KinematicHelper m_kinehelp ; //------------------------------- // Private methods //------------------------------- }; } // end of namespace bracket #endif