First implementation of ESD classes (Yu.Belikov)
[u/mrichter/AliRoot.git] / STEER / AliESD.h
index 7b5777b21c0c16c7fc817f51e48d5813969f2de5..79eb40f250dee847a29d4d15a9fe7faec97493a1 100644 (file)
-#ifndef ALIESD_H
-#define ALIESD_H
+#ifndef ALIESDEVENT_H
+#define ALIESDEVENT_H
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
-/* $Id$ */
-
-///////////////////////////////////////////////////////////////////////////////
-//                                                                           //
-//   Alice ESD object                                                        //
-//                                                                           //
-///////////////////////////////////////////////////////////////////////////////
+//-------------------------------------------------------------------------
+//                          Class AliESD
+//   This is the class to deal with during the physical analysis of data
+//      
+//         Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch 
+//-------------------------------------------------------------------------
 
 #include "TObject.h"
-#include "TObjArray.h"
-#include "TArrayI.h"
-#include "TArrayF.h"
-#include "TArrayD.h"
+#include "TClonesArray.h"
+#include  "AliESDtrack.h"
 
-class AliESDTrack : public TObject
-{
+class AliESD : public TObject {
 public:
-  AliESDTrack();
-  virtual ~AliESDTrack() {}
-  
-protected:
-  Int_t     fTrackID;        // Track number
-
-  // Track parameters at Vertex
-  TArrayD   fPVertex;        // (5) Track parameters
-  TArrayD   fPEVertex;       // (15) Track parameter errors
-  
-  // Track parameters at first measured point
-  TArrayD   fPFMeasPoint;        // (6) Track parameters
-  TArrayD   fPFMeasPointErr;     // (15) Track parameter error
-  
-  // Track parameters at last measured point
-  TArrayD   fPLMeasPoint;        // (6) Track parameters
-  TArrayD   fPLMeasPointErr;     // (15) Track parameter error
-
-  Float_t   fTrackLength;        // Track length
-  Float_t   fTrackLengthErr;     // Track length error
-  Int_t     fStopVertex;         // Index of stop vertex
-  
-  Int_t     fNPointsITS;         // Number of points in ITS
-  Int_t     fNPointsTPC;         // Number of points in TPC
-  Int_t     fNPointsTRD;         // Number of points in TRD
-  Float_t   fMeanResITS;         // Mean residual in ITS
-  Float_t   fMeanResTPC;         // Mean residual in TPC
-  Float_t   fMeanResTRD;         // Mean residual in TRD
-  Float_t   fGlobalChi2;         // Global chi square
-  Int_t     fParticleType;       // PDG code
-
-  Float_t   fPIDprobPi;          // PID probability for pi
-  Float_t   fPIDprobK;           // PID probability for K
-  Float_t   fPIDprobP;           // PID probability for p
-  Float_t   fPIDprobE;           // PID probability for e
-
-private:
-  AliESDTrack(const AliESDTrack & esdt);
-  AliESDTrack & operator=(const AliESDTrack &) {return (*this);}
-  
-  ClassDef(AliESDTrack,1)  //ESDTrack 
-};
-
+  AliESD();
+  virtual ~AliESD() {
+    fTracks.Delete();
+    //fV0s.Delete();
+    //fCascades.Delete();
+  }
 
-class AliESDVertex : public TObject
-{
-public:
-  AliESDVertex();
-  virtual ~AliESDVertex() {}
-  
-protected:
-  Int_t        fNPrimary;               // Number of primary tracks
-  TArrayF      fCoordinates;            // (3) Vertex coordinates
-  TArrayF      fErrorMatrix;            // (6) Error Matrix
-  TObjArray    fPrimaryTracks;          // List of primary tracks
-  Float_t      fEffectiveMass;          // Effective Mass
-  Float_t      fEffectiveMassError;     // Effective Mass Error
-private:
-  AliESDVertex(const AliESDVertex & esdv);
-  AliESDVertex & operator=(const AliESDVertex &) {return (*this);}
-  
-  ClassDef(AliESDVertex,1)  //ESDVertex 
-};
+  void SetEventNumber(Int_t n) {fEventNumber=n;}
 
-class AliESD : public TObject
-{
-public:
-  AliESD();
-  virtual ~AliESD() {}
+  AliESDtrack *GetTrack(Int_t i) {
+    return (AliESDtrack *)fTracks.UncheckedAt(i);
+  }
+  void AddTrack(const AliESDtrack *t) {
+    new(fTracks[fTracks.GetEntriesFast()]) AliESDtrack(*t);
+  }
 
-  Int_t EventNumber() const {return fEventNumber;}
-  Int_t RunNumber() const {return fRunNumber;}
-  Long_t Trigger() const {return fTrigger;}
-  
-  Int_t BitDDL() const {return fBitDDL;}
-  Int_t NSecVertex() const {return fNSecVertex;}
-  Float_t NParticipants() const {return fNParticipants;}
+  Int_t  GetEventNumber() const {return fEventNumber;}
+  Int_t  GetRunNumber() const {return fRunNumber;}
+  Long_t GetTrigger() const {return fTrigger;}
   
+  Int_t GetNumberOfTracks()   const {return fTracks.GetEntriesFast();}
+  //Int_t GetNumberOfV0s()      const {return fV0s.GetEntriesFast();}
+  //Int_t GetNumberOfCascades() const {return fCascades.GetEntriesFast();}
   
 protected:
 
   // Event Identification
-  Int_t        fEventNumber;            // Event Number
-  Int_t        fRunNumber;              // Run Number
-  Long_t       fTrigger;                // Trigger Type (cfg Transverse Energy&Max trans ch mom)
-  Int_t        fRecoVersion;            // Version of reconstruction 
-
-  // Summary Information
-  Int_t        fBitDDL;                 // Bitmap of active DDL
-  Int_t        fNSecVertex;             // Number of Secondary Vertexes
-  Float_t      fNParticipants;          // Estimated Number of participants
-  Float_t      fNPartError;             // N of participant error
-  Int_t        fNElectron;              // N of electrons
-  Int_t        fNMuons;                 // N of muons
-  Int_t        fNPions;                 // N of pions
-  Int_t        fNKaons;                 // N of kaons
-  Int_t        fNProtons;               // N of protons
-  Int_t        fNPHOSPhotons;           // N of photons in PHOS
-  Int_t        fNPHOSNeutrons;          // N of neutrons in PHOS
-  Int_t        fNPHOSCCluster;          // N of charged clusters in PHOS
-  Int_t        fNEMCALCluster;          // N of clusters in EMCAL
-  Int_t        fNPMDCluster;            // N of clusters in PMD
-  Float_t      fTMaxClusterEnergy;      // Transverse energy of biggest cluster
-  Float_t      fTMaxPCharged;           // Biggest transverse momentum of charged particles
-  TArrayI      fNCharged;               // Charged Multiplicity
-  Float_t      fTotTranEnergy;          // Total transverse energy
-
-  // Primary Vertex Object
-  AliESDVertex fESDVertex;              // Primary Vertex Object
-  TObjArray    fSecVertex;              // List secondary vertexes
-  TObjArray    fNonAssTrack;            // List of non assigned tracks
-  TObjArray    fPhoton;                 // List of photons
-  TObjArray    fNeutron;                // List of neutrons
-  TObjArray    fEMCALCluster;           // List of EMCAL clusters
-  TObjArray    fPMDCluster;             // List of PMD clusters
+  Int_t        fEventNumber;     // Event Number
+  Int_t        fRunNumber;       // Run Number
+  Long_t       fTrigger;         // Trigger Type
+  Int_t        fRecoVersion;     // Version of reconstruction 
 
-private:
-  AliESD(const AliESD &);
-  AliESD & operator=(const AliESD &) {return (*this);}
+  TClonesArray  fTracks;         // ESD tracks
+  //TClonesArray  fV0s;            // V0 vertices
+  //TClonesArray  fCascades;       // Cascade vertices
   
-  ClassDef(AliESD,1)  //ESD 
+  ClassDef(AliESD,1)  //ESD class 
 };
 
 #endif