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 ROOT file is an on-disk file, usually with extension .root, that stores objects in a file-system-li...
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)