PandaRoot
ChiGenContext.h
Go to the documentation of this file.
1 /*
2  * @author Alexey Luchinsky
3  * @author Stanislav Poslavsky (stvlpos (at) mail.ru)
4  */
5 
6 #ifndef CHIGENCONTEXT_H
7 #define CHIGENCONTEXT_H
8 
9 #include <iostream>
10 #include <stdio.h>
11 
12 //---------------------------DEBUG--------------------------------------------//
13 
14 #define CHIGEN_LOG_FILE "ChiGen.log"
15 
16 //---------------------------EVTGEN & PYTHIA----------------------------------//
17 #include "ChiGenRandomEngine.h"
18 #include "Pythia.h"
19 #include "EvtGen/EvtGen.hh"
20 #include "EvtGenExternal/EvtExternalGenList.hh"
21 #include "EvtGenBase/EvtAbsRadCorr.hh"
22 #include "EvtGenBase/EvtDecayBase.hh"
23 
24 //---------------------------PARTICLES----------------------------------------//
25 /*
26  * Particles properties
27  */
28 
29 #define PROTON_MASS 1.0
30 #define R20_CHI 0.075
31 #define CHI1_MASS 3.51
32 #define CHI2_MASS 3.556
33 #define X3872_MASS 3.872
34 
35 #define GAMMA_PDG_ID 22
36 #define E_PDG_ID 11
37 #define MU_PDG_ID 13
38 #define PSI_PDG_ID 443
39 
40 #define CHI1_PDG_ID 20443
41 #define CHI1_STRING "chi_c1"
42 
43 #define X3872_PDG_ID 9920443
44 #define X3872_STRING "X_1(3872)"
45 
46 #define CHI2_PDG_ID 445
47 #define CHI2_STRING "chi_c2"
48 
49 namespace chigen {
54 extern double elapsedTimeSeconds();
59 extern long get_seed();
60 
61 namespace random {
69 extern Pythia8::Rndm *pythia_random_engine;
70 } // namespace random
71 
72 namespace evtgen {
76 extern std::string EvtGenPDL;
80 extern std::string EvtGenDecFile;
84 extern std::string EvtGenChiDecFile;
88 extern bool evt_gen_is_loaded;
92 extern EvtGen *evt_gen;
97 extern void read_dec_file(char *dec_file_name);
101 extern void ensure_evt_gen_is_inialized();
105 extern std::string chi_c1_str, chi_c2_str, x3872_str;
110 } // namespace evtgen
111 
117 extern EvtId pdgId2EvtId(int pdgId);
118 
124 extern bool isPWaveCharmonia(int pdgCode);
125 
131 extern bool isCharmonia(int pdgCode);
132 
133 namespace ostreams {
137 extern bool suppress_all_cout;
141 extern bool write_log_file;
145 extern bool suppress_pandaroot;
149 extern bool suppress_pandaroot_cout;
153 extern bool verbose_mode;
154 
158 extern std::ostream *log_file;
162 extern std::ostream *terminal;
166 extern std::ostream *tee_stream;
170 extern std::ostream *chigen_cout;
171 
172 #define __chigen_cout__ (*chigen::ostreams::chigen_cout) << std::fixed << "[" << chigen::elapsedTimeSeconds() << " ChiGen] "
173 #define __chigen_direct_cout__ (*chigen::ostreams::chigen_cout)
174 } // namespace ostreams
175 
176 namespace pythia {
180 extern Pythia8::Pythia *pythia;
184 extern Pythia8::PDF *pdf;
185 } // namespace pythia
186 
190 extern void ensure_chigen_is_initialized();
194 extern void initialize();
200 extern void initialize(long seed);
201 } // namespace chigen
202 
203 #endif /* CHIGENCONTEXT_H */
bool isPWaveCharmonia(int pdgCode)
Pythia8::PDF * pdf
void ensure_chigen_is_initialized()
EvtGen * evt_gen
bool isCharmonia(int pdgCode)
Definition: ChiGen.h:12
Pythia8::Rndm * pythia_random_engine
void ensure_evt_gen_is_inialized()
bool suppress_pandaroot_cout
std::string x3872_str
std::ostream * chigen_cout
std::string EvtGenPDL
EvtId pdgId2EvtId(int pdgId)
void read_dec_file(char *dec_file_name)
void initialize()
std::ostream * tee_stream
std::string chi_c2_str
std::ostream * terminal
double elapsedTimeSeconds()
std::string chi_c1_str
long get_seed()
bool evt_gen_is_loaded
std::string EvtGenChiDecFile
ChiGenRandomEngine * random_engine
std::ostream * log_file
std::string EvtGenDecFile
Pythia8::Pythia * pythia