Added charge, phi and phi at TPC outer radius variables + added/modified monitoring...
authorfbellini <fbellini@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 11 Apr 2013 13:42:38 +0000 (13:42 +0000)
committerfbellini <fbellini@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 11 Apr 2013 13:42:38 +0000 (13:42 +0000)
PWGLF/RESONANCES/AliRsnValueDaughter.cxx
PWGLF/RESONANCES/AliRsnValueDaughter.h
PWGLF/RESONANCES/macros/mini/AddAnalysisTaskTOFKStar.C
PWGLF/RESONANCES/macros/mini/AddMonitorOutput.C
PWGLF/RESONANCES/macros/mini/ConfigTOFanalysisKStar.C

index 8426655..6cfe5a9 100644 (file)
@@ -116,6 +116,9 @@ const char *AliRsnValueDaughter::GetTypeName() const
       case kTOFnsigmaPi: return "SingleTrackTOFnsigmaPion";
       case kTOFnsigmaK:  return "SingleTrackTOFnsigmaKaon";
       case kTOFnsigmaP:  return "SingleTrackTOFnsigmaProton";
+      case kCharge:      return "SingleTrackCharge";
+      case kPhi:         return "SingleTrackPhi";
+      case kPhiOuterTPC: return "SingleTrackPhiOuterTPC";
       default:           return "Undefined";
    }
 }
@@ -368,6 +371,37 @@ Bool_t AliRsnValueDaughter::Eval(TObject *object)
             fComputedValue = 0.0;
             return kFALSE;
          }
+
+      case kCharge:
+         fComputedValue = (fUseMCInfo ? refMC->Charge() : ref->Charge());
+         return kTRUE;
+   
+      case kPhi:         
+       fComputedValue = (fUseMCInfo ? (refMC->Phi()*TMath::RadToDeg()) : (ref->Phi()*TMath::RadToDeg()));      
+       return kTRUE;
+
+      case kPhiOuterTPC:    
+       if (track) {
+         Double_t pos[3]={0.,0.,0.};
+         Double_t phiOut = -999.0;
+         Double_t radius = 278.;//TPC outer (vessel) = 278 cm, TOF radius (active surf.) = 378 cm;  ref. PPR.1
+         AliESDtrack *trackESD = dynamic_cast<AliESDtrack *>(track);
+         if (trackESD) {
+           ((AliExternalTrackParam*) track->GetOuterParam())->GetXYZAt(radius, 5., pos);
+           phiOut=TMath::ATan2(pos[1],pos[0])*TMath::RadToDeg();
+           if (phiOut<0) phiOut+= (2*TMath::Pi()*TMath::RadToDeg());
+         } else {
+           //this to be checked 
+           //((AliAODTrack*)track)->GetXYZAt(radius, 5., pos);
+         }
+         fComputedValue = phiOut;      
+       } else {
+         AliWarning("Cannot get phi at outer TPC radius for non-track object");
+         fComputedValue = -999.0;
+         return kFALSE;
+       }
+       return kTRUE;
+       
       default:
          AliError(Form("[%s] Invalid value type for this computation", GetName()));
          return kFALSE;
index bbc437e..ae47006 100644 (file)
@@ -36,6 +36,9 @@ public:
       kTPCchi2,    // TPC chi^2
       kDCAXY,      // DCA xy
       kDCAZ,       // DCA z
+      kCharge,     // charge
+      kPhi,        // azimuthal angle at vertex
+      kPhiOuterTPC,// azimuthal angle at TPC outer radius
       kTypes
    };
 
index 6539fa4..c24ea60 100644 (file)
@@ -33,7 +33,8 @@ AliRsnMiniAnalysisTask * AddAnalysisTaskTOFKStar
    Bool_t      isAOD49 = kFALSE,
    TString     outNameSuffix = "",
    Bool_t      useMixLS = 0,
-   Int_t       signedPdg = 313
+   Int_t       signedPdg = 313,
+   TString     monitorOpt = ""
 )
 {  
   //
@@ -140,7 +141,7 @@ AliRsnMiniAnalysisTask * AddAnalysisTaskTOFKStar
        Printf("========================== MC analysis - PID cuts used");
    } else 
      Printf("========================== DATA analysis - PID cuts used");
