Line data Source code
1 : #ifndef ALIGENREADERSEMD_H
2 : #define ALIGENREADERSEMD_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 -> single EM dissociation of Pb nuclei
8 : // Data from RELDIS code (by I. Pshenichov)
9 : //
10 : #include "AliGenReader.h"
11 :
12 :
13 : // --------------------------------------------------------------------------
14 : class AliGenReadersEMD : public AliGenReader
15 : {
16 : public:
17 : enum TrackedPc{kAll=0, kNucleons=1, kOnlyNeutrons=2};
18 :
19 : AliGenReadersEMD();
20 :
21 : AliGenReadersEMD(const AliGenReadersEMD &reader);
22 : virtual ~AliGenReadersEMD();
23 : AliGenReadersEMD & operator=(const AliGenReadersEMD & 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 TrackNucleons() {fPcToTrack = kNucleons;}
32 0 : void TrackOnlyNeutrons() {fPcToTrack = kOnlyNeutrons;}
33 0 : void TrackAll() {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 fNneu; // No. of neutrons emitte on left side
48 : Float_t fEneu; // Energy
49 : Float_t fPxneu[70]; // momentum x component neutrons
50 : Float_t fPyneu[70]; // momentum y component neutrons
51 : Float_t fPzneu[70]; // momentum z component neutrons
52 : //
53 : Float_t fPxfrag; // momentum x component fragments
54 : Float_t fPyfrag; // momentum y component fragments
55 : Float_t fPzfrag; // momentum z component fragments
56 : Float_t fAfrag; // A fragments
57 : Float_t fZfrag; // Z fragments
58 : //
59 : // **** protons
60 : Int_t fNpro; // No. of protons emitted on left side
61 : Float_t fEpro; // Forward energy A side
62 : Float_t fPxpro[50]; // momentum x component A side
63 : Float_t fPypro[50]; // momentum y component A side
64 : Float_t fPzpro[50]; // momentum z component A side
65 :
66 : private:
67 : void Copy(TObject&) const;
68 6 : ClassDef(AliGenReadersEMD, 1) // Class to read EMD data
69 : };
70 : #endif
71 :
72 :
73 :
74 :
75 :
76 :
|