Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

IReconstructedParticleMaker.h

Go to the documentation of this file.
00001 // ================================================
00002 // IReconstructedParticleMaker class description
00003 // ================================================
00004 //
00005 // THIS TEXT TO BE REPLACED BY ATLAS STANDARD FORMAT
00006 //
00007 //
00008 // This version....
00009 //
00010 //
00011 // Namespace ATLFast::
00012 //
00013 // class: IReconstructedParticleMaker
00014 //
00015 // Description: 
00016 //
00017 //  Interface for algorithms which know how to make particles based on
00018 //  HepMC particles by applying smearing and making cuts.
00019 //
00020 //
00021 // Authors: Hywel Phillips, Peter Clarke, Peter Sherwood, Richard
00022 //          Steward, Elzbieta Richter-Was
00023 // ................................................................
00024 //
00025 
00026 #ifndef __ATLFAST_ireconstructedparticlemaker__
00027 #define __ATLFAST_ireconstructedparticlemaker__
00028 
00029 // STL
00030 #include <vector>
00031 
00032 // Gaudi 
00033 //include "GaudiKernel/ISvcLocator.h"
00034 #include "GaudiKernel/IAlgorithm.h"
00035 //include "GaudiKernel/MsgStream.h"
00036 //include "GaudiKernel/DataObject.h"
00037 
00038 // Other
00039 #include "CLHEP/Vector/LorentzVector.h"
00040 //include "HepMC/GenEvent.h"
00041 #include "HepMC/GenParticle.h"
00042 
00043 // Atlfast
00044 #include "AtlfastCode/ReconstructedParticle.h"
00045 
00046 //***************************************************************
00047 //                 IReconstructedParticleMaker class declaration
00048 //
00049 // A "Gaudi algorithm" is something which gets scheduled and controlled
00050 // by the framework. In its simplest definition it is something which
00051 //  - gets clled for each event 
00052 //  - can get anything it wants out of the Transient Event Store"
00053 //  - can put anything it makes into the store.
00054 //
00055 // It must inherit from the  Algorithm base class
00056 //****************************************************************
00057 
00058 namespace Atlfast {
00059 
00060   class IReconstructedParticleMaker : virtual public IAlgorithm 
00061 {
00062 
00063  public:
00064   //------------------------------------------------------------------------
00065   // typedefs of collections and iterators used locally by this class
00066   //------------------------------------------------------------------------
00067 
00068   typedef std::vector<HepMC::GenParticle*>           t_MC_particleCollection ;
00069   typedef std::vector<HepMC::GenParticle*>::iterator t_MC_particleIterator ;
00070 
00071 
00072   //------------------------------------------------------------------------
00073   // Methods used to make Reconstructed Particles from HepMC Particles
00074   //------------------------------------------------------------------------
00075 
00076   virtual bool getMC( t_MC_particleCollection& )                 = 0;
00077   virtual ReconstructedParticle* create( HepMC::GenParticle* )      = 0;
00078   virtual bool isAcceptable( ReconstructedParticle* )            = 0;
00079   virtual StatusCode store( t_reconstructedParticleCollection* ) = 0;
00080 
00081 };
00082 
00083 
00084 } //end of namespace bracket
00085 
00086 #endif
00087 
00088 
00089 
00090 
00091 
00092 
00093 
00094 
00095 
00096 
00097 

Generated on Wed Jan 23 12:58:32 2002 for Atlfast by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001