-   if (!ConfigTOFanalysisKStar(task, isMC, isPP, "", cutsPair, aodFilterBit, cutPiCandidate, cutKaCandidate, nsigmaPi, nsigmaKa, enableMonitor, isMC&IsMcTrueOnly, useMixLS, signedPdg)) return 0x0;
+   if (!ConfigTOFanalysisKStar(task, isMC, isPP, "", cutsPair, aodFilterBit, cutPiCandidate, cutKaCandidate, nsigmaPi, nsigmaKa, enableMonitor, isMC&IsMcTrueOnly, useMixLS, signedPdg, monitorOpt.Data())) return 0x0;
    
    //
    // -- CONTAINERS --------------------------------------------------------------------------------
index 8200b57..f8c87c2 100644 (file)
@@ -1,14 +1,18 @@
 /***************************************************************************
-              fbellini@cern.ch - last modified on 06/08/2012
+              fbellini@cern.ch - last modified on 09/04/2013
 
  Macro to add monitoring histograms for track and PID cuts to the rsn task 
  Tuned for monitoring TOF KStar analysis of PbPb 2010 data
-/***************************************************************************/
 
+Options ("opt" argument):
+- NoTOFSIGMA  --> disable the nsigma_TOF vs p histos
+- NoTPCSIGMA  --> disable the nsigma_TPC vs p_TPC histos
+- NoSIGN --> disable splitting for single track charge
+- NoTrackQ  --> disable track quality monitoring (DCA, nCls) histos
+/***************************************************************************/
 
 void AddMonitorOutput(Bool_t useMCMon = 0, TObjArray *mon=0,TString opt="",AliRsnLoopDaughter *lm=0)
 {
-  
   // Multiplicity/centrality
   AliRsnValueEvent *multi = new AliRsnValueEvent("multi",AliRsnValueEvent::kMult);
   multi->SetBins(0.0, 400.0, 1);
@@ -41,7 +45,15 @@ void AddMonitorOutput(Bool_t useMCMon = 0, TObjArray *mon=0,TString opt="",AliRs
   //DCA z
   AliRsnValueDaughter *axisDCAz = new AliRsnValueDaughter("DCAz", AliRsnValueDaughter::kDCAZ);
   axisDCAz->SetBins(-10.0, 10.0, 0.1);
-
+  //Charge
+  AliRsnValueDaughter *axisCharge = new AliRsnValueDaughter("charge",AliRsnValueDaughter::kCharge);
+  axisCharge->SetBins(-1.5, 1.5, 1.0);
+  //Phi
+  AliRsnValueDaughter *axisPhi = new AliRsnValueDaughter("phi", AliRsnValueDaughter::kPhi);
+  axisPhi->SetBins(0.0, 360.0, 1.0);
+  AliRsnValueDaughter *axisPhiOuterTPC = new AliRsnValueDaughter("phiOuterTPC", AliRsnValueDaughter::kPhiOuterTPC);
+  axisPhiOuterTPC->SetBins(0.0, 360.0, 1.0);
+  
   /* dEdx tpc */
   AliRsnValueDaughter *axisSigTPC = new AliRsnValueDaughter("sTPC", AliRsnValueDaughter::kTPCsignal);
   axisSigTPC->SetBins(0.0, 500.0, 2.0);
@@ -84,127 +96,158 @@ void AddMonitorOutput(Bool_t useMCMon = 0, TObjArray *mon=0,TString opt="",AliRs
   // output: TH1D for momentum
   AliRsnListOutput *outMonitorP = new AliRsnListOutput("P", AliRsnListOutput::kHistoDefault);
   outMonitorP->AddValue(axisMomP);
+  if (!opt.Contains("NoSIGN")) {
+    outMonitorP->AddValue(axisCharge);
+  }
   if (mon) mon->Add(outMonitorP);
   if (lm) lm->AddOutput(outMonitorP);
-
+  
   // output:  TH1D for pt
   AliRsnListOutput *outMonitorPt = new AliRsnListOutput("Pt", AliRsnListOutput::kHistoDefault);
   outMonitorPt->AddValue(axisMomPt);
+  if (!opt.Contains("NoSIGN")) {
+    outMonitorPt->AddValue(axisCharge);
+  }
   if (mon) mon->Add(outMonitorPt);
   if (lm) lm->AddOutput(outMonitorPt);
-
+  
   // output: TH1D for pseudorapidity
   AliRsnListOutput *outMonitorEta = new AliRsnListOutput("Eta", AliRsnListOutput::kHistoDefault);
   outMonitorEta->AddValue(axisMomEta);
+  if (!opt.Contains("NoSIGN")) {
+    outMonitorEta->AddValue(axisCharge);
+  }
   if (mon) mon->Add(outMonitorEta);
   if (lm) lm->AddOutput(outMonitorEta);
 
+  // output:  TH2D for phi vs pt
+  AliRsnListOutput *outMonitorPhi = new AliRsnListOutput("Phi", AliRsnListOutput::kHistoDefault);
+  //outMonitorPhi->AddValue(axisMomPt);
+  outMonitorPhi->AddValue(axisPhi);
+  if (!opt.Contains("NoSIGN")) {
+    outMonitorPhi->AddValue(axisCharge);
+  }
+  if (mon) mon->Add(outMonitorPhi);
+  if (lm) lm->AddOutput(outMonitorPhi);
+  
+  // output:  TH2D for phiOuterTPC vs pt
+  AliRsnListOutput *outMonitorPhiOuterTPC = new AliRsnListOutput("PhiOuterTPC", AliRsnListOutput::kHistoDefault);
+  //outMonitorPhiOuterTPC->AddValue(axisMomPt);
+  outMonitorPhiOuterTPC->AddValue(axisPhiOuterTPC);
+  if (!opt.Contains("NoSIGN")) {
+    outMonitorPhiOuterTPC->AddValue(axisCharge);
+  }
+  if (mon) mon->Add(outMonitorPhiOuterTPC);
+  if (lm) lm->AddOutput(outMonitorPhiOuterTPC);
+
   /****************************************************************/
   /***************      MONITOR TRACK QUALITY  ********************/
   /****************************************************************/
-  // output: 2D histogram of DCAxy vs pt
-  AliRsnListOutput *outMonitorDCAxy = new AliRsnListOutput("DCAxyVsPt", AliRsnListOutput::kHistoDefault);
-  outMonitorDCAxy->AddValue(axisMomPt);
-  outMonitorDCAxy->AddValue(axisDCAxy);
-  if (mon) mon->Add(outMonitorDCAxy);
-  if (lm) lm->AddOutput(outMonitorDCAxy);
-
-  // output: 2D histogram of DCAz vs P
-  AliRsnListOutput *outMonitorDCAz = new AliRsnListOutput("DCAzVsP", AliRsnListOutput::kHistoDefault);
-  outMonitorDCAz->AddValue(axisMomP);
-  outMonitorDCAz->AddValue(axisDCAz);
-  if (mon) mon->Add(outMonitorDCAz);
-  if (lm) lm->AddOutput(outMonitorDCAz);
+  if (!opt.Contains("NoTrackQ")) {
+    // output: 2D histogram of DCAxy vs pt
+    AliRsnListOutput *outMonitorDCAxy = new AliRsnListOutput("DCAxyVsPt", AliRsnListOutput::kHistoDefault);
+    outMonitorDCAxy->AddValue(axisMomPt);
+    outMonitorDCAxy->AddValue(axisDCAxy);
+    if (mon) mon->Add(outMonitorDCAxy);
+    if (lm) lm->AddOutput(outMonitorDCAxy);
 
-  // output: 2D histogram of ITS cls vs pt
-  AliRsnListOutput *outMonitorITScls = new AliRsnListOutput("ITSclsVsPt", AliRsnListOutput::kHistoDefault);
-  outMonitorITScls->AddValue(axisMomPt);
-  outMonitorITScls->AddValue(axisITScls);
-  if (mon) mon->Add(outMonitorITScls);
-  if (lm) lm->AddOutput(outMonitorITScls);
+    // output: 2D histogram of DCAz vs P
+    AliRsnListOutput *outMonitorDCAz = new AliRsnListOutput("DCAzVsP", AliRsnListOutput::kHistoDefault);
+    outMonitorDCAz->AddValue(axisMomP);
+    outMonitorDCAz->AddValue(axisDCAz);
+    if (mon) mon->Add(outMonitorDCAz);
+    if (lm) lm->AddOutput(outMonitorDCAz);
 
-  // output: 2D histogram of TPC cls vs. pt
-  AliRsnListOutput *outMonitorTPCcls = new AliRsnListOutput("TPCclsVsPt", AliRsnListOutput::kHistoDefault);
-  outMonitorTPCcls->AddValue(axisMomPt);
-  outMonitorTPCcls->AddValue(axisTPCcls);
-  if (mon) mon->Add(outMonitorTPCcls);
-  if (lm) lm->AddOutput(outMonitorTPCcls);
+    // output: 2D histogram of ITS cls vs pt
+    AliRsnListOutput *outMonitorITScls = new AliRsnListOutput("ITSclsVsPt", AliRsnListOutput::kHistoDefault);
+    outMonitorITScls->AddValue(axisMomPt);
+    outMonitorITScls->AddValue(axisITScls);
+    if (mon) mon->Add(outMonitorITScls);
+    if (lm) lm->AddOutput(outMonitorITScls);
 
-// output: 2D histogram of TPC cls vs. TPC momentum
-  AliRsnListOutput *outMonitorTPCclsVsPtpc = new AliRsnListOutput("TPCclsVsPtpc", AliRsnListOutput::kHistoDefault);
-  outMonitorTPCclsVsPtpc->AddValue(axisMomTPC);
-  outMonitorTPCclsVsPtpc->AddValue(axisTPCcls);
-  if (mon) mon->Add(outMonitorTPCclsVsPtpc);
-  if (lm) lm->AddOutput(outMonitorTPCclsVsPtpc);
+    // output: 2D histogram of TPC cls vs. pt
+    AliRsnListOutput *outMonitorTPCcls = new AliRsnListOutput("TPCclsVsPt", AliRsnListOutput::kHistoDefault);
+    outMonitorTPCcls->AddValue(axisMomPt);
+    outMonitorTPCcls->AddValue(axisTPCcls);
+    if (mon) mon->Add(outMonitorTPCcls);
+    if (lm) lm->AddOutput(outMonitorTPCcls);
 
- // output: 2D histogram of ITS chi2 vs pt
-  AliRsnListOutput *outMonitorITSchi2 = new AliRsnListOutput("ITSchi2VsPt", AliRsnListOutput::kHistoDefault);
-  outMonitorITSchi2->AddValue(axisMomPt);
-  outMonitorITSchi2->AddValue(axisITSchi2);
-  if (mon) mon->Add(outMonitorITSchi2);
-  if (lm) lm->AddOutput(outMonitorITSchi2);
+    // output: 2D histogram of TPC cls vs. TPC momentum
+    AliRsnListOutput *outMonitorTPCclsVsPtpc = new AliRsnListOutput("TPCclsVsPtpc", AliRsnListOutput::kHistoDefault);
+    outMonitorTPCclsVsPtpc->AddValue(axisMomTPC);
+    outMonitorTPCclsVsPtpc->AddValue(axisTPCcls);
+    if (mon) mon->Add(outMonitorTPCclsVsPtpc);
+    if (lm) lm->AddOutput(outMonitorTPCclsVsPtpc);
 
-  // output: 2D histogram of TPC chi2 vs. pt
-  AliRsnListOutput *outMonitorTPCchi2 = new AliRsnListOutput("TPCchi2VsPt", AliRsnListOutput::kHistoDefault);
-  outMonitorTPCchi2->AddValue(axisMomPt);
-  outMonitorTPCchi2->AddValue(axisTPCchi2);
-  if (mon) mon->Add(outMonitorTPCchi2);
-  if (lm) lm->AddOutput(outMonitorTPCchi2);
+    // output: 2D histogram of ITS chi2 vs pt
+    AliRsnListOutput *outMonitorITSchi2 = new AliRsnListOutput("ITSchi2VsPt", AliRsnListOutput::kHistoDefault);
+    outMonitorITSchi2->AddValue(axisMomPt);
+    outMonitorITSchi2->AddValue(axisITSchi2);
+    if (mon) mon->Add(outMonitorITSchi2);
+    if (lm) lm->AddOutput(outMonitorITSchi2);
 
-// output: 2D histogram of TPC chi2 vs. TPC momentum
-  AliRsnListOutput *outMonitorTPCchi2VsPtpc = new AliRsnListOutput("TPCchi2VsPtpc", AliRsnListOutput::kHistoDefault);
-  outMonitorTPCchi2VsPtpc->AddValue(axisMomTPC);
-  outMonitorTPCchi2VsPtpc->AddValue(axisTPCchi2);
-  if (mon) mon->Add(outMonitorTPCchi2VsPtpc);
-  if (lm) lm->AddOutput(outMonitorTPCchi2VsPtpc);
+    // output: 2D histogram of TPC chi2 vs. pt
+    AliRsnListOutput *outMonitorTPCchi2 = new AliRsnListOutput("TPCchi2VsPt", AliRsnListOutput::kHistoDefault);
+    outMonitorTPCchi2->AddValue(axisMomPt);
+    outMonitorTPCchi2->AddValue(axisTPCchi2);
+    if (mon) mon->Add(outMonitorTPCchi2);
+    if (lm) lm->AddOutput(outMonitorTPCchi2);
 
+    // output: 2D histogram of TPC chi2 vs. TPC momentum
+    AliRsnListOutput *outMonitorTPCchi2VsPtpc = new AliRsnListOutput("TPCchi2VsPtpc", AliRsnListOutput::kHistoDefault);
+    outMonitorTPCchi2VsPtpc->AddValue(axisMomTPC);
+    outMonitorTPCchi2VsPtpc->AddValue(axisTPCchi2);
+    if (mon) mon->Add(outMonitorTPCchi2VsPtpc);
+    if (lm) lm->AddOutput(outMonitorTPCchi2VsPtpc);
+  }
   /****************************************************************/
   /***************       MONITOR TPC           ********************/
   /****************************************************************/
-  // output: 2D histogram of TPC signal vs. TPC momentum
-  AliRsnListOutput *outMonitordEdxTPC = new AliRsnListOutput("dEdx_VsPtpc", AliRsnListOutput::kHistoDefault);
-  outMonitordEdxTPC->AddValue(axisMomTPC);
-  outMonitordEdxTPC->AddValue(axisSigTPC);
-  if (mon) mon->Add(outMonitordEdxTPC);
-  if (lm) lm->AddOutput(outMonitordEdxTPC);
+  if (!opt.Contains("NoTPCSIGMA")) {
+    // output: 2D histogram of TPC signal vs. TPC momentum
+    AliRsnListOutput *outMonitordEdxTPC = new AliRsnListOutput("dEdx_VsPtpc", AliRsnListOutput::kHistoDefault);
+    outMonitordEdxTPC->AddValue(axisMomTPC);
+    outMonitordEdxTPC->AddValue(axisSigTPC);
+    if (mon) mon->Add(outMonitordEdxTPC);
+    if (lm) lm->AddOutput(outMonitordEdxTPC);
 
-  // output: 2D histogram of TPC nsigma pi vs. TPC momentum
-  AliRsnListOutput *outMonitorTPCnsigmaPi = new AliRsnListOutput("TPC_nsigmaPi_VsPtpc", AliRsnListOutput::kHistoDefault);
-  outMonitorTPCnsigmaPi->AddValue(axisMomTPC);
-  outMonitorTPCnsigmaPi->AddValue(axisTPCnsigmaPi);
-  if (mon) mon->Add(outMonitorTPCnsigmaPi);
-  if (lm) lm->AddOutput(outMonitorTPCnsigmaPi);
+    // output: 2D histogram of TPC nsigma pi vs. TPC momentum
+    AliRsnListOutput *outMonitorTPCnsigmaPi = new AliRsnListOutput("TPC_nsigmaPi_VsPtpc", AliRsnListOutput::kHistoDefault);
+    outMonitorTPCnsigmaPi->AddValue(axisMomTPC);
+    outMonitorTPCnsigmaPi->AddValue(axisTPCnsigmaPi);
+    if (mon) mon->Add(outMonitorTPCnsigmaPi);
+    if (lm) lm->AddOutput(outMonitorTPCnsigmaPi);
 
-  // output: 2D histogram of TPC nsigma K vs. TPC momentum
-  AliRsnListOutput *outMonitorTPCnsigmaK = new AliRsnListOutput("TPC_nsigmaK_VsPtpc", AliRsnListOutput::kHistoDefault);
-  outMonitorTPCnsigmaK->AddValue(axisMomTPC);
-  outMonitorTPCnsigmaK->AddValue(axisTPCnsigmaK);
-  if (mon) mon->Add(outMonitorTPCnsigmaK);
-  if (lm) lm->AddOutput(outMonitorTPCnsigmaK);
-
-  // output: 2D histogram of TPC nsigma pro vs. TPC momentum
-  AliRsnListOutput *outMonitorTPCnsigmaP = new AliRsnListOutput("TPC_nsigmaPro_VsPtpc", AliRsnListOutput::kHistoDefault);
-  outMonitorTPCnsigmaP->AddValue(axisMomTPC);
-  outMonitorTPCnsigmaP->AddValue(axisTPCnsigmaP);
-  if (mon) mon->Add(outMonitorTPCnsigmaP);
-  if (lm) lm->AddOutput(outMonitorTPCnsigmaP);
+    // output: 2D histogram of TPC nsigma K vs. TPC momentum
+    AliRsnListOutput *outMonitorTPCnsigmaK = new AliRsnListOutput("TPC_nsigmaK_VsPtpc", AliRsnListOutput::kHistoDefault);
+    outMonitorTPCnsigmaK->AddValue(axisMomTPC);
+    outMonitorTPCnsigmaK->AddValue(axisTPCnsigmaK);
+    if (mon) mon->Add(outMonitorTPCnsigmaK);
+    if (lm) lm->AddOutput(outMonitorTPCnsigmaK);
 
+    // output: 2D histogram of TPC nsigma pro vs. TPC momentum
+    AliRsnListOutput *outMonitorTPCnsigmaP = new AliRsnListOutput("TPC_nsigmaPro_VsPtpc", AliRsnListOutput::kHistoDefault);
+    outMonitorTPCnsigmaP->AddValue(axisMomTPC);
+    outMonitorTPCnsigmaP->AddValue(axisTPCnsigmaP);
+    if (mon) mon->Add(outMonitorTPCnsigmaP);
+    if (lm) lm->AddOutput(outMonitorTPCnsigmaP);
+  }
   /****************************************************************/
   /***************       MONITOR TOF           ********************/
   /****************************************************************/
-  // output: 2D histogram of TOF signal vs. momentum
-  AliRsnListOutput *outMonitorTimeTOF = new AliRsnListOutput("time_VsP", AliRsnListOutput::kHistoDefault);
-  outMonitorTimeTOF->AddValue(axisMomP);
-  outMonitorTimeTOF->AddValue(axisSigTOF);
-  if (mon) mon->Add(outMonitorTimeTOF);
-  if (lm) lm->AddOutput(outMonitorTimeTOF);
+  // // output: 2D histogram of TOF signal vs. momentum
+  // AliRsnListOutput *outMonitorTimeTOF = new AliRsnListOutput("time_VsP", AliRsnListOutput::kHistoDefault);
+  // outMonitorTimeTOF->AddValue(axisMomP);
+  // outMonitorTimeTOF->AddValue(axisSigTOF);
+  // if (mon) mon->Add(outMonitorTimeTOF);
+  // if (lm) lm->AddOutput(outMonitorTimeTOF);
 
-  // output: 2D histogram of TOF signal vs. pt
-  AliRsnListOutput *outMonitorTimeTOFPt = new AliRsnListOutput("time_VsPt", AliRsnListOutput::kHistoDefault);
-  outMonitorTimeTOFPt->AddValue(axisMomPt);
-  outMonitorTimeTOFPt->AddValue(axisSigTOF);
-  if (mon) mon->Add(outMonitorTimeTOFPt);
-  if (lm) lm->AddOutput(outMonitorTimeTOFPt);
+  // // output: 2D histogram of TOF signal vs. pt
+  // AliRsnListOutput *outMonitorTimeTOFPt = new AliRsnListOutput("time_VsPt", AliRsnListOutput::kHistoDefault);
+  // outMonitorTimeTOFPt->AddValue(axisMomPt);
+  // outMonitorTimeTOFPt->AddValue(axisSigTOF);
+  // if (mon) mon->Add(outMonitorTimeTOFPt);
+  // if (lm) lm->AddOutput(outMonitorTimeTOFPt);
 
   if (!opt.Contains("NoTOFSIGMA")) {
     // output: 2D histogram of TOF Nsigma pi vs. TPC momentum
index 47695bc..21a382e 100644 (file)
@@ -26,7 +26,8 @@ Bool_t ConfigTOFanalysisKStar
     Bool_t                 enableMonitor = kTRUE,
     Bool_t                 IsMcTrueOnly = kFALSE,
     Bool_t                 useMixLS = 0,
-    Int_t                  signedPdg = 313
+    Int_t                  signedPdg = 313,
+    TString                monitorOpt = ""
 )
 {
   // manage suffix
@@ -37,22 +38,26 @@ Bool_t ConfigTOFanalysisKStar
   AliRsnCutSetDaughterParticle * cutSetPi;
   AliRsnCutSetDaughterParticle * cutSetK;
 
-  cutSetQ  = new AliRsnCutSetDaughterParticle("cutQuality", AliRsnCutSetDaughterParticle::kQualityStd2010, AliPID::kPion, -1.0, aodFilterBit);
-  cutSetPi = new AliRsnCutSetDaughterParticle(Form("cutPionTOFPbPb2010_%2.1fsigma",nsigmaPi), cutPiCandidate, AliPID::kPion, nsigmaPi, aodFilterBit);
-  cutSetK  = new AliRsnCutSetDaughterParticle(Form("cutKaonTOFPbPb2010_%2.1fsigma",nsigmaKa), cutKaCandidate, AliPID::kKaon, nsigmaKa, aodFilterBit);
+  cutSetQ  = new AliRsnCutSetDaughterParticle(Form("cutQ_bit%i",aodFilterBit), AliRsnCutSetDaughterParticle::kQualityStd2010, AliPID::kPion, -1.0, aodFilterBit);
+  cutSetPi = new AliRsnCutSetDaughterParticle(Form("cutPi%i_%2.1fsigma",cutPiCandidate, nsigmaPi), cutPiCandidate, AliPID::kPion, nsigmaPi, aodFilterBit);
+  cutSetK  = new AliRsnCutSetDaughterParticle(Form("cutK%i_%2.1fsigma",cutPiCandidate, nsigmaKa), cutKaCandidate, AliPID::kKaon, nsigmaKa, aodFilterBit);
 
   Int_t iCutQ = task->AddTrackCuts(cutSetQ);
   Int_t iCutPi = task->AddTrackCuts(cutSetPi);
   Int_t iCutK = task->AddTrackCuts(cutSetK);
   
   if(enableMonitor){
-    Printf("======== Monitoring cut AliRsnCutSetDaughterParticle enabled");
+    Printf("======== Cut monitoring enabled");
     gROOT->LoadMacro("$ALICE_ROOT/PWGLF/RESONANCES/macros/mini/AddMonitorOutput.C");
-    AddMonitorOutput(isMC, cutSetQ->GetMonitorOutput());
-    AddMonitorOutput(isMC, cutSetPi->GetMonitorOutput());
-    AddMonitorOutput(isMC, cutSetK->GetMonitorOutput());
+    AddMonitorOutput(isMC, cutSetQ->GetMonitorOutput(), monitorOpt.Data());
+    AddMonitorOutput(isMC, cutSetPi->GetMonitorOutput(), monitorOpt.Data());
+    AddMonitorOutput(isMC, cutSetK->GetMonitorOutput()), monitorOpt.Data();
   }  
   
+  if (monitorOpt.Contains("MonOnly")) {
+    Printf("======== Cut monitoring only");   
+    return kTRUE;
+  }
   // -- Values ------------------------------------------------------------------------------------
   /* invariant mass   */ Int_t imID   = task->CreateValue(AliRsnMiniValue::kInvMass, kFALSE);
   /* IM resolution    */ Int_t resID  = task->CreateValue(AliRsnMiniValue::kInvMassRes, kTRUE);