* See cxx source for full Copyright notice */
// Class to read events from external (TNtupla) file
-// Events -> neutron removal by EM dissociation of Pb nuclei
+// 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);
AliGenReaderEMD & operator=(const AliGenReaderEMD & rhs);
// Initialise
virtual void Init();
- // Read
+ // Reader
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;}
+ // Setters
+ void TrackNotNucleons() {fPcToTrack = kNotNucleons;}
+ void TrackOnlyNucleons() {fPcToTrack = kOnlyNucleons;}
+ void TrackAllParticles() {fPcToTrack = kAll;}
void SetStartEvent(Int_t nev) {fStartEvent = nev;}
protected:
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
+ 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 Aside side
- Float_t fPxnAside[70]; // momentum x component - left side
- Float_t fPynAside[70]; // momentum y component - left side
- Float_t fPznAside[70]; // momentum z component - 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 Cside side
- Float_t fPxnCside[70]; // momentum x component - right side
- Float_t fPynCside[70]; // momentum y component - right side
- Float_t fPznCside[70]; // momentum z component - 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 Aside side
- Float_t fPxpAside[70]; // momentum x component - left side
- Float_t fPypAside[70]; // momentum y component - left side
- Float_t fPzpAside[70]; // momentum z component - 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 Cside side
- Float_t fPxpCside[70]; // momentum x component - right side
- Float_t fPypCside[70]; // momentum y component - right side
- Float_t fPzpCside[70]; // momentum z component - 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,1) // Class to read EMD data
+ ClassDef(AliGenReaderEMD, 2) // Class to read EMD data
};
#endif