ROOT logo
#ifndef ALIGENREADEREMD_H
#define ALIGENREADEREMD_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

// Class to read events from external (TNtupla) file
// Events -> EM dissociation of Pb nuclei
// Data from RELDIS code (by I. Pshenichov)
//
#include "AliGenReader.h"


// --------------------------------------------------------------------------
class AliGenReaderEMD : public AliGenReader
{
 public:
    enum TrackedPc{kAll=0, kOnlyNucleons=1, kNotNucleons=2};
    
    AliGenReaderEMD();
    
    AliGenReaderEMD(const AliGenReaderEMD &reader);
    virtual ~AliGenReaderEMD();
    AliGenReaderEMD & operator=(const AliGenReaderEMD & rhs);
    // Initialise 
    virtual void Init();
    // Reader
    virtual Int_t NextEvent();
    virtual TParticle*  NextParticle();
    virtual void RewindEvent(){;}
    // Setters
    void TrackNotNucleons()  {fPcToTrack = kNotNucleons;}
    void TrackOnlyNucleons() {fPcToTrack = kOnlyNucleons;}
    void TrackAllParticles() {fPcToTrack = kAll;}
    void SetStartEvent(Int_t nev) {fStartEvent = nev;}
    
 protected:
    Int_t           fStartEvent;      	// points to the first event to read
    Int_t           fNcurrent;      	// points to the current event to read
    Int_t           fNparticle;     	// number of particles
    TTree           *fTreeNtuple;   	// pointer to the TTree
    //
    Int_t 	    fPcToTrack;		// flag for particles to be tracked
    Int_t           fOffset;		// Needed to correctly read next particle
    //
    // --- Declaration of leaves types
    // **** neutrons
    Int_t           fNnAside;		// No. of neutrons emitted on left side            
    Float_t         fEnAside; 		// Forward energy A side
    Int_t           fnPDGCode;		// PDG code
    Float_t	    fPxnAside[70];     	// momentum x component A side
    Float_t	    fPynAside[70];     	// momentum y component A side	  
    Float_t	    fPznAside[70];     	// momentum z component A side	
    //  
    Int_t           fNnCside;		// No. of neutrons emitted on right side            
    Float_t         fEnCside; 		// Forward energy C side
    Float_t	    fPxnCside[70];     	// momentum x component C side
    Float_t	    fPynCside[70];     	// momentum y component C side	  
    Float_t	    fPznCside[70];     	// momentum z component C side	  
    //
    // **** protons
    Int_t           fNpAside;		// No. of protons emitted on left side            
    Float_t         fEtapAside; 	// Forward energy A side
    Int_t           fpPDGCode;		// PDG code
    Float_t	    fPxpAside[50];     	// momentum x component A side
    Float_t	    fPypAside[50];     	// momentum y component A side	  
    Float_t	    fPzpAside[50];     	// momentum z component A side	
    //  
    Int_t           fNpCside;		// No. of protons emitted on right side            
    Float_t         fEtapCside; 	// Forward energy C side
    Float_t	    fPxpCside[50];     	// momentum x component C side
    Float_t	    fPypCside[50];     	// momentum y component C side	  
    Float_t	    fPzpCside[50];     	// momentum z component C side
    //
    // **** pi +
    Int_t           fNppAside;		// No. of pi+ emitted pi+ on A side            
    Float_t         fEtappAside; 	// Forward energy pi+ A side
    Int_t           fppPDGCode;	// PDG code
    Float_t	    fPxppAside[30];     // momentum x component pi+ A side
    Float_t	    fPyppAside[30];     // momentum y component pi+ A side	  
    Float_t	    fPzppAside[30];     // momentum z component pi+ A side	
    //  
    Int_t           fNppCside;		// No. of pi+ emitted on C side            
    Float_t         fEtappCside; 	// Forward energy pi+ C side
    Float_t	    fPxppCside[30];     // momentum x component pi+ C side
    Float_t	    fPyppCside[30];     // momentum y component pi+ C side	  
    Float_t	    fPzppCside[30];     // momentum z component pi+ C side
    //
    // **** pi -
    Int_t           fNpmAside;		// No. of pi- emitted on A side            
    Float_t         fEtapmAside; 	// Forward energy pi- A side
    Int_t           fpmPDGCode;	// PDG code
    Float_t	    fPxpmAside[30];     // momentum x component pi- A side
    Float_t	    fPypmAside[30];     // momentum y component pi- A side	  
    Float_t	    fPzpmAside[30];     // momentum z component pi- A side	
    //  
    Int_t           fNpmCside;		// No. of pi- emitted on C side            
    Float_t         fEtapmCside; 	// Forward energy pi- C side
    Float_t	    fPxpmCside[30];     // momentum x component pi- C side
    Float_t	    fPypmCside[30];     // momentum y component pi- C side	  
    Float_t	    fPzpmCside[30];     // momentum z component pi- C side
    //
    // **** pi0
    Int_t           fNp0Aside;		// No. of pi0 emitted on A side            
    Float_t         fEtap0Aside; 	// Forward energy pi0 A side
    Int_t           fp0PDGCode;	// PDG code
    Float_t	    fPxp0Aside[30];     // momentum x component pi0 A side
    Float_t	    fPyp0Aside[30];     // momentum y component pi0 A side	  
    Float_t	    fPzp0Aside[30];     // momentum z component pi0 A side	
    //  
    Int_t           fNp0Cside;		// No. of pi0 emitted on C side            
    Float_t         fEtap0Cside; 	// Forward energy pi0 C side
    Float_t	    fPxp0Cside[30];     // momentum x component pi0 C side
    Float_t	    fPyp0Cside[30];     // momentum y component pi0 C side	  
    Float_t	    fPzp0Cside[30];     // momentum z component pi0 C side
    //
    // **** eta
    Int_t           fNetaAside;		// No. of eta emitted on A side            
    Float_t         fEtaetaAside; 	// Forward energy eta A side
    Int_t           fetaPDGCode;	// PDG code
    Float_t	    fPxetaAside[15];    // momentum x component eta A side
    Float_t	    fPyetaAside[15];    // momentum y component eta A side	 
    Float_t	    fPzetaAside[15];    // momentum z component eta A side     
    //  
    Int_t           fNetaCside;		// No. of eta emitted on C side            
    Float_t         fEtaetaCside; 	// Forward energy eta C side
    Float_t	    fPxetaCside[15];    // momentum x component eta C side
    Float_t	    fPyetaCside[15];    // momentum y component eta C side	 
    Float_t	    fPzetaCside[15];    // momentum z component eta C side
    //
    // **** omega
    Int_t           fNomegaAside;	// No. of omega emitted on A side            
    Float_t         fEtaomegaAside; 	// Forward energy omega A side
    Int_t           fomegaPDGCode;	// PDG code
    Float_t	    fPxomegaAside[15];  // momentum x component omega A side
    Float_t	    fPyomegaAside[15];  // momentum y component omega A side   
    Float_t	    fPzomegaAside[15];  // momentum z component omega A side	 
    //  
    Int_t           fNomegaCside;	// No. of omega emitted on C side            
    Float_t         fEtaomegaCside; 	// Forward energy omega C side
    Float_t	    fPxomegaCside[15];  // momentum x component omega C side
    Float_t	    fPyomegaCside[15];  // momentum y component omega C side	 
    Float_t	    fPzomegaCside[15];  // momentum z component omega C side
   
