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
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
{
//
//
//
// Assignment operator
//
- delete this;
+ this->~AliESDRecInfo();
new (this) AliESDRecInfo(info);
return *this;
}
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;
- }
}
if (fDebug>2) cout<<"\tStart loop over tree genTracks"<<endl;
if (TreeGenLoop(eventNr)>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"<<endl;
if (fMultiRecV0[label]>0 || fMultiRecV0[label2]>0){
// for (Int_t j=0;j<TMath::Min(fMultiRecV0s[label],100);j++){
- // 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);
-// 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;
}
//
// write fake v0s
-
- Int_t nV0MIs = fEvent->GetNumberOfV0s();
- for (Int_t i=0;i<nV0MIs;i++){
- if (fSignedV0[i]==0){
- AliV0 *v0MI = (AliV0*)fEvent->GetV0(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;i<nV0MIs;i++){
+// if (fSignedV0[i]==0){
+// AliV0 *v0MI = (AliV0*)fEvent->GetV0(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();
+// }
+// }