]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVGEN/AliGenReaderEMD.h
Add bkg subtraction (optional); change to LCH11h as default input set
[u/mrichter/AliRoot.git] / EVGEN / AliGenReaderEMD.h
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     void TrackNotNucleons()  {fPcToTrack = kNotNucleons;}
32     void TrackOnlyNucleons() {fPcToTrack = kOnlyNucleons;}
33     void TrackAllParticles() {fPcToTrack = kAll;}
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     //
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     ClassDef(AliGenReaderEMD, 2) // Class to read EMD data
147 };
148 #endif
149
150
151
152
153
154