FairRoot/PandaRoot
Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Static Private Attributes | List of all members
Photospp::Photos Class Reference

#include <Photos.h>

Public Member Functions

PhotosgetInstance ()
 
PhotosgetInstance ()
 

Static Public Member Functions

static void initialize ()
 
static void iniInfo ()
 
static void processParticle (PhotosParticle *p)
 
static void processBranch (PhotosParticle *p)
 
static void suppressBremForDecay (int count, int motherID,...)
 
static void suppressBremForBranch (int count, int motherID,...)
 
static void suppressAll ()
 
static void forceBremForDecay (int count, int motherID,...)
 
static void forceBremForBranch (int count, int motherID,...)
 
static void createHistoryEntries (bool flag, int status)
 
static void ignoreParticlesOfStatus (int status)
 
static void deIgnoreParticlesOfStatus (int status)
 
static bool isStatusCodeIgnored (int status)
 
static void setRandomGenerator (double(*gen)())
 
static void setSeed (int iseed1, int iseed2)
 
static void maxWtInterference (double interference)
 
static void setInfraredCutOff (double cut_off)
 
static void setAlphaQED (double alpha)
 
static void setInterference (bool interference)
 
static void setDoubleBrem (bool doub)
 
static void setQuatroBrem (bool quatroBrem)
 
static void setCorrectionWtForW (bool corr)
 
static void setExponentiation (bool expo)
 
static void setMeCorrectionWtForScalar (bool corr)
 
static void setMeCorrectionWtForW (bool corr)
 
static void setMeCorrectionWtForZ (bool corr)
 
static void setTopProcessRadiation (bool top)
 
static void setStopAtCriticalError (bool stop)
 
static void initializeKinematicCorrections (int flag)
 
static void forceMassFrom4Vector (bool flag)
 
static void forceMassFromEventRecord (int pdgid)
 
static void forceMass (int pdgid, double mass)
 
static void setMomentumConservationThreshold (double threshold)
 
static void initialize ()
 
static void iniInfo ()
 
static void processParticle (PhotosParticle *p)
 
static void processBranch (PhotosParticle *p)
 
static void suppressBremForDecay (int count, int motherID,...)
 
static void suppressBremForBranch (int count, int motherID,...)
 
static void suppressAll ()
 
static void forceBremForDecay (int count, int motherID,...)
 
static void forceBremForBranch (int count, int motherID,...)
 
static void createHistoryEntries (bool flag, int status)
 
static void ignoreParticlesOfStatus (int status)
 
static void deIgnoreParticlesOfStatus (int status)
 
static bool isStatusCodeIgnored (int status)
 
static void setRandomGenerator (double(*gen)())
 
static void setSeed (int iseed1, int iseed2)
 
static void maxWtInterference (double interference)
 
static void setInfraredCutOff (double cut_off)
 
static void setAlphaQED (double alpha)
 
static void setInterference (bool interference)
 
static void setDoubleBrem (bool doub)
 
static void setQuatroBrem (bool quatroBrem)
 
static void setCorrectionWtForW (bool corr)
 
static void setExponentiation (bool expo)
 
static void setMeCorrectionWtForScalar (bool corr)
 
static void setMeCorrectionWtForW (bool corr)
 
static void setMeCorrectionWtForZ (bool corr)
 
static void setTopProcessRadiation (bool top)
 
static void setStopAtCriticalError (bool stop)
 
static void initializeKinematicCorrections (int flag)
 
static void forceMassFrom4Vector (bool flag)
 
static void forceMassFromEventRecord (int pdgid)
 
static void forceMass (int pdgid, double mass)
 
static void setMomentumConservationThreshold (double threshold)
 

Static Public Attributes

static const int VER_MAJOR =3
 
static const int VER_MINOR =52
 
static const int DAT_DAY =4
 
static const int DAT_MONTH =11
 
static const int DAT_YEAR =12
 
static bool isSuppressed =false
 
static bool massFrom4Vector =true
 
static vector< vector< int > * > * supBremList = 0
 
static vector< vector< int > * > * forceBremList = 0
 
static vector< pair< int,
double > * > * 
forceMassList = 0
 
static vector< int > * ignoreStatusCodeList = 0
 
static double momentum_conservation_threshold = 0.1
 
static bool meCorrectionWtForScalar =false
 
static bool meCorrectionWtForZ =false
 
static bool meCorrectionWtForW =false
 
static bool isCreateHistoryEntries =false
 
static int historyEntriesStatus = 3
 
static double(* randomDouble )() = PhotosRandom::randomReal
 

Private Member Functions

 Photos ()
 
 ~Photos ()
 
 Photos (const Photos &)
 
Photosoperator= (const Photos &)
 
 Photos ()
 
 ~Photos ()
 
 Photos (const Photos &)
 
Photosoperator= (const Photos &)
 

Static Private Attributes

static Photos _instance
 

Detailed Description

Definition at line 28 of file Photos.h.

Constructor & Destructor Documentation

Photos::Photos ( )
private

Definition at line 33 of file Photos.cxx.

References phokey_, setAlphaQED(), setCorrectionWtForW(), setDoubleBrem(), setInfraredCutOff(), setInterference(), setQuatroBrem(), and setTopProcessRadiation().

