]>
Commit | Line | Data |
---|---|---|
f1d1affa | 1 | #ifndef ALIGENREADEREMD_H |
2 | #define ALIGENREADEREMD_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | // Class to read events from external (TNtupla) file | |
a16b785f | 7 | // Events -> EM dissociation of Pb nuclei |
f1d1affa | 8 | // Data from RELDIS code (by I. Pshenichov) |
9 | // | |
10 | #include "AliGenReader.h" | |
11 | ||
12 | ||
13 | // -------------------------------------------------------------------------- | |
14 | class AliGenReaderEMD : public AliGenReader | |
15 | { | |
16 | public: | |
a16b785f | 17 | enum TrackedPc{kAll=0, kOnlyNucleons=1, kNotNucleons=2}; |
18 | ||
f1d1affa | 19 | AliGenReaderEMD(); |
20 | ||
1c56e311 | 21 | AliGenReaderEMD(const AliGenReaderEMD &reader); |
f1d1affa | 22 | virtual ~AliGenReaderEMD(); |
23 | AliGenReaderEMD & operator=(const AliGenReaderEMD & rhs); | |
24 | // Initialise | |
25 | virtual void Init(); | |
a16b785f | 26 | // Reader |
f1d1affa | 27 | virtual Int_t NextEvent(); |
28 | virtual TParticle* NextParticle(); | |
29 | virtual void RewindEvent(){;} | |
a16b785f | 30 | // Setters |
31 | void TrackNotNucleons() {fPcToTrack = kNotNucleons;} | |
32 | void TrackOnlyNucleons() {fPcToTrack = kOnlyNucleons;} | |
33 | void TrackAllParticles() {fPcToTrack = kAll;} | |
f1d1affa | 34 | void SetStartEvent(Int_t nev) {fStartEvent = nev;} |
35 | ||
36 | protected: | |
37 | Int_t fStartEvent; // points to the first event to read | |
38 | Int_t fNcurrent; // points to the current event to read | |
39 | Int_t fNparticle; // number of particles | |
40 | TTree *fTreeNtuple; // pointer to the TTree | |
41 | // | |
f1d1affa | 42 | Int_t fPcToTrack; // flag for particles to be tracked |
a16b785f | 43 | Int_t fOffset; // Needed to correctly read next particle |
f1d1affa | 44 | // |
45 | // --- Declaration of leaves types | |
46 | // **** neutrons | |
2078b0f7 | 47 | Int_t fNnAside; // No. of neutrons emitted on left side |
a16b785f | 48 | Float_t fEnAside; // Forward energy A side |
49 | Int_t fnPDGCode; // PDG code | |
50 | Float_t fPxnAside[70]; // momentum x component A side | |
51 | Float_t fPynAside[70]; // momentum y component A side | |
52 | Float_t fPznAside[70]; // momentum z component A side | |
f1d1affa | 53 | // |
2078b0f7 | 54 | Int_t fNnCside; // No. of neutrons emitted on right side |
a16b785f | 55 | Float_t fEnCside; // Forward energy C side |
56 | Float_t fPxnCside[70]; // momentum x component C side | |
57 | Float_t fPynCside[70]; // momentum y component C side | |
58 | Float_t fPznCside[70]; // momentum z component C side | |
f1d1affa | 59 | // |
60 | // **** protons | |
2078b0f7 | 61 | Int_t fNpAside; // No. of protons emitted on left side |
a16b785f | 62 | Float_t fEtapAside; // Forward energy A side |
63 | Int_t fpPDGCode; // PDG code | |
64 | Float_t fPxpAside[50]; // momentum x component A side | |
65 | Float_t fPypAside[50]; // momentum y component A side | |
66 | Float_t fPzpAside[50]; // momentum z component A side | |
f1d1affa | 67 | // |
2078b0f7 | 68 | Int_t fNpCside; // No. of protons emitted on right side |
a16b785f | 69 | Float_t fEtapCside; // Forward energy C side |
70 | Float_t fPxpCside[50]; // momentum x component C side | |
71 | Float_t fPypCside[50]; // momentum y component C side | |
72 | Float_t fPzpCside[50]; // momentum z component C side | |
73 | // | |
74 | // **** pi + | |
75 | Int_t fNppAside; // No. of pi+ emitted pi+ on A side | |
76 | Float_t fEtappAside; // Forward energy pi+ A side | |
77 | Int_t fppPDGCode; // PDG code | |
78 | Float_t fPxppAside[30]; // momentum x component pi+ A side | |
79 | Float_t fPyppAside[30]; // momentum y component pi+ A side | |
80 | Float_t fPzppAside[30]; // momentum z component pi+ A side | |
81 | // | |
82 | Int_t fNppCside; // No. of pi+ emitted on C side | |
83 | Float_t fEtappCside; // Forward energy pi+ C side | |
84 | Float_t fPxppCside[30]; // momentum x component pi+ C side | |
85 | Float_t fPyppCside[30]; // momentum y component pi+ C side | |
86 | Float_t fPzppCside[30]; // momentum z component pi+ C side | |
87 | // | |
88 | // **** pi - | |
89 | Int_t fNpmAside; // No. of pi- emitted on A side | |
90 | Float_t fEtapmAside; // Forward energy pi- A side | |
91 | Int_t fpmPDGCode; // PDG code | |
92 | Float_t fPxpmAside[30]; // momentum x component pi- A side | |
93 | Float_t fPypmAside[30]; // momentum y component pi- A side | |
94 | Float_t fPzpmAside[30]; // momentum z component pi- A side | |
95 | // | |
96 | Int_t fNpmCside; // No. of pi- emitted on C side | |
97 | Float_t fEtapmCside; // Forward energy pi- C side | |
98 | Float_t fPxpmCside[30]; // momentum x component pi- C side | |
99 | Float_t fPypmCside[30]; // momentum y component pi- C side | |
100 | Float_t fPzpmCside[30]; // momentum z component pi- C side | |
101 | // | |
102 | // **** pi0 | |
103 | Int_t fNp0Aside; // No. of pi0 emitted on A side | |
104 | Float_t fEtap0Aside; // Forward energy pi0 A side | |
105 | Int_t fp0PDGCode; // PDG code | |
106 | Float_t fPxp0Aside[30]; // momentum x component pi0 A side | |
107 | Float_t fPyp0Aside[30]; // momentum y component pi0 A side | |
108 | Float_t fPzp0Aside[30]; // momentum z component pi0 A side | |
109 | // | |
110 | Int_t fNp0Cside; // No. of pi0 emitted on C side | |
111 | Float_t fEtap0Cside; // Forward energy pi0 C side | |
112 | Float_t fPxp0Cside[30]; // momentum x component pi0 C side | |
113 | Float_t fPyp0Cside[30]; // momentum y component pi0 C side | |
114 | Float_t fPzp0Cside[30]; // momentum z component pi0 C side | |
115 | // | |
116 | // **** eta | |
117 | Int_t fNetaAside; // No. of eta emitted on A side | |
118 | Float_t fEtaetaAside; // Forward energy eta A side | |
119 | Int_t fetaPDGCode; // PDG code | |
120 | Float_t fPxetaAside[15]; // momentum x component eta A side | |
121 | Float_t fPyetaAside[15]; // momentum y component eta A side | |
122 | Float_t fPzetaAside[15]; // momentum z component eta A side | |
123 | // | |
124 | Int_t fNetaCside; // No. of eta emitted on C side | |
125 | Float_t fEtaetaCside; // Forward energy eta C side | |
126 | Float_t fPxetaCside[15]; // momentum x component eta C side | |
127 | Float_t fPyetaCside[15]; // momentum y component eta C side | |
128 | Float_t fPzetaCside[15]; // momentum z component eta C side | |
129 | // | |
130 | // **** omega | |
131 | Int_t fNomegaAside; // No. of omega emitted on A side | |
132 | Float_t fEtaomegaAside; // Forward energy omega A side | |
133 | Int_t fomegaPDGCode; // PDG code | |
134 | Float_t fPxomegaAside[15]; // momentum x component omega A side | |
135 | Float_t fPyomegaAside[15]; // momentum y component omega A side | |
136 | Float_t fPzomegaAside[15]; // momentum z component omega A side | |
137 | // | |
138 | Int_t fNomegaCside; // No. of omega emitted on C side | |
139 | Float_t fEtaomegaCside; // Forward energy omega C side | |
140 | Float_t fPxomegaCside[15]; // momentum x component omega C side | |
141 | Float_t fPyomegaCside[15]; // momentum y component omega C side | |
142 | Float_t fPzomegaCside[15]; // momentum z component omega C side | |
143 | ||
f1d1affa | 144 | private: |
145 | void Copy(TObject&) const; | |
a16b785f | 146 | ClassDef(AliGenReaderEMD, 2) // Class to read EMD data |
f1d1affa | 147 | }; |
148 | #endif | |
149 | ||
150 | ||
151 | ||
152 | ||
153 | ||
154 |