]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
New version of lego_train macros (M. Vala)
authorfbellini <fbellini@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 23 Feb 2012 10:28:30 +0000 (10:28 +0000)
committerfbellini <fbellini@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 23 Feb 2012 10:28:30 +0000 (10:28 +0000)
PWGLF/RESONANCES/macros/lego_train/AddAMRsn.C
PWGLF/RESONANCES/macros/lego_train/AddPIDResponseInputHandler.C
PWGLF/RESONANCES/macros/lego_train/AddRsnCommonPairCuts.C
PWGLF/RESONANCES/macros/lego_train/AddRsnDaughterCutsBPID.C
PWGLF/RESONANCES/macros/lego_train/AddRsnDaughterCutsPDG.C
PWGLF/RESONANCES/macros/lego_train/AddRsnDaughterCutsPhi2010.C
PWGLF/RESONANCES/macros/lego_train/AddRsnPairsPhi.C
PWGLF/RESONANCES/macros/lego_train/RsnConfig.C
PWGLF/RESONANCES/macros/lego_train/RsnGridPlugin.C
PWGLF/RESONANCES/macros/lego_train/RsnManager.C
PWGLF/RESONANCES/macros/lego_train/RunALICE.C

index 1e1954363f12e88132cbbecd6e3de7ebfc6d50a4..42bc18ad68f5aecdc65382373fd8dbc479fda87c 100644 (file)
@@ -1,7 +1,7 @@
 Bool_t AddAMRsn(TString analysisSource = "proof", TString analysisMode = "test",TString input="aod",TString inputMC="", TString postfix = "",TString idStr="0")
 {
 
-   analysisSource.ToLower();analysisMode.ToLower();
+   analysisSource.ToLower(); analysisMode.ToLower();
 
    if (!RsnLoadMacro("RsnManager.C")) return kFALSE;
    TList *listRsn = RsnManager();
@@ -41,6 +41,7 @@ Bool_t AddAMRsn(TString analysisSource = "proof", TString analysisMode = "test",
       if (rsnPar) { AliAnalysisAlien::SetupPar(rsnLibName.Data()); myAdditionalLibs += Form(" %s.par",rsnLibName.Data()); }
       else { gSystem->Load(Form("lib%s.so",rsnLibName.Data())); myAdditionalLibs += Form(" lib%s.so",rsnLibName.Data()); }
    }
+
    analysisPlugin->SetAdditionalLibs(myAdditionalLibs.Data());
 
    AliMultiInputEventHandler *multiInputHandler = mgr->GetInputEventHandler();
@@ -49,7 +50,7 @@ Bool_t AddAMRsn(TString analysisSource = "proof", TString analysisMode = "test",
    if (pidResponse) {
       // add PID Response Handler
       if (!RsnLoadMacro("AddPIDResponseInputHandler.C")) return kFALSE;
-      AddPIDResponseInputHandler(multiInputHandler);
+      AddPIDResponseInputHandler(multiInputHandler,useMC);
    }
 
    if (useRsnIH) {
@@ -78,7 +79,7 @@ Bool_t AddAMRsn(TString analysisSource = "proof", TString analysisMode = "test",
    if (!RsnLoadMacro("RsnConfig.C")) return kFALSE;
    if (!RsnLoadMacro("AddMixingHandler.C")) return kFALSE;
    if (!analysisSource.CompareTo("grid")) {
-      if (!RsnLoadMacro("RsnGirdPlugin.C")) return kFALSE;
+      if (!RsnLoadMacro("RsnGridPlugin.C")) return kFALSE;
       RsnGridPlugin();
    }
 
@@ -132,3 +133,4 @@ Bool_t RsnLoadMacro(TString macro,TString path="") {
 
    return kFALSE;
 }
+
index 3760b03db1a4ca7102a25a5cb9e90ed4dbd40f97..4ca9fe81956c6170b35ecdcb3493114152e29f8b 100644 (file)
@@ -2,10 +2,11 @@
 #include <AliPIDResponseInputHandler.h>
 #endif
 
-void AddPIDResponseInputHandler(AliMultiInputEventHandler *multiInputHandler)
+void AddPIDResponseInputHandler(AliMultiInputEventHandler *multiInputHandler,Bool_t isMC=kFALSE)
 {
    if (multiInputHandler) {
       AliPIDResponseInputHandler *pidResponseIH = new AliPIDResponseInputHandler();
+      pidResponseIH->SetIsMC(isMC);
       multiInputHandler->AddInputEventHandler(pidResponseIH);
    }
 }
index 88014c9941dc6227acee40db18a48d28b679bfa2..51d087115052955fd3dd53bf1461c70383a8ad03 100644 (file)
@@ -1,13 +1,13 @@
 AliRsnCutSet *AddRsnCommonPairCuts(AliAnalysisTaskSE *task=0,Bool_t isPP=kTRUE) {
+   AliRsnCutSet *cutsPair = 0;
    //   TODO
-   AliRsnCutMiniPair *cutY = new AliRsnCutMiniPair("cutRapidity", AliRsnCutMiniPair::kRapidityRange);
-   //    cutY->SetRangeD(-0.5, 0.5);
-   cutY->SetRangeD(-0.9, 0.9);
+//   AliRsnCutMiniPair *cutY = new AliRsnCutMiniPair("cutRapidity", AliRsnCutMiniPair::kRapidityRange);
+//   //    cutY->SetRangeD(-0.5, 0.5);
+//   cutY->SetRangeD(-0.9, 0.9);
+//
+//   cutsPair = new AliRsnCutSet("pairCuts", AliRsnTarget::kMother);
+//   cutsPair->AddCut(cutY);
+//   cutsPair->SetCutScheme(cutY->GetName());
 
-   AliRsnCutSet *cutsPair = new AliRsnCutSet("pairCuts", AliRsnTarget::kMother);
-   cutsPair->AddCut(cutY);
-   cutsPair->SetCutScheme(cutY->GetName());
-   //
-   //   AliRsnCutSet *cutsPair = 0;
    return cutsPair;
 }
index eda4ec49f708b1bb8dfb1bf6d1182a1af271563f..96c446909839ea999c9f4b684486dd83bb3313d6 100644 (file)
@@ -36,9 +36,9 @@ Int_t AddRsnDaughterCutsBPID(AliPID::EParticleType type1,AliPID::EParticleType t
       numberOfCuts++;
    }
    if (opt.Contains("mon")) {
-      AddMonitorOutput(cuts1->GetMonitorOutput());
+      AddMonitorOutput(cuts1->GetMonitorOutput(),opt);
       if (type1 != type2) {
-         AddMonitorOutput(cuts2->GetMonitorOutput());
+         AddMonitorOutput(cuts2->GetMonitorOutput(),opt);
       }
    }
    if (isRsnMini) {
index 6ea748d09f31254f2c98f972f0e2991768c98911..db2ad6edd3fea31194b1b5213f648aabab25417d 100644 (file)
@@ -19,25 +19,62 @@ Int_t AddRsnDaughterCutsPDG(AliPID::EParticleType type1,AliPID::EParticleType ty
    //  Define single cuts
    //---------------------------------------------
 
-   AliRsnCutPID *cut1 = new AliRsnCutPID(Form("cut%sPDG%s",AliPID::ParticleName(type1),opt.Data()),type1,0.0,kTRUE);
+   Double_t etaRange=0.8;
+
+   AliRsnCutValue *cutEta;
+   Bool_t useEta = kFALSE;
+   if (opt.Contains("eta")) {
+      Printf("Using ETA range (%.2f,%.2f)",-etaRange,etaRange);
+      useEta = kTRUE;
+   }
+
    AliRsnCutSet *cuts1 = new AliRsnCutSet(Form("%sPDG%s",AliPID::ParticleName(type1),opt.Data()), AliRsnTarget::kDaughter);
+
+   Double_t nSigmaTPC=3.0;
+   Double_t nSigmaTOF=3.0;
+   Double_t ptTPCMax=0.8;
+   AliRsnCutKaonForPhi2010 *cutQuality1 = new AliRsnCutKaonForPhi2010("cutKaonPhi2010",nSigmaTPC,nSigmaTOF,ptTPCMax);
+   cutQuality1->SetMode(AliRsnCutKaonForPhi2010::kQuality);
+   cuts1->AddCut(cutQuality1);
+
+   AliRsnCutPID *cut1 = new AliRsnCutPID(Form("cut%sPDG%s",AliPID::ParticleName(type1),opt.Data()),type1,0.0,kTRUE);
    cuts1->AddCut(cut1);
-   cuts1->SetCutScheme(cut1->GetName());
-   sel->Add(cuts1, kTRUE);
+   if (useEta) {
+      AliRsnCutValue *cutEta1 = new AliRsnCutValue(Form("cut%sETA%s",AliPID::ParticleName(type1),opt.Data()),-etaRange,etaRange);
+      AliRsnValueDaughter *valEta1 = new AliRsnValueDaughter(Form("val%sETA%s",AliPID::ParticleName(type1)),AliRsnValueDaughter::kEta);
+      cutEta1->SetValueObj(valEta1);
+      cuts1->AddCut(cutEta1);
 
+      cuts1->SetCutScheme(Form("%s&%s&%s",cutQuality1->GetName(),cut1->GetName(),cutEta1->GetName()));
+   } else {
+      cuts1->SetCutScheme(Form("%s&%s",cutQuality1->GetName(),cut1->GetName()));
+   }
+   sel->Add(cuts1, kTRUE);
 
    AliRsnCutSet *cuts2 = 0;
    if (type1 != type2) {
       AliRsnCutPID *cut2 = new AliRsnCutPID(Form("cut%sPDG%s",AliPID::ParticleName(type2),opt.Data()),type2,0.0,kTRUE);
+      AliRsnCutKaonForPhi2010 *cutQuality2 = new AliRsnCutKaonForPhi2010("cutKaonPhi2010",nSigmaTPC,nSigmaTOF,ptTPCMax);
+      cutQuality2->SetMode(AliRsnCutKaonForPhi2010::kQuality);
+      cuts2->AddCut(cutQuality2);
+
       cuts2 = new AliRsnCutSet(Form("%sPDG%s",AliPID::ParticleName(type2),opt.Data()), AliRsnTarget::kDaughter);
       cuts2->AddCut(cut2);
-      cuts2->SetCutScheme(cut2->GetName());
+      if (useEta) {
+         AliRsnCutValue *cutEta2 = new AliRsnCutValue(Form("cut%sETA%s",AliPID::ParticleName(type2),opt.Data()),-etaRange,etaRange);
+         AliRsnValueDaughter *valEta2 = new AliRsnValueDaughter(Form("val%sETA%s",AliPID::ParticleName(type2)),AliRsnValueDaughter::kEta);
+         cutEta2->SetValueObj(valEta2);
+         cuts2->AddCut(cutEta2);
+         cuts2->SetCutScheme(Form("%s&%s&%s",cutQuality2->GetName(),cut2->GetName(),cutEta2->GetName()));
+      } else {
+         cuts2->SetCutScheme(Form("%s&%s",cutQuality2->GetName(),cut2->GetName()));
+      }
       sel->Add(cuts2, kTRUE);
       numberOfCuts++;
    }
    if (opt.Contains("mon")) {
-      AddMonitorOutput(cuts1->GetMonitorOutput());
-      AddMonitorOutput(cuts2->GetMonitorOutput());
+      AddMonitorOutput(cuts1->GetMonitorOutput(),opt);
+      if (type1 != type2) AddMonitorOutput(cuts2->GetMonitorOutput());
    }
    if (isRsnMini) {
       AliRsnMiniAnalysisTask *taskRsnMini = dynamic_cast<AliRsnMiniAnalysisTask *>(task);
@@ -53,3 +90,5 @@ Int_t AddRsnDaughterCutsPDG(AliPID::EParticleType type1,AliPID::EParticleType ty
 
    return numberOfCuts;
 }
+
+
index 6a28808ca9b1dc4c3c4944fa7dd5c4f44d19f496..8911e211ebfda368fca5f2650999e367a33bce84 100644 (file)
@@ -1,16 +1,26 @@
 #ifndef __CINT__
-#include <ANALYSIS/AliAnalysisTaskSE.h>
-#include <PWG2/RESONANCES/AliRsnCutSet.h>
-#include <PWG2/RESONANCES/AliRsnInputHandler.h>
-#include <PWG2/RESONANCES/AliRsnCutKaonForPhi2010.h>
-#include <PWG2/RESONANCES/AliRsnMiniAnalysisTask.h>
-#include <PWG2/RESONANCES/AliRsnAnalysisTask.h>
+#include <PWGLF/RESONANCES/AliRsnCutSet.h>
+#include <PWGLF/RESONANCES/AliRsnInputHandler.h>
+#include <PWGLF/RESONANCES/AliRsnCutKaonForPhi2010.h>
+#include <PWGLF/RESONANCES/AliRsnMiniAnalysisTask.h>
+#include <PWGLF/RESONANCES/AliRsnAnalysisTask.h>
+#include <PWGLF/RESONANCES/AliRsnValueDaughter.h>
+#include <RESONANCES/AliRsnCutPID.h>
+#include <RESONANCES/AliRsnCutKaonForPhi2010PP.h>
+#include <RESONANCES/AliRsnCutValue.h>
 #endif
 Int_t AddRsnDaughterCutsPhi2010(AliPID::EParticleType type1,AliPID::EParticleType type2,TString opt,Bool_t isRsnMini=kFALSE,AliRsnInputHandler *rsnIH=0,AliAnalysisTaskSE *task=0)
 {
 
    if (!rsnIH) return 0;
 
+   Bool_t valid = kTRUE;
+   Int_t isPP = AliAnalysisManager::GetGlobalInt("rsnIsPP",valid);
+
+   Bool_t usePPCut = kFALSE;
+
+   if (isPP && (opt.Contains("usePP"))) usePPCut = kTRUE;
+
    // === USER HAS TO SET CORRECT NUMBER OF CUTS SETS =====
    Int_t numberOfCuts = 1;
 
@@ -20,21 +30,75 @@ Int_t AddRsnDaughterCutsPhi2010(AliPID::EParticleType type1,AliPID::EParticleTyp
 
    Printf("AddRsnDaughterCutsPhi2010 Option : %s",opt.Data());
 
-   AliRsnCutKaonForPhi2010 *cut = new AliRsnCutKaonForPhi2010("cutKaonPhi2010",3.0,3.0,0.8);
-   if (opt.Contains("qualityonly")) cut->SetMode(AliRsnCutKaonForPhi2010::kQuality);
+   Bool_t useTrackPtCut = kFALSE;
+   Double_t trackPtMin = 0.0;
+   Double_t trackPtMax = 100000.0;
+   Double_t nSigmaTPC=3.0;
+   Double_t nSigmaTOF=3.0;
+   Double_t ptTPCMax=0.6;
+   Double_t etaRange=0.8;
+//     etaRange=0.1;
+
+   if (opt.Contains("trackPt")) {
+      useTrackPtCut = kTRUE;
+      if (opt.Contains("trackPtMax18")) trackPtMax = 1.8;
+      if (opt.Contains("trackPtMax20")) trackPtMax = 2.0;
+      if (opt.Contains("trackPtMax25")) trackPtMax = 2.5;
+   }
+
+   if (opt.Contains("TPCsigma1")) nSigmaTPC = 1.0;
+   if (opt.Contains("TPCsigma2")) nSigmaTPC = 2.0;
+   if (opt.Contains("TPCsigma3")) nSigmaTPC = 3.0;
+
+   if (opt.Contains("TOFsigma1")) nSigmaTOF = 1.0;
+   if (opt.Contains("TOFsigma2")) nSigmaTOF = 2.0;
+   if (opt.Contains("TOFsigma3")) nSigmaTOF = 3.0;
+
+
+
+   if (opt.Contains("tpcptMax")) {
+      if (opt.Contains("tpcptMax04")) ptTPCMax=0.4;
+      if (opt.Contains("tpcptMax05")) ptTPCMax=0.5;
+      if (opt.Contains("tpcptMax06")) ptTPCMax=0.6;
+      if (opt.Contains("tpcptMax07")) ptTPCMax=0.7;
+      if (opt.Contains("tpcptMax08")) ptTPCMax=0.8;
+      if (opt.Contains("tpcptMax09")) ptTPCMax=0.9;
+      if (opt.Contains("tpcptMax10")) ptTPCMax=1.0;
+   }
+
+   AliRsnCutKaonForPhi2010PP *cutPP=0;
+   AliRsnCutKaonForPhi2010 *cutPbPb=0;
+   AliRsnCut *cut;
+   if (usePPCut) {
+      Printf("Using AliRsnCutKaonForPhi2010PP ...");
+      AliRsnCutKaonForPhi2010PP *cutPP = new AliRsnCutKaonForPhi2010PP("cutKaonPhi2010PP");
+      cutPP->SetTPCNSigmaLow(nSigmaTPC);
+      cutPP->SetTPCNSigmaHigh(5.0);
+      cutPP->SetTPCLimit(ptTPCMax);
+      cutPP->SetTOFNSigma(nSigmaTOF);
+      cut = cutPP;
+   }
+   else {
+      Printf("Using AliRsnCutKaonForPhi2010 ...");
+      AliRsnCutKaonForPhi2010 *cutPbPb = new AliRsnCutKaonForPhi2010("cutKaonPhi2010",nSigmaTPC,nSigmaTOF,ptTPCMax);
+      if (opt.Contains("qualityonly")) cutPbPb->SetMode(AliRsnCutKaonForPhi2010::kQuality);
+      if (opt.Contains("tofonly")) cutPbPb->SetMode(AliRsnCutKaonForPhi2010::kOnlyTOF);
+      if (opt.Contains("tpconly")) cutPbPb->SetMode(AliRsnCutKaonForPhi2010::kOnlyTPC);
+
+      cut = cutPbPb;
+   }
 
-   if (opt.Contains("tpconly")) {
-      cut->SetMode(AliRsnCutKaonForPhi2010::kOnlyTPC);
-      if (opt.Contains("sigma1")) cut->SetCutTPC(1.0);
-      if (opt.Contains("sigma2")) cut->SetCutTPC(2.0);
-      if (opt.Contains("sigma3")) cut->SetCutTPC(3.0);
+   Bool_t usePDG=kFALSE;
+   if (opt.Contains("pdg")) {
+      Printf("Using PDG");
+      usePDG = kTRUE;
    }
 
-   if (opt.Contains("tofonly")) {
-      cut->SetMode(AliRsnCutKaonForPhi2010::kOnlyTOF);
-      if (opt.Contains("sigma1")) cut->SetCutTOF(1.0);
-      if (opt.Contains("sigma2")) cut->SetCutTOF(2.0);
-      if (opt.Contains("sigma3")) cut->SetCutTOF(3.0);
+
+   Bool_t useEta = kFALSE;
+   if (opt.Contains("eta")) {
+      Printf("Using ETA range (%.2f,%.2f)",-etaRange,etaRange);
+      useEta = kTRUE;
    }
 
    //---------------------------------------------
@@ -44,10 +108,48 @@ Int_t AddRsnDaughterCutsPhi2010(AliPID::EParticleType type1,AliPID::EParticleTyp
    if (!opt.IsNull()) cutname += Form("_%s",opt.Data());
    AliRsnCutSet *cuts = new AliRsnCutSet(cutname.Data(), AliRsnTarget::kDaughter);
    cuts->AddCut(cut);
-   cuts->SetCutScheme(cut->GetName());
+
+   TString scheme="";
+   if (useTrackPtCut) {
+      Printf("Adding Pt min=%.3f max=%.3f ...",trackPtMin,trackPtMax);
+      AliRsnValueDaughter *valTrackPt = new AliRsnValueDaughter(Form("val%sTrackPt%s",AliPID::ParticleName(type1),opt.Data()),AliRsnValueDaughter::kPt);
+
+      AliRsnCutValue *cutTrackPt = new AliRsnCutValue(Form("cut%sTrackPt%s",AliPID::ParticleName(type1),opt.Data()),trackPtMin,trackPtMax);
+      cutTrackPt->SetTargetType(AliRsnTarget::kDaughter);
+      cutTrackPt->SetValueObj(valTrackPt);
+      cuts->AddCut(cutTrackPt);
+      if (!scheme.IsNull()) scheme += "&";
+      scheme += cutTrackPt->GetName();
+   }
+
+
+   if (useEta) {
+      Printf("Adding ETA ...");
+      AliRsnValueDaughter *valEta = new AliRsnValueDaughter(Form("val%sETA%s",AliPID::ParticleName(type1),opt.Data()),AliRsnValueDaughter::kEta);
+      AliRsnCutValue *cutEta = new AliRsnCutValue(Form("cut%sETA%s",AliPID::ParticleName(type1),opt.Data()),-etaRange,etaRange);
+      cutEta->SetTargetType(AliRsnTarget::kDaughter);
+      cutEta->SetValueObj(valEta);
+      cuts->AddCut(cutEta);
+      if (!scheme.IsNull()) scheme += "&";
+      scheme += cutEta->GetName();
+//         cuts->SetCutScheme(Form("%s&%s",cut->GetName(),cutEta->GetName()));
+   }
+   if (usePDG) {
+      Printf("Adding PDG ...");
+      AliRsnCutPID *cutPDG = new AliRsnCutPID(Form("cut%sPDG%s",AliPID::ParticleName(type1),opt.Data()),type1,0.0,kTRUE);
+      cuts->AddCut(cutPDG);
+      if (!scheme.IsNull()) scheme += "&";
+      scheme += cutPDG->GetName();
+   }
+
+   if (!scheme.IsNull()) scheme += "&";
+   scheme += cut->GetName();
+
+   Printf ("------ scheme '%s'",scheme.Data());
+   cuts->SetCutScheme(scheme.Data());
 
    if (opt.Contains("mon")) {
-      AddMonitorOutput(cuts->GetMonitorOutput());
+      AddMonitorOutput(cuts->GetMonitorOutput(),opt);
    }
    if (isRsnMini) {
       AliRsnMiniAnalysisTask *taskRsnMini = dynamic_cast<AliRsnMiniAnalysisTask *>(task);
@@ -61,3 +163,4 @@ Int_t AddRsnDaughterCutsPhi2010(AliPID::EParticleType type1,AliPID::EParticleTyp
    return numberOfCuts;
 
 }
+
index cc55a1c740a91d20a2fd775b46376e1eced615ca..0af4d4b7470b6db5bbce65eb4cd9bd4027d43569 100644 (file)
@@ -1,3 +1,7 @@
+#ifndef __CINT__
+#include <RESONANCES/AliRsnValuePair.h>
+#endif
+
 void AddRsnPairsPhi(AliAnalysisTaskSE *task,
                     Bool_t isMC,
                     Bool_t isMixing,
@@ -34,9 +38,11 @@ void AddPairOutputPhi(AliRsnLoopPair *pair)
    // axes
    AliRsnValuePair *axisIM = new AliRsnValuePair("IM", AliRsnValuePair::kInvMass);
    AliRsnValuePair *axisPt = new AliRsnValuePair("PT", AliRsnValuePair::kPt);
+   AliRsnValuePair *axisEta = new AliRsnValuePair("ETA", AliRsnValuePair::kEta);
    axisIM     ->SetBins(300, 0.9, 1.2);
 //   axisIM     ->SetBins(1000, 0.9, 1.9);
    axisPt     ->SetBins(120, 0.0, 12.0);
+   axisEta    ->SetBins(400, -2.0, 2.0);
 
    // output: 2D histogram of inv. mass vs. pt
    AliRsnListOutput *outPair = 0;
@@ -47,6 +53,7 @@ void AddPairOutputPhi(AliRsnLoopPair *pair)
       outPair = new AliRsnListOutput("pair", AliRsnListOutput::kHistoSparse);
       outPair->AddValue(axisIM);
       outPair->AddValue(axisPt);
+      outPair->AddValue(axisEta);
    }
    // add outputs to loop
    pair->AddOutput(outPair);
@@ -84,7 +91,7 @@ void AddPairOutputMiniPhi(AliAnalysisTaskSE *task, Bool_t isMC,Bool_t isMixing,
    if (isFullOutput) outputType = "SPARSE";
 
    Int_t nIM   = 300; Double_t minIM   = 0.9, maxIM =  1.2;
-   Int_t nEta   = 200; Double_t minEta   = -1.0, maxEta =  1.0;
+   Int_t nEta   = 400; Double_t minEta   = -2.0, maxEta =  2.0;
 //   Int_t nIM   = 1000; Double_t minIM   = 0.9, maxIM =  1.9;
    Int_t nPt   = 120; Double_t minPt   = 0.0, maxPt = 12.0;
    Int_t nCent = 100; Double_t minCent = 0.0, maxCent = 100.0;
index f159f2520fa2f5ec8b1d0b62cc1a01f129c884f2..de334bf5946f49cd288927ed313cb42514bc03d7 100644 (file)
@@ -1,18 +1,18 @@
 #ifndef __CINT__
-#include <PWG2/RESONANCES/AliRsnCutPrimaryVertex.h>
-#include <PWG2/RESONANCES/AliRsnValuePair.h>
-#include <PWG2/RESONANCES/AliRsnListOutput.h>
-#include <PWG2/RESONANCES/AliRsnPairDef.h>
-#include <PWG2/RESONANCES/AliRsnLoopPair.h>
-#include <PWG2/RESONANCES/AliRsnAnalysisTask.h>
-#include <PWG2/RESONANCES/AliRsnLoopDaughter.h>
-#include <PWG2/RESONANCES/AliRsnValueDaughter.h>
-#include <PWG2/RESONANCES/AliRsnMiniAnalysisTask.h>
-#include <PWG2/RESONANCES/AliRsnCutMiniPair.h>
-#include <PWG2/RESONANCES/AliRsnInputHandler.h>
-#include <PWG2/RESONANCES/AliRsnMiniMonitor.h>
-#include <ANALYSIS/AliAnalysisManager.h>
-#include <PWG2/RESONANCES/AliRsnValueEvent.h>
+#include <AliAnalysisManager.h>
+#include <PWGLF/RESONANCES/AliRsnCutPrimaryVertex.h>
+#include <PWGLF/RESONANCES/AliRsnValuePair.h>
+#include <PWGLF/RESONANCES/AliRsnListOutput.h>
+#include <PWGLF/RESONANCES/AliRsnPairDef.h>
+#include <PWGLF/RESONANCES/AliRsnLoopPair.h>
+#include <PWGLF/RESONANCES/AliRsnAnalysisTask.h>
+#include <PWGLF/RESONANCES/AliRsnLoopDaughter.h>
+#include <PWGLF/RESONANCES/AliRsnValueDaughter.h>
+#include <PWGLF/RESONANCES/AliRsnMiniAnalysisTask.h>
+#include <PWGLF/RESONANCES/AliRsnCutMiniPair.h>
+#include <PWGLF/RESONANCES/AliRsnInputHandler.h>
+#include <PWGLF/RESONANCES/AliRsnMiniMonitor.h>
+#include <PWGLF/RESONANCES/AliRsnValueEvent.h>
 #endif
 
 Bool_t RsnConfig(AliAnalysisTaskSE *task,Bool_t isMC,Bool_t isMixing,AliRsnInputHandler *rsnIH=0,TList *listRsn=0) {
@@ -24,7 +24,7 @@ Bool_t RsnConfig(AliAnalysisTaskSE *task,Bool_t isMC,Bool_t isMixing,AliRsnInput
    }
    Bool_t valid;
    Int_t isRsnMini = AliAnalysisManager::GetGlobalInt("rsnUseMiniPackage",valid);
-
+   TString rsnCutOptCommon = AliAnalysisManager::GetGlobalStr("rsnLegoTrainCommonCutOption",valid);
    Int_t cutIndex = 0;
    Int_t numOfCuts = 0;
 
@@ -41,10 +41,17 @@ Bool_t RsnConfig(AliAnalysisTaskSE *task,Bool_t isMC,Bool_t isMixing,AliRsnInput
    TString rsnName,rsnNameOpt,rsnNameOptFull,rsnCutName,rsnCutOpt,rsnCutNameOptFull;
    while ((rsnObj = (TNamed *)next())) {
       GetOptionFromString(rsnObj->GetName(),rsnName,rsnNameOpt);
-      rsnNameOptFull=rsnName; if (!rsnNameOpt.IsNull()) rsnNameOptFull += Form("_%s",rsnNameOpt.Data());
+      rsnNameOptFull=rsnName;
+      if (!rsnNameOpt.IsNull()) rsnNameOptFull += Form("_%s",rsnNameOpt.Data());
 
       GetOptionFromString(rsnObj->GetTitle(),rsnCutName,rsnCutOpt);
-      rsnCutNameOptFull=rsnCutName; if (!rsnCutOpt.IsNull())rsnCutNameOptFull += Form("_%s",rsnCutOpt.Data());
+      rsnCutNameOptFull=rsnCutName;
+      if (!rsnCutOpt.IsNull())rsnCutNameOptFull += Form("_%s",rsnCutOpt.Data());
+
+      if (!rsnCutOptCommon.IsNull()) {
+         if (!rsnCutOpt.IsNull()) rsnCutOpt += "_";
+         rsnCutOpt += rsnCutOptCommon.Data();
+      }
 
       if (!RsnLoadMacroFromConfig(Form("AddRsnDaughterCuts%s.C",rsnCutName.Data()))) return kFALSE;
       if (!RsnLoadMacroFromConfig(Form("AddRsnPairs%s.C",rsnName.Data()))) return kFALSE;
@@ -81,7 +88,7 @@ Bool_t RsnLoadMacroFromConfig(TString macro,TString path="") {
 
    Bool_t valid;
    TString lego_path = AliAnalysisManager::GetGlobalStr("rsnLegoTrainPath",valid);
-   if (!valid) lego_path = "$ALICE_ROOT/PWG2/RESONANCES/macros/lego_train";
+   if (!valid) lego_path = "$ALICE_ROOT/PWGLF/RESONANCES/macros/lego_train";
 
    if (!gSystem->AccessPathName(macro.Data())) {
       gROOT->LoadMacro(macro.Data());
@@ -218,14 +225,17 @@ Bool_t AddPair(AliAnalysisTaskSE *task, Bool_t isMC,Bool_t isMixing, AliPID::EPa
 
 // void AddMonitorOutput(AliRsnLoopDaughter *mon)
 
-void AddMonitorOutput(TObjArray *mon)
+void AddMonitorOutput(TObjArray *mon,TString opt="")
 {
 
-   if (!mon) {Printf("Error: mon is null !!!!");return;}
+   if (!mon) {
+      Printf("Error: mon is null !!!!");
+      return;
+   }
 
    Bool_t valid;
-   Int_t useMCMomentum = AliAnalysisManager::GetGlobalInt("rsnUseMCMomentum",valid);
-   if (useMCMomentum) return;
+   Int_t useMCMon = AliAnalysisManager::GetGlobalInt("rsnUseMCMonitoring",valid);
+//     if (useMCMon) return;
 
    // dEdx tpc
    AliRsnValueDaughter *axisMomTPC = new AliRsnValueDaughter("pTPC", AliRsnValueDaughter::kPtpc);
@@ -253,7 +263,7 @@ void AddMonitorOutput(TObjArray *mon)
    outMonitordEdxTOF->AddValue(axisSigTOF);
 
    // add outputs to loop
-   //    mon->Add(outMonitordEdxTOF);
+   mon->Add(outMonitordEdxTOF);
 
 
    // Momentum
@@ -267,6 +277,21 @@ void AddMonitorOutput(TObjArray *mon)
    // add outputs to loop
    mon->Add(outMonitorP);
 
+
+   if (useMCMon) {
+      AliRsnValueDaughter *axisMomPMC = new AliRsnValueDaughter("pMC", AliRsnValueDaughter::kP);
+      axisMomPMC->SetUseMCInfo(kTRUE);
+      axisMomPMC->SetBins(0.0,5.0,0.01);
+
+      // output: 2D histogram of TPC signal vs. TPC momentum
+      AliRsnListOutput *outMonitorPMC = new AliRsnListOutput("PMC", AliRsnListOutput::kHistoDefault);
+      outMonitorPMC->AddValue(axisMomPMC);
+
+      // add outputs to loop
+      mon->Add(outMonitorPMC);
+   }
+
+
    // Momentum Pt
    AliRsnValueDaughter *axisMomPt = new AliRsnValueDaughter("pt", AliRsnValueDaughter::kPt);
    axisMomPt->SetBins(0.0,5.0,0.01);
@@ -278,6 +303,20 @@ void AddMonitorOutput(TObjArray *mon)
    // add outputs to loop
    mon->Add(outMonitorPt);
 
+   if (useMCMon) {
+      // Momentum Pt
+      AliRsnValueDaughter *axisMomPtMC = new AliRsnValueDaughter("ptMC", AliRsnValueDaughter::kPt);
+      axisMomPtMC->SetUseMCInfo(kTRUE);
+      axisMomPtMC->SetBins(0.0,5.0,0.01);
+
+      // output: 2D histogram of TPC signal vs. TPC momentum
+      AliRsnListOutput *outMonitorPtMC = new AliRsnListOutput("PtMC", AliRsnListOutput::kHistoDefault);
+      outMonitorPtMC->AddValue(axisMomPtMC);
+
+      // add outputs to loop
+      mon->Add(outMonitorPtMC);
+   }
+
    // Eta
    AliRsnValueDaughter *axisMomEta = new AliRsnValueDaughter("eta", AliRsnValueDaughter::kEta);
    axisMomEta->SetBins(-1.0,1.0,0.01);
@@ -289,9 +328,22 @@ void AddMonitorOutput(TObjArray *mon)
    // add outputs to loop
    mon->Add(outMonitorEta);
 
+   if (useMCMon) {
+      // Eta
+      AliRsnValueDaughter *axisMomEtaMC = new AliRsnValueDaughter("etaMC", AliRsnValueDaughter::kEta);
+      axisMomEtaMC->SetUseMCInfo(kTRUE);
+      axisMomEtaMC->SetBins(-1.0,1.0,0.01);
+
+      // output: 2D histogram of TPC signal vs. TPC momentum
+      AliRsnListOutput *outMonitorEtaMC = new AliRsnListOutput("EtaMC", AliRsnListOutput::kHistoDefault);
+      outMonitorEtaMC->AddValue(axisMomEtaMC);
+
+      // add outputs to loop
+      mon->Add(outMonitorEtaMC);
+   }
    // kTOFnsigmaK
    AliRsnValueDaughter *axisTPCnsigmaK = new AliRsnValueDaughter("K", AliRsnValueDaughter::kTPCnsigmaK);
-   axisTPCnsigmaK->SetBins(1000,0,100);
+   axisTPCnsigmaK->SetBins(1001,-100,100);
 
    // output: 2D histogram of TPC signal vs. TPC momentum
    AliRsnListOutput *outMonitorTPCnsigmaK = new AliRsnListOutput("TPC_nsigma", AliRsnListOutput::kHistoDefault);
@@ -302,7 +354,7 @@ void AddMonitorOutput(TObjArray *mon)
 
    // kTPCnsigmaPi
    AliRsnValueDaughter *axisTPCnsigmaPi = new AliRsnValueDaughter("pi", AliRsnValueDaughter::kTPCnsigmaPi);
-   axisTPCnsigmaPi->SetBins(1000,0,100);
+   axisTPCnsigmaPi->SetBins(1001,-100,100);
 
    // output: 2D histogram of TPC signal vs. TPC momentum
    AliRsnListOutput *outMonitorTPCnsigmaPi = new AliRsnListOutput("TPC_nsigma", AliRsnListOutput::kHistoDefault);
@@ -313,7 +365,7 @@ void AddMonitorOutput(TObjArray *mon)
 
    // kTPCnsigmaP
    AliRsnValueDaughter *axisTPCnsigmaP = new AliRsnValueDaughter("p", AliRsnValueDaughter::kTPCnsigmaP);
-   axisTPCnsigmaP->SetBins(1000,0,100);
+   axisTPCnsigmaP->SetBins(1001,-100,100);
 
    // output: 2D histogram of TPC signal vs. TPC momentum
    AliRsnListOutput *outMonitorTPCnsigmaP = new AliRsnListOutput("TPC_nsigma", AliRsnListOutput::kHistoDefault);
@@ -323,38 +375,41 @@ void AddMonitorOutput(TObjArray *mon)
    mon->Add(outMonitorTPCnsigmaP);
 
 
-   // kTOFnsigmaK
-   AliRsnValueDaughter *axisTOFnsigmaK = new AliRsnValueDaughter("K", AliRsnValueDaughter::kTOFnsigmaK);
-   axisTOFnsigmaK->SetBins(1000,0,100);
+   if (!opt.Contains("NoTOFSIGMA")) {
 
-   // output: 2D histogram of TPC signal vs. TPC momentum
-   AliRsnListOutput *outMonitorTOFnsigmaK = new AliRsnListOutput("TOF_nsigma", AliRsnListOutput::kHistoDefault);
-   outMonitorTOFnsigmaK->AddValue(axisTOFnsigmaK);
+      // kTOFnsigmaK
+      AliRsnValueDaughter *axisTOFnsigmaK = new AliRsnValueDaughter("K", AliRsnValueDaughter::kTOFnsigmaK);
+      axisTOFnsigmaK->SetBins(1001,-100,100);
 
-   // add outputs to loop
-   mon->Add(outMonitorTOFnsigmaK);
+      // output: 2D histogram of TPC signal vs. TPC momentum
+      AliRsnListOutput *outMonitorTOFnsigmaK = new AliRsnListOutput("TOF_nsigma", AliRsnListOutput::kHistoDefault);
+      outMonitorTOFnsigmaK->AddValue(axisTOFnsigmaK);
 
-   // kTOFnsigmaPi
-   AliRsnValueDaughter *axisTOFnsigmaPi = new AliRsnValueDaughter("pi", AliRsnValueDaughter::kTOFnsigmaPi);
-   axisTOFnsigmaPi->SetBins(1000,0,100);
+      // add outputs to loop
+      mon->Add(outMonitorTOFnsigmaK);
 
-   // output: 2D histogram of TPC signal vs. TPC momentum
-   AliRsnListOutput *outMonitorTOFnsigmaPi = new AliRsnListOutput("TOF_nsigma", AliRsnListOutput::kHistoDefault);
-   outMonitorTOFnsigmaPi->AddValue(axisTOFnsigmaPi);
+      // kTOFnsigmaPi
+      AliRsnValueDaughter *axisTOFnsigmaPi = new AliRsnValueDaughter("pi", AliRsnValueDaughter::kTOFnsigmaPi);
+      axisTOFnsigmaPi->SetBins(1001,-100,100);
 
-   // add outputs to loop
-   mon->Add(outMonitorTOFnsigmaPi);
+      // output: 2D histogram of TPC signal vs. TPC momentum
+      AliRsnListOutput *outMonitorTOFnsigmaPi = new AliRsnListOutput("TOF_nsigma", AliRsnListOutput::kHistoDefault);
+      outMonitorTOFnsigmaPi->AddValue(axisTOFnsigmaPi);
 
-   // kTOFnsigmaP
-   AliRsnValueDaughter *axisTOFnsigmaP = new AliRsnValueDaughter("p", AliRsnValueDaughter::kTOFnsigmaP);
-   axisTOFnsigmaP->SetBins(1000,0,100);
+      // add outputs to loop
+      mon->Add(outMonitorTOFnsigmaPi);
 
-   // output: 2D histogram of TPC signal vs. TPC momentum
-   AliRsnListOutput *outMonitorTOFnsigmaP = new AliRsnListOutput("TOF_nsigma", AliRsnListOutput::kHistoDefault);
-   outMonitorTOFnsigmaP->AddValue(axisTOFnsigmaP);
+      // kTOFnsigmaP
+      AliRsnValueDaughter *axisTOFnsigmaP = new AliRsnValueDaughter("p", AliRsnValueDaughter::kTOFnsigmaP);
+      axisTOFnsigmaP->SetBins(1001,-100,100);
 
-   // add outputs to loop
-   mon->Add(outMonitorTOFnsigmaP);
+      // output: 2D histogram of TPC signal vs. TPC momentum
+      AliRsnListOutput *outMonitorTOFnsigmaP = new AliRsnListOutput("TOF_nsigma", AliRsnListOutput::kHistoDefault);
+      outMonitorTOFnsigmaP->AddValue(axisTOFnsigmaP);
+
+      // add outputs to loop
+      mon->Add(outMonitorTOFnsigmaP);
+   }
 
 
    AliRsnListOutput *outMonitorPTvsMult = new AliRsnListOutput("PTvsMult",AliRsnListOutput::kHistoDefault);
index 9108bc42a94e11747e2687f401af9dabaf942da0..a4dc19dccbf5f37edd97793dc4a0d18a43a264b9 100755 (executable)
@@ -21,10 +21,13 @@ void RsnGridPlugin() {
    if (!gGrid) TGrid::Connect("alien://");
    if (!gGrid) return;
    TGridResult *r = gGrid->Query(Form("%s/RsnTrain/%s",gGrid->GetHomeDirectory(),rsnTrainName.Data()),"*/analysis.root");
-   TString s = r->GetKey(r->GetSize()-1,"lfn");
-   s.ReplaceAll("/analysis.root","");
-   s = gSystem->BaseName(s);
-   Int_t idRsnTrain = s.Atoi()+1;
+   Int_t idRsnTrain = 0;
+   if (r) {
+      TString s = r->GetKey(r->GetSize()-1,"lfn");
+      s.ReplaceAll("/analysis.root","");
+      s = gSystem->BaseName(s);
+      if (!s.IsNull()) idRsnTrain = s.Atoi()+1;
+   }
    rsnTrainName.Append(Form("/%03d",idRsnTrain));
 
    TString rsnTrainWkDir = Form("RsnTrain/%s",rsnTrainName.Data());
@@ -34,7 +37,7 @@ void RsnGridPlugin() {
    plugin->SetGridOutputDir("output"); // In this case will be $HOME/work/output
 
    plugin->SetAPIVersion("V1.1x");
-   
+
    TString rootver = AliAnalysisManager::GetGlobalStr("rsnLegoTrainROOTversion",valid);
    plugin->SetROOTVersion(rootver.Data());
 
@@ -60,7 +63,7 @@ void RsnGridPlugin() {
 
    RsnSetData(plugin,dsConfig,1000);
 
-   plugin->SetSplitMaxInputFileNumber(50);
+   plugin->SetSplitMaxInputFileNumber(25);
 
    //   Fatal("RsnDataSet","No dataset found !!!");
 }
@@ -126,7 +129,7 @@ void RsnSetData(AliAnalysisAlien *plugin,TString dsConf,Int_t maxRunsPerMaster =
 
 }
 
-void GetParameterFromConfig(TString &str,TString token="="){
+void GetParameterFromConfig(TString &str,TString token="=") {
    TObjArray *array = str.Tokenize(token.Data());
    TObjString *strObj = (TObjString *)array->At(1);
    if (strObj) str = strObj->GetString();
index 1f289e68f0fa45acdf45d9815b2e36e99f154d98..670f595752bd175e78e43ec03419f577eb6173dc 100644 (file)
@@ -3,21 +3,22 @@ TList *RsnManager() {
    Int_t isPP           = 1; // in GRID case it will be overwriten
    Int_t useRsnMini     = 1;
 
-   Int_t useMixing      = 1;
+   Int_t useMixing      = 0;
    Int_t numMix         = 10;
 
    Int_t fullOutput     = 1;
    Int_t mcMomentum     = 0;
+   Int_t mcMon          = 0;
 
    Int_t useEventMixPar = 0;
    Int_t useRsnPar      = 0;
-   
-   TString rootver = "v5-30-06";
+
+   TString rootver = "v5-30-06-1";
    TString alirootver = "";
-//   alirootver = "v5-02-17-AN";
-   
+   //   alirootver = "v5-02-17-AN";
+
    TString legoTrainPath = "$ALICE_ROOT/PWGLF/RESONANCES/macros/lego_train";
-//   legoTrainPath = "$HOME/git/PWG2resonances/PWG2/RESONANCES/macros/lego_train";
+//    legoTrainPath = "$HOME/git/AliRsn/PWGLF/RESONANCES/macros/lego_train";
 
 
    TList *listRsn = new TList();
@@ -30,47 +31,78 @@ TList *RsnManager() {
    // Note : for now you have to set gRsnUseMiniPackage = 0 to have mon histograms
    //    listRsn->Add(new TNamed("<Name>:mon","<CutName>:<opt>"));
 
-
-   //    listRsn->Add(new TNamed("Phi","Phi2010"));
-   listRsn->Add(new TNamed("Phi","Phi2010:mon"));
-//   listRsn->Add(new TNamed("Phi","Phi2010:tpconly_sigma1_mon"));
-//   listRsn->Add(new TNamed("Phi","Phi2010:tpconly_sigma2_mon"));
-//   listRsn->Add(new TNamed("Phi","Phi2010:tpconly_sigma3_mon"));
-//   listRsn->Add(new TNamed("Phi","Phi2010:tofonly_sigma1_mon"));
-//   listRsn->Add(new TNamed("Phi","Phi2010:tofonly_sigma2_mon"));
-//   listRsn->Add(new TNamed("Phi","Phi2010:tofonly_sigma3_mon"));
-//   listRsn->Add(new TNamed("Phi","BPID:mon"));
-//   listRsn->Add(new TNamed("Phi","Phi2010:qualityonly_mon"));
-   //
-   //    // in case you have MC
-   //    listRsn->Add(new TNamed("Phi","PDG:mon"));
-   //
-   //    listRsn->Add(new TNamed("KStar","KStar2010:mon"));
-   //    listRsn->Add(new TNamed("KStar","BPID:mon"));
-
-   //    listRsn->Add(new TNamed("KStar","KStar:mon"));
-   //    listRsn->Add(new TNamed("KStar","KStar:TPCTOFpidDefaultKstarPP2010_mon"));
-   //    listRsn->Add(new TNamed("KStar","KStar:FastTPCpid1point5sigma_mon"));
-   //    listRsn->Add(new TNamed("KStar","KStar:FastTPCpid2sigma_mon"));
+   TString commonCutOption="";
+//    commonCutOption="mon_eta";
+
+   listRsn->Add(new TNamed("Phi","Phi2010"));
+//    listRsn->Add(new TNamed("Phi","Phi2010:pdg"));
+//
+//    listRsn->Add(new TNamed("Phi","Phi2010:trackPtMax18"));
+//    listRsn->Add(new TNamed("Phi","Phi2010:trackPtMax18_pdg"));
+//
+//    listRsn->Add(new TNamed("Phi","Phi2010:usePP"));
+//    listRsn->Add(new TNamed("Phi","Phi2010:usePP_pdg"));
+//
+//    listRsn->Add(new TNamed("Phi","Phi2010:usePP_trackPtMax18"));
+//    listRsn->Add(new TNamed("Phi","Phi2010:usePP_trackPtMax18_pdg"));
+//
+// //   listRsn->Add(new TNamed("Phi","Phi2010:tpconly_TPCsigma1"));
+// //   listRsn->Add(new TNamed("Phi","Phi2010:tpconly_TPCsigma2"));
+//    listRsn->Add(new TNamed("Phi","Phi2010:tpconly_TPCsigma3"));
+//    listRsn->Add(new TNamed("Phi","Phi2010:tpconly_TPCsigma3_pdg"));
+// //   listRsn->Add(new TNamed("Phi","Phi2010:tofonly_TOFsigma1"));
+// //   listRsn->Add(new TNamed("Phi","Phi2010:tofonly_TOCsigma2"));
+//    listRsn->Add(new TNamed("Phi","Phi2010:tofonly_TOCsigma3"));
+//    listRsn->Add(new TNamed("Phi","Phi2010:tofonly_TOCsigma3_pdg"));
+//    listRsn->Add(new TNamed("Phi","Phi2010:tofonly_TOCsigma3_trackPtMax18"));
+//    listRsn->Add(new TNamed("Phi","Phi2010:tofonly_TOCsigma3_trackPtMax18_pdg"));
+//
+//
+// //   listRsn->Add(new TNamed("Phi","BPID"));
+//    listRsn->Add(new TNamed("Phi","Phi2010:qualityonly"));
+// //   listRsn->Add(new TNamed("Phi","Phi2010:tpcptMax05"));
+// //   listRsn->Add(new TNamed("Phi","Phi2010:tpcptMax06"));
+// //   listRsn->Add(new TNamed("Phi","Phi2010:tpcptMax07"));
+// //   listRsn->Add(new TNamed("Phi","Phi2010:tpcptMax08"));
+// //   listRsn->Add(new TNamed("Phi","Phi2010:TPCsigma1_tpcptMax06"));
+// //   listRsn->Add(new TNamed("Phi","Phi2010:TPCsigma1_tpcptMax08"));
+//
+//    //
+//    //    // in case you have MC
+//    //   listRsn->Add(new TNamed("Phi","PDG"));
+//    listRsn->Add(new TNamed("Phi","PDG:NoTOFSIGMA"));
+//    //
+//    //    listRsn->Add(new TNamed("KStar","KStar2010:mon"));
+//    //    listRsn->Add(new TNamed("KStar","BPID:mon"));
+//
+//    //    listRsn->Add(new TNamed("KStar","KStar:mon"));
+//    //    listRsn->Add(new TNamed("KStar","KStar:TPCTOFpidDefaultKstarPP2010_mon"));
+//    //    listRsn->Add(new TNamed("KStar","KStar:FastTPCpid1point5sigma_mon"));
+//    //    listRsn->Add(new TNamed("KStar","KStar:FastTPCpid2sigma_mon"));
 
 
    //============= ONLY for GRID ====================
    TString dsConfig;
 
-//   isPP = 0;
-//   dsConfig = "datasets-grid/LHC10h_p2_ESD.txt";
-//   dsConfig = "datasets-grid/LHC10h_p2_AOD049.txt";
-//   dsConfig = "datasets-grid/LHC10h_p2_AOD073.txt";
+   //   isPP = 0;
+   //   dsConfig = "datasets-grid/LHC10h_p2_ESD.txt";
+   //   dsConfig = "datasets-grid/LHC10h_p2_AOD049.txt";
+   //   dsConfig = "datasets-grid/LHC10h_p2_AOD073.txt";
 
-//   dsConfig = "datasets-grid/LHC11a10b_AOD080.txt";
+   //   dsConfig = "datasets-grid/LHC11a10b_AOD080.txt";
 
-//      isPP = 1;
-//      dsConfig = "datasets-grid/LHC10b_p2_ESD.txt";
-//      dsConfig = "datasets-grid/LHC10b_p2_AOD038.txt";
+   //      isPP = 1;
+   //      dsConfig = "datasets-grid/LHC10b_p2_ESD.txt";
+   //      dsConfig = "datasets-grid/LHC10b_p2_AOD038.txt";
 
+   // pp 2.76 TeV data
    isPP = 1;
+   // data
    dsConfig = "datasets-grid/LHC11a_AOD072.txt";
+   // mc
    dsConfig = "datasets-grid/LHC11h5b_AOD079.txt";
+   dsConfig = "datasets-grid/LHC11e3a_AOD074.txt";
+
 
 
    //================================================
@@ -80,7 +112,10 @@ TList *RsnManager() {
    ///////////////////////////////////////////
 
    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
-   if (!mgr) { Printf("Error[RsnManager] mgr is null !!!"); return 0; }
+   if (!mgr) {
+      Printf("Error[RsnManager] mgr is null !!!");
+      return 0;
+   }
 
    AliAnalysisManager::SetGlobalStr("rsnLegoTrainPath",legoTrainPath.Data());
 
@@ -114,6 +149,8 @@ TList *RsnManager() {
    // oputput settings
    AliAnalysisManager::SetGlobalInt("rsnOutputFull",fullOutput);
    AliAnalysisManager::SetGlobalInt("rsnUseMCMomentum",mcMomentum);
+   AliAnalysisManager::SetGlobalInt("rsnUseMCMonitoring",mcMon);
+
 
    // expert options (don't change)
    AliAnalysisManager::SetGlobalInt("rsnMixPrintRefresh",-1);
@@ -125,5 +162,9 @@ TList *RsnManager() {
    AliAnalysisManager::SetGlobalStr("rsnLegoTrainROOTversion",rootver.Data());
    AliAnalysisManager::SetGlobalStr("rsnLegoTrainAliROOTversion",alirootver.Data());
 
+
+   AliAnalysisManager::SetGlobalStr("rsnLegoTrainCommonCutOption",commonCutOption.Data());
+
+
    return listRsn;
 }
index 64bd7ca8d803fc99889eb9d3574803d2132ba36f..e2c926444dd979d408e0dda1295d5c3cdbdcc727 100755 (executable)
@@ -58,6 +58,8 @@ Bool_t RunALICE(TString anSrc = "grid",
    // adds all tasks
    if (!AddAllManagers(listManagers, anSrc, anMode,input,inputMC)) { Printf("Error : AddAllManagers failed !!!"); return kFALSE;}
 
+   gSystem->ListLibraries("ls");
+
    TStopwatch timer;
    timer.Start();
    // runs analysis