From a1e6aa99e45ae66b135007c05bdedc22d54ba2f8 Mon Sep 17 00:00:00 2001 From: marian Date: Tue, 11 Mar 2008 17:29:16 +0000 Subject: [PATCH] (Marian) 1. Modified assignment operators 2. Enabling of the V0 comparison (Partial - no label info in V0 anymore) 3. Update of README file --- PWG1/AliESDRecInfo.cxx | 26 ++------------- PWG1/AliESDRecInfo.h | 1 - PWG1/AliESDRecV0Info.cxx | 2 ++ PWG1/AliMCInfo.cxx | 2 +- PWG1/AliRecInfoMaker.cxx | 70 ++++++++++++++++++++++------------------ PWG1/PWG1README.txt | 2 +- 6 files changed, 45 insertions(+), 58 deletions(-) diff --git a/PWG1/AliESDRecInfo.cxx b/PWG1/AliESDRecInfo.cxx index 998fc4f7fdf..dcacc2235b0 100644 --- a/PWG1/AliESDRecInfo.cxx +++ b/PWG1/AliESDRecInfo.cxx @@ -75,8 +75,7 @@ AliESDRecInfo::AliESDRecInfo(): fTrackF(0), // friend track fTPCtrack(0), // tpc track fITStrack(0), // its track - fTRDtrack(0), // trd track - fTPCtrackAtVertex(0) // tpc track propagated to the vertex + fTRDtrack(0) // trd track { // // default constructor @@ -99,8 +98,7 @@ AliESDRecInfo::AliESDRecInfo(const AliESDRecInfo& recinfo): fTrackF(0), // friend track fTPCtrack(0), // tpc track fITStrack(0), // its track - fTRDtrack(0), // trd track - fTPCtrackAtVertex(0) // tpc track propagated to the vertex + fTRDtrack(0) // trd track { // // @@ -115,7 +113,7 @@ AliESDRecInfo& AliESDRecInfo::operator=(const AliESDRecInfo& info) { // // Assignment operator // - delete this; + this->~AliESDRecInfo(); new (this) AliESDRecInfo(info); return *this; } @@ -472,24 +470,6 @@ void AliESDRecInfo::UpdateTPC(AliMCInfo* info){ fSign =sign; fTPCPools[4] = sign*(1./fTPCinP0[3]-1./fTPCinP1[3])/TMath::Sqrt(TMath::Abs(cov[14])); } - - // Track propagated to the vertex during tracking - paramaters in ESD - - // - if (fESDtrack && fESDtrack->GetTPCInnerParam()){ - AliExternalTrackParam *track = new AliExternalTrackParam(*fESDtrack->GetTPCInnerParam()); - const Double_t kRadius = 3; // beam pipe radius - const Double_t kMaxStep = 5; // max step - //const Double_t kMaxD = 123456; // max distance to prim vertex - //Double_t fieldZ = AliTracker::GetBz(); // - AliTracker::PropagateTrackTo(track,kRadius,info->GetMass(),kMaxStep,kTRUE); - AliTracker::PropagateTrackTo(track,0,info->GetMass(),0.5,kTRUE); - //track->RelateToVertex(fEvent->GetVertex(),fieldZ, kMaxD); - fTPCtrackAtVertex = track; - }else{ - delete fTPCtrackAtVertex; - fTPCtrackAtVertex=0; - } } diff --git a/PWG1/AliESDRecInfo.h b/PWG1/AliESDRecInfo.h index a1c2ddc2455..b33bc21a864 100644 --- a/PWG1/AliESDRecInfo.h +++ b/PWG1/AliESDRecInfo.h @@ -91,7 +91,6 @@ private: AliTPCseed *fTPCtrack; // tpc track AliITStrackMI *fITStrack; // its track AliTRDtrack *fTRDtrack; // trd track - AliExternalTrackParam* fTPCtrackAtVertex; // TPC track propagated to the prim vertex ClassDef(AliESDRecInfo,2) // container for }; diff --git a/PWG1/AliESDRecV0Info.cxx b/PWG1/AliESDRecV0Info.cxx index 54e48f57c67..1c126d9c663 100644 --- a/PWG1/AliESDRecV0Info.cxx +++ b/PWG1/AliESDRecV0Info.cxx @@ -88,6 +88,8 @@ AliESDRecV0Info:: AliESDRecV0Info(): // // default constructor // + fV0tpc = new AliV0(); + fV0its = new AliV0(); } diff --git a/PWG1/AliMCInfo.cxx b/PWG1/AliMCInfo.cxx index 4752b8f8e74..986305bd3ec 100644 --- a/PWG1/AliMCInfo.cxx +++ b/PWG1/AliMCInfo.cxx @@ -141,7 +141,7 @@ AliMCInfo& AliMCInfo::operator=(const AliMCInfo& info) { // // Assignment operator // - delete this; + this->~AliMCInfo(); new (this) AliMCInfo(info); return *this; } diff --git a/PWG1/AliRecInfoMaker.cxx b/PWG1/AliRecInfoMaker.cxx index b5b003a39bd..a1f61d008bc 100644 --- a/PWG1/AliRecInfoMaker.cxx +++ b/PWG1/AliRecInfoMaker.cxx @@ -527,7 +527,7 @@ Int_t AliRecInfoMaker::Exec() if (fDebug>2) cout<<"\tStart loop over tree genTracks"<0) return 1; //BuildKinkInfo0(eventNr); - //BuildV0Info(eventNr); // no V0 info for a moment + BuildV0Info(eventNr); // no V0 info for a moment fRecArray->Delete(); if (fDebug>2) cout<<"\tEnd loop over tree genTracks"<0 || fMultiRecV0[label2]>0){ // for (Int_t j=0;j=0;j--){ -// Int_t index = fIndexRecV0[label*20+j]; -// if (index<0) continue; -// AliV0 *v0MI2 = (AliV0*)fEvent->GetV0(index); -// if (TMath::Abs(v0MI2->GetLabel(0))==label &&TMath::Abs(v0MI2->GetLabel(1))==label2) { -// v0MI =v0MI2; -// fRecV0Info->fV0Multiple++; -// fSignedV0[index]=1; -// } -// if (TMath::Abs(v0MI2->GetLabel(1))==label &&TMath::Abs(v0MI2->GetLabel(0))==label2) { -// v0MI =v0MI2; -// fRecV0Info->fV0Multiple++; -// fSignedV0[index]=1; -// } -// } + for (Int_t j=TMath::Min(fMultiRecV0[label],Short_t(20))-1;j>=0;j--){ + Int_t index = fIndexRecV0[label*20+j]; + if (index<0) continue; + AliV0 *v0MI2 = (AliV0*)fEvent->GetV0(index); + // get track labels + AliESDtrack * trackn = fEvent->GetTrack((v0MI2->GetNindex())); + AliESDtrack * trackp = fEvent->GetTrack((v0MI2->GetPindex())); + Int_t vlabeln = (trackn==0) ? -1 : trackn->GetLabel(); + Int_t vlabelp = (trackp==0) ? -1 : trackp->GetLabel(); + // + if (TMath::Abs(vlabeln)==label &&TMath::Abs(vlabelp)==label2) { + v0MI =v0MI2; + fRecV0Info->fV0Multiple++; + fSignedV0[index]=1; + } + if (TMath::Abs(vlabelp)==label &&TMath::Abs(vlabeln)==label2) { + v0MI =v0MI2; + fRecV0Info->fV0Multiple++; + fSignedV0[index]=1; + } + } } if (v0MI){ fRecV0Info->fV0rec = v0MI; @@ -1170,28 +1176,28 @@ Int_t AliRecInfoMaker::BuildV0Info(Int_t eventNr) } // // write fake v0s - - Int_t nV0MIs = fEvent->GetNumberOfV0s(); - for (Int_t i=0;iGetV0(i); - if (!v0MI) continue; - // - fRecV0Info->fV0rec = v0MI; - fRecV0Info->fV0Status =-10; - fRecV0Info->fRecStatus =-2; - // - // AliESDRecInfo* fRecInfo1 = (AliESDRecInfo*)fRecArray->At(TMath::Abs(v0MI->GetLabel(0))); + // + // Int_t nV0MIs = fEvent->GetNumberOfV0s(); +// for (Int_t i=0;iGetV0(i); +// if (!v0MI) continue; +// // +// fRecV0Info->fV0rec = v0MI; +// fRecV0Info->fV0Status =-10; +// fRecV0Info->fRecStatus =-2; +// // +// AliESDRecInfo* fRecInfo1 = (AliESDRecInfo*)fRecArray->At(TMath::Abs(v0MI->GetLabel(0))); // AliESDRecInfo* fRecInfo2 = (AliESDRecInfo*)fRecArray->At(TMath::Abs(v0MI->GetLabel(1))); // if (fRecInfo1 && fRecInfo2){ // fRecV0Info->fT1 = (*fRecInfo1); // fRecV0Info->fT2 = (*fRecInfo2); // fRecV0Info->fRecStatus =-1; // } - fRecV0Info->Update(vertex); - fTreeCmpV0->Fill(); - } - } +// fRecV0Info->Update(vertex); +// fTreeCmpV0->Fill(); +// } +// } diff --git a/PWG1/PWG1README.txt b/PWG1/PWG1README.txt index aaa9fdb353b..ae27287e4a0 100644 --- a/PWG1/PWG1README.txt +++ b/PWG1/PWG1README.txt @@ -4,7 +4,7 @@ How to make a comparison using MC information: 0. Build the MC info tree - +gSystem->Load("libANALYSIS.so"); gSystem->Load("libPWG1.so") AliGenInfoMaker *t = new AliGenInfoMaker("galice.root","genTracks.root",0,0) t->Exec(); -- 2.43.0