FairShip
Loading...
Searching...
No Matches
GenieGenerator.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-3.0-or-later
2// SPDX-FileCopyrightText: Copyright CERN for the benefit of the SHiP
3// Collaboration
4
5#ifndef SHIPGEN_GENIEGENERATOR_H_
6#define SHIPGEN_GENIEGENERATOR_H_
7
8#include "FairLogger.h" // for FairLogger, MESSAGE_ORIGIN
9#include "Generator.h"
10#include "TF1.h" // for TF1
11#include "TH1.h" // for TH1
12#include "TH2.h" // for TH2
13#include "TROOT.h"
14#include "TTree.h" // for TTree
15#include "TVector3.h"
16#include "vector"
17
18class FairPrimaryGenerator;
19
21 public:
24
26 ~GenieGenerator() override;
27
30 Bool_t OldReadEvent(FairPrimaryGenerator*);
31 Bool_t ReadEvent(FairPrimaryGenerator*) override;
32 Bool_t Init(const char*, int) override;
33 Bool_t Init(const char*) override;
34 Int_t GetNevents();
35 void NuOnly() { fNuOnly = true; }
36 void SetPositions(Double_t zTa, Double_t zS = -3400., Double_t zE = 2650.) {
37 ztarget = zTa;
38 startZ = zS;
39 endZ = zE;
40 }
41 void AddBox(TVector3 dVec, TVector3 box);
42
43 private:
44 std::vector<double> Rotate(Double_t x, Double_t y, Double_t z, Double_t px,
45 Double_t py, Double_t pz);
46
47 private:
48 protected:
50 Double_t Ev, pxv, pyv, pzv, El, pxl, pyl, pzl, vtxx, vtxy, vtxz, vtxt;
51 Double_t Ef[500], pxf[500], pyf[500], pzf[500];
52 Int_t pdgf[500];
53 std::vector<TVector3> dVecs;
54 std::vector<TVector3> m_boxes;
55 Bool_t cc, nuel;
56 Int_t nf, neu;
57 FairLogger* fLogger;
58 TFile* fInputFile;
59 TTree* fTree;
61 int fn;
66 TH1D* pxhist[3000];
67 TH1D* pyslice[3000][100];
68};
69
70#endif // SHIPGEN_GENIEGENERATOR_H_ /* !PNDGeGENERATOR_H */
Double_t ztarget
Double_t pzf[500]
std::vector< TVector3 > m_boxes
Double_t Lvessel
Double_t Xvessel
Double_t fEntrZ_inner
std::vector< double > Rotate(Double_t x, Double_t y, Double_t z, Double_t px, Double_t py, Double_t pz)
~GenieGenerator() override
Double_t fEntrDz_outer
Double_t fEntrZ_outer
Bool_t ReadEvent(FairPrimaryGenerator *) override
Int_t pdgf[500]
FairLogger * fLogger
std::vector< TVector3 > dVecs
TH1D * pxhist[3000]
Double_t pxf[500]
void SetPositions(Double_t zTa, Double_t zS=-3400., Double_t zE=2650.)
Bool_t OldReadEvent(FairPrimaryGenerator *)
Bool_t Init(const char *, int) override
Double_t pyf[500]
void AddBox(TVector3 dVec, TVector3 box)
TFile * fInputFile
don't make it persistent, magic ROOT command
TH1D * pyslice[3000][100]
Double_t fEntrDz_inner
Double_t fScintDz
Double_t Ef[500]
Double_t Yvessel
virtual Bool_t Init(const char *, int)=0