Belle II Software  release-05-01-25
Teegg.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2015 Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Torben Ferber *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <mdst/dataobjects/MCParticleGraph.h>
14 #include <TLorentzRotation.h>
15 
16 namespace Belle2 {
27  class Teegg {
28  public:
29 
33  Teegg();
34 
36  ~Teegg();
37 
39  void setDefaultSettings();
40 
44  void setVACPOL(const std::string& vacpol = "HLMNT") {m_sVACPOL = vacpol;}
45 
49  void setTEVETO(double teveto = 666.66) { m_TEVETO = teveto; }
50 
54  void setTEMIN(double temin = 666.66) { m_TEMIN = temin; }
55 
59  void setTGMIN(double tgmin = 666.66) { m_TGMIN = tgmin; }
60 
64  void setTGVETO(double tgveto = 666.66) { m_TGVETO = tgveto; }
65 
69  void setEEMIN(double eemin = 666.66) { m_EEMIN = eemin; }
70 
74  void setEGMIN(double egmin = 666.66) { m_EGMIN = egmin; }
75 
79  void setPEGMIN(double pegmin = 666.66) { m_PEGMIN = pegmin; }
80 
84  void setEEVETO(double eeveto = 666.66) { m_EEVETO = eeveto; }
85 
89  void setEGVETO(double egveto = 666.66) { m_EGVETO = egveto; }
90 
94  void setPHVETO(double phveto = 666.66) { m_PHVETO = phveto; }
95 
99  void setCUTOFF(double cutoff = 666.66) { m_CUTOFF = cutoff; }
100 
104  void setEPS(double eps = 666.66) { m_EPS = eps; }
105 
109  void setFRAPHI(double fraphi = 666.66) { m_FRAPHI = fraphi; }
110 
114  void setEPSPHI(double epsphi = 666.66) { m_EPSPHI = epsphi; }
115 
119  void setWGHT1M(double wght1m = 666.66) { m_WGHT1M = wght1m; }
120 
124  void setWGHTMX(double wghtmx = 666.66) { m_WGHTMX = wghtmx; }
125 
129  void setRADCOR(const std::string& radcor = "NONE") {m_sRADCOR = radcor;}
130 
134  void setCONFIG(const std::string& config = "NONE") {m_sCONFIG = config;}
135 
139  void setMATRIX(const std::string& matrix = "NONE") {m_sMATRIX = matrix;}
140 
144  void setMTRXGG(const std::string& mtrxgg = "NONE") {m_sMTRXGG = mtrxgg;}
145 
149  void setUNWGHT(int unwght = 1) { m_UNWGHT = unwght; }
150 
154  void setCMSEnergy(double cmsEnergy) { m_cmsEnergy = cmsEnergy; }
155 
156  void init();
161  void initExtraInfo();
162 
166  void generateEvent(MCParticleGraph& mcGraph, TVector3 vertex, TLorentzRotation boost);
167 
170  double getT() {return m_t;};
171 
174  double getW2() {return m_w2;};
175 
178  double getWeight() {return m_weight;};
179 
184  void term();
185 
186  protected:
187  double m_pi;
188  double m_conversionFactor;
189  double m_alphaQED0;
190  double m_massElectron;
192  double m_cmsEnergy;
194  double m_TEVETO;
195  double m_TEMIN;
196  double m_TGMIN;
197  double m_TGVETO;
198  double m_EEMIN;
199  double m_EGMIN;
200  double m_PEGMIN;
201  double m_EEVETO;
202  double m_EGVETO;
203  double m_PHVETO;
204  double m_CUTOFF;
205  double m_EPS;
206  double m_FRAPHI;
207  double m_EPSPHI;
208  double m_WGHT1M;
209  double m_WGHTMX;
211  int m_VACPOL;
212  int m_RADCOR;
213  int m_CONFIG;
214  int m_MATRIX;
215  int m_MTRXGG;
216  std::string m_sVACPOL;
217  std::string m_sRADCOR;
218  std::string m_sCONFIG;
219  std::string m_sMATRIX;
220  std::string m_sMTRXGG;
221  int m_UNWGHT;
223  double m_t;
224  double m_w2;
225  double m_weight;
226  double m_vp2;
230 
238  void storeParticle(MCParticleGraph& mcGraph, const double* mom, int pdg, TVector3 vertex, TLorentzRotation boost,
239  bool isVirtual = false, bool isInitial = false);
240 
241  private:
242 
243  int m_npar[100];
244  double m_xpar[100];
245  };
247 }
248 
249 
Belle2::Teegg::setUNWGHT
void setUNWGHT(int unwght=1)
set logical variable.
Definition: Teegg.h:157
Belle2::Teegg::m_npar
int m_npar[100]
Integer parameters for Teegg.
Definition: Teegg.h:251
Belle2::Teegg::m_UNWGHT
int m_UNWGHT
logical variable.
Definition: Teegg.h:229
Belle2::Teegg::m_WGHTMX
double m_WGHTMX
maximum weight for the trial events
Definition: Teegg.h:217
Belle2::Teegg::m_cmsEnergy
double m_cmsEnergy
CMS Energy = 2*Ebeam [GeV].
Definition: Teegg.h:200
Belle2::Teegg::setEPS
void setEPS(double eps=666.66)
set param.
Definition: Teegg.h:112
Belle2::Teegg::m_sCONFIG
std::string m_sCONFIG
specifies the event configuration (EGAMMA GAMMA or ETRON)
Definition: Teegg.h:226
Belle2::Teegg::m_CONFIG
int m_CONFIG
specifies the event configuration (EGAMMA GAMMA or ETRON)
Definition: Teegg.h:221
Belle2::Teegg::getWeight
double getWeight()
returns weight.
Definition: Teegg.h:186
Belle2::Teegg::applySettings
void applySettings()
Apply the settings to the internal Fortran generator.
Definition: Teegg.cc:215
Belle2::Teegg::m_EEVETO
double m_EEVETO
minimum energy to veto(gamma config with hard rad corr)
Definition: Teegg.h:209
Belle2::Teegg::m_PEGMIN
double m_PEGMIN
minimum phi sep of e-gamma (egamma config with hard rad corr)
Definition: Teegg.h:208
Belle2::MCParticleGraph
Class to build, validate and sort a particle decay chain.
Definition: MCParticleGraph.h:48
Belle2::Teegg::m_xpar
double m_xpar[100]
Double parameters for Teegg.
Definition: Teegg.h:252
Belle2::Teegg::m_EPSPHI
double m_EPSPHI
param.
Definition: Teegg.h:215
Belle2::Teegg::m_TEVETO
double m_TEVETO
maximum theta of e+ in final state (in radians)
Definition: Teegg.h:202
Belle2::Teegg::setWGHT1M
void setWGHT1M(double wght1m=666.66)
set maximum weight for generation of QP0, cos(theta QP)
Definition: Teegg.h:127
Belle2::Teegg::setRADCOR
void setRADCOR(const std::string &radcor="NONE")
specifies radiative correction (NONE SOFT or HARD)
Definition: Teegg.h:137
Belle2::Teegg::setEGVETO
void setEGVETO(double egveto=666.66)
set minimum energy to veto(etron/gamma config with hard rad corr)
Definition: Teegg.h:97
Belle2::Teegg::getT
double getT()
returns kinematic variable T.
Definition: Teegg.h:178
Belle2::Teegg::setWGHTMX
void setWGHTMX(double wghtmx=666.66)
set maximum weight for the trial events
Definition: Teegg.h:132
Belle2::Teegg::setTEMIN
void setTEMIN(double temin=666.66)
set minimum angle between the e- and -z axis (egamma conf.
Definition: Teegg.h:62
Belle2::Teegg::m_MTRXGG
int m_MTRXGG
specifies which eegg matrix element (EPADC BEEGG or MEEGG)
Definition: Teegg.h:223
Belle2::Teegg::setCONFIG
void setCONFIG(const std::string &config="NONE")
specifies the event configuration (EGAMMA GAMMA or ETRON)
Definition: Teegg.h:142
Belle2::Teegg::m_CUTOFF
double m_CUTOFF
cutoff energy for radiative corrections (in CM frame)
Definition: Teegg.h:212
Belle2::Teegg::setTEVETO
void setTEVETO(double teveto=666.66)
set maximum theta of e+ in final state (in radians)
Definition: Teegg.h:57
Belle2::Teegg::m_t
double m_t
T=-Q2.
Definition: Teegg.h:231
Belle2::Teegg::m_FRAPHI
double m_FRAPHI
fraction of time phi_ks is generated with peak(hard rad corr)
Definition: Teegg.h:214
Belle2::Teegg::m_pi
double m_pi
pi=3.1415....
Definition: Teegg.h:195
Belle2::Teegg::init
void init()
Initialize generator.
Definition: Teegg.cc:154
Belle2::Teegg::setCMSEnergy
void setCMSEnergy(double cmsEnergy)
Sets the CMS energy.
Definition: Teegg.h:162
Belle2::Teegg::m_vp2
double m_vp2
vacuum polarization squared (multiply with this to correcty for VP)
Definition: Teegg.h:234
Belle2::Teegg::m_EPS
double m_EPS
param.
Definition: Teegg.h:213
Belle2::Teegg::setPHVETO
void setPHVETO(double phveto=666.66)
set minimum phi sep to veto(etron/gamma config with hard rad corr)
Definition: Teegg.h:102
Belle2::Teegg::setTGVETO
void setTGVETO(double tgveto=666.66)
set maximum angle between the gamma and -z axis(etron conf.
Definition: Teegg.h:72
Belle2::Teegg::setMTRXGG
void setMTRXGG(const std::string &mtrxgg="NONE")
specifies which eegg matrix element (EPADC BEEGG or MEEGG)
Definition: Teegg.h:152
Belle2::Teegg::m_sVACPOL
std::string m_sVACPOL
vacuum polarization: off, nsk (Novosibirsk) or hlmnt (Teubner).
Definition: Teegg.h:224
Belle2::Teegg::m_EGMIN
double m_EGMIN
minimum energy of the gamma (egamma & gamma configurations)
Definition: Teegg.h:207
Belle2::Teegg::m_PHVETO
double m_PHVETO
minimum phi sep to veto(etron/gamma config with hard rad corr
Definition: Teegg.h:211
Belle2::Teegg::setFRAPHI
void setFRAPHI(double fraphi=666.66)
set fraction of time phi_ks is generated with peak(hard rad corr)
Definition: Teegg.h:117
Belle2::Teegg::m_alphaQED0
double m_alphaQED0
QED coupling constant at Q=0.
Definition: Teegg.h:197
Belle2::Teegg::setPEGMIN
void setPEGMIN(double pegmin=666.66)
set minimum phi sep of e-gamma (egamma config with hard rad corr)
Definition: Teegg.h:87
Belle2::Teegg::setVACPOL
void setVACPOL(const std::string &vacpol="HLMNT")
specifies which vacuum polarization code (NOT IMPLEMENTED YET)
Definition: Teegg.h:52
Belle2::Teegg::m_WGHT1M
double m_WGHT1M
maximum weight for generation of QP0, cos(theta QP)
Definition: Teegg.h:216
Belle2::Teegg::setEEVETO
void setEEVETO(double eeveto=666.66)
set minimum energy to veto(gamma config with hard rad corr)
Definition: Teegg.h:92
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::Teegg::m_TEMIN
double m_TEMIN
minimum angle between the e- and -z axis (egamma conf.
Definition: Teegg.h:203
Belle2::Teegg::m_TGVETO
double m_TGVETO
maximum angle between the gamma and -z axis(etron conf.
Definition: Teegg.h:205
Belle2::Teegg::setEGMIN
void setEGMIN(double egmin=666.66)
set minimum energy of the gamma (egamma & gamma configurations)
Definition: Teegg.h:82
Belle2::Teegg::Teegg
Teegg()
Constructor.
Definition: Teegg.cc:89
Belle2::Teegg::m_EEMIN
double m_EEMIN
minimum energy of the e- (egamma & etron configurations)
Definition: Teegg.h:206
Belle2::Teegg::m_TGMIN
double m_TGMIN
minimum angle between the gamma and -z axis
Definition: Teegg.h:204
Belle2::Teegg::setEEMIN
void setEEMIN(double eemin=666.66)
set minimum energy of the e- (egamma & etron configurations)
Definition: Teegg.h:77
Belle2::Teegg::~Teegg
~Teegg()
Destructor.
Definition: Teegg.cc:99
Belle2::Teegg::m_w2
double m_w2
W2.
Definition: Teegg.h:232
Belle2::Teegg::m_RADCOR
int m_RADCOR
specifies radiative correction (NONE SOFT or HARD)
Definition: Teegg.h:220
Belle2::Teegg::setDefaultSettings
void setDefaultSettings()
Sets the default settings for the TEEGG Fortran generator.
Definition: Teegg.cc:104
Belle2::Teegg::m_VACPOL
int m_VACPOL
vacuum polarization: off, nsk (Novosibirsk) or hlmnt (Teubner).
Definition: Teegg.h:219
Belle2::Teegg::m_massElectron
double m_massElectron
muon mass.
Definition: Teegg.h:198
Belle2::Teegg::setEPSPHI
void setEPSPHI(double epsphi=666.66)
set param.
Definition: Teegg.h:122
Belle2::Teegg::m_MATRIX
int m_MATRIX
specifies which eeg matrix element (BK BKM2 TCHAN or EPA)
Definition: Teegg.h:222
Belle2::Teegg::getW2
double getW2()
returns kinematic variable W2.
Definition: Teegg.h:182
Belle2::Teegg::m_conversionFactor
double m_conversionFactor
Conversion factor for hbarc to nb.
Definition: Teegg.h:196
Belle2::Teegg::m_sRADCOR
std::string m_sRADCOR
specifies radiative correction (NONE SOFT or HARD)
Definition: Teegg.h:225
Belle2::Teegg::generateEvent
void generateEvent(MCParticleGraph &mcGraph, TVector3 vertex, TLorentzRotation boost)
Generates one single event.
Definition: Teegg.cc:160
Belle2::Teegg::storeParticle
void storeParticle(MCParticleGraph &mcGraph, const double *mom, int pdg, TVector3 vertex, TLorentzRotation boost, bool isVirtual=false, bool isInitial=false)
Store a single generated particle into the MonteCarlo graph.
Definition: Teegg.cc:282
Belle2::Teegg::setTGMIN
void setTGMIN(double tgmin=666.66)
set minimum angle between the gamma and -z axis
Definition: Teegg.h:67
Belle2::Teegg::m_EGVETO
double m_EGVETO
minimum energy to veto(etron/gamma config with hard rad corr)
Definition: Teegg.h:210
Belle2::Teegg::m_sMTRXGG
std::string m_sMTRXGG
specifies which eegg matrix element (EPADC BEEGG or MEEGG)
Definition: Teegg.h:228
Belle2::Teegg::initExtraInfo
void initExtraInfo()
Initializes the extra info.
Definition: Teegg.cc:148
Belle2::Teegg::m_weight
double m_weight
weight per event
Definition: Teegg.h:233
Belle2::Teegg::setMATRIX
void setMATRIX(const std::string &matrix="NONE")
specifies which eeg matrix element (BK BKM2 TCHAN or EPA)
Definition: Teegg.h:147
Belle2::Teegg::setCUTOFF
void setCUTOFF(double cutoff=666.66)
set cutoff energy for radiative corrections (in CM frame)
Definition: Teegg.h:107
Belle2::Teegg::m_sMATRIX
std::string m_sMATRIX
specifies which eeg matrix element (BK BKM2 TCHAN or EPA)
Definition: Teegg.h:227
Belle2::Teegg::term
void term()
Terminates the generator.
Definition: Teegg.cc:198