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 
00047 // *********************************************************************
00048 // Default Parameter of this algorithm
00049 // (see main class for description)
00050 #define DEFAULT_particleType 11   
00051 #define DEFAULT_mcPtMin      0.0  
00052 #define DEFAULT_mcEtaMax   100.0  
00053 #define DEFAULT_PtMin        5.0  
00054 #define DEFAULT_EtaMax       2.5  
00055 #define DEFAULT_doSmearing  true  
00056 #define DEFAULT_MC_eventLocation   "/Event/McEventCollection" 
00057 #define DEFAULT_outputLocation     "/Event/AtlfastReconstructedParticle" 
00058 #define DEFAULT_muSmearKey    1   
00059 //********************************************************************
00060 
00061 
00062 // STL
00063 #include <vector>
00064 #include <string>
00065 
00066 // Gaudi 
00067 #include "GaudiKernel/ISvcLocator.h"
00068 #include "GaudiKernel/IAlgorithm.h"
00069 #include "GaudiKernel/Algorithm.h"
00070 #include "GaudiKernel/MsgStream.h"
00071 #include "GaudiKernel/DataObject.h"
00072 
00073 // Other
00074 #include "CLHEP/Vector/LorentzVector.h"
00075 #include "HepMC/GenEvent.h"
00076 #include "HepMC/GenParticle.h"
00077 
00078 // Atlfast
00079 #include "AtlfastCode/ReconstructedParticle.h"
00080 #include "AtlfastCode/ReconstructedParticleCollection.h"
00081 #include "AtlfastCode/ISmearer.h"
00082 #include "AtlfastCode/TesIO.h"
00083 
00084 
00085 namespace HepMC_helper{
00086   class IMCselector;
00087 }
00088 
00089 namespace Atlfast {
00090 
00100 class DefaultReconstructedParticleMaker : 
00101     public virtual Algorithm 
00102 {
00103 
00104  public:
00105 
00106   //-------------------------
00107   // Constructors/Destructors
00108   //-------------------------
00110   DefaultReconstructedParticleMaker( 
00111         const std::string& name, 
00112         ISvcLocator* pSvcLocator 
00113   );
00115   virtual ~DefaultReconstructedParticleMaker();
00116 
00117 
00118   //------------------------------------------------------
00119   // Mandatory Athena methods
00120   //------------------------------------------------------
00122   virtual StatusCode initialize() ;
00124   virtual StatusCode execute() ;
00126   virtual StatusCode finalize() ;
00127   
00128 
00129  private:
00130 
00131   //------------------------------------
00132   // Typedefs used internally by this class 
00133   //------------------------------------
00134 
00135   typedef std::vector<HepMC::GenParticle*>           t_MC_particleCollection ;
00136   typedef std::vector<HepMC::GenParticle*>::iterator t_MC_particleIterator ;
00137 
00138 
00139   //--------------------------------
00140   // Parameters of this algorithm
00141   //--------------------------------
00142   // General parameters
00143   // Pre-selection criteria to apply to the HepMC::GenParticles  
00145   int           m_particleType;
00147   double        m_mcPtMin ;     
00149   double        m_mcEtaMax ;    
00150 
00151   // Post creation criteria to apply to created ReconstructedParticles 
00153   double        m_PtMin; 
00155   double        m_EtaMax;      
00156 
00158   bool          m_doSmearing;    
00159 
00160   // Paths in the Transient event store to get/put entities
00162   std::string m_MC_eventLocation ;
00164   std::string m_outputLocation ;
00165 
00166   // Things which should not be in this class eventually, but have to be now
00168   int           m_muSmearKey;
00169 
00170   //-----------------------------------------------------------------
00171   // Selector to select only those truth particles which are required
00172   //-----------------------------------------------------------------
00175   HepMC_helper::IMCselector*  m_ncutter ;
00176 
00177 
00178   //--------------------------------------------
00179   // Smearer helper class which specialises this algorithm for a
00180   // specific particle species
00181   //---------------------------------------------
00186   ISmearer* m_smearer;
00187 
00191   ReconstructedParticle * lnkReconstructedParticle;
00192   //--------------------------
00193   // Private  methods 
00194   //--------------------------
00196   // virtual StatusCode getMC ( MsgStream&, t_MC_particleCollection& );
00197 
00198   TesIO* m_tesIO;
00199 
00201   void getSmearer(int lumi, int seed, MsgStream& log );
00203   virtual ReconstructedParticle* create( MsgStream&, const HepMC::GenParticle* );
00205   virtual bool isAcceptable( MsgStream&, const ReconstructedParticle* );
00206 
00207 };
00208 
00209 
00210 }  //end of namespace bracket
00211 
00212 #endif
00213 
00214 
00215 
00216 
00217 
00218 
00219 
00220 
00221 
00222 
00223 
00224 

Generated on Thu Feb 21 14:30:45 2002 for Atlfast by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001