34 {
35  setAlphaQED (0.00729735039);
36  setInfraredCutOff (0.01);
37  setInterference (true);
38  setDoubleBrem (true);
39  setQuatroBrem (false);
41  setCorrectionWtForW (true);
42 
43  // setExponentiation(true) moved to initialize() due to communication
44  // problems with Fortran under MacOS.
45  phokey_.iexp = 1;
46 }
static void setInfraredCutOff(double cut_off)
Definition: Photos.h:85
struct @21 phokey_
static void setInterference(bool interference)
Definition: Photos.h:91
static void setCorrectionWtForW(bool corr)
Definition: Photos.h:100
static void setDoubleBrem(bool doub)
Definition: Photos.h:94
static void setTopProcessRadiation(bool top)
Definition: Photos.h:115
static void setQuatroBrem(bool quatroBrem)
Definition: Photos.h:97
static void setAlphaQED(double alpha)
Definition: Photos.h:88
Photospp::Photos::~Photos ( )
inlineprivate

Definition at line 198 of file Photos.h.

198 {}
Photospp::Photos::Photos ( const Photos )
private
Photospp::Photos::Photos ( )
private
Photospp::Photos::~Photos ( )
inlineprivate

Definition at line 198 of file 3.52/src/photosCInterfaces/Photos.h.

198 {}
Photospp::Photos::Photos ( const Photos )
private

Member Function Documentation

void Photos::createHistoryEntries ( bool  flag,
int  status 
)
static

If event record allows it, create history entries of particles before Photos processing

Definition at line 289 of file Photos.cxx.

References historyEntriesStatus, ignoreParticlesOfStatus(), isCreateHistoryEntries, status, and Photospp::Log::Warning().

290 {
291  if(status<3)
292  {
293  Log::Warning()<<"Photos::createHistoryEntries: status must be >=3"<<endl;
294  return;
295  }
296 
297  isCreateHistoryEntries = flag;
300 }
static void ignoreParticlesOfStatus(int status)
Definition: Photos.cxx:302
static ostream & Warning(bool count=true)
Definition: Log.cxx:46
static int historyEntriesStatus
Definition: Photos.h:187
int status[10]
Definition: f_Init.h:28
static bool isCreateHistoryEntries
Definition: Photos.h:184
static void Photospp::Photos::createHistoryEntries ( bool  flag,
int  status 
)
static

If event record allows it, create history entries of particles before Photos processing

static void Photospp::Photos::deIgnoreParticlesOfStatus ( int  status)
static

Remove 'status' from the list of ignored status codes

void Photos::deIgnoreParticlesOfStatus ( int  status)
static

Remove 'status' from the list of ignored status codes

Definition at line 319 of file Photos.cxx.

References i, and ignoreStatusCodeList.

320 {
321  if(!ignoreStatusCodeList) return;
322 
323  for(unsigned int i=0;i<ignoreStatusCodeList->size();i++)
324  {
325  if( status==ignoreStatusCodeList->at(i) )
326  {
328  return;
329  }
330  }
331 }
static vector< int > * ignoreStatusCodeList
Definition: Photos.h:169
Int_t i
Definition: run_full.C:25
int status[10]
Definition: f_Init.h:28
void Photos::forceBremForBranch ( int  count,
int  motherID,
  ... 
)
static

Force processing of a whole decay branch

Definition at line 273 of file Photos.cxx.

References count, forceBremList, i, and v.

274 {
275  va_list arg;
276  va_start(arg, motherID);
277  vector<int> *v = new vector<int>();
278  v->push_back(motherID);
279  for(int i = 0;i<count;i++)
280  {
281  v->push_back(va_arg(arg,int));
282  }
283  va_end(arg);
284  v->push_back(1);
285  if(!forceBremList) forceBremList = new vector< vector<int>* >();
286  forceBremList->push_back(v);
287 }
Int_t i
Definition: run_full.C:25
static vector< vector< int > * > * forceBremList
Definition: Photos.h:163
__m128 v
Definition: P4_F32vec4.h:4
int count
static void Photospp::Photos::forceBremForBranch ( int  count,
int  motherID,
  ... 
)
static

Force processing of a whole decay branch

static void Photospp::Photos::forceBremForDecay ( int  count,
int  motherID,
  ... 
)
static

Force processing of a single decay

void Photos::forceBremForDecay ( int  count,
int  motherID,
  ... 
)
static

Force processing of a single decay

Definition at line 257 of file Photos.cxx.

References count, forceBremList, i, and v.

258 {
259  va_list arg;
260  va_start(arg, motherID);
261  vector<int> *v = new vector<int>();
262  v->push_back(motherID);
263  for(int i = 0;i<count;i++)
264  {
265  v->push_back(va_arg(arg,int));
266  }
267  va_end(arg);
268  v->push_back(0);
269  if(!forceBremList) forceBremList = new vector< vector<int>* >();
270  forceBremList->push_back(v);
271 }
Int_t i
Definition: run_full.C:25
static vector< vector< int > * > * forceBremList
Definition: Photos.h:163
__m128 v
Definition: P4_F32vec4.h:4
int count
void Photos::forceMass ( int  pdgid,
double  mass 
)
static

When particles with PDGID and -PDGID will be processed by Photos, their mass value will be given by user instead of being calculated from 4-vector.

This works only if 'forceMassFrom4Vector' is set to 'true' (default) This routine may be executed several times with different PDGID values.

Definition at line 394 of file Photos.cxx.

References forceMassList, and Photospp::Log::Warning().

