]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Added macro for cut monitoring + fix for macro paths
authorfbellini <fbellini@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 6 Aug 2012 15:35:04 +0000 (15:35 +0000)
committerfbellini <fbellini@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 6 Aug 2012 15:35:04 +0000 (15:35 +0000)
PWGLF/RESONANCES/macros/mini/AddAnalysisTaskTOFKStar.C
PWGLF/RESONANCES/macros/mini/AddMonitorOutput.C [new file with mode: 0644]
PWGLF/RESONANCES/macros/mini/ConfigTOFanalysisKStar.C

index bda0a7014f163199f9106b35645ba3b93c7e15d3..cf26a62e3e7b4d82c215fd2b44e3da0151347167 100644 (file)
@@ -1,3 +1,5 @@
+/***************************************************************************
+              fbellini@cern.ch - last modified on 06/08/2012
 //
 // General macro to configure the RSN analysis task.
 // It calls all configs desired by the user, by means
 //  kTRUE  --> initialization successful
 //  kFALSE --> initialization failed (some config gave errors)
 //
-// Author: fbellini@cern.ch
-// Created on 06/08/2012
+****************************************************************************/
 
 AliRsnMiniAnalysisTask * AddAnalysisTaskTOFKStar
 (
    Bool_t      isMC,
    Bool_t      isPP,
-   const char *path,
    Int_t       aodFilterBit = 5,
    AliRsnCutSetDaughterParticle::ERsnDaughterCutSet cutPiCandidate = AliRsnCutSetDaughterParticle::kTOFpidKstarPbPb2010,
    AliRsnCutSetDaughterParticle::ERsnDaughterCutSet cutKaCandidate = AliRsnCutSetDaughterParticle::kTOFpidKstarPbPb2010,
@@ -41,7 +41,7 @@ AliRsnMiniAnalysisTask * AddAnalysisTaskTOFKStar
 
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
    if (!mgr) {
-      ::Error("AddAnalysisTaskTOFKStarPbPb", "No analysis manager to connect to.");
+      ::Error("AddAnalysisTaskTOFKStar", "No analysis manager to connect to.");
       return NULL;
    } 
 
@@ -118,7 +118,7 @@ AliRsnMiniAnalysisTask * AddAnalysisTaskTOFKStar
    
    //
    // -- CONFIG ANALYSIS --------------------------------------------------------------------------
-   gROOT->LoadMacro(Form("%s/ConfigTOFanalysisKStar.C", path));
+   gROOT->LoadMacro("$ALICE_ROOT/PWGLF/RESONANCES/macros/mini/ConfigTOFanalysisKStar.C");
    if (isMC) {
      if (((Int_t)cutPiCandidate<4) && ((Int_t)cutKaCandidate<4))
        Printf("========================== MC analysis - no PID used for efficiency estimation");
@@ -133,8 +133,8 @@ AliRsnMiniAnalysisTask * AddAnalysisTaskTOFKStar
    //
    TString outputFileName = AliAnalysisManager::GetCommonFileName();
    //  outputFileName += ":Rsn";
-   Printf("AddAnalysisTaskTOFKStarPbPb - Set OutputFileName : \n %s\n", outputFileName.Data() );
-
+   Printf("AddAnalysisTaskTOFKStar - Set OutputFileName : \n %s\n", outputFileName.Data() );
+   
    AliAnalysisDataContainer *output = mgr->CreateContainer(Form("RsnOut_%s",outNameSuffix.Data()), 
                                                           TList::Class(), 
                                                           AliAnalysisManager::kOutputContainer, 
diff --git a/PWGLF/RESONANCES/macros/mini/AddMonitorOutput.C b/PWGLF/RESONANCES/macros/mini/AddMonitorOutput.C
new file mode 100644 (file)
index 0000000..93c5102
--- /dev/null
@@ -0,0 +1,198 @@
+/***************************************************************************
+              fbellini@cern.ch - last modified on 06/08/2012
+
+ Macro to add monitoring histograms for track and PID cuts to the rsn task 
+ Tuned for monitoring TOF KStar analysis of PbPb 2010 data
+/***************************************************************************/
+
+
+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, 100.0, 1);
+  // Momentum
+  AliRsnValueDaughter *axisMomTPC = new AliRsnValueDaughter("pTPC", AliRsnValueDaughter::kPtpc);
+  axisMomTPC->SetBins(0.0, 10.0, 0.01);
+  AliRsnValueDaughter *axisMomP = new AliRsnValueDaughter("p", AliRsnValueDaughter::kP);
+  axisMomP->SetBins(0.0, 10.0, 0.01);
+  // Momentum Pt
+  AliRsnValueDaughter *axisMomPt = new AliRsnValueDaughter("pt", AliRsnValueDaughter::kPt);
+  axisMomPt->SetBins(0.0,10.0,0.01);
+  // Eta
+  AliRsnValueDaughter *axisMomEta = new AliRsnValueDaughter("eta", AliRsnValueDaughter::kEta);
+  axisMomEta->SetBins(-1.0, 1.0, 0.05);
+
+  /* dEdx tpc */
+  AliRsnValueDaughter *axisSigTPC = new AliRsnValueDaughter("sTPC", AliRsnValueDaughter::kTPCsignal);
+  axisSigTPC->SetBins(0.0, 500.0, 2.0);
+  // kTPCnsigmaPi
+  AliRsnValueDaughter *axisTPCnsigmaPi = new AliRsnValueDaughter("pi", AliRsnValueDaughter::kTPCnsigmaPi);
+  axisTPCnsigmaPi->SetBins(-50.,50., 0.1);
+  // kTPCnsigmaK
+  AliRsnValueDaughter *axisTPCnsigmaK = new AliRsnValueDaughter("K", AliRsnValueDaughter::kTPCnsigmaK);
+  axisTPCnsigmaK->SetBins(-50.,50., 0.1);
+  // kTPCnsigmaP
+  AliRsnValueDaughter *axisTPCnsigmaP = new AliRsnValueDaughter("p", AliRsnValueDaughter::kTPCnsigmaP);
+  axisTPCnsigmaP->SetBins(-50.,50., 0.1);
+
+  /* tof signal - time */
+  AliRsnValueDaughter *axisSigTOF = new AliRsnValueDaughter("sTOF", AliRsnValueDaughter::kTOFsignal);
+  axisSigTOF->SetBins(10000.0, 50000.0, 250);//in ps
+  // kTOFnsigmaPi
+  AliRsnValueDaughter *axisTOFnsigmaPi = new AliRsnValueDaughter("pi", AliRsnValueDaughter::kTOFnsigmaPi);
+  axisTOFnsigmaPi->SetBins(-50.,50., 0.1);
+  // kTOFnsigmaK
+  AliRsnValueDaughter *axisTOFnsigmaK = new AliRsnValueDaughter("K", AliRsnValueDaughter::kTOFnsigmaK);
+  axisTOFnsigmaK->SetBins(-50.,50., 0.1);
+  // kTOFnsigmaP
+  AliRsnValueDaughter *axisTOFnsigmaP = new AliRsnValueDaughter("p", AliRsnValueDaughter::kTOFnsigmaP);
+  axisTOFnsigmaP->SetBins(-50.,50., 0.1);
+   
+  /****************************************************************/
+  /***************       MONITOR AOB           ********************/
+  /****************************************************************/
+  AliRsnListOutput *outMonitorPTvsMult = new AliRsnListOutput("PtVsMult",AliRsnListOutput::kHistoDefault);
+  outMonitorPTvsMult->AddValue(axisMomPt);
+  outMonitorPTvsMult->AddValue(multi);
+  if (mon) mon->Add(outMonitorPTvsMult);
+  if (lm) lm->AddOutput(outMonitorPTvsMult);
+
+  //    if (lm) lm->SetTrueMC(kTRUE);
+  /****************************************************************/
+  /***************       MONITOR kinematics    ********************/
+  /****************************************************************/
+  // output: TH1D for momentum
+  AliRsnListOutput *outMonitorP = new AliRsnListOutput("P", AliRsnListOutput::kHistoDefault);
+  outMonitorP->AddValue(axisMomP);
+  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 (mon) mon->Add(outMonitorPt);
+  if (lm) lm->AddOutput(outMonitorPt);
+
+  // output: TH1D for pseudorapidity
+  AliRsnListOutput *outMonitorEta = new AliRsnListOutput("Eta", AliRsnListOutput::kHistoDefault);
+  outMonitorEta->AddValue(axisMomEta);
+  if (mon) mon->Add(outMonitorEta);
+  if (lm) lm->AddOutput(outMonitorEta);
+
+  /****************************************************************/
+  /***************       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);
+
+  // 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);
+
+  /****************************************************************/
+  /***************       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. 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
+    AliRsnListOutput *outMonitorTOFnsigmaPi = new AliRsnListOutput("TOF_nsigmaPi_vsP", AliRsnListOutput::kHistoDefault);
+    outMonitorTOFnsigmaPi->AddValue(axisMomP);
+    outMonitorTOFnsigmaPi->AddValue(axisTOFnsigmaPi);
+    if (mon) mon->Add(outMonitorTOFnsigmaPi);
+    if (lm) lm->AddOutput(outMonitorTOFnsigmaPi);
+     
+    // output: 2D histogram of TOF signal vs. TOF momentum
+    AliRsnListOutput *outMonitorTOFnsigmaK = new AliRsnListOutput("TOF_nsigmaK_vsP", AliRsnListOutput::kHistoDefault);
+    outMonitorTOFnsigmaK->AddValue(axisMomP);
+    outMonitorTOFnsigmaK->AddValue(axisTOFnsigmaK);
+    if (mon) mon->Add(outMonitorTOFnsigmaK);
+    if (lm) lm->AddOutput(outMonitorTOFnsigmaK);
+      
+    // output: 2D histogram of TOF signal vs. TOF momentum
+    AliRsnListOutput *outMonitorTOFnsigmaP = new AliRsnListOutput("TOF_nsigmaPro_vsP", AliRsnListOutput::kHistoDefault);
+    outMonitorTOFnsigmaP->AddValue(axisMomP);
+    outMonitorTOFnsigmaP->AddValue(axisTOFnsigmaP);
+    if (mon) mon->Add(outMonitorTOFnsigmaP);
+    if (lm) lm->AddOutput(outMonitorTOFnsigmaP);
+  }
+
+  /****************************************************************/
+  /***************       MONITOR MC            ********************/
+  /****************************************************************/
+  if (useMCMon) {
+    //Momentum 
+    AliRsnValueDaughter *axisMomPMC = new AliRsnValueDaughter("pMC", AliRsnValueDaughter::kP);
+    axisMomPMC->SetUseMCInfo(kTRUE);
+    axisMomPMC->SetBins(0.0,10.0,0.01);
+    // Momentum Pt
+    AliRsnValueDaughter *axisMomPtMC = new AliRsnValueDaughter("ptMC", AliRsnValueDaughter::kPt);
+    axisMomPtMC->SetUseMCInfo(kTRUE);
+    axisMomPtMC->SetBins(0.0,10.0,0.01);
+    // Eta
+    AliRsnValueDaughter *axisEtaMC = new AliRsnValueDaughter("etaMC", AliRsnValueDaughter::kEta);
+    axisEtaMC->SetUseMCInfo(kTRUE);
+    axisEtaMC->SetBins(-1.0,1.0,0.01);
+
+    // output: 2D histo for kine acceptance
+    AliRsnListOutput *outMonitorPtVsEtaMC = new AliRsnListOutput("Pt_VsEtaMC", AliRsnListOutput::kHistoDefault);
+    outMonitorPtVsEtaMC->AddValue(axisMomPtMC);
+    outMonitorPtVsEtaMC->AddValue(axisEtaMC);
+    if (mon) mon->Add(outMonitorPtVsEtaMC);
+    if (lm) lm->AddOutput(outMonitorPtVsEtaMC);
+
+    // output: 1D histo pt from MC
+    AliRsnListOutput *outMonitorPtMC = new AliRsnListOutput("PtMC", AliRsnListOutput::kHistoDefault);
+    outMonitorPtMC->AddValue(axisMomPtMC);
+    if (mon) mon->Add(outMonitorPtMC);
+    if (lm) lm->AddOutput(outMonitorPtMC);
+    // output: 1D histo eta from MC
+    AliRsnListOutput *outMonitorEtaMC = new AliRsnListOutput("EtaMC", AliRsnListOutput::kHistoDefault);
+    outMonitorEtaMC->AddValue(axisEtaMC);
+    if (mon) mon->Add(outMonitorEtaMC);
+    if (lm) lm->AddOutput(outMonitorEtaMC);
+
+    // output: 1D histo pt from MC
+    AliRsnListOutput *outMonitorPtMC = new AliRsnListOutput("PtMC", AliRsnListOutput::kHistoDefault);
+    outMonitorPtMC->AddValue(axisMomPtMC);
+    if (mon) mon->Add(outMonitorPtMC);
+    if (lm) lm->AddOutput(outMonitorPtMC);
+  }
+}
index 88ea2fe184fe5e2bfe1f83a7dc3d5827666ba9e1..81f15b2e05a7eb2542f97808aae94aed532a1949 100644 (file)
@@ -46,7 +46,7 @@ Bool_t ConfigTOFanalysisKStar
   
   if(enableMonitor){
     Printf("======== Monitoring cut AliRsnCutSetDaughterParticle enabled");
-    gROOT->LoadMacro("AddMonitorOutput.C");
+    gROOT->LoadMacro("$ALICE_ROOT/PWGLF/RESONANCES/macros/mini/AddMonitorOutput.C");
     AddMonitorOutput(isMC, cutSetQ->GetMonitorOutput());
     AddMonitorOutput(isMC, cutSetPi->GetMonitorOutput());
     AddMonitorOutput(isMC, cutSetK->GetMonitorOutput());