00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043 #ifndef ATLFAST_DEFAULTRECONTRUCTEDPARTICLEMAKER_H
00044 #define ATLFAST_DEFAULTRECONTRUCTEDPARTICLEMAKER_H
00045
00046
00047 #include <vector>
00048 #include <string>
00049
00050
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
00058 #include "CLHEP/Vector/LorentzVector.h"
00059 #include "HepMC/GenEvent.h"
00060 #include "HepMC/GenParticle.h"
00061
00062
00063 #include "AtlfastEvent/ReconstructedParticle.h"
00064
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
00094
00096 DefaultReconstructedParticleMaker(
00097 const std::string& name,
00098 ISvcLocator* pSvcLocator
00099 );
00101 virtual ~DefaultReconstructedParticleMaker();
00102
00103
00104
00105
00106
00108 virtual StatusCode initialize() ;
00110 virtual StatusCode execute() ;
00112 virtual StatusCode finalize() ;
00113
00114
00115 private:
00116
00117
00118
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
00127
00128
00129
00131 int m_particleType;
00133 double m_mcPtMin ;
00135 double m_mcEtaMax ;
00136
00137
00139 double m_PtMin;
00141 double m_EtaMax;
00142
00144 bool m_doSmearing;
00145
00146
00148 std::string m_MC_eventLocation ;
00150 std::string m_outputLocation ;
00151
00152
00154 int m_muSmearKey;
00155
00156
00157
00158
00161 HepMC_helper::IMCselector* m_ncutter ;
00162
00163
00164
00165
00166
00167
00172 ISmearer* m_smearer;
00173
00177 ReconstructedParticle * lnkReconstructedParticle;
00178
00179
00180
00182
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 }
00198
00199 #endif
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211