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

DefaultReconstructedParticleMaker.h

Go to the documentation of this file.
00001 // ================================================
00002 // DefaultReconstructedParticleMaker 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: DefaultReconstructedParticleMaker
00014 //
00015 // Description: 
00016 //
00017 //  Default Algorithm to make smeared 'Atlfast::ReconstructedParticles' from 
00018 //  MC truth 'HepMC::GenParticles'
00019 //
00020 //  HepMC::GenParticles are accessed in the TES. Only those satisfying
00021 //  specified pre-selection requirements are used by this algorithm. 
00022 //  These requirements are:
00023 //     - particle type (given by pdg_id)
00024 //     - minimum pT
00025 //     - maximum eta
00026 //  These are set via job options.
00027 //
00028 //  The different treatement of different species of particle is embodied
00029 //  completely in a smearer object.  
00030 //  Arbitrarily complex smearers can be supplied if desired.
00031 //
00032 //  For each HepMC::GenParticle, a candidate ReconstructedParticle is
00033 //  created. This is only kept if
00034 //  it satisfies the following requirements:
00035 //      - minimum pT
00036 //      - maximum eta
00037 //   
00038 //  The surviving ReconstructedParticles are stored in the TES
00039 //
00040 // ................................................................
00041 //
00042 
00043 #ifndef ATLFAST_DEFAULTRECONTRUCTEDPARTICLEMAKER_H
00044 #define ATLFAST_DEFAULTRECONTRUCTEDPARTICLEMAKER_H
00045 
00046 // STL
00047 #include <vector>
00048 #include <string>
00049 
00050 // Gaudi 
00051 #include "GaudiKernel/ISvcLocator.h"
00052 #include "GaudiKernel/IAlgorithm.h"
00053 #include "GaudiKernel/Algorithm.h"
00054 #include "GaudiKernel/MsgStream.h"
00055 #include "GaudiKernel/DataObject.h"
00056 
00057 // Other
00058 #include "CLHEP/Vector/LorentzVector.h"
00059 #include "HepMC/GenEvent.h"
00060 #include "HepMC/GenParticle.h"
00061 
00062 // Atlfast
00063 #include "AtlfastEvent/ReconstructedParticle.h"
00064 #include "AtlfastEvent/ReconstructedParticleCollection.h"
00065 #include "AtlfastAlgs/ISmearer.h"
00066 #include "AtlfastUtils/TesIO.h"
00067 
00068 
00069 namespace HepMC_helper{
00070   class IMCselector;
00071 }
00072 
00073 namespace Atlfast {
00074   using std::string;
00075 
00085 class DefaultReconstructedParticleMaker : 
00086     public virtual Algorithm 
00087 {
00088 
00089  public:
00090 
00091   //-------------------------
00092   // Constructors/Destructors
00093   //-------------------------
00095   DefaultReconstructedParticleMaker( 
00096         const std::string& name, 
00097         ISvcLocator* pSvcLocator 
00098   );
00100   virtual ~DefaultReconstructedParticleMaker();
00101 
00102 
00103   //------------------------------------------------------
00104   // Mandatory Athena methods
00105   //------------------------------------------------------
00107   virtual StatusCode initialize() ;
00109   virtual StatusCode execute() ;
00111   virtual StatusCode finalize() ;
00112   
00113 
00114  private:
00115 
00116   //------------------------------------
00117   // Typedefs used internally by this class 
00118   //------------------------------------
00119 
00120   typedef std::vector<HepMC::GenParticle*>           t_MC_particleCollection ;
00121   typedef std::vector<HepMC::GenParticle*>::iterator t_MC_particleIterator ;
00122 
00123 
00124   //--------------------------------
00125   // Parameters of this algorithm
00126   //--------------------------------
00127   // General parameters
00128   // Pre-selection criteria to apply to the HepMC::GenParticles  
00130   int           m_particleType;
00132   double        m_mcPtMin ;     
00134   double        m_mcEtaMax ;    
00135 
00136   // Post creation criteria to apply to created ReconstructedParticles 
00138   double        m_PtMin; 
00140   double        m_EtaMax;      
00141 
00143   bool          m_doSmearing;    
00144 
00145   // Paths in the Transient event store to get/put entities
00147   std::string m_MC_eventLocation ;
00149   std::string m_outputLocation ;
00150 
00151   // Things which should not be in this class eventually, but have to be now
00153   int           m_muSmearKey;
00154 
00155   //-----------------------------------------------------------------
00156   // Selector to select only those truth particles which are required
00157   //-----------------------------------------------------------------
00160   HepMC_helper::IMCselector*  m_ncutter ;
00161 
00162 
00163   //--------------------------------------------
00164   // Smearer helper class which specialises this algorithm for a
00165   // specific particle species
00166   //---------------------------------------------
00171   ISmearer* m_smearer;
00172 
00176   ReconstructedParticle * lnkReconstructedParticle;
00177   //--------------------------
00178   // Private  methods 
00179   //--------------------------
00181   // virtual StatusCode getMC ( MsgStream&, t_MC_particleCollection& );
00182 
00183   TesIO* m_tesIO;
00184 
00186   void getSmearer(int lumi, int seed, MsgStream& log );
00188   virtual ReconstructedParticle* create( MsgStream&, 
00189                                          const HepMC::GenParticle* );
00191   virtual bool isAcceptable( MsgStream&, const ReconstructedParticle* );
00192 
00193 };
00194 
00195 
00196 }  //end of namespace bracket
00197 
00198 #endif
00199 
00200 
00201 
00202 
00203 
00204 
00205 
00206 
00207 
00208 
00209 
00210 

Generated on Wed May 1 14:11:31 2002 for AtlfastAlgs by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001