395 {
396  if(mass<0.0)
397  {
398  Log::Warning()<<"Photos::forceMass: Mass must be > 0.0"<<endl;
399  return;
400  }
401 
402  if(!forceMassList) forceMassList = new vector<pair<int,double>* >();
403  forceMassList->push_back( new pair<int,double>(pdgid, mass) );
404 }
static vector< pair< int, double > * > * forceMassList
Definition: Photos.h:166
static ostream & Warning(bool count=true)
Definition: Log.cxx:46
static void Photospp::Photos::forceMass ( int  pdgid,
double  mass 
)
static

When particles with PDGID and -PDGID will be processed by Photos, their mass value will be given by user instead of being calculated from 4-vector.

This works only if 'forceMassFrom4Vector' is set to 'true' (default) This routine may be executed several times with different PDGID values.

static void Photospp::Photos::forceMassFrom4Vector ( bool  flag)
inlinestatic

Force mass value to be sqrt(e^2-p^2) for all particle momenta taken from event record. May be important for numerical stability. May lead to faulty results due to rounding errors for hiper-relativistic electron, for example.

Definition at line 131 of file 3.52/src/photosCInterfaces/Photos.h.

References massFrom4Vector.

131 { massFrom4Vector=flag; }
static bool massFrom4Vector
Definition: Photos.h:157
static void Photospp::Photos::forceMassFrom4Vector ( bool  flag)
inlinestatic

Force mass value to be sqrt(e^2-p^2) for all particle momenta taken from event record. May be important for numerical stability. May lead to faulty results due to rounding errors for hiper-relativistic electron, for example.

Definition at line 131 of file Photos.h.

References massFrom4Vector.

131 { massFrom4Vector=flag; }
static bool massFrom4Vector
Definition: Photos.h:157
static void Photospp::Photos::forceMassFromEventRecord ( int  pdgid)
static

When particles with PDGID and -PDGID will be processed by Photos, their mass value will be taken from event record instead of being calculated from 4-vector.

This works only if 'forceMassFrom4Vector' is set to 'true' (default) This routine may be executed several times with different PDGID values.

void Photos::forceMassFromEventRecord ( int  pdgid)
static

When particles with PDGID and -PDGID will be processed by Photos, their mass value will be taken from event record instead of being calculated from 4-vector.

This works only if 'forceMassFrom4Vector' is set to 'true' (default) This routine may be executed several times with different PDGID values.

Definition at line 388 of file Photos.cxx.

References forceMassList.

389 {
390  if(!forceMassList) forceMassList = new vector<pair<int,double>* >();
391  forceMassList->push_back( new pair<int,double>(pdgid, -1.0) );
392 }
static vector< pair< int, double > * > * forceMassList
Definition: Photos.h:166
Photos& Photospp::Photos::getInstance ( )
inline

Get instance of Photos

Definition at line 193 of file 3.52/src/photosCInterfaces/Photos.h.

References _instance.

193 { return _instance; }
static Photos _instance
Definition: Photos.h:201
Photos& Photospp::Photos::getInstance ( )
inline

Get instance of Photos

Definition at line 193 of file Photos.h.

References _instance.

193 { return _instance; }
static Photos _instance
Definition: Photos.h:201
void Photos::ignoreParticlesOfStatus ( int  status)
static

Ignore particles with given status code

Definition at line 302 of file Photos.cxx.

References i, ignoreStatusCodeList, and Photospp::Log::Warning().

Referenced by createHistoryEntries().

303 {
304  if(status<3)
305  {
306  Log::Warning()<<"Photos::ignoreParticlesOfStatus: status must be >=3"<<endl;
307  return;
308  }
309 
310  if(!ignoreStatusCodeList) ignoreStatusCodeList = new vector<int>();
311 
312  // Do not add duplicate entries to the list
313  for(unsigned int i=0;i<ignoreStatusCodeList->size();i++)
314  if( status==ignoreStatusCodeList->at(i) ) return;
315 
316  ignoreStatusCodeList->push_back(status);
317 }
static vector< int > * ignoreStatusCodeList
Definition: Photos.h:169
Int_t i
Definition: run_full.C:25
static ostream & Warning(bool count=true)
Definition: Log.cxx:46
int status[10]
Definition: f_Init.h:28
static void Photospp::Photos::ignoreParticlesOfStatus ( int  status)
static

Ignore particles with given status code

void Photos::iniInfo ( )
static

Prints info on Photos initialization (reinitialization) status

Definition at line 170 of file Photos.cxx.

References meCorrectionWtForScalar, meCorrectionWtForW, meCorrectionWtForZ, phocop_, and phokey_.

