Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / EVGEN / AliGenReaderEMD.h
CommitLineData
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// --------------------------------------------------------------------------
14class 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