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_commonDataLocation "/Event/AtlfastCommonData" 
00058 #define DEFAULT_outputLocation     "/Event/AtlfastReconstructedParticle" 
00059 #define DEFAULT_muSmearKey    1   
00060 //********************************************************************
00061 
00062 
00063 // STL
00064 #include <vector>
00065 #include <string>
00066 
00067 // Gaudi 
00068 #include "GaudiKernel/ISvcLocator.h"
00069 #include "GaudiKernel/IAlgorithm.h"
00070 #include "GaudiKernel/Algorithm.h"
00071 #include "GaudiKernel/MsgStream.h"
00072 #include "GaudiKernel/DataObject.h"
00073 
00074 // Other
00075 #include "CLHEP/Vector/LorentzVector.h"
00076 #include "HepMC/GenEvent.h"
00077 #include "HepMC/GenParticle.h"
00078 
00079 // Atlfast
00080 #include "AtlfastCode/ReconstructedParticle.h"
00081 #include "AtlfastCode/ReconstructedParticleCollection.h"
00082 #include "AtlfastCode/ISmearer.h"
00083 #include "AtlfastCode/TesIO.h"
00084 #include "AtlfastCode/CommonData.h"
00085 
00086 namespace HepMC_helper{
00087   class IMCselector;
00088 }
00089 
00090 namespace Atlfast {
00091 
00101 class DefaultReconstructedParticleMaker : 
00102     public virtual Algorithm 
00103 {
00104 
00105  public:
00106 
00107   //-------------------------
00108   // Constructors/Destructors
00109   //-------------------------
00111   DefaultReconstructedParticleMaker( 
00112         const std::string& name, 
00113         ISvcLocator* pSvcLocator 
00114   );
00116   virtual ~DefaultReconstructedParticleMaker();
00117 
00118 
00119   //------------------------------------------------------
00120   // Mandatory Athena methods
00121   //------------------------------------------------------
00123   virtual StatusCode initialize() ;
00125   virtual StatusCode execute() ;
00127   virtual StatusCode finalize() ;
00128   
00129 
00130  private:
00131 
00132   //------------------------------------
00133   // Typedefs used internally by this class 
00134   //------------------------------------
00135 
00136   typedef std::vector<HepMC::GenParticle*>           t_MC_particleCollection ;
00137   typedef std::vector<HepMC::GenParticle*>::iterator t_MC_particleIterator ;
00138 
00139 
00140   //--------------------------------
00141   // Parameters of this algorithm
00142   //--------------------------------
00143   bool m_notInit;
00144   // General parameters
00145   // Pre-selection criteria to apply to the HepMC::GenParticles  
00147   int           m_particleType;
00149   double        m_mcPtMin ;     
00151   double        m_mcEtaMax ;    
00152 
00153   // Post creation criteria to apply to created ReconstructedParticles 
00155   double        m_PtMin; 
00157   double        m_EtaMax;      
00158 
00160   bool          m_doSmearing;    
00161 
00162   // Paths in the Transient event store to get/put entities
00164   std::string m_MC_eventLocation ;
00166   std::string m_commonDataLocation ;
00168   std::string m_outputLocation ;
00169 
00170   // Things which should not be in this class eventually, but have to be now
00172   int           m_muSmearKey;
00173 
00174   //-----------------------------------------------------------------
00175   // Selector to select only those truth particles which are required
00176   //-----------------------------------------------------------------
00179   HepMC_helper::IMCselector*  m_ncutter ;
00180 
00181 
00182   //--------------------------------------------
00183   // Smearer helper class which specialises this algorithm for a
00184   // specific particle species
00185   //---------------------------------------------
00190   ISmearer* m_smearer;
00191 
00195   ReconstructedParticle * lnkReconstructedParticle;
00196   //--------------------------
00197   // Private  methods 
00198   //--------------------------
00200   // virtual StatusCode getMC ( MsgStream&, t_MC_particleCollection& );
00201 
00202   TesIO* m_tesIO;
00203 
00205   void getSmearer(int lumi, int seed, MsgStream& log );
00207   virtual ReconstructedParticle* create( MsgStream&, const HepMC::GenParticle* );
00209   virtual bool isAcceptable( MsgStream&, const ReconstructedParticle* );
00210 
00211 };
00212 
00213 
00214 }  //end of namespace bracket
00215 
00216 #endif
00217 
00218 
00219 
00220 
00221 
00222 
00223 
00224 
00225 
00226 
00227 
00228 

Generated on Mon Feb 4 15:54:23 2002 for Atlfast by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001