12 #include "HepMCInterface.h"
16 #include "HepMCEvent.H"
20 #include "Tauola/Tauola.h"
21 #include "Tauola/TauolaHepMCEvent.h"
45 double px=0.0,py=0.0,
pz=0.0,e=0.0;
47 for ( HepMC::GenEvent::particle_const_iterator
p = evt->particles_begin();
48 p != evt->particles_end(); ++
p )
50 if( (*p)->status() == 1 )
52 HepMC::FourVector
m = (*p)->momentum();
61 cout.setf(ios_base::floatfield);
62 cout<<endl<<
"Vector Sum: "<<px<<
" "<<py<<
" "<<
pz<<
" "<<e<<endl;
65 int main(
int argc,
char **argv)
71 cout<<endl<<
"Usage: "<<argv[0]<<
" <pythia_conf> <pythia_mode> <no_events> <tauola_mode> [ <alpha_order> <ScalarNLO_mode> ]"<<endl;
72 cout<<endl<<
" eg. "<<argv[0]<<
" pythia_H.conf 0 10000 4 0 0"<<endl;
77 HepMC::I_Pythia8 ToHepMC;
81 Event&
event = pythia.event;
83 pythia.readString(
"HadronLevel:Hadronize = off");
84 pythia.readString(
"SpaceShower:QEDshower = off");
85 pythia.readString(
"SpaceShower:QEDshowerByL = off");
86 pythia.readString(
"SpaceShower:QEDshowerByQ = off");
87 pythia.readString(
"PartonLevel:ISR = off");
88 pythia.readString(
"PartonLevel:FSR = off");
115 if(argc>1) pythia.readFile(argv[1]);
118 if(atoi(argv[2])==1) pythia.init( 11, -11, 91.187);
119 else if(atoi(argv[2])==3) pythia.init( 11, -11, 500.);
122 cout<<
"ERROR: Wrong Pythia mode ("<<atoi(argv[4])<<
")"<<endl;
123 cout<<
" Only modes '1' and '3' are used by this program."<<endl;
135 Tauola::setSameParticleDecayMode(atoi(argv[4]));
136 Tauola::setOppositeParticleDecayMode(atoi(argv[4]));
142 Photos::setExponentiation(
true);
143 Photos::setInfraredCutOff(1.e-6);
144 Photos::maxWtInterference(3.0);
147 if( argc>5 && atoi(argv[5]) )
149 Photos::setDoubleBrem(
false);
150 Photos::setExponentiation(
false);
153 if(atoi(argv[2])==1) Photos::setInfraredCutOff(0.01/91.187);
154 else Photos::setInfraredCutOff(0.01/500.);
156 Photos::maxWtInterference(2.0);
162 Tauola::setEtaK0sPi(1,1,0);
165 if(atoi(argv[6])) Photos::setMeCorrectionWtForScalar(
true);
168 Log::SummaryAtExit();
169 cout.setf(ios::fixed);
176 if(iEvent%1000==0) Log::Info()<<
"Event: "<<iEvent<<
"\t("<<iEvent*(100./
NumberOfEvents)<<
"%)"<<endl;
177 if(!pythia.next())
continue;
179 HepMC::GenEvent * HepMCEvt =
new HepMC::GenEvent();
180 ToHepMC.fill_next_event(event, HepMCEvt);
185 cout<<
"Momentum conservation chceck BEFORE/AFTER Photos"<<endl;
190 TauolaHepMCEvent * t_event =
new TauolaHepMCEvent(HepMCEvt);
193 t_event->undecayTaus();
194 t_event->decayTaus();
207 HepMCEvent temp_event(*HepMCEvt,
false);
208 MC_Analyze(&temp_event);
unsigned int EventsToCheck
int main(int argc, char **argv)
void checkMomentumConservationInEvent(HepMC::GenEvent *evt)
unsigned long NumberOfEvents