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 //______________________________________________________________________________
49 fTracks("AliESDtrack",15000),
50 fHLTConfMapTracks("AliESDHLTtrack",25000),
51 fHLTHoughTracks("AliESDHLTtrack",15000),
52 fMuonTracks("AliESDMuonTrack",30),
53 fPmdTracks("AliESDPmdTrack",3000),
54 fTrdTracks("AliESDTrdTrack",300),
56 fCascades("AliESDcascade",20),
57 fKinks("AliESDkink",4000),
58 fV0MIs("AliESDV0MI",4000),
59 fCaloClusters("AliESDCaloCluster",10000),
61 fFirstEMCALCluster(-1),
63 fFirstPHOSCluster(-1),
66 for (Int_t i=0; i<24; i++) {
72 //______________________________________________________________________________
76 // Standard destructor
79 fHLTConfMapTracks.Delete();
80 fHLTHoughTracks.Delete();
88 fCaloClusters.Delete();
92 void AliESD::UpdateV0PIDs()
97 Int_t nV0 = GetNumberOfV0MIs();
98 for (Int_t i=0;i<nV0;i++){
99 AliESDV0MI * v0 = GetV0MI(i);
100 AliESDtrack* tp = GetTrack(v0->GetIndex(0));
101 AliESDtrack* tm = GetTrack(v0->GetIndex(1));
103 printf("BBBUUUUUUUGGGG\n");
105 Double_t pp[5],pm[5];
108 v0->UpdatePID(pp,pm);
112 //______________________________________________________________________________
129 new (&fSPDVertex) AliESDVertex();
130 new (&fPrimaryVertex) AliESDVertex();
131 new (&fSPDMult) AliMultiplicity();
133 fHLTConfMapTracks.Clear();
134 fHLTHoughTracks.Clear();
140 fCaloClusters.Clear();
142 fFirstEMCALCluster=-1;
144 fFirstPHOSCluster=-1;
145 if (fESDFMD) fESDFMD->Clear();
148 //______________________________________________________________________________
149 void AliESD::Print(Option_t *) const
152 // Print header information of the event
154 printf("ESD run information\n");
155 printf("Event # %d Run # %d Trigger %lld Magnetic field %f \n",
159 GetMagneticField() );
160 printf("Vertex: (%.4f +- %.4f, %.4f +- %.4f, %.4f +- %.4f) cm\n",
161 fPrimaryVertex.GetXv(), fPrimaryVertex.GetXRes(),
162 fPrimaryVertex.GetYv(), fPrimaryVertex.GetYRes(),
163 fPrimaryVertex.GetZv(), fPrimaryVertex.GetZRes());
164 printf("SPD Multiplicity. Number of tracklets %d \n",
165 fSPDMult.GetNumberOfTracklets());
166 printf("Event from reconstruction version %d \n",fRecoVersion);
167 printf("Number of tracks: \n");
168 printf(" charged %d\n", GetNumberOfTracks());
169 printf(" hlt CF %d\n", GetNumberOfHLTConfMapTracks());
170 printf(" hlt HT %d\n", GetNumberOfHLTHoughTracks());
171 printf(" muon %d\n", GetNumberOfMuonTracks());
172 printf(" pmd %d\n", GetNumberOfPmdTracks());
173 printf(" trd %d\n", GetNumberOfTrdTracks());
174 printf(" v0 %d\n", GetNumberOfV0s());
175 printf(" cascades %d\n", GetNumberOfCascades());
176 printf(" kinks %d\n", GetNumberOfKinks());
177 printf(" V0MIs %d\n", GetNumberOfV0MIs());
178 printf(" CaloClusters %d\n", GetNumberOfCaloClusters());
179 printf(" phos %d\n", GetNumberOfPHOSClusters());
180 printf(" emcal %d\n", GetNumberOfEMCALClusters());
181 printf(" FMD %s\n", (fESDFMD ? "yes" : "no"));
184 void AliESD::SetESDfriend(const AliESDfriend *ev) {
186 // Attaches the complementary info to the ESD
190 Int_t ntrk=ev->GetNumberOfTracks();
192 for (Int_t i=0; i<ntrk; i++) {
193 const AliESDfriendTrack *f=ev->GetTrack(i);
194 GetTrack(i)->SetFriendTrack(f);
198 void AliESD::GetESDfriend(AliESDfriend *ev) const {
200 // Extracts the complementary info from the ESD
204 Int_t ntrk=GetNumberOfTracks();
206 for (Int_t i=0; i<ntrk; i++) {
207 const AliESDtrack *t=GetTrack(i);
208 const AliESDfriendTrack *f=t->GetFriendTrack();