171 {
172 // prints infomation like Photos::initialize; may be called after reinitializations.
173 
174 /*******************************************************************************
175  Once parameter setters are called after PHOINI one may want to know and write
176  into output info including all reinitializations.
177 *******************************************************************************/
178 
179 
180 //------------------------------------------------------------------------------
181 // Print PHOTOS header again
182 //------------------------------------------------------------------------------
183  int coutPrec = cout.precision(6);
184  ios_base::fmtflags flags = cout.setf(ios_base::floatfield);
185  cout<<endl;
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;
192  cout<<" INTERF= "<<phokey_.interf<<" ISEC= " <<phokey_.isec <<" ITRE= "<<phokey_.itre
193  <<" IEXP= " <<phokey_.iexp <<" IFTOP= "<<phokey_.iftop<<" IFW= " <<phokey_.ifw <<endl;
194  cout<<" ALPHA_QED= "<<phocop_.alpha<<" XPHCUT= "<<phocop_.xphcut<<endl<<endl;
195 
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;
202  if(meCorrectionWtForZ) cout<<" ME in decay of Z is active"<<endl;
203  if(meCorrectionWtForW) cout<<" ME in decay of W is active"<<endl;
204  if(meCorrectionWtForScalar) cout<<" ME in decay of Scalar is active"<<endl;
205 
206  cout<<endl<<" WARNING: /HEPEVT/ is not anymore used."<<endl<<endl;
207  // Revert output stream flags and precision
208  cout.precision(coutPrec);
209  cout.flags (flags);
210 }
static bool meCorrectionWtForZ
Definition: Photos.h:178
struct @21 phokey_
static bool meCorrectionWtForScalar
Definition: Photos.h:175
static bool meCorrectionWtForW
Definition: Photos.h:181
struct @20 phocop_
static void Photospp::Photos::iniInfo ( )
static

Prints info on Photos initialization (reinitialization) status

void Photos::initialize ( )
static

Initalize Photos with the parameters previously set via the setter methods

Definition at line 48 of file Photos.cxx.

References DAT_DAY, DAT_MONTH, DAT_YEAR, i, Photospp::PhotosRandom::initialize(), initializeKinematicCorrections(), iphekl_(), iphqrk_(), maxWtInterference(), meCorrectionWtForW, meCorrectionWtForZ, phocop_, phokey_, pholun_, phosta_, phpico_, setExponentiation(), suppressBremForDecay(), VER_MAJOR, and VER_MINOR.

49 {
50 // Should return if already initialized?
51 
52 /*******************************************************************************
53  All the following parameter setters can be called after PHOINI.
54  Initialization of kinematic correction against rounding errors.
55  The set values will be used later if called with zero.
56  Default parameter is 1 (no correction) optionally 2, 3, 4
57  In case of exponentiation new version 5 is needed in most cases.
58  Definition given here will be thus overwritten in such a case
59  below in routine PHOCIN
60 *******************************************************************************/
62  else setExponentiation(true);
63 
64  int buf=1;
65  iphqrk_(&buf); // Blocks emission from quarks if buf=1 (default); enables if buf=2
66  // Physical treatment will be 3, option 2 is not realistic and for tests only
67  buf=2;
68  iphekl_(&buf); // Blocks emission in pi0 to gamma e+ e- if parameter is >1 (enables otherwise)
69 
70 // Initialize status counter for warning messages
71  for(int i=0;i<10;i++) phosta_.status[i]=0;
72 // elementary security level, should remain 1 but we may want to have a method to change.
73  phosta_.ifstop=1;
74 
75  pholun_.phlun=6; // Logical output unit for printing error messages
76 
77 // Define pi and 2*pi
78  phpico_.pi =3.14159265358979324;
79  phpico_.twopi=6.28318530717958648;
80 
81 // Further initialization done automatically
82 // see places with - VARIANT A - VARIANT B - all over to switch between options
83 
84 //----------- SLOWER VARIANT A, but stable ------------------
85 //--- it is limiting choice for small XPHCUT in fixed orer
86 //--- modes of operation
87 
88 // Best choice is if FINT=2**N where N+1 is maximal number
89 // of charged daughters
90 // see report on overweihted events
91  if(phokey_.interf) maxWtInterference(2.0);
92  else maxWtInterference(1.0);
93 
94 /*
95 ----------- FASTER VARIANT B ------------------
96 -- it is good for tests of fixed order and small XPHCUT
97 -- but is less promising for more complex cases of interference
98 -- sometimes fails because of that
99 
100  if(phokey_.interf) maxWtInterference(1.8);
101  else maxWtInterference(0.0);
102 ------------END VARIANTS A B -----------------------
103 */
104 
105 
106 //------------------------------------------------------------------------------
107 // Print PHOTOS header
108 //------------------------------------------------------------------------------
109  int coutPrec = cout.precision(6);
110  ios_base::fmtflags flags = cout.setf(ios_base::floatfield);
111  cout<<endl;
112  cout<<"********************************************************************************"<<endl<<endl;
113 
114  cout<<" ========================="<<endl;
115  cout<<" PHOTOS, Version: "<<VER_MAJOR<<"."<<VER_MINOR<<endl;
116  cout<<" Released at: "<<DAT_DAY<<"/"<<DAT_MONTH<<"/"<<DAT_YEAR<<endl;
117  cout<<" ========================="<<endl<<endl;
118 
119  cout<<" Photos QED corrections in Particle Decays"<<endl<<endl;
120 
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;
124 
125  cout<<"********************************************************************************"<<endl<<endl;
126 
127  cout<<" Internal (default) input parameters: "<<endl<<endl;
128  cout<<" INTERF= "<<phokey_.interf<<" ISEC= " <<phokey_.isec <<" ITRE= "<<phokey_.itre
129  <<" IEXP= " <<phokey_.iexp <<" IFTOP= "<<phokey_.iftop<<" IFW= " <<phokey_.ifw <<endl;
130  cout<<" ALPHA_QED= "<<phocop_.alpha<<" XPHCUT= "<<phocop_.xphcut<<endl<<endl;
131 
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;
138  if(meCorrectionWtForZ) cout<<" ME in decay of Z is active"<<endl;
139  if(meCorrectionWtForW) cout<<" ME in decay of W is active"<<endl;
140  cout<<endl<<" WARNING: /HEPEVT/ is not anymore used."<<endl<<endl;
141 /*
142  cout<<endl<<" WARNING (1): /HEPEVT/ is not anymore the standard common block"<<endl<<endl;
143 
144  cout<<" PHOTOS expects /HEPEVT/ to have REAL*8 variables. To change to"<<endl;
145  cout<<" REAL*4 modify its declaration in subr. PHOTOS_GET PHOTOS_SET:"<<endl;
146  cout<<" REAL*8 d_h_phep, d_h_vhep"<<endl;
147  cout<<" WARNING (2): check dims. of /hepevt/ /phoqed/ /ph_hepevt/."<<endl;
148  cout<<" HERE: d_h_nmxhep=10000 and NMXHEP=10000"<<endl<<endl;
149 */
150  cout<<"********************************************************************************"<<endl;
151  // Revert output stream flags and precision
152  cout.precision(coutPrec);
153  cout.flags (flags);
154 
155  // Add reggeon, pomeron and its diffractive states to the list
156  // of decays where bremsstrahlung is suppressed
159  Photos::suppressBremForDecay(0,9902110);
160  Photos::suppressBremForDecay(0,9902210);
161  Photos::suppressBremForDecay(0,9900110);
162  Photos::suppressBremForDecay(0,9900210);
163  Photos::suppressBremForDecay(0,9900220);
164  Photos::suppressBremForDecay(0,9900330);
165  Photos::suppressBremForDecay(0,9900440);
166 
167 // Initialize Marsaglia and Zaman random number generator
169 }
int iphqrk_(int *i)
struct @22 phosta_
static const int DAT_MONTH
Definition: Photos.h:32
static bool meCorrectionWtForZ
Definition: Photos.h:178
static const int VER_MINOR
Definition: Photos.h:31
static void maxWtInterference(double interference)
Definition: Photos.h:82
Int_t i
Definition: run_full.C:25
struct @23 phpico_
struct @21 phokey_
static void suppressBremForDecay(int count, int motherID,...)
Definition: Photos.cxx:225
static void initializeKinematicCorrections(int flag)
Definition: Photos.h:125
static const int DAT_YEAR
Definition: Photos.h:32
static void setExponentiation(bool expo)
Definition: Photos.cxx:349
static void initialize()
struct @24 pholun_
static bool meCorrectionWtForW
Definition: Photos.h:181
struct @20 phocop_
int iphekl_(int *i)
static const int DAT_DAY
Definition: Photos.h:32
static const int VER_MAJOR
Definition: Photos.h:31
static void Photospp::Photos::initialize ( )
static

