88 if(IsSignal())
return fMGen[i];
92 if(IsSignal())
return fPtGen[i];
96 if(IsSignal())
return fEtaGen[i];
100 if(IsSignal())
return fPhiGen[i];
171 cout<<
"fill data tree\n";
176 event.GenerateDataEvent(
g_rnd);
177 for(
int i=0;i<3;i++) {
178 etaRec[i]=
event.GetEtaRec(i);
179 ptRec[i]=
event.GetPtRec(i);
180 phiRec[i]=
event.GetPhiRec(i);
181 mRec[i]=
event.GetMRec(i);
182 etaGen[i]=
event.GetEtaGen(i);
183 ptGen[i]=
event.GetPtGen(i);
184 phiGen[i]=
event.GetPhiGen(i);
185 mGen[i]=
event.GetMGen(i);
187 discr=
event.GetDiscriminator();
193 if(!(
ievent%100000)) cout<<
" data event "<<
ievent<<
"\n";
222 signalTree->Branch(
"weight",&weight,
"weight/F");
225 cout<<
"fill signal tree\n";
231 event.GenerateSignalEvent(
g_rnd);
233 for(
int i=0;i<3;i++) {
234 etaRec[i]=
event.GetEtaRec(i);
235 ptRec[i]=
event.GetPtRec(i);
236 phiRec[i]=
event.GetPhiRec(i);
237 mRec[i]=
event.GetMRec(i);
238 etaGen[i]=
event.GetEtaGen(i);
239 ptGen[i]=
event.GetPtGen(i);
240 phiGen[i]=
event.GetPhiGen(i);
241 mGen[i]=
event.GetMGen(i);
243 discr=
event.GetDiscriminator();
246 if(!(
ievent%100000)) cout<<
" signal event "<<
ievent<<
"\n";
267 bgrTree->Branch(
"weight",&weight,
"weight/F");
269 cout<<
"fill background tree\n";
275 event.GenerateBgrEvent(
g_rnd);
276 for(
int i=0;i<3;i++) {
277 etaRec[i]=
event.GetEtaRec(i);
278 ptRec[i]=
event.GetPtRec(i);
279 phiRec[i]=
event.GetPhiRec(i);
281 discr=
event.GetDiscriminator();
284 if(!(
ievent%100000)) cout<<
" background event "<<
ievent<<
"\n";
294Double_t ToyEvent7::kDataSignalFraction=0.75;
295Double_t ToyEvent7::kMCSignalFraction=0.75;
297void ToyEvent7::GenerateDataEvent(
TRandom *
rnd) {
307void ToyEvent7::GenerateSignalEvent(
TRandom *
rnd) {
313void ToyEvent7::GenerateBgrEvent(
TRandom *
rnd) {
327 }
while(
fMGen[2]<=0.0);
340 if(
rnd->Uniform(-1.,1.)<0.)
fEtaGen[2] *= -1.;
356 double r=
rnd->Uniform(-1.,1.);
360 double e=0.5*
sum.M();
364 double px=
pt*cos(phi);
365 double py=
pt*sin(phi);
366 p[0].SetXYZT(px,py,pz,
e);
367 p[1].SetXYZT(-px,-py,-pz,
e);
368 for(
int i=0;i<2;i++) {
372 for(
int i=0;i<3;i++) {
381 for(
int i=0;i<3;i++) {
387 for(
int i=0;i<2;i++) {
388 p[i].SetPtEtaPhiM(
rnd->Exp(15.0),
rnd->Uniform(-3.,3.),
392 for(
int i=0;i<3;i++) {
403 for(
int i=0;i<2;i++) {
422 for(
int i=0;i<3;i++) {
443 for(
int i=0;i<2;i++) {
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
A file, usually with extension .root, that stores data and code in the form of serialized objects in ...
Random number generator class based on M.
This is the base class for the ROOT Random number generators.
A TTree represents a columnar dataset.
RVec< PromoteTypes< T0, T1 > > remainder(const T0 &x, const RVec< T1 > &v)
LVector boost(const LVector &v, const BoostVector &b)
Boost a generic Lorentz Vector class using a generic 3D Vector class describing the boost The only re...
VecExpr< UnaryOp< Fabs< T >, VecExpr< A, T, D >, T >, T, D > fabs(const VecExpr< A, T, D > &rhs)
Double_t Exp(Double_t x)
Returns the base-e exponential function of x, which is e raised to the power x.
Double_t Sqrt(Double_t x)
Returns the square root of x.
LongDouble_t Power(LongDouble_t x, LongDouble_t y)
Returns x raised to the power y.
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.
static uint64_t sum(uint64_t i)