]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - CORRFW/AliCFTrackCutPid.cxx
QADataMaker gets the event specie fro AliDetectorRecoParam
[u/mrichter/AliRoot.git] / CORRFW / AliCFTrackCutPid.cxx
index cee3edd083091b649e2671f5726ea46d49c4d6ab..39607355edfe9d165f750c7294e87c819b7c3a67 100644 (file)
@@ -84,7 +84,8 @@ AliCFTrackCutPid::AliCFTrackCutPid() :
   fNbins(101),
   fDetRestr(-1),
   fiPartRestr(-1),
-  fDetProbRestr(1)
+  fDetProbRestr(1),
+  fProbThreshold(0.)
 { 
   //
   //Default constructor 
@@ -119,7 +120,8 @@ AliCFTrackCutPid::AliCFTrackCutPid(const Char_t* name, const Char_t* title) :
   fNbins(101),
   fDetRestr(-1),
   fiPartRestr(-1),
-  fDetProbRestr(1)
+  fDetProbRestr(1),
+  fProbThreshold(0.)
 {
   //
   //Constructor
@@ -154,7 +156,8 @@ AliCFTrackCutPid::AliCFTrackCutPid(const AliCFTrackCutPid& c) :
   fNbins(c.fNbins),
   fDetRestr(c.fDetRestr),
   fiPartRestr(c.fiPartRestr),
-  fDetProbRestr(c.fDetProbRestr)
+  fDetProbRestr(c.fDetProbRestr),
+  fProbThreshold(c.fProbThreshold)
 {
   //
   //Copy constructor
@@ -198,6 +201,7 @@ AliCFTrackCutPid& AliCFTrackCutPid::operator=(const AliCFTrackCutPid& c)
     this->fDetRestr=c.fDetRestr;
     this->fiPartRestr=c.fiPartRestr;
     this->fDetProbRestr=c.fDetProbRestr;
+    this->fProbThreshold=c.fProbThreshold;
   
     for(Int_t i=0; i< kNdets ; i++ )   {
       this->fDets[i]=c.fDets[i];
@@ -480,9 +484,15 @@ Int_t AliCFTrackCutPid::Identify(Double_t pid[AliPID::kSPECIES]) const
     if(fIsQAOn) fhCombProb[iP]->Fill(probability[iP]);
   }
   
-  AliPID::EParticleType sel = getpid.GetMostProbable();
-  if(getpid.GetProbability(sel,fPriors)>fCut) iPart= (Int_t)sel;
-  AliDebug(2,Form("probabilities   : %f  %f  %f  %f  %f",probability[0],probability[1],probability[2],probability[3],probability[4]));
+
+  if (fProbThreshold > 0.) {
+    if (probability[fgParticleType] >= fProbThreshold) iPart=fgParticleType;
+  }
+  else {
+    AliPID::EParticleType sel = getpid.GetMostProbable();
+    if(getpid.GetProbability(sel,fPriors)>fCut) iPart= (Int_t)sel;
+    AliDebug(2,Form("probabilities   : %f  %f  %f  %f  %f",probability[0],probability[1],probability[2],probability[3],probability[4]));
+  }
 
   if(fCheckResponse && !Check(pid,iPart, fMinDiffResponse)) iPart=kCheckResp;
   if(fCheckSelection && !Check(probability,iPart,fMinDiffProbability)) iPart=kCheckProb;
@@ -664,35 +674,35 @@ void AliCFTrackCutPid::DefineHistograms()
   //
 
   if(fgIsAOD){
-     char *partic[AliPID::kSPECIES]={"electron","muon","pion","kaon","proton"}; 
+     const char *partic[AliPID::kSPECIES]={"electron","muon","pion","kaon","proton"}; 
 
      for(Int_t iPart =0; iPart < AliPID::kSPECIES; iPart++)
       {
-       fhCombResp[iPart] = new TH1F(Form("rCombPart%i",iPart),Form(" %s combined response  (AODTrack)  ",partic[iPart]),fNbins,fXmin,fXmax);
+       fhCombResp[iPart] = new TH1F(Form("%s_rCombPart%i",GetName(),iPart),Form(" %s combined response  (AODTrack)  ",partic[iPart]),fNbins,fXmin,fXmax);
        fhCombResp[iPart]->SetXTitle(Form(" %s combined response ",partic[iPart]));
        fhCombResp[iPart]->SetYTitle("entries");
-       AliDebug(1,Form(  "rCombPart%i is booked!!",iPart));
-       fhCombProb[iPart] = new TH1F(Form("pCombPart%i",iPart),Form("%s combined probability (AODTrack) ",partic[iPart]),fNbins,fXmin,fXmax);
-       fhCombProb[iPart]->SetXTitle(Form(" %s combined response ",partic[iPart]));
+       AliDebug(1,Form(  "%s is booked!!",fhCombResp[iPart]->GetName()));
+       fhCombProb[iPart] = new TH1F(Form("%s_pCombPart%i",GetName(),iPart),Form("%s combined probability (AODTrack) ",partic[iPart]),fNbins,fXmin,fXmax);
+       fhCombProb[iPart]->SetXTitle(Form(" %s combined probability ",partic[iPart]));
        fhCombProb[iPart]->SetYTitle("entries");
-       AliDebug(1,Form(  "rCombProb%i is booked!!",iPart));
+       AliDebug(1,Form(  "%s is booked!!",fhCombProb[iPart]->GetName()));
      }
    }
 
 
   else {
-   char *detect[kNdets]={"ITS","TPC","TRD","TOF","HMPID"};
-   char *partic[AliPID::kSPECIES]={"electron","muon","pion","kaon","proton"};
+   const char *detect[kNdets]={"ITS","TPC","TRD","TOF","HMPID"};
+   const char *partic[AliPID::kSPECIES]={"electron","muon","pion","kaon","proton"};
   
     for(Int_t iDet =0; iDet< kNdets; iDet++)
      {
        if(!fDets[iDet]) continue;
        for(Int_t iP =0; iP < AliPID::kSPECIES; iP++){
-       fhResp[iDet][iP] = new TH1F(Form("rDet%iPart%i",iDet,iP),Form("%s response for %s  ",detect[iDet],partic[iP]),fNbins,fXmin,fXmax);
+       fhResp[iDet][iP] = new TH1F(Form("%s_rDet%iPart%i",GetName(),iDet,iP),Form("%s response for %s  ",detect[iDet],partic[iP]),fNbins,fXmin,fXmax);
         fhResp[iDet][iP]->SetXTitle(Form(" %s response ",partic[iP]));
         fhResp[iDet][iP]->SetYTitle("entries");
-       fhProb[iDet][iP] = new TH1F(Form("pDet%iPart%i",iDet,iP),Form("%s calculated probability for %s",detect[iDet],partic[iP]),fNbins,fXmin,fXmax);
-        fhProb[iDet][iP]->SetXTitle(Form(" %s response ",partic[iP]));
+       fhProb[iDet][iP] = new TH1F(Form("%s_pDet%iPart%i",GetName(),iDet,iP),Form("%s calculated probability for %s",detect[iDet],partic[iP]),fNbins,fXmin,fXmax);
+        fhProb[iDet][iP]->SetXTitle(Form(" %s probability ",partic[iP]));
         fhProb[iDet][iP]->SetYTitle("entries");
        }
      }
@@ -702,14 +712,14 @@ void AliCFTrackCutPid::DefineHistograms()
      { 
       for(Int_t iPart =0; iPart < AliPID::kSPECIES; iPart++)
         {
-         fhCombResp[iPart] = new TH1F(Form("rCombPart%i",iPart),Form(" %s combined response    ",partic[iPart]),fNbins,fXmin,fXmax);
+         fhCombResp[iPart] = new TH1F(Form("%s_rCombPart%i",GetName(),iPart),Form(" %s combined response    ",partic[iPart]),fNbins,fXmin,fXmax);
           fhCombResp[iPart]->SetXTitle(Form(" %s response ",partic[iPart]));
           fhCombResp[iPart]->SetYTitle("entries");
-          AliDebug(1,Form(  "rCombPart%i is booked!!",iPart));
-         fhCombProb[iPart] = new TH1F(Form("pCombPart%i",iPart),Form("%s combined probability ",partic[iPart]),fNbins,fXmin,fXmax);
+          AliDebug(1,Form(  "%s is booked!!",fhCombResp[iPart]->GetName()));
+         fhCombProb[iPart] = new TH1F(Form("%s_pCombPart%i",GetName(),iPart),Form("%s combined probability ",partic[iPart]),fNbins,fXmin,fXmax);
           fhCombProb[iPart]->SetXTitle(Form(" %s response ",partic[iPart]));
           fhCombProb[iPart]->SetYTitle("entries");
-          AliDebug(1,Form(  "rCombProb%i is booked!!",iPart));
+          AliDebug(1,Form(  "%s is booked!!",fhCombProb[iPart]->GetName()));
         }
      }
    }