// ================================================ // MyAnalysis class descriptionn // ================================================ // // THIS TEXT TO BE REPLACED BY ATLAS STANDARD FORMAT // // Namespace Analysis:: // // class: MyAnalysis // // Description: // // This is an my Algorithm designed to show new users // of Athena/Atlfast how to access and use Atlfast objects from // the TES. // // // ................................................................ // #ifndef __Analysis_MyAnalysis_H #define __Analysis_MyAnalysis_H // STL #include #include // Athena/Gaudi #include "GaudiKernel/ISvcLocator.h" #include "GaudiKernel/IAlgorithm.h" #include "GaudiKernel/Algorithm.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/DataObject.h" #include "GaudiKernel/ObjectVector.h" #include "GaudiKernel/IHistogram1D.h" #include "GaudiKernel/IHistogram2D.h" #include "GaudiKernel/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" // Atlfast output objects (and their collection types) #include "AtlfastCode/ReconstructedParticle.h" #include "AtlfastCode/ReconstructedParticleCollection.h" #include "AtlfastCode/Cell.h" #include "AtlfastCode/CellCollection.h" #include "AtlfastCode/Cluster.h" #include "AtlfastCode/ClusterCollection.h" //******************************************** //Default for parameters of this algorithm //These can be overridden by job options. //Descriptions are given in the class declaration //******************************************** #define DEFAULT_particleLocation "/Event/AtlfastIsolatedElectrons" #define DEFAULT_histStart 1000 //*************************************************************** // 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 Analysis { /** This is an my 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 //--------------------------------------------------- /** Histograms for Eta pT */ IHistogram1D* m_hist_pt; IHistogram1D* m_hist_eta; IHistogram2D* m_hist_2d; /** Number to start histograms at */ int m_histStart ; //--------------------------------------------------- // Parameters of this algorithm //--------------------------------------------------- // Example of a parameter to be set via StandardAtlfastOptions. /** location within the TES to find collections of Atlfast output objects */ std::string m_particleLocation ; //------------------------------- // 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 */ Atlfast::KinematicHelper m_kinehelp ; //------------------------------- // Private methods //------------------------------- /* To iterate through a collection of ReconstructedParticles and dump out * to the MsgStream specified*/ void dumpParticles( MsgStream&, Atlfast::ReconstructedParticleCollection* ); }; } // end of namespace bracket #endif