Belle II Software  release-05-02-19
Phokhara.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 #ifndef PHOKHARA_H
12 #define PHOKHARA_H
13 
14 #include <mdst/dataobjects/MCParticleGraph.h>
15 #include <TLorentzRotation.h>
16 #include <utility>
17 
18 namespace Belle2 {
29  class Phokhara {
30  public:
31 
35  Phokhara();
36 
38  ~Phokhara();
39 
41  void setDefaultSettings();
42 
46  void setLO(int LO) { m_LO = LO; }
47 
51  void setNLO(int NLO) { m_NLO = NLO; }
52 
56  void setQED(int QED) { m_QED = QED; }
57 
61  void setNLOIFI(int NLOIFI) { m_NLOIFI = NLOIFI; }
62 
66  void setAlpha(int alpha) { m_alpha = alpha; }
67 
71  void setPionFF(int pionff) { m_pionff = pionff; }
72 
76  void setKaonFF(int kaonff) { m_kaonff = kaonff; }
77 
81  void setPionStructure(int pionstructure) { m_pionstructure = pionstructure; }
82 
86  void setNarrowRes(int narres) { m_narres = narres; }
87 
91  void setProtonFF(int protonff) { m_protonff = protonff; }
92 
96  void setScatteringAngleRangePhoton(std::pair<double, double> angleRange) { m_ScatteringAngleRangePhoton = angleRange; }
97 
101  void setScatteringAngleRangeFinalStates(std::pair<double, double> angleRange) { m_ScatteringAngleRangeFinalStates = angleRange; }
102 
106  void setMinInvMassHadronsGamma(double MinInvMassHadronsGamma) { m_MinInvMassHadronsGamma = MinInvMassHadronsGamma; }
107 
111  void setm_MinInvMassHadrons(double MinInvMassHadrons) { m_MinInvMassHadrons = MinInvMassHadrons; }
112 
117  void setForceMinInvMassHadronsCut(bool forceMinInvMassHadronsCut)
118  { m_ForceMinInvMassHadronsCut = forceMinInvMassHadronsCut; }
119 
123  void setm_MaxInvMassHadrons(double MaxInvMassHadrons) { m_MaxInvMassHadrons = MaxInvMassHadrons; }
124 
128  void setMinEnergyGamma(double MinEnergyGamma) { m_MinEnergyGamma = MinEnergyGamma; }
129 
133  void setCMSEnergy(double cmsEnergy) { m_cmsEnergy = cmsEnergy; }
134 
138  void setNSearchMax(int nSearchMax) { m_nSearchMax = nSearchMax; }
139 
143  void setEpsilon(double epsilon) { m_epsilon = epsilon; }
144 
148  void setFinalState(int finalState) { m_finalState = finalState; }
149 
153  void setReplaceMuonsByVirtualPhoton(bool replaceMuonsByVirtualPhoton)
154  { m_replaceMuonsByVirtualPhoton = replaceMuonsByVirtualPhoton; }
155 
159  void setNMaxTrials(int nMaxTrials) { m_nMaxTrials = nMaxTrials; }
160 
164  void init(const std::string& paramFile);
165 
171  void generateEvent(MCParticleGraph& mcGraph, TVector3 vertex, TLorentzRotation boost);
172 
177  void term();
178 
179  protected:
180  //constants (unused in PHOKHARA yet!!!!!!!!!!!!!!)
181  double m_pi;
182  double m_conversionFactor;
183  double m_alphaQED0;
184  double m_massElectron;
185  double m_massMuon;
186  double m_massW;
187  double m_massZ;
188  double m_widthZ;
190  //PHOKHARA
195  double m_cmsEnergy;
196  double m_epsilon;
197  int m_LO;
198  int m_NLO;
199  int m_QED;
200  int m_NLOIFI;
201  int m_alpha;
202  int m_pionff;
204  int m_kaonff;
205  int m_narres;
208  std::pair<double, double> m_ScatteringAngleRangePhoton;
209  std::pair<double, double> m_ScatteringAngleRangeFinalStates;
220 
230  void storeParticle(MCParticleGraph& mcGraph, const double* mom, int pdg, TVector3 vertex, TLorentzRotation boost,
231  bool isVirtual = false, bool isInitial = false);
232 
233  private:
234 
235  int m_npar[100];
236  double m_xpar[100];
237  };
239 }
240 
241 
242 #endif /* PHOKHARA_H */
Belle2::Phokhara::setScatteringAngleRangePhoton
void setScatteringAngleRangePhoton(std::pair< double, double > angleRange)
Sets the theta scattering angle range for the photon.
Definition: Phokhara.h:104
Belle2::Phokhara::m_massZ
double m_massZ
Z mass [GeV].
Definition: Phokhara.h:195
Belle2::Phokhara::~Phokhara
~Phokhara()
Destructor.
Definition: Phokhara.cc:89
Belle2::Phokhara::applySettings
void applySettings()
Apply the settings to the internal Fortran generator.
Definition: Phokhara.cc:277
Belle2::Phokhara::m_alpha
int m_alpha
vacuum polarization switch: off (0), on (1,[by Fred Jegerlehner]), on (2,[by Thomas Teubner])
Definition: Phokhara.h:209
Belle2::Phokhara::m_MinInvMassHadronsGamma
double m_MinInvMassHadronsGamma
minimum mass of the hadron-gamma system [GeV^2]
Definition: Phokhara.h:218
Belle2::Phokhara::setFinalState
void setFinalState(int finalState)
Sets final state.
Definition: Phokhara.h:156
Belle2::Phokhara::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: Phokhara.cc:318
Belle2::Phokhara::m_ScatteringAngleRangePhoton
std::pair< double, double > m_ScatteringAngleRangePhoton
Minimal/Maximal photon angle/missing momentum angle.
Definition: Phokhara.h:216
Belle2::Phokhara::setMinEnergyGamma
void setMinEnergyGamma(double MinEnergyGamma)
Sets the minimal photon energy/missing energy.
Definition: Phokhara.h:136
Belle2::Phokhara::setScatteringAngleRangeFinalStates
void setScatteringAngleRangeFinalStates(std::pair< double, double > angleRange)
Sets the theta scattering angle range for the final state particles.
Definition: Phokhara.h:109
Belle2::Phokhara::Phokhara
Phokhara()
Constructor.
Definition: Phokhara.cc:79
Belle2::Phokhara::term
void term()
Terminates the generator.
Definition: Phokhara.cc:250
Belle2::MCParticleGraph
Class to build, validate and sort a particle decay chain.
Definition: MCParticleGraph.h:48
Belle2::Phokhara::generateEvent
void generateEvent(MCParticleGraph &mcGraph, TVector3 vertex, TLorentzRotation boost)
Generates one single event.
Definition: Phokhara.cc:173
Belle2::Phokhara::setReplaceMuonsByVirtualPhoton
void setReplaceMuonsByVirtualPhoton(bool replaceMuonsByVirtualPhoton)
Sets whether to replace muons by a virtual photon.
Definition: Phokhara.h:161
Belle2::Phokhara::m_pionff
int m_pionff
FF_pion: KS PionFormFactor(0),GS old (1),GS new (2)
Definition: Phokhara.h:210
Belle2::Phokhara::setNMaxTrials
void setNMaxTrials(int nMaxTrials)
Sets number of trials per event.
Definition: Phokhara.h:167
Belle2::Phokhara::m_nMaxTrials
int m_nMaxTrials
Events before loop is aborted.
Definition: Phokhara.h:201
Belle2::Phokhara::setDefaultSettings
void setDefaultSettings()
Sets the default settings for the BhWide Fortran generator.
Definition: Phokhara.cc:94
Belle2::Phokhara::m_pi
double m_pi
pi=3.1415....
Definition: Phokhara.h:189
Belle2::Phokhara::m_QED
int m_QED
ISR only(0), ISR+FSR(1), ISR+INT+FSR(2)
Definition: Phokhara.h:207
Belle2::Phokhara::setNarrowRes
void setNarrowRes(int narres)
Sets narrow resonances.
Definition: Phokhara.h:94
Belle2::Phokhara::setNLOIFI
void setNLOIFI(int NLOIFI)
Sets NLO options.
Definition: Phokhara.h:69
Belle2::Phokhara::m_npar
int m_npar[100]
Integer parameters for PHOKHARA.
Definition: Phokhara.h:243
Belle2::Phokhara::m_massElectron
double m_massElectron
muon mass.
Definition: Phokhara.h:192
Belle2::Phokhara::setLO
void setLO(int LO)
Sets LO correction mode.
Definition: Phokhara.h:54
Belle2::Phokhara::setCMSEnergy
void setCMSEnergy(double cmsEnergy)
Sets the CMS energy.
Definition: Phokhara.h:141
Belle2::Phokhara::setAlpha
void setAlpha(int alpha)
Sets alpha qed options.
Definition: Phokhara.h:74
Belle2::Phokhara::m_xpar
double m_xpar[100]
Double parameters for PHOKHARA.
Definition: Phokhara.h:244
Belle2::Phokhara::m_ForceMinInvMassHadronsCut
bool m_ForceMinInvMassHadronsCut
Force application of the above cut.
Definition: Phokhara.h:220
Belle2::Phokhara::m_NLO
int m_NLO
NLO, for 1ph only: off (0, default), on (1)
Definition: Phokhara.h:206
Belle2::Phokhara::m_ScatteringAngleRangeFinalStates
std::pair< double, double > m_ScatteringAngleRangeFinalStates
Minimal/Maximal pions(muons,nucleons,kaons) momentum angle.
Definition: Phokhara.h:217
Belle2::Phokhara::init
void init(const std::string &paramFile)
Initializes the generator.
Definition: Phokhara.cc:157
Belle2::Phokhara::setPionFF
void setPionFF(int pionff)
Sets pion formfactors.
Definition: Phokhara.h:79
Belle2::Phokhara::m_massMuon
double m_massMuon
electron mass.
Definition: Phokhara.h:193
Belle2::Phokhara::m_widthZ
double m_widthZ
Z width [GeV] (may be recalculated by EW library).
Definition: Phokhara.h:196
Belle2::Phokhara::m_nSearchMax
int m_nSearchMax
Events used to search maximum of differential cross section.
Definition: Phokhara.h:202
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::Phokhara::m_conversionFactor
double m_conversionFactor
Conversion factor for hbarc to nb.
Definition: Phokhara.h:190
Belle2::Phokhara::m_kaonff
int m_kaonff
FF_kaon: KaonFormFactor constrained(0), KaonFormFactor unconstrained(1) KaonFormFactor old(2)
Definition: Phokhara.h:212
Belle2::Phokhara::setNLO
void setNLO(int NLO)
Sets NLO mode.
Definition: Phokhara.h:59
Belle2::Phokhara::setMinInvMassHadronsGamma
void setMinInvMassHadronsGamma(double MinInvMassHadronsGamma)
Sets the minimal hadrons(muons)-gamma-inv mass squared.
Definition: Phokhara.h:114
Belle2::Phokhara::m_massW
double m_massW
W mass [GeV] for on shell sin2theta and GF.
Definition: Phokhara.h:194
Belle2::Phokhara::setForceMinInvMassHadronsCut
void setForceMinInvMassHadronsCut(bool forceMinInvMassHadronsCut)
Sets whether to force the minimal invariant mass squared cut.
Definition: Phokhara.h:125
Belle2::Phokhara::m_epsilon
double m_epsilon
Soft/hard photon separator in units of CMS/2., called 'w' in Phokhara.
Definition: Phokhara.h:204
Belle2::Phokhara::m_MaxInvMassHadrons
double m_MaxInvMassHadrons
maximum mass of the hadron system [GeV^2]
Definition: Phokhara.h:221
Belle2::Phokhara::m_finalState
int m_finalState
final state, called 'pion' in Phokhara, dont get confused.
Definition: Phokhara.h:199
Belle2::Phokhara::m_LO
int m_LO
LO: 1ph(0, default), Born: 0ph(1), only Born: 0ph(-1)
Definition: Phokhara.h:205
Belle2::Phokhara::m_NLOIFI
int m_NLOIFI
IFSNLO: no(0), yes(1)
Definition: Phokhara.h:208
Belle2::Phokhara::setPionStructure
void setPionStructure(int pionstructure)
Sets Pion Structure.
Definition: Phokhara.h:89
Belle2::Phokhara::setKaonFF
void setKaonFF(int kaonff)
Sets kaon formfactors.
Definition: Phokhara.h:84
Belle2::Phokhara::m_MinEnergyGamma
double m_MinEnergyGamma
minimum gamma energy [GeV]
Definition: Phokhara.h:222
Belle2::Phokhara::m_pionstructure
int m_pionstructure
for pi+pi- only: f0+f0(600): K+K- model(0), "no structure" model(1), no f0+f0(600)(2),...
Definition: Phokhara.h:211
Belle2::Phokhara::setm_MinInvMassHadrons
void setm_MinInvMassHadrons(double MinInvMassHadrons)
Sets the minimal inv.
Definition: Phokhara.h:119
Belle2::Phokhara::m_alphaQED0
double m_alphaQED0
QED coupling constant at Q=0.
Definition: Phokhara.h:191
Belle2::Phokhara::setm_MaxInvMassHadrons
void setm_MaxInvMassHadrons(double MaxInvMassHadrons)
Sets the maximal inv.
Definition: Phokhara.h:131
Belle2::Phokhara::m_replaceMuonsByVirtualPhoton
bool m_replaceMuonsByVirtualPhoton
Replace muons by a virtual photon.
Definition: Phokhara.h:200
Belle2::Phokhara::m_protonff
int m_protonff
ProtonFormFactor old(0), ProtonFormFactor new(1)
Definition: Phokhara.h:214
Belle2::Phokhara::setNSearchMax
void setNSearchMax(int nSearchMax)
Sets the number of events used to search maximum.
Definition: Phokhara.h:146
Belle2::Phokhara::m_cmsEnergy
double m_cmsEnergy
CMS Energy = 2*Ebeam [GeV].
Definition: Phokhara.h:203
Belle2::Phokhara::m_narres
int m_narres
narr_res: no narrow resonances (0), J/psi (1) and psi(2S) (2) only for m_finalState = 0,...
Definition: Phokhara.h:213
Belle2::Phokhara::m_MinInvMassHadrons
double m_MinInvMassHadrons
minimum mass of the hadron system [GeV^2]
Definition: Phokhara.h:219
Belle2::Phokhara::setEpsilon
void setEpsilon(double epsilon)
Sets soft/hard photon energy separator.
Definition: Phokhara.h:151
Belle2::Phokhara::setQED
void setQED(int QED)
Sets QED corrections.
Definition: Phokhara.h:64
Belle2::Phokhara::setProtonFF
void setProtonFF(int protonff)
Sets Proton formfactors.
Definition: Phokhara.h:99