]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESD.cxx
Storing the trigger class mask into the raw data header. Should be ok for TPC,PHOS...
[u/mrichter/AliRoot.git] / STEER / AliESD.cxx
index a565e84a8666a6e546cc8ba4b5ef04ee52c25484..e96e56c5a5c4a456b8d05edbcf1b1d19c9cf183a 100644 (file)
@@ -23,6 +23,7 @@
 //-----------------------------------------------------------------
 
 #include "AliESD.h"
+#include "AliESDfriend.h"
 
 ClassImp(AliESD)
 
@@ -33,8 +34,10 @@ AliESD::AliESD():
   fTrigger(0),
   fRecoVersion(0),
   fMagneticField(0),
-  fZDCNEnergy(0),
-  fZDCPEnergy(0),
+  fZDCN1Energy(0),
+  fZDCP1Energy(0),
+  fZDCN2Energy(0),
+  fZDCP2Energy(0),
   fZDCEMEnergy(0),
   fZDCParticipants(0),
   fT0zVertex(0),
@@ -44,12 +47,19 @@ AliESD::AliESD():
   fHLTHoughTracks("AliESDHLTtrack",15000),
   fMuonTracks("AliESDMuonTrack",30),
   fPmdTracks("AliESDPmdTrack",3000),
-  fV0s("AliESDv0",200),
+  fTrdTracks("AliESDTrdTrack",300),
+  fV0s("AliESDv0",200),  
   fCascades("AliESDcascade",20),
-  fPHOSParticles(0), 
-  fEMCALParticles(0), 
-  fFirstPHOSParticle(-1), 
-  fFirstEMCALParticle(-1){
+  fKinks("AliESDkink",4000),
+  fV0MIs("AliESDV0MI",4000),
+  fCaloClusters("AliESDCaloCluster",10000),
+  fEMCALClusters(0), 
+  fFirstEMCALCluster(-1),
+  fPHOSClusters(0), 
+  fFirstPHOSCluster(-1),
+  fESDFMD(0x0)
+{
+
 }
 
 //______________________________________________________________________________
@@ -63,10 +73,66 @@ AliESD::~AliESD()
   fHLTHoughTracks.Delete();
   fMuonTracks.Delete();
   fPmdTracks.Delete();
+  fTrdTracks.Delete();
   fV0s.Delete();
   fCascades.Delete();
+  fKinks.Delete();
+  fV0MIs.Delete();
+  fCaloClusters.Delete();
+  delete fESDFMD;
+}
+
+void AliESD::UpdateV0PIDs()
+{
+  //
+  //
+  //
+  Int_t nV0 = GetNumberOfV0MIs();
+  for (Int_t i=0;i<nV0;i++){
+    AliESDV0MI * v0 = GetV0MI(i);
+    AliESDtrack* tp = GetTrack(v0->GetIndex(0));
+    AliESDtrack* tm = GetTrack(v0->GetIndex(1));
+    if (!tm || !tp){
+      printf("BBBUUUUUUUGGGG\n");
+    }
+    Double_t pp[5],pm[5];
+    tp->GetESDpid(pp);
+    tm->GetESDpid(pm);
+    v0->UpdatePID(pp,pm);    
+  }
 }
 
+//______________________________________________________________________________
+void AliESD::Reset()
+{
+  fEventNumber=0;
+  fRunNumber=0;
+  fTrigger=0;
+  fRecoVersion=0;
+  fMagneticField=0;
+  fZDCN1Energy=0;
+  fZDCP1Energy=0;
+  fZDCN2Energy=0;
+  fZDCP2Energy=0;
+  fZDCEMEnergy=0;
+  fZDCParticipants=0;
+  fT0zVertex=0;
+  fPrimaryVertex.Reset();
+  fTracks.Clear();
+  fHLTConfMapTracks.Clear();
+  fHLTHoughTracks.Clear();
+  fMuonTracks.Clear();
+  fPmdTracks.Clear();
+  fTrdTracks.Clear();
+  fV0s.Clear();
+  fCascades.Clear();
+  fCaloClusters.Clear();
+  fEMCALClusters=0; 
+  fFirstEMCALCluster=-1; 
+  fPHOSClusters=0; 
+  fFirstPHOSCluster=-1; 
+  if (fESDFMD) fESDFMD->Clear();
+}
 
 //______________________________________________________________________________
 void AliESD::Print(Option_t *) const 
@@ -86,13 +152,47 @@ void AliESD::Print(Option_t *) const
         fPrimaryVertex.GetZv(), fPrimaryVertex.GetZRes());
   printf("Event from reconstruction version %d \n",fRecoVersion);
   printf("Number of tracks: \n");
-  printf("                 charged   %d\n",GetNumberOfTracks()-GetNumberOfPHOSParticles()-GetNumberOfEMCALParticles());
+  printf("                 charged   %d\n", GetNumberOfTracks());
   printf("                 hlt CF    %d\n", GetNumberOfHLTConfMapTracks());
   printf("                 hlt HT    %d\n", GetNumberOfHLTHoughTracks());
-  printf("                 phos      %d\n", GetNumberOfPHOSParticles());
-  printf("                 emcal     %d\n", GetNumberOfEMCALParticles());
+  printf("                 phos      %d\n", GetNumberOfPHOSClusters());
+  printf("                 emcal     %d\n", GetNumberOfEMCALClusters());
   printf("                 muon      %d\n", GetNumberOfMuonTracks());
   printf("                 pmd       %d\n", GetNumberOfPmdTracks());
+  printf("                 trd       %d\n", GetNumberOfTrdTracks());
   printf("                 v0        %d\n", GetNumberOfV0s());
   printf("                 cascades  %d\n)", GetNumberOfCascades());
+  printf("                 kinks     %d\n)", GetNumberOfKinks());
+  printf("                 V0MIs     %d\n)", GetNumberOfV0MIs());
+  printf("                 CaloClusters %d\n)", GetNumberOfCaloClusters());
+  printf("                 FMD       %s\n)", (fESDFMD ? "yes" : "no"));
+}
+
+void AliESD::SetESDfriend(const AliESDfriend *ev) {
+  //
+  // Attaches the complementary info to the ESD
+  //
+  if (!ev) return;
+
+  Int_t ntrk=ev->GetNumberOfTracks();
+
+  for (Int_t i=0; i<ntrk; i++) {
+    const AliESDfriendTrack *f=ev->GetTrack(i);
+    GetTrack(i)->SetFriendTrack(f);
+  }
+}
+
+void AliESD::GetESDfriend(AliESDfriend *ev) const {
+  //
+  // Extracts the complementary info from the ESD
+  //
+  if (!ev) return;
+
+  Int_t ntrk=GetNumberOfTracks();
+
+  for (Int_t i=0; i<ntrk; i++) {
+    const AliESDtrack *t=GetTrack(i);
+    const AliESDfriendTrack *f=t->GetFriendTrack();
+    ev->AddTrack(f);
+  }
 }