 private:
    void Copy(TObject&) const;
    ClassDef(AliGenReaderEMD, 2) // Class to read EMD data
};
#endif






 AliGenReaderEMD.h:1
 AliGenReaderEMD.h:2
 AliGenReaderEMD.h:3
 AliGenReaderEMD.h:4
 AliGenReaderEMD.h:5
 AliGenReaderEMD.h:6
 AliGenReaderEMD.h:7
 AliGenReaderEMD.h:8
 AliGenReaderEMD.h:9
 AliGenReaderEMD.h:10
 AliGenReaderEMD.h:11
 AliGenReaderEMD.h:12
 AliGenReaderEMD.h:13
 AliGenReaderEMD.h:14
 AliGenReaderEMD.h:15
 AliGenReaderEMD.h:16
 AliGenReaderEMD.h:17
 AliGenReaderEMD.h:18
 AliGenReaderEMD.h:19
 AliGenReaderEMD.h:20
 AliGenReaderEMD.h:21
 AliGenReaderEMD.h:22
 AliGenReaderEMD.h:23
 AliGenReaderEMD.h:24
 AliGenReaderEMD.h:25
 AliGenReaderEMD.h:26
 AliGenReaderEMD.h:27
 AliGenReaderEMD.h:28
 AliGenReaderEMD.h:29
 AliGenReaderEMD.h:30
 AliGenReaderEMD.h:31
 AliGenReaderEMD.h:32
 AliGenReaderEMD.h:33
 AliGenReaderEMD.h:34
 AliGenReaderEMD.h:35
 AliGenReaderEMD.h:36
 AliGenReaderEMD.h:37
 AliGenReaderEMD.h:38
 AliGenReaderEMD.h:39
 AliGenReaderEMD.h:40
 AliGenReaderEMD.h:41
 AliGenReaderEMD.h:42
 AliGenReaderEMD.h:43
 AliGenReaderEMD.h:44
 AliGenReaderEMD.h:45
 AliGenReaderEMD.h:46
 AliGenReaderEMD.h:47
 AliGenReaderEMD.h:48
 AliGenReaderEMD.h:49
 AliGenReaderEMD.h:50
 AliGenReaderEMD.h:51
 AliGenReaderEMD.h:52
 AliGenReaderEMD.h:53
 AliGenReaderEMD.h:54
 AliGenReaderEMD.h:55
 AliGenReaderEMD.h:56
 AliGenReaderEMD.h:57
 AliGenReaderEMD.h:58
 AliGenReaderEMD.h:59
 AliGenReaderEMD.h:60
 AliGenReaderEMD.h:61
 AliGenReaderEMD.h:62
 AliGenReaderEMD.h:63
 AliGenReaderEMD.h:64
 AliGenReaderEMD.h:65
 AliGenReaderEMD.h:66
 AliGenReaderEMD.h:67
 AliGenReaderEMD.h:68
 AliGenReaderEMD.h:69
 AliGenReaderEMD.h:70
 AliGenReaderEMD.h:71
 AliGenReaderEMD.h:72
 AliGenReaderEMD.h:73
 AliGenReaderEMD.h:74
 AliGenReaderEMD.h:75
 AliGenReaderEMD.h:76
 AliGenReaderEMD.h:77
 AliGenReaderEMD.h:78
 AliGenReaderEMD.h:79
 AliGenReaderEMD.h:80
 AliGenReaderEMD.h:81
 AliGenReaderEMD.h:82
 AliGenReaderEMD.h:83
 AliGenReaderEMD.h:84
 AliGenReaderEMD.h:85
 AliGenReaderEMD.h:86
 AliGenReaderEMD.h:87
 AliGenReaderEMD.h:88
 AliGenReaderEMD.h:89
 AliGenReaderEMD.h:90
 AliGenReaderEMD.h:91
 AliGenReaderEMD.h:92
 AliGenReaderEMD.h:93
 AliGenReaderEMD.h:94
 AliGenReaderEMD.h:95
 AliGenReaderEMD.h:96
 AliGenReaderEMD.h:97
 AliGenReaderEMD.h:98
 AliGenReaderEMD.h:99
 AliGenReaderEMD.h:100
 AliGenReaderEMD.h:101
 AliGenReaderEMD.h:102
 AliGenReaderEMD.h:103
 AliGenReaderEMD.h:104
 AliGenReaderEMD.h:105
 AliGenReaderEMD.h:106
 AliGenReaderEMD.h:107
 AliGenReaderEMD.h:108
 AliGenReaderEMD.h:109
 AliGenReaderEMD.h:110
 AliGenReaderEMD.h:111
 AliGenReaderEMD.h:112
 AliGenReaderEMD.h:113
 AliGenReaderEMD.h:114
 AliGenReaderEMD.h:115
 AliGenReaderEMD.h:116
 AliGenReaderEMD.h:117
 AliGenReaderEMD.h:118
 AliGenReaderEMD.h:119
 AliGenReaderEMD.h:120
 AliGenReaderEMD.h:121
 AliGenReaderEMD.h:122
 AliGenReaderEMD.h:123
 AliGenReaderEMD.h:124
 AliGenReaderEMD.h:125
 AliGenReaderEMD.h:126
 AliGenReaderEMD.h:127
 AliGenReaderEMD.h:128
 AliGenReaderEMD.h:129
 AliGenReaderEMD.h:130
 AliGenReaderEMD.h:131
 AliGenReaderEMD.h:132
 AliGenReaderEMD.h:133
 AliGenReaderEMD.h:134
 AliGenReaderEMD.h:135
 AliGenReaderEMD.h:136
 AliGenReaderEMD.h:137
 AliGenReaderEMD.h:138
 AliGenReaderEMD.h:139
 AliGenReaderEMD.h:140
 AliGenReaderEMD.h:141
 AliGenReaderEMD.h:142
 AliGenReaderEMD.h:143
 AliGenReaderEMD.h:144
 AliGenReaderEMD.h:145
 AliGenReaderEMD.h:146
 AliGenReaderEMD.h:147
 AliGenReaderEMD.h:148
 AliGenReaderEMD.h:149
 AliGenReaderEMD.h:150
 AliGenReaderEMD.h:151
 AliGenReaderEMD.h:152
 AliGenReaderEMD.h:153
 AliGenReaderEMD.h:154