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 //
00040 // ................................................................
00041 //
00042 
00043 #ifndef __ATLFAST_DefaultReconstructedParticlemaker__
00044 #define __ATLFAST_DefaultReconstructedParticlemaker__
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 #include "AtlfastCode/HepMC_helper.h"
00079 
00080 // Atlfast
00081 #include "AtlfastCode/ReconstructedParticle.h"
00082 #include "AtlfastCode/ReconstructedParticleCollection.h"
00083 #include "AtlfastCode/ISmearer.h"
00084 #include "AtlfastCode/TesIO.h"
00085 #include "AtlfastCode/CommonData.h"
00086 
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   bool m_notInit;
00143   // General parameters
00144   // Pre-selection criteria to apply to the HepMC::GenParticles  
00146   int           m_particleType;
00148   double        m_mcPtMin ;     
00150   double        m_mcEtaMax ;    
00151 
00152   // Post creation criteria to apply to created ReconstructedParticles 
00154   double        m_PtMin; 
00156   double        m_EtaMax;      
00157 
00159   bool          m_doSmearing;    
00160 
00161   // Paths in the Transient event store to get/put entities
00163   std::string m_MC_eventLocation ;
00165   std::string m_commonDataLocation ;
00167   std::string m_outputLocation ;
00168 
00169   // Things which should not be in this class eventually, but have to be now
00171   int           m_muSmearKey;
00172 
00173   //-----------------------------------------------------------------
00174   // Selector to select only those truth particles which are required
00175   //-----------------------------------------------------------------
00178   HepMC_helper::IMCselector*  m_ncutter ;
00179 
00180 
00181   //--------------------------------------------
00182   // Smearer helper class which specialises this algorithm for a
00183   // specific particle species
00184   //---------------------------------------------
00189   ISmearer* m_smearer;
00190 
00194   ReconstructedParticle * lnkReconstructedParticle;
00195   //--------------------------
00196   // Private  methods 
00197   //--------------------------
00199   // virtual StatusCode getMC ( MsgStream&, t_MC_particleCollection& );
00200 
00201   TesIO* m_tesIO;
00202 
00204   void getSmearer(int lumi, int seed, MsgStream& log );
00206   virtual ReconstructedParticle* create( MsgStream&, const HepMC::GenParticle* );
00208   virtual bool isAcceptable( MsgStream&, const ReconstructedParticle* );
00209 
00210 };
00211 
00212 
00213 }  //end of namespace bracket
00214 
00215 #endif
00216 
00217 
00218 
00219 
00220 
00221 
00222 
00223 
00224 
00225 
00226 
00227 

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