Inheritance from TObject. Automatic streamers.
[u/mrichter/AliRoot.git] / STEER / AliESD.h
1 #ifndef ALIESD_H
2 #define ALIESD_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 ///////////////////////////////////////////////////////////////////////////////
9 //                                                                           //
10 //   Alice ESD object                                                        //
11 //                                                                           //
12 ///////////////////////////////////////////////////////////////////////////////
13
14 #include "TObject.h"
15 #include "TObjArray.h"
16 #include "TArrayI.h"
17 #include "TArrayF.h"
18 #include "TArrayD.h"
19
20 class AliESDTrack : public TObject
21 {
22 public:
23   AliESDTrack();
24   virtual ~AliESDTrack() {}
25   
26 protected:
27   Int_t     fTrackID;        // Track number
28
29   // Track parameters at Vertex
30   TArrayD   fPVertex;        // (5) Track parameters
31   TArrayD   fPEVertex;       // (15) Track parameter errors
32   
33   // Track parameters at first measured point
34   TArrayD   fPFMeasPoint;        // (6) Track parameters
35   TArrayD   fPFMeasPointErr;     // (15) Track parameter error
36   
37   // Track parameters at last measured point
38   TArrayD   fPLMeasPoint;        // (6) Track parameters
39   TArrayD   fPLMeasPointErr;     // (15) Track parameter error
40
41   Float_t   fTrackLength;        // Track length
42   Float_t   fTrackLengthErr;     // Track length error
43   Int_t     fStopVertex;         // Index of stop vertex
44   
45   Int_t     fNPointsITS;         // Number of points in ITS
46   Int_t     fNPointsTPC;         // Number of points in TPC
47   Int_t     fNPointsTRD;         // Number of points in TRD
48   Float_t   fMeanResITS;         // Mean residual in ITS
49   Float_t   fMeanResTPC;         // Mean residual in TPC
50   Float_t   fMeanResTRD;         // Mean residual in TRD
51   Float_t   fGlobalChi2;         // Global chi square
52   Int_t     fParticleType;       // PDG code
53
54   Float_t   fPIDprobPi;          // PID probability for pi
55   Float_t   fPIDprobK;           // PID probability for K
56   Float_t   fPIDprobP;           // PID probability for p
57   Float_t   fPIDprobE;           // PID probability for e
58
59 private:
60   AliESDTrack(const AliESDTrack &) {}
61   AliESDTrack & operator=(const AliESDTrack &) {return (*this);}
62   
63   ClassDef(AliESDTrack,1)  //ESDTrack 
64 };
65
66
67 class AliESDVertex : public TObject
68 {
69 public:
70   AliESDVertex();
71   virtual ~AliESDVertex() {}
72   
73 protected:
74   Int_t        fNPrimary;               // Number of primary tracks
75   TArrayF      fCoordinates;            // (3) Vertex coordinates
76   TArrayF      fErrorMatrix;            // (6) Error Matrix
77   TObjArray    fPrimaryTracks;          // List of primary tracks
78   Float_t      fEffectiveMass;          // Effective Mass
79   Float_t      fEffectiveMassError;     // Effective Mass Error
80 private:
81   AliESDVertex(const AliESDVertex &) {}
82   AliESDVertex & operator=(const AliESDVertex &) {return (*this);}
83   
84   ClassDef(AliESDVertex,1)  //ESDVertex 
85 };
86
87 class AliESD : public TObject
88 {
89 public:
90   AliESD();
91   virtual ~AliESD() {}
92
93   Int_t EventNumber() const {return fEventNumber;}
94   Int_t RunNumber() const {return fRunNumber;}
95   Long_t Trigger() const {return fTrigger;}
96   
97   Int_t BitDDL() const {return fBitDDL;}
98   Int_t NSecVertex() const {return fNSecVertex;}
99   Float_t NParticipants() const {return fNParticipants;}
100   
101   
102 protected:
103
104   // Event Identification
105   Int_t        fEventNumber;            // Event Number
106   Int_t        fRunNumber;              // Run Number
107   Long_t       fTrigger;                // Trigger Type (cfg Transverse Energy&Max trans ch mom)
108   Int_t        fRecoVersion;            // Version of reconstruction 
109
110   // Summary Information
111   Int_t        fBitDDL;                 // Bitmap of active DDL
112   Int_t        fNSecVertex;             // Number of Secondary Vertexes
113   Float_t      fNParticipants;          // Estimated Number of participants
114   Float_t      fNPartError;             // N of participant error
115   Int_t        fNElectron;              // N of electrons
116   Int_t        fNMuons;                 // N of muons
117   Int_t        fNPions;                 // N of pions
118   Int_t        fNKaons;                 // N of kaons
119   Int_t        fNProtons;               // N of protons
120   Int_t        fNPHOSPhotons;           // N of photons in PHOS
121   Int_t        fNPHOSNeutrons;          // N of neutrons in PHOS
122   Int_t        fNPHOSCCluster;          // N of charged clusters in PHOS
123   Int_t        fNEMCALCluster;          // N of clusters in EMCAL
124   Int_t        fNPMDCluster;            // N of clusters in PMD
125   Float_t      fTMaxClusterEnergy;      // Transverse energy of biggest cluster
126   Float_t      fTMaxPCharged;           // Biggest transverse momentum of charged particles
127   TArrayI      fNCharged;               // Charged Multiplicity
128   Float_t      fTotTranEnergy;          // Total transverse energy
129
130   // Primary Vertex Object
131   AliESDVertex fESDVertex;              // Primary Vertex Object
132   TObjArray    fSecVertex;              // List secondary vertexes
133   TObjArray    fNonAssTrack;            // List of non assigned tracks
134   TObjArray    fPhoton;                 // List of photons
135   TObjArray    fNeutron;                // List of neutrons
136   TObjArray    fEMCALCluster;           // List of EMCAL clusters
137   TObjArray    fPMDCluster;             // List of PMD clusters
138
139 private:
140   AliESD(const AliESD &) {}
141   AliESD & operator=(const AliESD &) {return (*this);}
142   
143   ClassDef(AliESD,1)  //ESD 
144 };
145
146 #endif 
147