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; }
81 static void setSeed(
int ijklin,
int ntotin,
int ntot2n ) { rmarin_(&ijklin,&ntotin,&ntot2n); }
137 static void setTauBr(
int i,
double value);
139 static void setTaukle(
double bra1,
double brk0,
double brk0b,
double brks);
141 static double getHiggsScalarPseudoscalarMixingAngle();
155 static int getHelPlus();
157 static int getHelMinus();
159 static double getEWwt();
161 static double getEWwt0();
163 static void setEWwt(
double wt,
double wt0);
165 static void setHelicities(
int Minus,
int Plus);
167 static void setEtaK0sPi(
int eta,
int k,
int pi);
169 static void getBornKinematics(
int *incoming_pdg_id,
int *outgoing_pdg_id,
double *invariant_mass_squared,
double *cosTheta);
171 static void summary();
175 static double table11A[NS1][NCOS][4][4],table1A[NS1][NCOS][4][4],table2A[NS1][NCOS][4][4];
176 static double wtable11A[NS1][NCOS],wtable1A[NS1][NCOS],wtable2A[NS1][NCOS];
177 static double w0table11A[NS1][NCOS],w0table1A[NS1][NCOS],w0table2A[NS1][NCOS];
179 static double table11B[NS2][NCOS][4][4],table1B[NS2][NCOS][4][4],table2B[NS2][NCOS][4][4];
180 static double wtable11B[NS2][NCOS],wtable1B[NS2][NCOS],wtable2B[NS2][NCOS];
181 static double w0table11B[NS2][NCOS],w0table1B[NS2][NCOS],w0table2B[NS2][NCOS];
183 static double table11C[NS3][NCOS][4][4],table1C[NS3][NCOS][4][4],table2C[NS3][NCOS][4][4];
184 static double wtable11C[NS3][NCOS],wtable1C[NS3][NCOS],wtable2C[NS3][NCOS];
185 static double w0table11C[NS3][NCOS],w0table1C[NS3][NCOS],w0table2C[NS3][NCOS];
186 static double sminA,smaxA,sminB,smaxB,sminC,smaxC;
191 static double tau_lifetime;
192 static double momentum_conservation_threshold;
195 static int buf_incoming_pdg_id, buf_outgoing_pdg_id;
196 static double buf_invariant_mass_squared, buf_cosTheta;
197 static double buf_R[4][4];
200 static double (*randomDouble)();
211 static double particleCharge(
int idhep);
214 static void fill_val(
int beg,
int end,
double* array,
double value);
217 static double defaultRandomGenerator();
222 static bool m_is_using_decay_one;
224 static double m_decay_one_polarization[3];
229 static int m_firstDecayMode;
230 static int m_secondDecayMode;
232 static double m_rad_cut_off;
233 static double m_iniphy;
234 static double m_higgs_scalar_pseudoscalar_mix;
235 static int m_higgs_scalar_pseudoscalar_pdg;
236 static double m_wtEW;
237 static double m_wtEW0;
238 static int m_helPlus;
239 static int m_helMinus;
static void setInitializePhy(double iniphy)
static void setNewCurrents(int mode)
static void setBoostRoutine(void(*boost)(TauolaParticle *, TauolaParticle *))
static void setOppositeParticleDecayMode(int secondDecayMode)
Abstract base class for containing the event information.
static void setHiggsScalarPseudoscalarPDG(int pdg_id)
static int getHiggsScalarPseudoscalarPDG()
static void setRadiationCutOff(double rad_cut_off)
static const double * getDecayOnePolarization()
Abstract base class for particle in the event. This class also handles boosting.
static bool isUsingDecayOneBoost()
static void setRadiation(bool rad)
static bool isUsingDecayOne()
static void setRandomGenerator(double(*gen)())
static void setTauBr(int i, double value)
static void setInitialisePhy(double iniphy)
static void decayOne(TauolaParticle *tau, bool undecay=false, double polx=0, double poly=0, double polz=0)
static void setSameParticleDecayMode(int firstDecayMode)
static void setUnits(MomentumUnits m, LengthUnits l)
static int getDecayingParticle()
static void setTauLifetime(double t)
static void setSeed(int ijklin, int ntotin, int ntot2n)
static void setDecayingParticle(int pdg_id)
static void setHiggsScalarPseudoscalarMixingAngle(double angle)
static double getTauMass()
static void decayOneBoost(TauolaParticle *mother, TauolaParticle *target)