In AliMUONAlignment
[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 -> neutron removal by 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     AliGenReaderEMD();
18     
19     AliGenReaderEMD(const AliGenReaderEMD &reader);
20     virtual ~AliGenReaderEMD();
21     AliGenReaderEMD & operator=(const AliGenReaderEMD & rhs);
22     // Initialise 
23     virtual void Init();
24     // Read
25     virtual Int_t NextEvent();
26     virtual TParticle*  NextParticle();
27     virtual void RewindEvent(){;}
28     // Setter
29     void SetIPSide(Int_t iside) {fIPSide = iside;}
30     void SetPcToTrack(Int_t ipart) {fPcToTrack = ipart;}
31     void SetStartEvent(Int_t nev) {fStartEvent = nev;}
32     
33  protected:
34     Int_t           fStartEvent;        // points to the first event to read
35     Int_t           fNcurrent;          // points to the current event to read
36     Int_t           fNparticle;         // number of particles
37     TTree           *fTreeNtuple;       // pointer to the TTree
38     //
39     Int_t           fIPSide;            // ZDC arm relative to IP
40     Int_t           fPcToTrack;         // flag for particles to be tracked
41     //
42     // --- Declaration of leaves types
43     // **** neutrons
44     Int_t           fNnLeft;            // No. of neutrons emitted on left side            
45     Float_t         fEnLeft;            // Forward energy Left side
46     Float_t         fPxnLeft[70];       // momentum x component - left side
47     Float_t         fPynLeft[70];       // momentum y component - left side     
48     Float_t         fPznLeft[70];       // momentum z component - left side   
49     //  
50     Int_t           fNnRight;           // No. of neutrons emitted on right side            
51     Float_t         fEnRight;           // Forward energy Right side
52     Float_t         fPxnRight[70];      // momentum x component - right side
53     Float_t         fPynRight[70];      // momentum y component - right side     
54     Float_t         fPznRight[70];      // momentum z component - right side     
55     //
56     // **** protons
57     Int_t           fNpLeft;            // No. of protons emitted on left side            
58     Float_t         fEtapLeft;          // Forward energy Left side
59     Float_t         fPxpLeft[70];       // momentum x component - left side
60     Float_t         fPypLeft[70];       // momentum y component - left side     
61     Float_t         fPzpLeft[70];       // momentum z component - left side   
62     //  
63     Int_t           fNpRight;           // No. of protons emitted on right side            
64     Float_t         fEtapRight;         // Forward energy Right side
65     Float_t         fPxpRight[70];      // momentum x component - right side
66     Float_t         fPypRight[70];      // momentum y component - right side     
67     Float_t         fPzpRight[70];      // momentum z component - right side
68     
69  private:
70     void Copy(TObject&) const;
71     ClassDef(AliGenReaderEMD,1) // Class to read EMD data
72 };
73 #endif
74
75
76
77
78
79