Line data Source code
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
7 : // Events -> EM dissociation of Pb nuclei
8 : // Data from RELDIS code (by I. Pshenichov)
9 : //
10 : #include "AliGenReader.h"
11 :
12 :
13 : // --------------------------------------------------------------------------
14 : class AliGenReaderEMD : public AliGenReader
15 : {
16 : public:
17 : enum TrackedPc{kAll=0, kOnlyNucleons=1, kNotNucleons=2};
18 :
19 : AliGenReaderEMD();
20 :
21 : AliGenReaderEMD(const AliGenReaderEMD &reader);
22 : virtual ~AliGenReaderEMD();
23 : AliGenReaderEMD & operator=(const AliGenReaderEMD & rhs);
24 : // Initialise
25 : virtual void Init();
26 : // Reader
27 : virtual Int_t NextEvent();
28 : virtual TParticle* NextParticle();
29 : virtual void RewindEvent();
30 : // Setters
31 0 : void TrackNotNucleons() {fPcToTrack = kNotNucleons;}
32 0 : void TrackOnlyNucleons() {fPcToTrack = kOnlyNucleons;}
33 0 : void TrackAllParticles() {fPcToTrack = kAll;}
34 0 : 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 : //
42 : Int_t fPcToTrack; // flag for particles to be tracked
43 : Int_t fOffset; // Needed to correctly read next particle
44 : //
45 : // --- Declaration of leaves types
46 : // **** neutrons
47 : Int_t fNnAside; // No. of neutrons emitted on left side
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
53 : //
54 : Int_t fNnCside; // No. of neutrons emitted on right side
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
59 : //
60 : // **** protons
61 : Int_t fNpAside; // No. of protons emitted on left side
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
67 : //
68 : Int_t fNpCside; // No. of protons emitted on right side
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 :
144 : private:
145 : void Copy(TObject&) const;
146 6 : ClassDef(AliGenReaderEMD, 2) // Class to read EMD data
147 : };
148 : #endif
149 :
150 :
151 :
152 :
153 :
154 :
|