]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliGenReaderEMD.h
Reader for RELDIS event file (Chiara Oppedisano)
[u/mrichter/AliRoot.git] / EVGEN / AliGenReaderEMD.h
diff --git a/EVGEN/AliGenReaderEMD.h b/EVGEN/AliGenReaderEMD.h
new file mode 100644 (file)
index 0000000..390d777
--- /dev/null
@@ -0,0 +1,80 @@
+#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 -> neutron removal by EM dissociation of Pb nuclei
+// Data from RELDIS code (by I. Pshenichov)
+//
+#include "AliGenReader.h"
+
+
+// --------------------------------------------------------------------------
+class AliGenReaderEMD : public AliGenReader
+{
+ public:
+    AliGenReaderEMD();
+    
+    AliGenReaderEMD(const AliGenReaderEMD &reader):AliGenReader(reader)
+       {reader.Copy(*this);}
+    virtual ~AliGenReaderEMD();
+    AliGenReaderEMD & operator=(const AliGenReaderEMD & rhs);
+    // Initialise 
+    virtual void Init();
+    // Read
+    virtual Int_t NextEvent();
+    virtual TParticle*  NextParticle();
+    virtual void RewindEvent(){;}
+    // Setter
+    void SetIPSide(Int_t iside) {fIPSide = iside;}
+    void SetPcToTrack(Int_t ipart) {fPcToTrack = ipart;}
+    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          fIPSide;            // ZDC arm relative to IP
+    Int_t          fPcToTrack;         // flag for particles to be tracked
+    //
+    // --- Declaration of leaves types
+    // **** neutrons
+    Int_t           fNnLeft;           // No. of neutrons emitted on left side            
+    Float_t         fEnLeft;           // Forward energy Left side
+    Float_t        fPxnLeft[70];       // momentum x component - left side
+    Float_t        fPynLeft[70];       // momentum y component - left side     
+    Float_t        fPznLeft[70];       // momentum z component - left side   
+    //  
+    Int_t           fNnRight;          // No. of neutrons emitted on right side            
+    Float_t         fEnRight;          // Forward energy Right side
+    Float_t        fPxnRight[70];      // momentum x component - right side
+    Float_t        fPynRight[70];      // momentum y component - right side     
+    Float_t        fPznRight[70];      // momentum z component - right side     
+    //
+    // **** protons
+    Int_t           fNpLeft;           // No. of protons emitted on left side            
+    Float_t         fEtapLeft;                 // Forward energy Left side
+    Float_t        fPxpLeft[70];       // momentum x component - left side
+    Float_t        fPypLeft[70];       // momentum y component - left side     
+    Float_t        fPzpLeft[70];       // momentum z component - left side   
+    //  
+    Int_t           fNpRight;          // No. of protons emitted on right side            
+    Float_t         fEtapRight;        // Forward energy Right side
+    Float_t        fPxpRight[70];      // momentum x component - right side
+    Float_t        fPypRight[70];      // momentum y component - right side     
+    Float_t        fPzpRight[70];      // momentum z component - right side
+    
+ private:
+    void Copy(TObject&) const;
+    ClassDef(AliGenReaderEMD,1) // Class to read EMD data
+};
+#endif
+
+
+
+
+
+