Initalize Photos with the parameters previously set via the setter methods

static void Photospp::Photos::initializeKinematicCorrections ( int  flag)
inlinestatic

Initialize kinematic corrections

Definition at line 125 of file 3.52/src/photosCInterfaces/Photos.h.

References phcork_().

125 { phcork_(&flag); }
void phcork_(int *modcor)
static void Photospp::Photos::initializeKinematicCorrections ( int  flag)
inlinestatic

Initialize kinematic corrections

Definition at line 125 of file Photos.h.

References phcork_().

Referenced by initialize(), and setExponentiation().

125 { phcork_(&flag); }
void phcork_(int *modcor)
bool Photos::isStatusCodeIgnored ( int  status)
static

Returns 'true' if status code is ignored

Definition at line 333 of file Photos.cxx.

References i, and ignoreStatusCodeList.

Referenced by Photospp::PhotosHepMCParticle::checkMomentumConservation(), and Photospp::PhotosHepMCParticle::getDaughters().

334 {
335  if(!ignoreStatusCodeList) return false;
336 
337  for(unsigned int i=0;i<ignoreStatusCodeList->size();i++)
338  if( status==ignoreStatusCodeList->at(i) ) return true;
339 
340  return false;
341 }
static vector< int > * ignoreStatusCodeList
Definition: Photos.h:169
Int_t i
Definition: run_full.C:25
int status[10]
Definition: f_Init.h:28
static bool Photospp::Photos::isStatusCodeIgnored ( int  status)
static

Returns 'true' if status code is ignored

static void Photospp::Photos::maxWtInterference ( double  interference)
inlinestatic

Maximum interference weight

Definition at line 82 of file Photos.h.

References phokey_.

Referenced by initialize().

82 { phokey_.fint=interference; }
struct @21 phokey_
static void Photospp::Photos::maxWtInterference ( double  interference)
inlinestatic

Maximum interference weight

Definition at line 82 of file 3.52/src/photosCInterfaces/Photos.h.

References phokey_.

82 { phokey_.fint=interference; }
struct @21 phokey_
Photos& Photospp::Photos::operator= ( const Photos )
private
Photos& Photospp::Photos::operator= ( const Photos )
private
void Photos::processBranch ( PhotosParticle p)
static

Process decay of whole decay branch starting from given particle

Definition at line 218 of file Photos.cxx.

References Photospp::PhotosBranch::createBranches(), Photospp::PhotosParticle::getDecayTree(), and i.

