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); }
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)
Controls the configuration, initialization of Tauola.
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)