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 "AtlfastEvent/CollectionDefs.h"
00066 #include "AtlfastAlgs/ISmearer.h"
00067 #include "AtlfastUtils/TesIO.h"
00068 
00069 
00070 namespace HepMC_helper{
00071   class IMCselector;
00072 }
00073 
00074 namespace Atlfast {
00075   using std::string;
00076 
00086 class DefaultReconstructedParticleMaker : 
00087     public virtual Algorithm 
00088 {
00089 
00090  public:
00091 
00092   //-------------------------
00093   // Constructors/Destructors
00094   //-------------------------
00096   DefaultReconstructedParticleMaker( 
00097         const std::string& name, 
00098         ISvcLocator* pSvcLocator 
00099   );
00101   virtual ~DefaultReconstructedParticleMaker();
00102 
00103 
00104   //------------------------------------------------------
00105   // Mandatory Athena methods
00106   //------------------------------------------------------
00108   virtual StatusCode initialize() ;
00110   virtual StatusCode execute() ;
00112   virtual StatusCode finalize() ;
00113   
00114 
00115  private:
00116 
00117   //------------------------------------
00118   // Typedefs used internally by this class 
00119   //------------------------------------
00120 
00121   typedef std::vector<HepMC::GenParticle*>           t_MC_particleCollection ;
00122   typedef std::vector<HepMC::GenParticle*>::iterator t_MC_particleIterator ;
00123 
00124 
00125   //--------------------------------
00126   // Parameters of this algorithm
00127   //--------------------------------
00128   // General parameters
00129   // Pre-selection criteria to apply to the HepMC::GenParticles  
00131   int           m_particleType;
00133   double        m_mcPtMin ;     
00135   double        m_mcEtaMax ;    
00136 
00137   // Post creation criteria to apply to created ReconstructedParticles 
00139   double        m_PtMin; 
00141   double        m_EtaMax;      
00142 
00144   bool          m_doSmearing;    
00145 
00146   // Paths in the Transient event store to get/put entities
00148   std::string m_MC_eventLocation ;
00150   std::string m_outputLocation ;
00151 
00152   // Things which should not be in this class eventually, but have to be now
00154   int           m_muSmearKey;
00155 
00156   //-----------------------------------------------------------------
00157   // Selector to select only those truth particles which are required
00158   //-----------------------------------------------------------------
00161   HepMC_helper::IMCselector*  m_ncutter ;
00162 
00163 
00164   //--------------------------------------------
00165   // Smearer helper class which specialises this algorithm for a
00166   // specific particle species
00167   //---------------------------------------------
00172   ISmearer* m_smearer;
00173 
00177   ReconstructedParticle * lnkReconstructedParticle;
00178   //--------------------------
00179   // Private  methods 
00180   //--------------------------
00182   // virtual StatusCode getMC ( MsgStream&, t_MC_particleCollection& );
00183 
00184   TesIO* m_tesIO;
00185 
00187   void getSmearer(int lumi, int seed, MsgStream& log );
00189   virtual ReconstructedParticle* create( MsgStream&, 
00190                                          const HepMC::GenParticle* );
00192   virtual bool isAcceptable( MsgStream&, const ReconstructedParticle* );
00193 
00194 };
00195 
00196 
00197 }  //end of namespace bracket
00198 
00199 #endif
00200 
00201 
00202 
00203 
00204 
00205 
00206 
00207 
00208 
00209 
00210 
00211 

Generated on Tue Mar 18 11:18:23 2003 for AtlfastAlgs by doxygen1.3-rc1