]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESD.cxx
Bug corrected - pairs must be filled from mixed events
[u/mrichter/AliRoot.git] / STEER / AliESD.cxx
index b51e2fed36672516697380e2d3a8ce7f52c1bd7b..b6a64982ce1d8961ed6cb97ab7d368aa30c7aa7c 100644 (file)
@@ -18,7 +18,7 @@
 //-----------------------------------------------------------------
 //           Implementation of the ESD class
 //   This is the class to deal with during the phisical analysis of data
-//
+//   This class is generated directly by the reconstruction methods
 //      Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch
 //-----------------------------------------------------------------
 
 
 ClassImp(AliESD)
 
-//_______________________________________________________________________
+//______________________________________________________________________________
 AliESD::AliESD():
   fEventNumber(0),
   fRunNumber(0),
   fTrigger(0),
   fRecoVersion(0),
   fMagneticField(0),
+  fZDCNEnergy(0),
+  fZDCPEnergy(0),
+  fZDCEMEnergy(0),
+  fZDCParticipants(0),
+  fT0zVertex(0),
+  fPrimaryVertex(),
   fTracks("AliESDtrack",15000),
-  fCaloTracks("AliESDCaloTrack",500),
+  fHLTConfMapTracks("AliESDHLTtrack",25000),
+  fHLTHoughTracks("AliESDHLTtrack",15000),
   fMuonTracks("AliESDMuonTrack",30),
-  fV0s("AliESDv0",200),
-  fCascades("AliESDcascade",20)
+  fPmdTracks("AliESDPmdTrack",3000),
+  fV0s("AliESDv0",200),  
+  fCascades("AliESDcascade",20),
+  fKinks("AliESDkink",4000),
+  fV0MIs("AliESDV0MI",4000),
+  fPHOSParticles(0), 
+  fEMCALParticles(0), 
+  fFirstPHOSParticle(-1), 
+  fFirstEMCALParticle(-1){
+}
+
+//______________________________________________________________________________
+AliESD::~AliESD()
 {
-  Int_t i;
-  for (i=0; i<3; i++) fVtx[i]=0.;
-  for (i=0; i<6; i++) fCovVtx[i]=0.;
+  //
+  // Standard destructor
+  //
+  fTracks.Delete();
+  fHLTConfMapTracks.Delete();
+  fHLTHoughTracks.Delete();
+  fMuonTracks.Delete();
+  fPmdTracks.Delete();
+  fV0s.Delete();
+  fCascades.Delete();
+  fKinks.Delete();
+  fV0MIs.Delete();
 }
 
-void AliESD::SetVertex(const Double_t *vtx, const Double_t *cvtx) {
-  //Save the primary vertex position
-  Int_t i;
-  for (i=0; i<3; i++) fVtx[i]=vtx[i];
-  if (cvtx)
-  for (i=0; i<6; i++) fCovVtx[i]=cvtx[i];   
+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::GetVertex(Double_t *vtx, Double_t *cvtx) const {
-  //Get the primary vertex position
-  Int_t i;
-  for (i=0; i<3; i++) vtx[i]=fVtx[i];
-  if (cvtx)
-  for (i=0; i<6; i++) cvtx[i]=fCovVtx[i];   
+//______________________________________________________________________________
+void AliESD::Reset()
+{
+  fEventNumber=0;
+  fRunNumber=0;
+  fTrigger=0;
+  fRecoVersion=0;
+  fMagneticField=0;
+  fZDCNEnergy=0;
+  fZDCPEnergy=0;
+  fZDCEMEnergy=0;
+  fZDCParticipants=0;
+  fT0zVertex=0;
+  fPrimaryVertex.Reset();
+  fTracks.Clear();
+  fHLTConfMapTracks.Clear();
+  fHLTHoughTracks.Clear();
+  fMuonTracks.Clear();
+  fPmdTracks.Clear();
+  fV0s.Clear();
+  fCascades.Clear();
+  fPHOSParticles=0; 
+  fEMCALParticles=0; 
+  fFirstPHOSParticle=-1; 
+  fFirstEMCALParticle=-1;
 }
 
+//______________________________________________________________________________
+void AliESD::Print(Option_t *) const 
+{
+  //
+  // Print header information of the event
+  //
+  printf("ESD run information\n");
+  printf("Event # %d Run # %d Trigger %ld Magnetic field %f \n",
+        GetEventNumber(),
+        GetRunNumber(),
+        GetTrigger(),
+        GetMagneticField() );
+  printf("Vertex: (%.4f +- %.4f, %.4f +- %.4f, %.4f +- %.4f) cm\n",
+        fPrimaryVertex.GetXv(), fPrimaryVertex.GetXRes(),
+        fPrimaryVertex.GetYv(), fPrimaryVertex.GetYRes(),
+        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("                 hlt CF    %d\n", GetNumberOfHLTConfMapTracks());
+  printf("                 hlt HT    %d\n", GetNumberOfHLTHoughTracks());
+  printf("                 phos      %d\n", GetNumberOfPHOSParticles());
+  printf("                 emcal     %d\n", GetNumberOfEMCALParticles());
+  printf("                 muon      %d\n", GetNumberOfMuonTracks());
+  printf("                 pmd       %d\n", GetNumberOfPmdTracks());
+  printf("                 v0        %d\n", GetNumberOfV0s());
+  printf("                 cascades  %d\n)", GetNumberOfCascades());
+  printf("                 kinks     %d\n)", GetNumberOfKinks());
+  printf("                 V0MIs     %d\n)", GetNumberOfV0MIs());
+}