219 {
220  vector<PhotosParticle *> particles = p->getDecayTree();
221  vector<PhotosBranch *> branches = PhotosBranch::createBranches(particles);
222  for(int i=0;i<(int)branches.size();i++) branches.at(i)->process();
223 }
static vector< PhotosBranch * > createBranches(vector< PhotosParticle * > particles)
Int_t i
Definition: run_full.C:25
static void Photospp::Photos::processBranch ( PhotosParticle p)
static

Process decay of whole decay branch starting from given particle

static void Photospp::Photos::processParticle ( PhotosParticle p)
static

Process decay of single particle

void Photos::processParticle ( PhotosParticle p)
static

Process decay of single particle

Definition at line 212 of file Photos.cxx.

References b, Photospp::PhotosBranch::getSuppressionStatus(), and Photospp::PhotosBranch::process().

213 {
214  PhotosBranch b(p);
215  if(!b.getSuppressionStatus()) b.process();
216 }
TTree * b
Single branching point.
static void Photospp::Photos::setAlphaQED ( double  alpha)
inlinestatic

Coupling constant alpha QED

Definition at line 88 of file Photos.h.

References alpha, and phocop_.

Referenced by Photos().

88 { phocop_.alpha=alpha; }
struct @20 phocop_
double alpha
Definition: f_Init.h:9
static void Photospp::Photos::setAlphaQED ( double  alpha)
inlinestatic

Coupling constant alpha QED

Definition at line 88 of file 3.52/src/photosCInterfaces/Photos.h.

References alpha, and phocop_.

88 { phocop_.alpha=alpha; }
struct @20 phocop_
double alpha
Definition: f_Init.h:9
static void Photospp::Photos::setCorrectionWtForW ( bool  corr)
inlinestatic

Definition at line 100 of file Photos.h.

References phokey_.

Referenced by Photos().

100 { phokey_.ifw=(int)corr; }
PndPidCorrelator * corr
struct @21 phokey_
static void Photospp::Photos::setCorrectionWtForW ( bool  corr)
inlinestatic

Definition at line 100 of file 3.52/src/photosCInterfaces/Photos.h.

References phokey_.

100 { phokey_.ifw=(int)corr; }
PndPidCorrelator * corr
struct @21 phokey_
static void Photospp::Photos::setDoubleBrem ( bool  doub)
inlinestatic

Set double bremsstrahlung generation

Definition at line 94 of file Photos.h.

References phokey_.

Referenced by Photos(), and setExponentiation().

94 { phokey_.isec=(int)doub; }
struct @21 phokey_
static void Photospp::Photos::setDoubleBrem ( bool  doub)
inlinestatic

Set double bremsstrahlung generation

Definition at line 94 of file 3.52/src/photosCInterfaces/Photos.h.

References phokey_.

94 { phokey_.isec=(int)doub; }
struct @21 phokey_
void Photos::setExponentiation ( bool  expo)
static

Set exponentiation mode

Definition at line 349 of file Photos.cxx.

References initializeKinematicCorrections(), phokey_, setDoubleBrem(), setInfraredCutOff(), and setQuatroBrem().

Referenced by initialize().

350 {
351  phokey_.iexp = (int) expo;
352  if(expo)
353  {
354  setDoubleBrem(false);
355  setQuatroBrem(false);
356  setInfraredCutOff(0.0000001);
358  phokey_.expeps=0.0001;
359  }
360 }
static void setInfraredCutOff(double cut_off)
Definition: Photos.h:85
struct @21 phokey_
static void initializeKinematicCorrections(int flag)
Definition: Photos.h:125
static void setDoubleBrem(bool doub)
Definition: Photos.h:94
static void setQuatroBrem(bool quatroBrem)
Definition: Photos.h:97
static void Photospp::Photos::setExponentiation ( bool  expo)
static

Set exponentiation mode

static void Photospp::Photos::setInfraredCutOff ( double  cut_off)
inlinestatic

Minimal energy (in units of decaying particle mass) for photons to be explicitly generated

Definition at line 85 of file 3.52/src/photosCInterfaces/Photos.h.

References phocop_.

85 { phocop_.xphcut=cut_off; }
struct @20 phocop_
static void Photospp::Photos::setInfraredCutOff ( double  cut_off)
inlinestatic

Minimal energy (in units of decaying particle mass) for photons to be explicitly generated

Definition at line 85 of file Photos.h.

References phocop_.

Referenced by Photos(), and setExponentiation().

85 { phocop_.xphcut=cut_off; }
struct @20 phocop_
static void Photospp::Photos::setInterference ( bool  interference)
inlinestatic

Key for interference, matrix element weight

Definition at line 91 of file Photos.h.

References phokey_.

Referenced by Photos().

91 { phokey_.interf=(int)interference; }
struct @21 phokey_
static void Photospp::Photos::setInterference ( bool  interference)
inlinestatic

Key for interference, matrix element weight

Definition at line 91 of file 3.52/src/photosCInterfaces/Photos.h.

References phokey_.

91 { phokey_.interf=(int)interference; }
struct @21 phokey_
static void Photospp::Photos::setMeCorrectionWtForScalar ( bool  corr)
static

Switch for complete effects of matrix element (in scalar to 2 scalars decays)

void Photos::setMeCorrectionWtForScalar ( bool  corr)
static

Switch for complete effects of matrix element (in scalar to 2 scalars decays)

Definition at line 371 of file Photos.cxx.

References corr, and meCorrectionWtForScalar.

372 {
374 }
PndPidCorrelator * corr
static bool meCorrectionWtForScalar
Definition: Photos.h:175
void Photos::setMeCorrectionWtForW ( bool  corr)
static

