5 #include "PhotosRandom.h"
78 phpico_.pi =3.14159265358979324;
79 phpico_.twopi=6.28318530717958648;
109 int coutPrec = cout.precision(6);
110 ios_base::fmtflags flags = cout.setf(ios_base::floatfield);
112 cout<<
"********************************************************************************"<<endl<<endl;
114 cout<<
" ========================="<<endl;
117 cout<<
" ========================="<<endl<<endl;
119 cout<<
" Photos QED corrections in Particle Decays"<<endl<<endl;
121 cout<<
" Monte Carlo Program - by E. Barberio, B. van Eijk and Z. Was"<<endl;
122 cout<<
" From version 2.09 - by P. Golonka and Z. Was"<<endl;
123 cout<<
" From version 3.00 - by N. Davidson, T. Przedzinski and Z. Was"<<endl;
125 cout<<
"********************************************************************************"<<endl<<endl;
127 cout<<
" Internal (default) input parameters: "<<endl<<endl;
130 cout<<
" ALPHA_QED= "<<
phocop_.alpha<<
" XPHCUT= "<<
phocop_.xphcut<<endl<<endl;
132 if(
phokey_.interf) cout<<
" Option with interference is active"<<endl;
133 if(
phokey_.isec) cout<<
" Option with double photons is active"<<endl;
134 if(
phokey_.itre) cout<<
" Option with triple/quatric photons is active"<<endl;
135 if(
phokey_.iexp) cout<<
" Option with exponentiation is active EPSEXP="<<
phokey_.expeps<<endl;
136 if(
phokey_.iftop) cout<<
" Emision in t tbar production is active"<<endl;
137 if(
phokey_.ifw) cout<<
" Correction wt in decay of W is active"<<endl;
140 cout<<endl<<
" WARNING: /HEPEVT/ is not anymore used."<<endl<<endl;
150 cout<<
"********************************************************************************"<<endl;
152 cout.precision(coutPrec);
183 int coutPrec = cout.precision(6);
184 ios_base::fmtflags flags = cout.setf(ios_base::floatfield);
186 cout<<
"********************************************************************************"<<endl<<endl;
187 cout<<
" ========================================="<<endl;
188 cout<<
" PHOTOS, information routine"<<endl;
189 cout<<
" Input parameters after reinitialization: "<<endl<<endl;
190 cout<<
" ========================================="<<endl<<endl;
191 cout<<
"********************************************************************************"<<endl<<endl;
194 cout<<
" ALPHA_QED= "<<
phocop_.alpha<<
" XPHCUT= "<<
phocop_.xphcut<<endl<<endl;
196 if(
phokey_.interf) cout<<
" Option with interference is active"<<endl;
197 if(
phokey_.isec) cout<<
" Option with double photons is active"<<endl;
198 if(
phokey_.itre) cout<<
" Option with triple/quatric photons is active"<<endl;
199 if(
phokey_.iexp) cout<<
" Option with exponentiation is active EPSEXP="<<
phokey_.expeps<<endl;
200 if(
phokey_.iftop) cout<<
" Emision in t tbar production is active"<<endl;
201 if(
phokey_.ifw) cout<<
" Correction wt in decay of W is active"<<endl;
206 cout<<endl<<
" WARNING: /HEPEVT/ is not anymore used."<<endl<<endl;
208 cout.precision(coutPrec);
222 for(
int i=0;
i<(int)branches.size();
i++) branches.at(
i)->process();
228 va_start(arg, motherID);
229 vector<int> *
v =
new vector<int>();
230 v->push_back(motherID);
233 v->push_back(va_arg(arg,
int));
244 va_start(arg, motherID);
245 vector<int> *
v =
new vector<int>();
246 v->push_back(motherID);
249 v->push_back(va_arg(arg,
int));
260 va_start(arg, motherID);
261 vector<int> *
v =
new vector<int>();
262 v->push_back(motherID);
265 v->push_back(va_arg(arg,
int));
276 va_start(arg, motherID);
277 vector<int> *
v =
new vector<int>();
278 v->push_back(motherID);
281 v->push_back(va_arg(arg,
int));
293 Log::Warning()<<
"Photos::createHistoryEntries: status must be >=3"<<endl;
306 Log::Warning()<<
"Photos::ignoreParticlesOfStatus: status must be >=3"<<endl;
381 Log::Info()<<
"PHOTOS production mode. Elementary test of data flow from event record disabled. "<<endl
382 <<
"Prior checks of the complete configuration "<<endl
383 <<
"(for the particular set of input parameters) must have been done! "<<endl;
391 forceMassList->push_back(
new pair<int,double>(pdgid, -1.0) );
398 Log::Warning()<<
"Photos::forceMass: Mass must be > 0.0"<<endl;
403 forceMassList->push_back(
new pair<int,double>(pdgid, mass) );
static vector< int > * ignoreStatusCodeList
static vector< PhotosBranch * > createBranches(vector< PhotosParticle * > particles)
static const int DAT_MONTH
static bool meCorrectionWtForZ
static const int VER_MINOR
static void maxWtInterference(double interference)
int getSuppressionStatus()
static double randomReal()
static bool isStatusCodeIgnored(int status)
static void forceMassFromEventRecord(int pdgid)
static vector< vector< int > * > * forceBremList
static void setInfraredCutOff(double cut_off)
static vector< vector< int > * > * supBremList
static void forceMass(int pdgid, double mass)
static void ignoreParticlesOfStatus(int status)
static bool meCorrectionWtForScalar
static void suppressBremForDecay(int count, int motherID,...)
static bool massFrom4Vector
static ostream & Info(bool count=true)
static vector< pair< int, double > * > * forceMassList
static void forceBremForDecay(int count, int motherID,...)
static void initializeKinematicCorrections(int flag)
static const int DAT_YEAR
static double(* randomDouble)()
static void createHistoryEntries(bool flag, int status)
static void setInterference(bool interference)
static void setExponentiation(bool expo)
static void setCorrectionWtForW(bool corr)
static void setStopAtCriticalError(bool stop)
std::vector< PhotosParticle * > getDecayTree()
static void processParticle(PhotosParticle *p)
Controls the configuration and initialization of Photos.
static void setMeCorrectionWtForW(bool corr)
static void forceBremForBranch(int count, int motherID,...)
static double momentum_conservation_threshold
static ostream & Warning(bool count=true)
static void processBranch(PhotosParticle *p)
static void suppressBremForBranch(int count, int motherID,...)
static void setMeCorrectionWtForScalar(bool corr)
static void setDoubleBrem(bool doub)
static void setMeCorrectionWtForZ(bool corr)
static void setTopProcessRadiation(bool top)
static void setQuatroBrem(bool quatroBrem)
static bool meCorrectionWtForW
static void setRandomGenerator(double(*gen)())
static int historyEntriesStatus
static void deIgnoreParticlesOfStatus(int status)
static const int VER_MAJOR
static void setAlphaQED(double alpha)
static bool isCreateHistoryEntries