FairRoot/PandaRoot
Photos.h
Go to the documentation of this file.
1 #ifndef _Photos_h_included_
2 #define _Photos_h_included_
3 
15 #include <stdarg.h>
16 #include <vector>
17 #include "PhotosParticle.h"
18 #include "PhotosRandom.h"
19 #include "f_Init.h"
20 using std::vector;
21 using std::pair;
22 
23 namespace Photospp
24 {
25 
26 class PhotosParticle;
27 
28 class Photos
29 {
30 public:
31  static const int VER_MAJOR=3, VER_MINOR=52;
32  static const int DAT_DAY =4,DAT_MONTH=11,DAT_YEAR=12;
33 public:
34 
37  static void initialize();
38 
41  static void iniInfo();
42 
44  static void processParticle(PhotosParticle *p);
46  static void processBranch(PhotosParticle *p);
47 
49  static void suppressBremForDecay (int count, int motherID, ... );
51  static void suppressBremForBranch(int count, int motherID, ... );
52 
54  static void suppressAll() { isSuppressed=true; }
55 
57  static void forceBremForDecay (int count, int motherID, ... );
58 
60  static void forceBremForBranch(int count, int motherID, ... );
61 
64  static void createHistoryEntries(bool flag, int status);
65 
67  static void ignoreParticlesOfStatus(int status);
68 
70  static void deIgnoreParticlesOfStatus(int status);
71 
73  static bool isStatusCodeIgnored(int status);
74 public:
76  static void setRandomGenerator( double (*gen)() );
77 
79  static void setSeed(int iseed1, int iseed2) { PhotosRandom::setSeed(iseed1,iseed2); }
80 
82  static void maxWtInterference(double interference) { phokey_.fint=interference; }
83 
85  static void setInfraredCutOff(double cut_off) { phocop_.xphcut=cut_off; }
86 
88  static void setAlphaQED(double alpha) { phocop_.alpha=alpha; }
89 
91  static void setInterference(bool interference) { phokey_.interf=(int)interference; }
92 
94  static void setDoubleBrem(bool doub) { phokey_.isec=(int)doub; }
95 
97  static void setQuatroBrem(bool quatroBrem) { phokey_.itre=(int)quatroBrem; }
98 
99  /* Key for partial effects of matrix element (in leptonic W decays) */
100  static void setCorrectionWtForW(bool corr) { phokey_.ifw=(int)corr; }
101 
103  static void setExponentiation(bool expo);
104 
106  static void setMeCorrectionWtForScalar(bool corr);
107 
109  static void setMeCorrectionWtForW(bool corr);
110 
112  static void setMeCorrectionWtForZ(bool corr);
113 
115  static void setTopProcessRadiation(bool top) { phokey_.iftop=(int)top; }
116 
117  /* Set if PHOTOS should stop at critical error. True by default.
118  WARNING: These stops are an essential source of debugging information flow
119  from event record to PHOTOS algorithm. Never switch it off! The only exception:
120  you have checked your set-up including particular physics initialization
121  with the substantially large sample and you submit large production. */
122  static void setStopAtCriticalError(bool stop);
123 
125  static void initializeKinematicCorrections(int flag) { phcork_(&flag); }
126 
131  static void forceMassFrom4Vector(bool flag) { massFrom4Vector=flag; }
132 
139  static void forceMassFromEventRecord(int pdgid);
140 
147  static void forceMass(int pdgid, double mass);
148 
151 
152 public:
154  static bool isSuppressed;
155 
157  static bool massFrom4Vector;
158 
160  static vector<vector<int>* > *supBremList;
161 
163  static vector<vector<int>* > *forceBremList;
164 
166  static vector<pair<int,double>* > *forceMassList;
167 
169  static vector<int > *ignoreStatusCodeList;
170 
173 
176 
178  static bool meCorrectionWtForZ;
179 
181  static bool meCorrectionWtForW;
182 
185 
188 
190  static double (*randomDouble)();
191 public:
193  Photos& getInstance() { return _instance; }
194 private:
195  /* Singleton: only one instance allowed.
196  Constructor sets default values of PHOTOS parameters */
197  Photos();
198  ~Photos() {}
199  Photos(const Photos&);
200  Photos& operator=(const Photos&);
202 };
203 
204 } // namespace Photospp
205 #endif
206 
static vector< int > * ignoreStatusCodeList
Definition: Photos.h:169
static Photos _instance
Definition: Photos.h:201
static void setSeed(int s1, int s2)
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
PndPidCorrelator * corr
Photos & operator=(const Photos &)
Photos & getInstance()
Definition: Photos.h:193
static void initialize()
Definition: Photos.cxx:48
static bool isStatusCodeIgnored(int status)
Definition: Photos.cxx:333
static void forceMassFromEventRecord(int pdgid)
Definition: Photos.cxx:388
static vector< vector< int > * > * forceBremList
Definition: Photos.h:163
static void setInfraredCutOff(double cut_off)
Definition: Photos.h:85
static vector< vector< int > * > * supBremList
Definition: Photos.h:160
struct @21 phokey_
static void forceMass(int pdgid, double mass)
Definition: Photos.cxx:394
static void ignoreParticlesOfStatus(int status)
Definition: Photos.cxx:302
static bool meCorrectionWtForScalar
Definition: Photos.h:175
static void suppressBremForDecay(int count, int motherID,...)
Definition: Photos.cxx:225
static bool massFrom4Vector
Definition: Photos.h:157
TGeoVolume * top
Double_t p
Definition: anasim.C:58
static vector< pair< int, double > * > * forceMassList
Definition: Photos.h:166
Definition: Log.h:30
static void forceBremForDecay(int count, int motherID,...)
Definition: Photos.cxx:257
static void initializeKinematicCorrections(int flag)
Definition: Photos.h:125
static const int DAT_YEAR
Definition: Photos.h:32
static double(* randomDouble)()
Definition: Photos.h:190
static void createHistoryEntries(bool flag, int status)
Definition: Photos.cxx:289
static bool isSuppressed
Definition: Photos.h:154
static void setInterference(bool interference)
Definition: Photos.h:91
static void setExponentiation(bool expo)
Definition: Photos.cxx:349
static void setCorrectionWtForW(bool corr)
Definition: Photos.h:100
static void setStopAtCriticalError(bool stop)
Definition: Photos.cxx:376
static void setMomentumConservationThreshold(double threshold)
Definition: Photos.h:150
static void processParticle(PhotosParticle *p)
Definition: Photos.cxx:212
void phcork_(int *modcor)
static void forceMassFrom4Vector(bool flag)
Definition: Photos.h:131
static void setMeCorrectionWtForW(bool corr)
Definition: Photos.cxx:362
Abstract base class for particle in the event. This class also handles boosting.
static void forceBremForBranch(int count, int motherID,...)
Definition: Photos.cxx:273
static double momentum_conservation_threshold
Definition: Photos.h:172
double threshold
static void processBranch(PhotosParticle *p)
Definition: Photos.cxx:218
static void suppressBremForBranch(int count, int motherID,...)
Definition: Photos.cxx:241
static void setMeCorrectionWtForScalar(bool corr)
Definition: Photos.cxx:371
static void setDoubleBrem(bool doub)
Definition: Photos.h:94
static void setMeCorrectionWtForZ(bool corr)
Definition: Photos.cxx:367
static void iniInfo()
Definition: Photos.cxx:170
static void setTopProcessRadiation(bool top)
Definition: Photos.h:115
static void setQuatroBrem(bool quatroBrem)
Definition: Photos.h:97
static void suppressAll()
Definition: Photos.h:54
int count
static bool meCorrectionWtForW
Definition: Photos.h:181
struct @20 phocop_
double alpha
Definition: f_Init.h:9
static void setRandomGenerator(double(*gen)())
Definition: Photos.cxx:343
static void setSeed(int iseed1, int iseed2)
Definition: Photos.h:79
static int historyEntriesStatus
Definition: Photos.h:187
static const int DAT_DAY
Definition: Photos.h:32
static void deIgnoreParticlesOfStatus(int status)
Definition: Photos.cxx:319
static const int VER_MAJOR
Definition: Photos.h:31
static void setAlphaQED(double alpha)
Definition: Photos.h:88
int status[10]
Definition: f_Init.h:28
static bool isCreateHistoryEntries
Definition: Photos.h:184