25 #include<TLorentzVector.h>
29 #include <generators/treps/Sutool.h>
30 #include <generators/treps/Particle_array.h>
56 void setParameterFile(
const std::string& file)
60 void setWlistFile(
const std::string& file)
64 void setDiffcrosssectionFile(
const std::string& file)
66 diffcrosssectionFile = file;
69 void setBeamEnergy(
double energy)
73 void setElectronMomentum(TVector3 p)
77 void setPositronMomentum(TVector3 p)
81 TVector3 getElectronMomentum()
85 TVector3 getPositronMomentum()
90 void setMaximalQ2(
double q2)
94 void setMaximalAbsCosTheta(
double cost)
98 void applyCosThetaCutCharged(
bool apply)
108 void setMinimalTransverseMomentum(
double pt)
112 void applyTransverseMomentumCutCharged(
bool apply)
128 void create_hist(
void);
133 double twlumi_n(
void);
135 int,
int,
int,
double&,
double&,
double&,
136 double&,
double&,
double&,
double&) ;
138 int,
int,
int,
int,
double&,
double&,
double&,
139 double&,
double&,
double&,
double&,
double&,
140 double&,
double&,
double&,
double&) ;
142 int,
int,
int,
int,
int,
double&,
double&,
double&,
143 double&,
double&,
double&, TVector3&,
144 TVector3&, TVector3&,
double&) ;
147 virtual int tpuser(TLorentzVector, TLorentzVector,
151 void terminate(
void)
const ;
152 void print_event(
void)
const ;
155 virtual double tpform(
double,
double)
const ;
157 virtual double tpangd(
double,
double) ;
159 void trkpsh(
int, TLorentzVector, TLorentzVector,
Part_gen*,
int)
const;
166 double tpgetd(
int,
double,
double,
double,
double);
168 double tpgetq(
double,
double,
double);
172 double simpsn1(
double,
double,
int)
const ;
173 double simpsn2(
double,
double,
int)
const ;
174 double tpxint(
double,
double,
double)
const ;
175 double tpf(
double,
double)
const ;
176 double tpdfnc(
double)
const ;
177 double tplogf(
double)
const ;
178 double simpsny(
double,
double,
double,
int)
const ;
179 double simpsnz(
double,
double,
double,
int)
const ;
180 double tpdfy(
double,
double)
const;
181 double tpdfz(
double,
double)
const;
184 std::string parameterFile;
185 std::string wlistFile;
186 std::string diffcrosssectionFile;
189 constexpr
const static double q2zero = 1.0e-6;
191 double cost_cut, pt_cut ;
192 int cost_flag, pt_flag ;
193 constexpr
const static double pi = 3.14159265358979;
194 constexpr
const static double twopi = 2.0 * 3.14159265358979;
197 double qzmin, qptmin;
199 double ephi, etheta ;
206 TLorentzVector* pppp ;
219 std::map<double, double> diffCrossSectionOfW;
222 double totalCrossSectionForMC;
223 std::map<double, double> WOfCrossSectionForMC;
230 TLorentzVector peb, ppb ;
232 TH1F* treh1, * treh2, * treh3, * treh4, * treh5, * treh6 ;
238 TLorentzVector pe, pp ;
239 constexpr
const static double me = 0.000510999;
240 TH1F* zdis, *zpdis, *zsdis;
Abstract base class for different kinds of events.