X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliESD.cxx;h=a13cc0f5c4945f3970e328b4ae676ba3aa71ad5c;hb=ea865c8584bc5bee536943ce884fc2671b47e244;hp=fffee719f52c961c43516a6a1b71aba9457c72c8;hpb=704be59761021adcb14de84e3deeae1084900b65;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliESD.cxx b/STEER/AliESD.cxx index fffee719f52..a13cc0f5c49 100644 --- a/STEER/AliESD.cxx +++ b/STEER/AliESD.cxx @@ -23,6 +23,7 @@ //----------------------------------------------------------------- #include "AliESD.h" +#include "AliESDfriend.h" ClassImp(AliESD) @@ -30,20 +31,41 @@ ClassImp(AliESD) AliESD::AliESD(): fEventNumber(0), fRunNumber(0), - fTrigger(0), + fTriggerMask(0), + fTriggerCluster(0), fRecoVersion(0), fMagneticField(0), + fZDCN1Energy(0), + fZDCP1Energy(0), + fZDCN2Energy(0), + fZDCP2Energy(0), + fZDCEMEnergy(0), + fZDCParticipants(0), fT0zVertex(0), - fPrimaryVertex(), + fSPDVertex(0), + fPrimaryVertex(0), + fT0timeStart(0), fTracks("AliESDtrack",15000), + fHLTConfMapTracks("AliESDHLTtrack",25000), + 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) +{ + for (Int_t i=0; i<24; i++) { + fT0time[i] = 0; + fT0amplitude[i] = 0; + } } //______________________________________________________________________________ @@ -52,13 +74,76 @@ AliESD::~AliESD() // // Standard destructor // + delete fSPDVertex; + delete fPrimaryVertex; fTracks.Delete(); + fHLTConfMapTracks.Delete(); + 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;iGetIndex(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; + fTriggerMask=0; + fTriggerCluster=0; + fRecoVersion=0; + fMagneticField=0; + fZDCN1Energy=0; + fZDCP1Energy=0; + fZDCN2Energy=0; + fZDCP2Energy=0; + fZDCEMEnergy=0; + fZDCParticipants=0; + fT0zVertex=0; + fT0timeStart = 0; + delete fSPDVertex; fSPDVertex=0; + delete fPrimaryVertex; fPrimaryVertex=0; + 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 @@ -66,23 +151,60 @@ void AliESD::Print(Option_t *) const // // Print header information of the event // - Info("Print","ESD run information"); - printf("Event # %d Run # %d Trigger %ld Magnetic field %f \n", + printf("ESD run information\n"); + printf("Event # %d Run # %d Trigger %lld Magnetic field %f \n", GetEventNumber(), GetRunNumber(), - GetTrigger(), + GetTriggerMask(), GetMagneticField() ); - printf("Vertex: (%.4f +- %.4f, %.4f +- %.4f, %.4f +- %.4f) cm\n", - fPrimaryVertex.GetXv(), fPrimaryVertex.GetXRes(), - fPrimaryVertex.GetYv(), fPrimaryVertex.GetYRes(), - fPrimaryVertex.GetZv(), fPrimaryVertex.GetZRes()); + if (fPrimaryVertex) + 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(" phos %d\n", GetNumberOfPHOSParticles()); - printf(" emcal %d\n", GetNumberOfEMCALParticles()); + printf(" charged %d\n", GetNumberOfTracks()); + printf(" hlt CF %d\n", GetNumberOfHLTConfMapTracks()); + printf(" hlt HT %d\n", GetNumberOfHLTHoughTracks()); 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(" cascades %d\n", GetNumberOfCascades()); + printf(" kinks %d\n", GetNumberOfKinks()); + printf(" V0MIs %d\n", GetNumberOfV0MIs()); + printf(" CaloClusters %d\n", GetNumberOfCaloClusters()); + printf(" phos %d\n", GetNumberOfPHOSClusters()); + printf(" emcal %d\n", GetNumberOfEMCALClusters()); + 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; iGetTrack(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; iGetFriendTrack(); + ev->AddTrack(f); + } }