]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - CORRFW/AliCFTrackCutPid.cxx
Improved merging.
[u/mrichter/AliRoot.git] / CORRFW / AliCFTrackCutPid.cxx
index 39607355edfe9d165f750c7294e87c819b7c3a67..7d94b0efc4c43a599b96544322edb6f052abffd9 100644 (file)
@@ -92,9 +92,10 @@ AliCFTrackCutPid::AliCFTrackCutPid() :
   //
   for(Int_t j=0; j< AliPID::kSPECIES; j++) {
     fPriors[j]=0.2;
+  }
+  for(Int_t j=0; j< AliPID::kSPECIES; j++) {
     fPriorsFunc[j]=0x0;
   }
-  
   for(Int_t jDet=0; jDet< kNdets; jDet++)  {
     fDets[jDet]=kFALSE;
     fDetsInAnd[jDet]=kFALSE;
@@ -128,9 +129,10 @@ AliCFTrackCutPid::AliCFTrackCutPid(const Char_t* name, const Char_t* title) :
   // 
   for(Int_t j=0; j< AliPID::kSPECIES; j++) {
     fPriors[j]=0.2;
+  }
+  for(Int_t j=0; j< AliPID::kSPECIES; j++) {
     fPriorsFunc[j]=0x0;
   }
-  
   for(Int_t jDet=0; jDet< kNdets; jDet++)  {
     fDets[jDet]=kFALSE;
     fDetsInAnd[jDet]=kFALSE;
@@ -172,6 +174,8 @@ AliCFTrackCutPid::AliCFTrackCutPid(const AliCFTrackCutPid& c) :
   }
   for(Int_t j=0; j< AliPID::kSPECIES; j++){
     fPriors[j]=c.fPriors[j];
+  }
+  for(Int_t j=0; j< AliPID::kSPECIES; j++){
     fPriorsFunc[j]=c.fPriorsFunc[j];
     fhCombResp[j]=c.fhCombResp[j];
     fhCombProb[j]=c.fhCombProb[j];
@@ -213,6 +217,8 @@ AliCFTrackCutPid& AliCFTrackCutPid::operator=(const AliCFTrackCutPid& c)
 
     for(Int_t j=0; j< AliPID::kSPECIES; j++){
       this->fPriors[j]=c.fPriors[j];
+    }
+    for(Int_t j=0; j< AliPID::kSPECIES; j++){
       this->fhCombResp[j]=c.fhCombResp[j];
       this->fhCombProb[j]=c.fhCombProb[j];
       this-> fPriorsFunc[j]=c.fPriorsFunc[j];
@@ -350,7 +356,7 @@ void AliCFTrackCutPid::SetPPriors(AliESDtrack *pTrk)
   
   for(Int_t i=0; i< AliPID::kSPECIES; i++) {
     if(pTrk->P()>fPriorsFunc[i]->GetXmin() && pTrk->P() < fPriorsFunc[i]->GetXmax()) fPriors[i]=fPriorsFunc[i]->Eval(pTrk->P());
-    else {AliInfo("the track momentum is not in the function range. Priors are equal") fPriors[i] = 0.2;}   
+    else {AliInfo("the track momentum is not in the function range. Priors are equal"); fPriors[i] = 0.2;}   
   }
 }   
 //______________________________________
@@ -520,7 +526,8 @@ Int_t AliCFTrackCutPid::IdentifyQA(const Double_t pid[AliPID::kSPECIES], Int_t i
     fhProb[idets][iP]->Fill(probability[iP]);
   }
   
-  AliPID toresp(pid,kTRUE); Double_t qapriors[5]={0.2,0.2,0.2,0.2,0.2};
+  AliPID toresp(pid,kTRUE); 
+  Double_t qapriors[10]={0.2,0.2,0.2,0.2,0.2,0,0,0,0,0};
   toresp.SetPriors(qapriors);
   for(Int_t iPr=0; iPr<AliPID::kSPECIES; iPr++) fhResp[idets][iPr]->Fill(toresp.GetProbability((AliPID::EParticleType)iPr));
   
@@ -542,6 +549,7 @@ Bool_t AliCFTrackCutPid::IsSelected(TObject *track){
   TString className(track->ClassName());
   if (className.CompareTo("AliESDtrack") == 0) {
   AliESDtrack *esdTrack = dynamic_cast<AliESDtrack*>(track); 
+  if (!esdTrack) return kFALSE;
   ULong_t status[kNdets+1]={0,0,0,0,0,0};
   Double_t pid[kNdets+1][AliPID::kSPECIES];
   TrackInfo(esdTrack,status,pid);
@@ -551,6 +559,7 @@ Bool_t AliCFTrackCutPid::IsSelected(TObject *track){
 
   if (className.CompareTo("AliAODTrack") == 0) {
   AliAODTrack *aodtrack = dynamic_cast<AliAODTrack *>(track);
+  if (!aodtrack) return kFALSE ;
   if(GetAODID(aodtrack) == fgParticleType) sel = kTRUE;
   }