1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
18 //-----------------------------------------------------------------
19 // Implementation of the ESD class
20 // This is the class to deal with during the phisical analysis of data
21 // This class is generated directly by the reconstruction methods
22 // Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch
23 //-----------------------------------------------------------------
26 #include "AliESDfriend.h"
30 //______________________________________________________________________________
47 fTracks("AliESDtrack",15000),
48 fHLTConfMapTracks("AliESDHLTtrack",25000),
49 fHLTHoughTracks("AliESDHLTtrack",15000),
50 fMuonTracks("AliESDMuonTrack",30),
51 fPmdTracks("AliESDPmdTrack",3000),
52 fTrdTracks("AliESDTrdTrack",300),
54 fCascades("AliESDcascade",20),
55 fKinks("AliESDkink",4000),
56 fV0MIs("AliESDV0MI",4000),
57 fCaloClusters("AliESDCaloCluster",10000),
59 fFirstEMCALCluster(-1),
61 fFirstPHOSCluster(-1),
64 for (Int_t i=0; i<24; i++) {
70 //______________________________________________________________________________
74 // Standard destructor
77 fHLTConfMapTracks.Delete();
78 fHLTHoughTracks.Delete();
86 fCaloClusters.Delete();
90 void AliESD::UpdateV0PIDs()
95 Int_t nV0 = GetNumberOfV0MIs();
96 for (Int_t i=0;i<nV0;i++){
97 AliESDV0MI * v0 = GetV0MI(i);
98 AliESDtrack* tp = GetTrack(v0->GetIndex(0));
99 AliESDtrack* tm = GetTrack(v0->GetIndex(1));
101 printf("BBBUUUUUUUGGGG\n");
103 Double_t pp[5],pm[5];
106 v0->UpdatePID(pp,pm);
110 //______________________________________________________________________________
127 fPrimaryVertex.Reset();
129 fHLTConfMapTracks.Clear();
130 fHLTHoughTracks.Clear();
136 fCaloClusters.Clear();
138 fFirstEMCALCluster=-1;
140 fFirstPHOSCluster=-1;
141 if (fESDFMD) fESDFMD->Clear();
144 //______________________________________________________________________________
145 void AliESD::Print(Option_t *) const
148 // Print header information of the event
150 printf("ESD run information\n");
151 printf("Event # %d Run # %d Trigger %lld Magnetic field %f \n",
155 GetMagneticField() );
156 printf("Vertex: (%.4f +- %.4f, %.4f +- %.4f, %.4f +- %.4f) cm\n",
157 fPrimaryVertex.GetXv(), fPrimaryVertex.GetXRes(),
158 fPrimaryVertex.GetYv(), fPrimaryVertex.GetYRes(),
159 fPrimaryVertex.GetZv(), fPrimaryVertex.GetZRes());
160 printf("Event from reconstruction version %d \n",fRecoVersion);
161 printf("Number of tracks: \n");
162 printf(" charged %d\n", GetNumberOfTracks());
163 printf(" hlt CF %d\n", GetNumberOfHLTConfMapTracks());
164 printf(" hlt HT %d\n", GetNumberOfHLTHoughTracks());
165 printf(" phos %d\n", GetNumberOfPHOSClusters());
166 printf(" emcal %d\n", GetNumberOfEMCALClusters());
167 printf(" muon %d\n", GetNumberOfMuonTracks());
168 printf(" pmd %d\n", GetNumberOfPmdTracks());
169 printf(" trd %d\n", GetNumberOfTrdTracks());
170 printf(" v0 %d\n", GetNumberOfV0s());
171 printf(" cascades %d\n)", GetNumberOfCascades());
172 printf(" kinks %d\n)", GetNumberOfKinks());
173 printf(" V0MIs %d\n)", GetNumberOfV0MIs());
174 printf(" CaloClusters %d\n)", GetNumberOfCaloClusters());
175 printf(" FMD %s\n)", (fESDFMD ? "yes" : "no"));
178 void AliESD::SetESDfriend(const AliESDfriend *ev) {
180 // Attaches the complementary info to the ESD
184 Int_t ntrk=ev->GetNumberOfTracks();
186 for (Int_t i=0; i<ntrk; i++) {
187 const AliESDfriendTrack *f=ev->GetTrack(i);
188 GetTrack(i)->SetFriendTrack(f);
192 void AliESD::GetESDfriend(AliESDfriend *ev) const {
194 // Extracts the complementary info from the ESD
198 Int_t ntrk=GetNumberOfTracks();
200 for (Int_t i=0; i<ntrk; i++) {
201 const AliESDtrack *t=GetTrack(i);
202 const AliESDfriendTrack *f=t->GetFriendTrack();