Fix for event mixing, when it was selecting events out of range of multiplicity cut
[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           fNnAside;           // No. of neutrons emitted on left side            
45     Float_t         fEnAside;           // Forward energy Aside side
46     Float_t         fPxnAside[70];      // momentum x component - left side
47     Float_t         fPynAside[70];      // momentum y component - left side     
48     Float_t         fPznAside[70];      // momentum z component - left side   
49     //  
50     Int_t           fNnCside;           // No. of neutrons emitted on right side            
51     Float_t         fEnCside;           // Forward energy Cside side
52     Float_t         fPxnCside[70];      // momentum x component - right side
53     Float_t         fPynCside[70];      // momentum y component - right side     
54     Float_t         fPznCside[70];      // momentum z component - right side     
55     //
56     // **** protons
57     Int_t           fNpAside;           // No. of protons emitted on left side            
58     Float_t         fEtapAside;                 // Forward energy Aside side
59     Float_t         fPxpAside[70];      // momentum x component - left side
60     Float_t         fPypAside[70];      // momentum y component - left side     
61     Float_t         fPzpAside[70];      // momentum z component - left side   
62     //  
63     Int_t           fNpCside;           // No. of protons emitted on right side            
64     Float_t         fEtapCside;         // Forward energy Cside side
65     Float_t         fPxpCside[70];      // momentum x component - right side
66     Float_t         fPypCside[70];      // momentum y component - right side     
67     Float_t         fPzpCside[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