Switch for complete effects of matrix element (in leptonic W decays)

Definition at line 362 of file Photos.cxx.

References corr, and meCorrectionWtForW.

363 {
365 }
PndPidCorrelator * corr
static bool meCorrectionWtForW
Definition: Photos.h:181
static void Photospp::Photos::setMeCorrectionWtForW ( bool  corr)
static

Switch for complete effects of matrix element (in leptonic W decays)

void Photos::setMeCorrectionWtForZ ( bool  corr)
static

Switch for complete effects of matrix element (in leptonic Z decays)

Definition at line 367 of file Photos.cxx.

References corr, and meCorrectionWtForZ.

368 {
370 }
static bool meCorrectionWtForZ
Definition: Photos.h:178
PndPidCorrelator * corr
static void Photospp::Photos::setMeCorrectionWtForZ ( bool  corr)
static

Switch for complete effects of matrix element (in leptonic Z decays)

static void Photospp::Photos::setMomentumConservationThreshold ( double  threshold)
inlinestatic

set energy momentum conservation threshold

Definition at line 150 of file Photos.h.

References momentum_conservation_threshold, and threshold.

static double momentum_conservation_threshold
Definition: Photos.h:172
double threshold
static void Photospp::Photos::setMomentumConservationThreshold ( double  threshold)
inlinestatic

set energy momentum conservation threshold

Definition at line 150 of file 3.52/src/photosCInterfaces/Photos.h.

References momentum_conservation_threshold, and threshold.

static double momentum_conservation_threshold
Definition: Photos.h:172
double threshold
static void Photospp::Photos::setQuatroBrem ( bool  quatroBrem)
inlinestatic

Set bremsstrahlung generation up to multiplicity of 4

Definition at line 97 of file Photos.h.

References phokey_.

Referenced by Photos(), and setExponentiation().

97 { phokey_.itre=(int)quatroBrem; }
struct @21 phokey_
static void Photospp::Photos::setQuatroBrem ( bool  quatroBrem)
inlinestatic

Set bremsstrahlung generation up to multiplicity of 4

Definition at line 97 of file 3.52/src/photosCInterfaces/Photos.h.

References phokey_.

97 { phokey_.itre=(int)quatroBrem; }
struct @21 phokey_
static void Photospp::Photos::setRandomGenerator ( double(*)()  gen)
static

Substitute build-in generator with external one

void Photos::setRandomGenerator ( double(*)()  gen)
static

Substitute build-in generator with external one

Definition at line 343 of file Photos.cxx.

References randomDouble, and Photospp::PhotosRandom::randomReal().

344 {
345  if(gen==NULL) randomDouble = PhotosRandom::randomReal;
346  else randomDouble = gen;
347 }
static double randomReal()
static double(* randomDouble)()
Definition: Photos.h:190
static void Photospp::Photos::setSeed ( int  iseed1,
int  iseed2 
)
inlinestatic

Seed for RANMAR used by fortran part of the Photos

Definition at line 79 of file 3.52/src/photosCInterfaces/Photos.h.

References Photospp::PhotosRandom::setSeed().

79 { PhotosRandom::setSeed(iseed1,iseed2); }
static void setSeed(int s1, int s2)
static void Photospp::Photos::setSeed ( int  iseed1,
int  iseed2 
)
inlinestatic

Seed for RANMAR used by fortran part of the Photos

Definition at line 79 of file Photos.h.

References Photospp::PhotosRandom::setSeed().

79 { PhotosRandom::setSeed(iseed1,iseed2); }
static void setSeed(int s1, int s2)
static void Photospp::Photos::setStopAtCriticalError ( bool  stop)
static
void Photos::setStopAtCriticalError ( bool  stop)
static

Definition at line 376 of file Photos.cxx.

References Photospp::Log::Info(), and phosta_.

377 {
378  phosta_.ifstop=(int)stop;
379  if(!stop)
380  {
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;
384  }
385 }
struct @22 phosta_
static ostream & Info(bool count=true)
Definition: Log.cxx:38
static void Photospp::Photos::setTopProcessRadiation ( bool  top)
inlinestatic

Set photon emission in top pair production in quark (gluon) pair annihilation

Definition at line 115 of file 3.52/src/photosCInterfaces/Photos.h.

References phokey_.

115 { phokey_.iftop=(int)top; }
struct @21 phokey_
TGeoVolume * top
static void Photospp::Photos::setTopProcessRadiation ( bool  top)
inlinestatic

Set photon emission in top pair production in quark (gluon) pair annihilation

Definition at line 115 of file Photos.h.

References phokey_.

Referenced by Photos().

115 { phokey_.iftop=(int)top; }
struct @21 phokey_
TGeoVolume * top
static void Photospp::Photos::suppressAll ( )
inlinestatic

Suppress all processing. Only forced decays will be processed.

Definition at line 54 of file 3.52/src/photosCInterfaces/Photos.h.

References isSuppressed.

54 { isSuppressed=true; }
static bool isSuppressed
Definition: Photos.h:154
static void Photospp::Photos::suppressAll ( )
inlinestatic

Suppress all processing. Only forced decays will be processed.

Definition at line 54 of file Photos.h.

References isSuppressed.

54 { isSuppressed=true; }
static bool isSuppressed
Definition: Photos.h:154
static void Photospp::Photos::suppressBremForBranch ( int  count,
int  motherID,
  ... 
)
static

