00001
00002
00003
00004
00005
00006
00007 #include <ostream>
00008
00009 #include "IOMC/ParticleGuns/interface/BaseFlatGunSource.h"
00010
00011 #include "SimDataFormats/HepMCProduct/interface/HepMCProduct.h"
00012
00013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00014
00015 #include "FWCore/ServiceRegistry/interface/Service.h"
00016 #include "FWCore/Utilities/interface/RandomNumberGenerator.h"
00017
00018
00019
00020 #include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h"
00021
00022 #include "FWCore/Utilities/interface/Exception.h"
00023
00024 #include <iostream>
00025
00026 using namespace edm;
00027 using namespace std;
00028 using namespace CLHEP;
00029
00030 BaseFlatGunSource::BaseFlatGunSource( const ParameterSet& pset,
00031 const InputSourceDescription& desc ) :
00032 GeneratedInputSource (pset, desc),
00033 fEvt(0)
00034
00035 {
00036
00037 ParameterSet defpset ;
00038
00039 ParameterSet pgun_params =
00040 pset.getUntrackedParameter<ParameterSet>("PGunParameters", defpset ) ;
00041
00042
00043
00044
00045
00046 vector<int> defids ;
00047 defids.push_back(13) ;
00048 fPartIDs = pgun_params.getUntrackedParameter< vector<int> >("PartID",defids);
00049 fMinEta = pgun_params.getUntrackedParameter<double>("MinEta",-5.5);
00050 fMaxEta = pgun_params.getUntrackedParameter<double>("MaxEta",5.5);
00051 fMinPhi = pgun_params.getUntrackedParameter<double>("MinPhi",-3.14159265358979323846);
00052 fMaxPhi = pgun_params.getUntrackedParameter<double>("MaxPhi", 3.14159265358979323846);
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074 fVerbosity = pset.getUntrackedParameter<int>( "Verbosity",0 ) ;
00075
00076 Service<RandomNumberGenerator> rng;
00077 long seed = (long)(rng->mySeed()) ;
00078 fRandomEngine = new HepJamesRandom(seed) ;
00079 fRandomGenerator = new RandFlat(fRandomEngine) ;
00080
00081 fAddAntiParticle = pset.getUntrackedParameter("AddAntiParticle", false) ;
00082
00083 }
00084
00085 BaseFlatGunSource::~BaseFlatGunSource()
00086 {
00087
00088 if ( fRandomGenerator != NULL ) delete fRandomGenerator;
00089
00090
00091
00092
00093
00094
00095 }
00096
00097
00098 void BaseFlatGunSource::beginJob( const EventSetup& es )
00099 {
00100
00101 es.getData( fPDGTable ) ;
00102
00103 return ;
00104
00105 }