1 #ifndef _Tauola_h_included_
2 #define _Tauola_h_included_
18 #include "TauolaParticle.h"
20 #include "f_Variables.h"
32 static const int NS1=100,NS2=100,NS3=100,NCOS=21;
35 static enum MomentumUnits { DEFAULT_MOMENTUM=-1, MEV, GEV } momentumUnit;
36 static enum LengthUnits { DEFAULT_LENGTH =-1, MM , CM } lengthUnit;
45 enum { All=0, ElectronMode, MuonMode, PionMode,
46 RhoMode, A1Mode, KMode, KStarMode };
61 void setAll(
bool flag) { GAMMA=Z0=HIGGS=HIGGS_H=HIGGS_A=HIGGS_PLUS=HIGGS_MINUS=W_PLUS=W_MINUS=flag; }
63 static Particles spin_correlation;
81 static void setSeed(
int ijklin,
int ntotin,
int ntot2n ) { rmarin_(&ijklin,&ntotin,&ntot2n); }
142 static void setTaukle(
double bra1,
double brk0,
double brk0b,
double brks);
144 static double getHiggsScalarPseudoscalarMixingAngle();
158 static int getHelPlus();
160 static int getHelMinus();
162 static double getEWwt();
164 static double getEWwt0();
166 static void setEWwt(
double wt,
double wt0);
168 static void setHelicities(
int Minus,
int Plus);
170 static void setEtaK0sPi(
int eta,
int k,
int pi);
172 static void getBornKinematics(
int *incoming_pdg_id,
int *outgoing_pdg_id,
double *invariant_mass_squared,
double *cosTheta);
174 static void summary();
178 static double table11A[NS1][NCOS][4][4],table1A[NS1][NCOS][4][4],table2A[NS1][NCOS][4][4];
179 static double wtable11A[NS1][NCOS],wtable1A[NS1][NCOS],wtable2A[NS1][NCOS];
180 static double w0table11A[NS1][NCOS],w0table1A[NS1][NCOS],w0table2A[NS1][NCOS];
182 static double table11B[NS2][NCOS][4][4],table1B[NS2][NCOS][4][4],table2B[NS2][NCOS][4][4];
183 static double wtable11B[NS2][NCOS],wtable1B[NS2][NCOS],wtable2B[NS2][NCOS];
184 static double w0table11B[NS2][NCOS],w0table1B[NS2][NCOS],w0table2B[NS2][NCOS];
186 static double table11C[NS3][NCOS][4][4],table1C[NS3][NCOS][4][4],table2C[NS3][NCOS][4][4];
187 static double wtable11C[NS3][NCOS],wtable1C[NS3][NCOS],wtable2C[NS3][NCOS];
188 static double w0table11C[NS3][NCOS],w0table1C[NS3][NCOS],w0table2C[NS3][NCOS];
189 static double sminA,smaxA,sminB,smaxB,sminC,smaxC;
194 static double tau_lifetime;
195 static double momentum_conservation_threshold;
198 static int buf_incoming_pdg_id, buf_outgoing_pdg_id;
199 static double buf_invariant_mass_squared, buf_cosTheta;
200 static double buf_R[4][4];
203 static double (*randomDouble)();
217 static void fill_val(
int beg,
int end,
double* array,
double value);
231 static bool m_is_initialized;
233 static int m_firstDecayMode;
234 static int m_secondDecayMode;
236 static double m_rad_cut_off;
237 static double m_iniphy;
238 static double m_higgs_scalar_pseudoscalar_mix;
239 static int m_higgs_scalar_pseudoscalar_pdg;
240 static double m_wtEW;
241 static double m_wtEW0;
242 static int m_helPlus;
243 static int m_helMinus;
Abstract base class for containing the event information.
Abstract base class for particle in the event. This class also handles boosting.
Controls the configuration, initialization of Tauola.
static void setOppositeParticleDecayMode(int secondDecayMode)
static void setSameParticleDecayMode(int firstDecayMode)
static void setHiggsScalarPseudoscalarMixingAngle(double angle)
static bool getIsTauolaIni()
static bool isUsingDecayOne()
static void setNewCurrents(int mode)
static double particleCharge(int idhep)
static void setRadiationCutOff(double rad_cut_off)
static void setTauBr(int i, double value)
static const double * getDecayOnePolarization()
static void setRadiation(bool rad)
static void setUnits(MomentumUnits m, LengthUnits l)
static double m_decay_one_polarization[3]
static void setInitialisePhy(double iniphy)
static void fill_val(int beg, int end, double *array, double value)
static void setInitializePhy(double iniphy)
static int getHiggsScalarPseudoscalarPDG()
static void setRandomGenerator(double(*gen)())
static bool m_is_using_decay_one
static bool isUsingDecayOneBoost()
static void decayOneBoost(TauolaParticle *mother, TauolaParticle *target)
static void setDecayingParticle(int pdg_id)
static void setBoostRoutine(void(*boost)(TauolaParticle *, TauolaParticle *))
static double defaultRandomGenerator()
static void setTauLifetime(double t)
static void decayOne(TauolaParticle *tau, bool undecay=false, double polx=0, double poly=0, double polz=0)
static void setHiggsScalarPseudoscalarPDG(int pdg_id)
static void(* m_decay_one_boost_routine)(TauolaParticle *, TauolaParticle *)
static void setSeed(int ijklin, int ntotin, int ntot2n)
static double getTauMass()
static int getDecayingParticle()