BmnRoot
Loading...
Searching...
No Matches
MpdVHLLEGenerator.cxx
Go to the documentation of this file.
1#include "MpdVHLLEGenerator.h"
2
4: FairGenerator(),
5fInputFile(NULL),
6fFileName("") {
7}
8
9MpdVHLLEGenerator::MpdVHLLEGenerator(TString fileName, Bool_t isCascade)
10: FairGenerator(),
11fInputFile(NULL),
12fFileName(fileName) {
13 // fFileName = fileName;
14 cout << "-I MpdVHLLEGenerator: Opening input file " << fFileName << endl;
15 fInputFile = new TFile(fFileName.Data());
16 if (!fInputFile) {
17 Fatal("MpdVHLLEGenerator", "Cannot open input file.");
18 exit(1);
19 }
20
21 SetCascade(isCascade);
22 cout << "ACTIVATED BRANCH IS: " << fBranch << endl;
23
24 fDstTree = new TChain(fBranch.Data());
25 fDstTree->Add(fFileName);
26
27 fDstTree->SetBranchAddress("px", fPx);
28 fDstTree->SetBranchAddress("py", fPy);
29 fDstTree->SetBranchAddress("pz", fPz);
30 fDstTree->SetBranchAddress("x", fX);
31 fDstTree->SetBranchAddress("y", fY);
32 fDstTree->SetBranchAddress("z", fZ);
33 fDstTree->SetBranchAddress("E", fE);
34 fDstTree->SetBranchAddress("npart", &fNpart);
35 fDstTree->SetBranchAddress("id", fPID);
36
37 fEventNumber = 0;
38}
39
41 delete fInputFile;
42 delete fDstTree;
43}
44
45Bool_t MpdVHLLEGenerator::ReadEvent(FairPrimaryGenerator* primGen) {
46
47 // ---> Check for input file
48 if (!fInputFile) {
49 cout << "-E MpdVHLLEGenerator: Input file not open! " << endl;
50 return kFALSE;
51 }
52
53 // ---> Check for primary generator
54 if (!primGen) {
55 cout << "-E- MpdVHLLEGenerator::ReadEvent: "
56 << "No PrimaryGenerator!" << endl;
57 return kFALSE;
58 }
59
60 fDstTree->GetEntry(fEventNumber);
61 cout << "-I MpdVHLLEGenerator: Event " << fEventNumber << " Multiplicity " << fNpart << endl;
62
63 FairMCEventHeader* event = primGen->GetEvent();
64 if (event && (!event->IsSet())) {
65 event->SetEventID(fEventNumber);
66 // event->SetB(b);
67 event->MarkSet(kTRUE);
68 }
69
70 for (Int_t iTrack = 0; iTrack < fNpart; iTrack++) {
71 primGen->AddTrack(fPID[iTrack], fPx[iTrack], fPy[iTrack], fPz[iTrack], fX[iTrack], fY[iTrack], fZ[iTrack]);
72 // cout << iTrack << " " << fPID[iTrack] << " " <<
73 // fPx[iTrack] << " " << fPy[iTrack] << " " << fPz[iTrack] << " " <<
74 // fX[iTrack] << " " << fY[iTrack] << " " << fZ[iTrack] << endl;
75 }
76
77 fEventNumber++;
78
79 return kTRUE;
80}
Bool_t ReadEvent(FairPrimaryGenerator *primGen)