9#include "FairPrimaryGenerator.h"
10#include "TDatabasePDG.h"
26 cout <<
"Info NtupleGenerator: Opening input file " << fileName << endl;
29 cout <<
"-E NtupleGenerator: Error opening the Signal file" << fileName
35 fTree->SetBranchAddress(
"id", &
id);
36 if (
fTree->FindBranch(
"parentid")) {
39 if (
fTree->FindBranch(
"tof")) {
40 fTree->SetBranchAddress(
"tof", &
tof);
44 fTree->SetBranchAddress(
"w", &
w);
45 fTree->SetBranchAddress(
"x", &
vx);
46 fTree->SetBranchAddress(
"y", &
vy);
47 fTree->SetBranchAddress(
"z", &
vz);
48 fTree->SetBranchAddress(
"px", &
px);
49 fTree->SetBranchAddress(
"py", &
py);
50 fTree->SetBranchAddress(
"pz", &
pz);
71 if (
fn % 10000 == 0) {
72 cout <<
"reading event " <<
fn << endl;
76 Float_t r2 = (
vx[i] *
vx[i] +
vy[i] *
vy[i]);
82 cout <<
"No more input events" << endl;
85 TDatabasePDG* pdgBase = TDatabasePDG::Instance();
86 Double_t mass = pdgBase->GetParticle(
id)->Mass();
88 TMath::Sqrt(
px[0] *
px[0] +
py[0] *
py[0] +
pz[0] *
pz[0] + mass * mass);
91 cpg->AddTrack(
id,
px[0],
py[0],
pz[0],
vx[0] * 100.,
vy[0] * 100.,
92 vz[0] * 100., -1.,
false, e,
tof,
w);
96 Double_t lam = (zscor -
vz[i]) /
pz[i];
97 Double_t xscor =
vx[i] + lam *
px[i];
98 Double_t yscor =
vy[i] + lam *
py[i];
99 e = TMath::Sqrt(
px[i] *
px[i] +
py[i] *
py[i] +
pz[i] *
pz[i] + mass * mass);
100 cpg->AddTrack(
id,
px[i],
py[i],
pz[i], xscor * 100., yscor * 100.,
101 zscor * 100., 0,
true, e,
tof,
w);
~NtupleGenerator() override
Bool_t ReadEvent(FairPrimaryGenerator *) override
int fNevents
don't make it persistent, magic ROOT command
Bool_t Init(const char *, int) override