Suppress processing of whole decay branch

void Photos::suppressBremForBranch ( int  count,
int  motherID,
  ... 
)
static

Suppress processing of whole decay branch

Definition at line 241 of file Photos.cxx.

References count, i, supBremList, and v.

242 {
243  va_list arg;
244  va_start(arg, motherID);
245  vector<int> *v = new vector<int>();
246  v->push_back(motherID);
247  for(int i = 0;i<count;i++)
248  {
249  v->push_back(va_arg(arg,int));
250  }
251  va_end(arg);
252  v->push_back(1);
253  if(!supBremList) supBremList = new vector< vector<int>* >();
254  supBremList->push_back(v);
255 }
Int_t i
Definition: run_full.C:25
static vector< vector< int > * > * supBremList
Definition: Photos.h:160
__m128 v
Definition: P4_F32vec4.h:4
int count
static void Photospp::Photos::suppressBremForDecay ( int  count,
int  motherID,
  ... 
)
static

Suppress processing of a single decay

void Photos::suppressBremForDecay ( int  count,
int  motherID,
  ... 
)
static

Suppress processing of a single decay

Definition at line 225 of file Photos.cxx.

References count, i, supBremList, and v.

Referenced by initialize().

226 {
227  va_list arg;
228  va_start(arg, motherID);
229  vector<int> *v = new vector<int>();
230  v->push_back(motherID);
231  for(int i = 0;i<count;i++)
232  {
233  v->push_back(va_arg(arg,int));
234  }
235  va_end(arg);
236  v->push_back(0);
237  if(!supBremList) supBremList = new vector< vector<int>* >();
238  supBremList->push_back(v);
239 }
Int_t i
Definition: run_full.C:25
static vector< vector< int > * > * supBremList
Definition: Photos.h:160
__m128 v
Definition: P4_F32vec4.h:4
int count

Member Data Documentation

static Photos Photos::_instance
staticprivate

Definition at line 201 of file Photos.h.

Referenced by getInstance().

static const int Photos::DAT_DAY =4
static

Definition at line 32 of file Photos.h.

Referenced by initialize().

static const int Photos::DAT_MONTH =11
static

Definition at line 32 of file Photos.h.

Referenced by initialize().

static const int Photos::DAT_YEAR =12
static

Definition at line 32 of file Photos.h.

Referenced by initialize().

static vector< vector< int > * > * Photos::forceBremList = 0
static
static vector< pair< int, double > * > * Photos::forceMassList = 0
static

List of forced mass values

Definition at line 166 of file Photos.h.

Referenced by forceMass(), and forceMassFromEventRecord().

static int Photos::historyEntriesStatus = 3
static

Status of history entries

Definition at line 187 of file Photos.h.

Referenced by createHistoryEntries(), and Photospp::PhotosHepMCParticle::createHistoryEntry().

static vector< int > * Photos::ignoreStatusCodeList = 0
static

List of ignored status codes

Definition at line 169 of file Photos.h.

Referenced by deIgnoreParticlesOfStatus(), ignoreParticlesOfStatus(), and isStatusCodeIgnored().

static bool Photos::isCreateHistoryEntries =false
static

Flag for creating historic entries

Definition at line 184 of file Photos.h.

Referenced by createHistoryEntries().

static bool Photos::isSuppressed =false
static

Is in suppressed mode

Definition at line 154 of file Photos.h.

Referenced by Photospp::PhotosBranch::createBranches(), and suppressAll().

static bool Photos::massFrom4Vector =true
static

Is mass from 4-vector or from event record

Definition at line 157 of file Photos.h.

Referenced by forceMassFrom4Vector().

static bool Photos::meCorrectionWtForScalar =false
static

Flag for complete effects of matrix element (in scalars decays)

Definition at line 175 of file Photos.h.

Referenced by iniInfo(), and setMeCorrectionWtForScalar().

static bool Photos::meCorrectionWtForW =false
static

Flag for complete effects of matrix element (in leptonic W decays)

Definition at line 181 of file Photos.h.

Referenced by iniInfo(), initialize(), and setMeCorrectionWtForW().

static bool Photos::meCorrectionWtForZ =false
static

Flag for complete effects of matrix element (in leptonic Z decays)

Definition at line 178 of file Photos.h.

Referenced by iniInfo(), initialize(), and setMeCorrectionWtForZ().

static double Photos::momentum_conservation_threshold = 0.1
static

Threshold for momentum conservation check

Definition at line 172 of file Photos.h.

Referenced by Photospp::PhotosHepMCParticle::checkMomentumConservation(), and setMomentumConservationThreshold().

static double(* Photos::randomDouble)() = PhotosRandom::randomReal
static

Pointer to random generator function

Definition at line 190 of file Photos.h.

Referenced by Photospp::phoranc_(), and setRandomGenerator().

static vector< vector< int > * > * Photos::supBremList = 0
static

List of suppressed decays

Definition at line 160 of file Photos.h.

Referenced by Photospp::PhotosBranch::checkList(), suppressBremForBranch(), and suppressBremForDecay().

static const int Photos::VER_MAJOR =3
static

Definition at line 31 of file Photos.h.

Referenced by initialize().

static const int Photos::VER_MINOR =52
static

Definition at line 31 of file Photos.h.

Referenced by initialize().


The documentation for this class was generated from the following files: