]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGPP/TPC/AliPerformanceMatch.cxx
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGPP / TPC / AliPerformanceMatch.cxx
index c530631770f843c53c6ccea23c29c0e5d0a0d79e..d59bd37495ac991ca16a1a8cec173bd772957c2c 100644 (file)
@@ -69,27 +69,7 @@ Bool_t AliPerformanceMatch::fgMergeTHnSparse = kFALSE;
 Bool_t AliPerformanceMatch::fgUseMergeTHnSparse = kFALSE;
 
 //_____________________________________________________________________________
-AliPerformanceMatch::AliPerformanceMatch():
-  AliPerformanceObject("AliPerformanceMatch"),
-  fResolHisto(0),
-  fPullHisto(0),
-  fTrackingEffHisto(0),
-  fTPCConstrain(0),
-  fFolderObj(0),
-  // Cuts 
-  fCutsRC(0),  
-  fCutsMC(0),  
-
-  // histogram folder 
-  fAnalysisFolder(0),
-  
-  fUseHLT(0)
-{
-  Init();
-}
-
-//_____________________________________________________________________________
-AliPerformanceMatch::AliPerformanceMatch(Char_t* name="AliPerformanceMatch", Char_t* title="AliPerformanceMatch",Int_t analysisMode=0,Bool_t hptGenerator=kFALSE):
+AliPerformanceMatch::AliPerformanceMatch(const Char_t* name, const Char_t* title, Int_t analysisMode, Bool_t hptGenerator):
   AliPerformanceObject(name,title),
   fResolHisto(0),
   fPullHisto(0),
@@ -279,23 +259,20 @@ void AliPerformanceMatch::ProcessITSTPC(Int_t iTrack, AliESDEvent *const esdEven
     // if(trackTPC->GetTPCNclsIter1()<fCutsRC->GetMinNClustersTPC()) continue;
     tpcTrack2 = AliESDtrackCuts::GetTPCOnlyTrack(esdEvent, jTrack);
     if(!tpcTrack2) continue;
-    if(!tpcTrack2->RelateToVertex(vtxESD,esdEvent->GetMagneticField(),100.)) { delete tpcTrack2; continue; } 
+    if(!tpcTrack2->RelateToVertex(vtxESD,esdEvent->GetMagneticField(),100.)) { delete tpcTrack2; tpcTrack2=0; continue; } 
     
-     if(!fCutsRC->AcceptTrack(tpcTrack2)) { delete tpcTrack2; continue; }
+     if(!fCutsRC->AcceptTrack(tpcTrack2)) { delete tpcTrack2; tpcTrack2=0; continue; }
     // check matching
-    if (TMath::Abs(esdTrack->GetY() - tpcTrack2->GetY()) > 3) { delete tpcTrack2; continue; }
-    if (TMath::Abs(esdTrack->GetSnp() - tpcTrack2->GetSnp()) > 0.2) { delete tpcTrack2; continue; }
-    if (TMath::Abs(esdTrack->GetTgl() - tpcTrack2->GetTgl()) > 0.2) { delete tpcTrack2; continue; }
+    if (TMath::Abs(esdTrack->GetY() - tpcTrack2->GetY()) > 3) { delete tpcTrack2; tpcTrack2=0; continue; }
+    if (TMath::Abs(esdTrack->GetSnp() - tpcTrack2->GetSnp()) > 0.2) { delete tpcTrack2; tpcTrack2=0; continue; }
+    if (TMath::Abs(esdTrack->GetTgl() - tpcTrack2->GetTgl()) > 0.2) { delete tpcTrack2; tpcTrack2=0; continue; }
     
     hasMatch=kTRUE;
     break;
   }
   
   FillHistograms(tpcTrack2,esdTrack,hasMatch);     
-  /*  if(tpcTrack2) { 
-    delete tpcTrack2;
-   
-    }*/
+  delete tpcTrack2;
 }
 
 //_____________________________________________________________________________
@@ -324,7 +301,7 @@ void AliPerformanceMatch::ProcessTPCITS(AliStack* /*const stack*/, AliESDtrack *
     isMatch = kTRUE;
   
   if(isTPC){
-    Double_t vecTrackingEff[5] = { isMatch,esdTrack->Phi(), esdTrack->Pt(),esdTrack->Eta(),esdTrack->GetITSclusters(0) };
+    Double_t vecTrackingEff[5] = { static_cast<Double_t>(isMatch),esdTrack->Phi(), esdTrack->Pt(),esdTrack->Eta(),static_cast<Double_t>(esdTrack->GetITSclusters(0)) };
     fTrackingEffHisto->Fill(vecTrackingEff);
   }
 }
@@ -360,11 +337,13 @@ void AliPerformanceMatch::ProcessTPCConstrain(AliStack* /*const stack*/, AliESDE
   //isOK = TPCinner->PropagateTo(esdTrack->GetX(),esdEvent->GetMagneticField());
 
   AliExternalTrackParam * TPCinnerC = new AliExternalTrackParam(*TPCinner);
-  isOK = TPCinnerC->ConstrainToVertex(vtxESD, b);
+  if (TPCinnerC) {
+    isOK = TPCinnerC->ConstrainToVertex(vtxESD, b);
 
-  // transform to the track reference frame 
-  isOK = TPCinnerC->Rotate(esdTrack->GetAlpha());
-  isOK = TPCinnerC->PropagateTo(esdTrack->GetX(),esdEvent->GetMagneticField());
+    // transform to the track reference frame 
+    isOK = TPCinnerC->Rotate(esdTrack->GetAlpha());
+    isOK = TPCinnerC->PropagateTo(esdTrack->GetX(),esdEvent->GetMagneticField());
+  }
   if(!isOK) return;
 
   Double_t sigmaPhi=0,deltaPhi=0,pullPhi=0;
@@ -423,11 +402,11 @@ void AliPerformanceMatch::FillHistograms(AliESDtrack *const refParam, AliESDtrac
   }
 
   // Fill histograms
-  Double_t vResolHisto[9] = {delta[0],delta[1],delta[2],delta[3],delta[4],refParam->Phi(),refParam->Eta(),refParam->Pt(),isRec};
+  Double_t vResolHisto[9] = {delta[0],delta[1],delta[2],delta[3],delta[4],refParam->Phi(),refParam->Eta(),refParam->Pt(),static_cast<Double_t>(isRec)};
   if(fabs(pull[4])<5)
     fResolHisto->Fill(vResolHisto);
 
-  Double_t vPullHisto[9] = {pull[0],pull[1],pull[2],pull[3],pull[4],refParam->Phi(),refParam->Eta(),refParam->OneOverPt(),isRec};
+  Double_t vPullHisto[9] = {pull[0],pull[1],pull[2],pull[3],pull[4],refParam->Phi(),refParam->Eta(),refParam->OneOverPt(),static_cast<Double_t>(isRec)};
   if(fabs(pull[4])<5)
     fPullHisto->Fill(vPullHisto);
 }