#ifndef __CINT__
#include <AliAnalysisManager.h>
#include <AliMultiInputEventHandler.h>
-#include <ANALYSIS/EventMixing/AliMixEventPool.h>
-#include <ANALYSIS/EventMixing/AliMixEventCutObj.h>
-#include <PWG2/RESONANCES/AliRsnAnalysisTask.h>
-#include <PWG2/RESONANCES/AliRsnMiniAnalysisTask.h>
+#include <AliMixEventPool.h>
+#include <AliMixEventCutObj.h>
#endif
void AddMixingHandler ( AliMultiInputEventHandler *multiInputHandler,AliAnalysisTaskSE *task, TString format = "esd", Bool_t useMC = kFALSE,Bool_t isRsnMini=kFALSE,const Int_t mixNum = 10, TString opts = "" ) {
// settings
if (isPP) {
+// taskRsn->UseMultiplicity("TRACKS");
taskRsn->UseMultiplicity("QUALITY");
taskRsn->SetMaxDiffMult(1.0);
} else {
//task->UseBinnedMix();
taskRsn->SetNMix(mixNum);
taskRsn->SetMaxDiffVz(1.0);
-// taskRsn->SetMaxDiffMult(10.0);
- taskRsn->SetMaxDiffAngle(1E20);
+// taskRsn->SetMaxDiffAngle(30.0 * TMath::DegToRad());
+
} else {
if ( !multiInputHandler ) return;
--- /dev/null
+#ifndef __CINT__
+#include <TString.h>
+#endif
+AliAnalysisTaskSE *AddRsnAnalysisTaskTrain(TString addRsnManager="AddRsnToManagerTrain.C",
+ Int_t isESD=0,
+ Int_t isMC=0,
+ Int_t isPP=1,
+ Int_t useRsnMini = 1,
+ Int_t useMixing = 0,
+ Int_t numMix = 10,
+ Int_t fullOutput = 1,
+ AliRsnInputHandler *rsnIH=0,
+ TString postfix="")
+{
+ // create manager
+ AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+ if (!mgr) { Printf("Error [AddRsnAnalysisTask%s] : mgr is null !!!",postfix.Data()); return 0;}
+
+ // initialize task with all available slots, even if not all of them will be used:
+ AliAnalysisTaskSE *task = 0;
+
+ TString lego_path = AliAnalysisManager::GetGlobalStr("rsnLegoTrainPath",valid);
+ TString rsnManagerMacro = "RsnManagerTrain.C";
+ gROOT->LoadMacro(gSystem->EpandPathName(TString::Format("%s/%s",lego_path.Data(),rsnManagerMacro.Data()).Data()));
+ TList *listRsn = RsnManagerTrain(addRsnManager,isESD,isMC,isPP,useRsnMini,useMixing,numMix,fullOutput);
+ if (!listRsn) return 0;
+
+ Bool_t valid;
+ Int_t isRsnMini = AliAnalysisManager::GetGlobalInt("rsnUseMiniPackage",valid);
+ Int_t useMC = AliAnalysisManager::GetGlobalInt("rsnUseMC",valid);
+
+ if (isRsnMini) {
+ postfix.Prepend("Mini");
+ AliRsnMiniAnalysisTask *taskRsnMini = new AliRsnMiniAnalysisTask(Form("Rsn%s",postfix.Data()),useMC);
+ Int_t refreshPrint = AliAnalysisManager::GetGlobalInt("rsnMixPrintRefresh",valid);
+ if (valid) taskRsnMini->SetMixPrintRefresh(refreshPrint);
+ task = (AliAnalysisTaskSE *) taskRsnMini;
+ }
+ else {
+ AliRsnAnalysisTask *taskRsn = new AliRsnAnalysisTask(Form("Rsn%s",postfix.Data()));
+ task = (AliAnalysisTaskSE *) taskRsn;
+ }
+
+ // TODO this is tmp hack
+ if (!rsnIH) rsnIH = new AliRsnInputHandler();
+
+ // gROOT->LoadMacro("RsnConfig.C");
+ if (!RsnConfig(task,useMC,isMixing,rsnIH,listRsn)) {
+ Printf("Error in RsnConfig.C");
+ return 0;
+ }
+
+ // add the task to manager
+ mgr->AddTask(task);
+
+ AliRsnDaughterSelector *sel = 0;
+
+ if (!isRsnMini) {
+ sel = rsnIH->GetSelector();
+ sel->Init();
+ }
+
+ // connect input container according to source choice
+ mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
+
+ // create paths for the output in the common file
+ TString commonPath = AliAnalysisManager::GetCommonFileName();
+
+ // create containers for output
+ AliAnalysisDataContainer *output = mgr->CreateContainer(Form("RsnHist%s", postfix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, commonPath.Data());
+ mgr->ConnectOutput(task, 1, output);
+
+ return task;
+}
AliRsnCutSet *AddRsnCommonEventCuts(AliAnalysisTaskSE *task=0,Bool_t isPP=kTRUE) {
// return 0;
+
+ Bool_t valid;
+ Double_t eventCutVertex = AliAnalysisManager::GetGlobalDbl("rsnEventCutVertex",valid);
+
// primary vertex:
// - 2nd argument --> |Vz| range
// - 3rd argument --> minimum required number of contributors
// - 4th argument --> tells if TPC stand-alone vertexes must be accepted
// we switch on the check for pileup
- AliRsnCutPrimaryVertex *cutVertex = new AliRsnCutPrimaryVertex("cutVertex", 10.0, 0, kFALSE);
+ AliRsnCutPrimaryVertex *cutVertex = new AliRsnCutPrimaryVertex("cutVertex", eventCutVertex, 0, kFALSE);
if (isPP) cutVertex->SetCheckPileUp(kTRUE);
// primary vertex is always used
AliRsnCutSet *cutsPair = 0;
// TODO
// AliRsnCutMiniPair *cutY = new AliRsnCutMiniPair("cutRapidity", AliRsnCutMiniPair::kRapidityRange);
-// // cutY->SetRangeD(-0.5, 0.5);
-// cutY->SetRangeD(-0.9, 0.9);
+// cutY->SetRangeD(-0.5, 0.5);
+// cutY->SetRangeD(-0.9, 0.9);
//
// cutsPair = new AliRsnCutSet("pairCuts", AliRsnTarget::kMother);
// cutsPair->AddCut(cutY);
Bool_t valid = kTRUE;
Int_t isPP = AliAnalysisManager::GetGlobalInt("rsnIsPP",valid);
+ Int_t useCommonQualityCut = AliAnalysisManager::GetGlobalInt("rsnCommonQualityCut",valid);
Bool_t usePPCut = kFALSE;
AliRsnCutSet *cutsK = new AliRsnCutSet(cutname.Data(), AliRsnTarget::kDaughter);
AliRsnCutTrackQuality *qualityCutK = new AliRsnCutTrackQuality("cutQuatityK");
- qualityCutK->SetDefaults2010();
+ if (useCommonQualityCut>=0) {
+ qualityCutK->SetAODTestFilterBit(useCommonQualityCut);
+ } else {
+ qualityCutK->SetDefaults2010();
+ }
cutsK->AddCut(qualityCutK);
if (!scheme.IsNull()) scheme += "&";
scheme += qualityCutK->GetName();
AliRsnCutSet *cutsP = new AliRsnCutSet(cutname.Data(), AliRsnTarget::kDaughter);
AliRsnCutTrackQuality *qualityCutPi = new AliRsnCutTrackQuality("cutQuatityPi");
- qualityCutPi->SetDefaults2010();
+ if (useCommonQualityCut>=0) {
+ qualityCutPi->SetAODTestFilterBit(useCommonQualityCut);
+ } else {
+ qualityCutPi->SetDefaults2010();
+ }
cutsP->AddCut(qualityCutPi);
if (!scheme.IsNull()) scheme += "&";
scheme += qualityCutPi->GetName();
scheme += cutPDGP->GetName();
}
- Printf ("CUT Scheme for PROTON is '%s'",scheme.Data());
+ Printf ("CUT Scheme for PION is '%s'",scheme.Data());
cutsP->SetCutScheme(scheme.Data());
// END PROTON =======================================
Bool_t valid = kTRUE;
Int_t isPP = AliAnalysisManager::GetGlobalInt("rsnIsPP",valid);
+ Int_t useCommonQualityCut = AliAnalysisManager::GetGlobalInt("rsnCommonQualityCut",valid);
Bool_t usePPCut = kFALSE;
if (!opt.IsNull()) cutname += Form("_%s",opt.Data());
AliRsnCutSet *cutsP = new AliRsnCutSet(cutname.Data(), AliRsnTarget::kDaughter);
- AliRsnCutTrackQuality *qualityCutP = new AliRsnCutTrackQuality("cutQuatity{");
- qualityCutP->SetDefaults2010();
+ AliRsnCutTrackQuality *qualityCutP = new AliRsnCutTrackQuality("cutQuatityP");
+ if (useCommonQualityCut>=0) {
+ qualityCutP->SetAODTestFilterBit(useCommonQualityCut);
+ } else {
+ qualityCutP->SetDefaults2010();
+ }
cutsP->AddCut(qualityCutP);
if (!scheme.IsNull()) scheme += "&";
scheme += qualityCutP->GetName();
AliRsnCutSet *cutsK = new AliRsnCutSet(cutname.Data(), AliRsnTarget::kDaughter);
AliRsnCutTrackQuality *qualityCutK = new AliRsnCutTrackQuality("cutQuatityK");
- qualityCutK->SetDefaults2010();
+ if (useCommonQualityCut>=0) {
+ qualityCutK->SetAODTestFilterBit(useCommonQualityCut);
+ } else {
+ qualityCutK->SetDefaults2010();
+ }
cutsK->AddCut(qualityCutK);
if (!scheme.IsNull()) scheme += "&";
scheme += qualityCutK->GetName();
if (opt.Contains("KTOFnsig20")) nSigmaTOF = 2.0;
if (opt.Contains("KTOFnsig25")) nSigmaTOF = 2.5;
if (opt.Contains("KTOFnsig30")) nSigmaTOF = 3.0;
+
+ if (opt.Contains("KTOFnsig1000")) nSigmaTOF = 100.0;
if (opt.Contains("trackPt")) {
useTrackPtCut = kTRUE;
Bool_t valid;
Int_t isFullOutput = AliAnalysisManager::GetGlobalInt("rsnOutputFull",valid);
Int_t isPP = AliAnalysisManager::GetGlobalInt("rsnIsPP",valid);
-
+
// axes
AliRsnValuePair *axisIM = new AliRsnValuePair("IM", AliRsnValuePair::kInvMass);
axisIM ->SetBins(900, 0.6, 1.5);
Int_t isFullOutput = AliAnalysisManager::GetGlobalInt("rsnOutputFull",valid);
Int_t useMixing = AliAnalysisManager::GetGlobalInt("rsnUseMixing",valid);
Int_t isPP = AliAnalysisManager::GetGlobalInt("rsnIsPP",valid);
-
+
AliRsnMiniAnalysisTask *taskRsnMini = (AliRsnMiniAnalysisTask *)task;
+
+ if (isPP) taskRsnMini->UseMultiplicity("QUALITY");
+ else {
+ taskRsnMini->UseCentrality("V0M");
+ Int_t multID = taskRsnMini->CreateValue(AliRsnMiniValue::kMult, kFALSE);
+ AliRsnMiniOutput *outMult = taskRsnMini->CreateOutput("eventMult", "HIST", "EVENT");
+ outMult->AddAxis(multID, 100, 0.0, 100.0);
+ Int_t paID = taskRsnMini->CreateValue(AliRsnMiniValue::kPlaneAngle, kFALSE);
+ AliRsnMiniOutput *outPa = taskRsnMini->CreateOutput("planeAngle", "HIST", "EVENT");
+ outPa->AddAxis(paID, 100, 0, TMath::Pi());
+ }
+
/* invariant mass */ Int_t imID = taskRsnMini->CreateValue(AliRsnMiniValue::kInvMass, kFALSE);
/* IM resolution */ Int_t resID = taskRsnMini->CreateValue(AliRsnMiniValue::kInvMassRes, kTRUE);
/* transv. momentum */ Int_t ptID = taskRsnMini->CreateValue(AliRsnMiniValue::kPt, kFALSE);
/* centrality */ Int_t centID = taskRsnMini->CreateValue(AliRsnMiniValue::kMult, kFALSE);
/* eta */ Int_t etaID = taskRsnMini->CreateValue(AliRsnMiniValue::kEta, kFALSE);
+ /* rapidity */ Int_t yID = taskRsnMini->CreateValue(AliRsnMiniValue::kY, kFALSE);
+
+ Bool_t useRapidity = kTRUE;
+ Int_t nIM = 90; Double_t minIM = 0.6, maxIM = 1.5;
+ Int_t nRes = 200; Double_t minRes = -0.02, maxRes = 0.02;
+ Int_t nEta = 400; Double_t minEta = -0.5, maxEta = 0.5;
+ Int_t nY = 16; Double_t minY = -0.8, maxY = 0.8;
+ Int_t nPt = 120; Double_t minPt = 0.0, maxPt = 12.0;
+ Int_t nCent = 100; Double_t minCent = 0.0, maxCent = 100.0;
//
// -- Create all needed outputs -----------------------------------------------------------------
//
// [1] = mixing
// [2] = like ++
// [3] = like --
- Bool_t use [10] = { 1 , 1 , useMixing , useMixing , 1 , 1 , isMC , isMC , isMC , isMC };
- Bool_t useIM [10] = { 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 };
- TString name [10] = {"Unlike1", "Unlike2", "Mixing1", "Mixing2", "LikePP", "LikeMM", "Trues1", "Trues2", "Res1" , "Res2" };
- TString comp [10] = {"PAIR" , "PAIR" , "MIX" , "MIX" , "PAIR" , "PAIR" , "TRUE" , "TRUE" , "TRUE" , "TRUE" };
- Char_t charge1 [10] = {'+' , '-' , '+' , '-' , '+' , '-' , '+' , '-' , '+' , '-' };
- Char_t charge2 [10] = {'-' , '+' , '-' , '+' , '+' , '-' , '-' , '+' , '-' , '+' };
- Int_t cutID1 [10] = { iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK };
- Int_t cutID2 [10] = { iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi };
-
- for (Int_t i = 0; i < 10; i++) {
+// const Int_t num = 12;
+ Bool_t use [12] = { 1 , 1 , useMixing, useMixing, 1 , 1 , isMC , isMC , isMC , isMC , isMC , isMC };
+ Bool_t useIM [12] = { 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 1 };
+ TString name [12] = {"Unlike1", "Unlike2", "Mixing1", "Mixing2", "LikePP", "LikeMM", "Trues1", "Trues2", "Res1" , "Res2" , "Mother1", "Mother2" };
+ TString comp [12] = {"PAIR" , "PAIR" , "MIX" , "MIX" , "PAIR" , "PAIR" , "TRUE" , "TRUE" , "TRUE" , "TRUE" , "MOTHER" , "MOTHER" };
+ Char_t charge1 [12] = {'+' , '-' , '+' , '-' , '+' , '-' , '+' , '-' , '+' , '-' , '+' , '-' };
+ Char_t charge2 [12] = {'-' , '+' , '-' , '+' , '+' , '-' , '-' , '+' , '-' , '+' , '-' , '+' };
+ Int_t cutID1 [12] = { iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK };
+ Int_t cutID2 [12] = { iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi };
+
+ for (Int_t i = 0; i < 12; i++) {
if (!use[i]) continue;
// create output
AliRsnMiniOutput *out = taskRsnMini->CreateOutput(Form("%s_%s", suffix.Data(), name[i].Data()), outputType.Data(), comp[i].Data());
if (cutsPair) out->SetPairCuts(cutsPair);
// axis X: invmass (or resolution)
if (useIM[i])
- out->AddAxis(imID, 90, 0.6, 1.5);
+ out->AddAxis(imID, nIM, minIM, maxIM);
else
- out->AddAxis(resID, 200, -0.02, 0.02);
+ out->AddAxis(resID, nRes, minRes, maxRes);
+
+ if (isFullOutput) {
+ // axis Y: transverse momentum
+ out->AddAxis(ptID, nPt, minPt, maxPt);
+ if (useRapidity) out->AddAxis(yID, nY, minY, maxY);
+ else out->AddAxis(etaID, nEta, minEta, maxEta);
+ // axis Z: centrality
+ if (!isPP) out->AddAxis(centID, nCent, minCent, maxCent);
+ }
+ }
+
+ // -- Create output for MC generated ------------------------------------------------------------
+ //
+ if (isMC) {
+ // create ouput
+ AliRsnMiniOutput *outMC = taskRsnMini->CreateOutput(Form("kstar_MCGen1%s", suffix.Data()), outputType.Data(), "MOTHER");
+ // selection settings
+ outMC->SetDaughter(0, AliRsnDaughter::kPion);
+ outMC->SetDaughter(1, AliRsnDaughter::kKaon);
+ outMC->SetMotherPDG(313);
+ outMC->SetMotherMass(massMother);
+ // pair cuts
+ if (cutsPair) outMC->SetPairCuts(cutsPair);
+ // axis X: invmass
+ outMC->AddAxis(imID, nIM, minIM, maxIM);
+ if (isFullOutput) {
+ // axis Y: transverse momentum
+ outMC->AddAxis(ptID, nPt, minPt, maxPt);
+ if (useRapidity) outMC->AddAxis(yID, nY, minY, maxY);
+ else outMC->AddAxis(etaID, nEta, minEta, maxEta);
+ // axis Z: centrality
+ if (!isPP) outMC->AddAxis(centID, nCent, minCent, maxCent);
+ }
+ }
+
+
+
+ if (isMC) {
+ // create ouput
+ AliRsnMiniOutput *outMC1 = taskRsnMini->CreateOutput(Form("phi_MCGen2%s", suffix.Data()), outputType.Data(), "MOTHER");
+ // selection settings
+ outMC1->SetDaughter(0, AliRsnDaughter::kKaon);
+ outMC1->SetDaughter(1, AliRsnDaughter::kPion);
+ outMC1->SetMotherPDG(-313);
+ outMC1->SetMotherMass(massMother);
+ // pair cuts
+ if (cutsPair) outMC1->SetPairCuts(cutsPair);
+ // axis X: invmass
+ outMC1->AddAxis(imID, nIM, minIM, maxIM);
if (isFullOutput) {
// axis Y: transverse momentum
- out->AddAxis(ptID, 100, 0.0, 10.0);
- out->AddAxis(etaID, 400, -0.5, 0.5);
+ outMC1->AddAxis(ptID, nPt, minPt, maxPt);
+ if (useRapidity) outMC1->AddAxis(yID, nY, minY, maxY);
+ else outMC1->AddAxis(etaID, nEta, minEta, maxEta);
// axis Z: centrality
- if (!isPP) out->AddAxis(centID, 100, 0.0, 100.0);
+ if (!isPP) outMC1->AddAxis(centID, nCent, minCent, maxCent);
}
}
+
}
+
// [1] = mixing
// [2] = like ++
// [3] = like --
- Bool_t use [10] = { 1 , 1 , useMixing , useMixing , 1 , 1 , isMC , isMC , isMC , isMC };
- Bool_t useIM [10] = { 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 };
- TString name [10] = {"Unlike1", "Unlike2", "Mixing1", "Mixing2", "LikePP", "LikeMM", "Trues1", "Trues2", "Res1" , "Res2" };
- TString comp [10] = {"PAIR" , "PAIR" , "MIX" , "MIX" , "PAIR" , "PAIR" , "TRUE" , "TRUE" , "TRUE" , "TRUE" };
- Char_t charge1 [10] = {'+' , '-' , '+' , '-' , '+' , '-' , '+' , '-' , '+' , '-' };
- Char_t charge2 [10] = {'-' , '+' , '-' , '+' , '+' , '-' , '-' , '+' , '-' , '+' };
- Int_t cutID1 [10] = { iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK };
- Int_t cutID2 [10] = { iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi };
+ Bool_t use [12] = { 1 , 1 , useMixing , useMixing , 1 , 1 , isMC , isMC , isMC , isMC , isMC , isMC };
+ Bool_t useIM [12] = { 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 1 };
+ TString name [12] = {"Unlike1", "Unlike2", "Mixing1", "Mixing2", "LikePP", "LikeMM", "Trues1", "Trues2", "Res1" , "Res2" ,"Mother1", "Mother2"};
+ TString comp [12] = {"PAIR" , "PAIR" , "MIX" , "MIX" , "PAIR" , "PAIR" , "TRUE" , "TRUE" , "TRUE" , "TRUE" , "MOTHER", "MOTHER"};
+ Char_t charge1 [12] = {'+' , '-' , '+' , '-' , '+' , '-' , '+' , '-' , '+' , '-' , '+' , '-' };
+ Char_t charge2 [12] = {'-' , '+' , '-' , '+' , '+' , '-' , '-' , '+' , '-' , '+' , '-' , '+' };
+ Int_t cutID1 [12] = { iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK , iCutK };
+ Int_t cutID2 [12] = { iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi , iCutPi };
- for (Int_t i = 0; i < 10; i++) {
+ for (Int_t i = 0; i < 12; i++) {
if (!use[i]) continue;
// create output
AliRsnMiniOutput *out = taskRsnMini->CreateOutput(Form("%s_%s", suffix.Data(), name[i].Data()), outputType.Data(), comp[i].Data());
AliRsnMiniAnalysisTask *taskRsnMini = (AliRsnMiniAnalysisTask *)task;
if (isPP) taskRsnMini->UseMultiplicity("QUALITY");
- else taskRsnMini->UseCentrality("V0M");
-
+ else {
+ taskRsnMini->UseCentrality("V0M");
+ Int_t multID = taskRsnMini->CreateValue(AliRsnMiniValue::kMult, kFALSE);
+ AliRsnMiniOutput *outMult = taskRsnMini->CreateOutput("eventMult", "HIST", "EVENT");
+ outMult->AddAxis(multID, 100, 0.0, 100.0);
+ Int_t paID = taskRsnMini->CreateValue(AliRsnMiniValue::kPlaneAngle, kFALSE);
+ AliRsnMiniOutput *outPa = taskRsnMini->CreateOutput("planeAngle", "HIST", "EVENT");
+ outPa->AddAxis(paID, 100, 0, TMath::Pi());
+ }
+
/* invariant mass */ Int_t imID = taskRsnMini->CreateValue(AliRsnMiniValue::kInvMass, kFALSE);
/* IM resolution */ Int_t resID = taskRsnMini->CreateValue(AliRsnMiniValue::kInvMassDiff, kTRUE);
/* transv. momentum */ Int_t ptID = taskRsnMini->CreateValue(AliRsnMiniValue::kPt, kFALSE);
/* centrality */ Int_t centID = taskRsnMini->CreateValue(AliRsnMiniValue::kMult, kFALSE);
/* eta */ Int_t etaID = taskRsnMini->CreateValue(AliRsnMiniValue::kEta, kFALSE);
+ /* rapidity */ Int_t yID = taskRsnMini->CreateValue(AliRsnMiniValue::kY, kFALSE);
+ Bool_t useRapidity = kTRUE;
// use an array for more compact writing, which are different on mixing and charges
// [0] = unlike
Int_t nIM = 300; Double_t minIM = 0.9, maxIM = 1.2;
// Int_t nEta = 400; Double_t minEta = -2.0, maxEta = 2.0;
Int_t nEta = 400; Double_t minEta = -0.5, maxEta = 0.5;
+ Int_t nY = 10; Double_t minY = -0.5, maxY = 0.5;
// 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 = 20; Double_t minCent = 0.0, maxCent = 100.0;
+ Int_t nCent = 100; Double_t minCent = 0.0, maxCent = 100.0;
Int_t nRes = 200; Double_t maxRes = 0.01;
// retrieve mass from PDG database
// axis Y: transverse momentum
out->AddAxis(ptID, nPt, minPt, maxPt);
- out->AddAxis(etaID, nEta, minEta, maxEta);
+ if (useRapidity) out->AddAxis(yID, nY, minY, maxY);
+ else out->AddAxis(etaID, nEta, minEta, maxEta);
// axis Z: centrality
if (!isPP) out->AddAxis(centID, nCent, minCent, maxCent);
}
if (isFullOutput) {
// axis Y: transverse momentum
outRes->AddAxis(ptID, nPt, minPt, maxPt);
- outRes->AddAxis(etaID, nEta, minEta, maxEta);
+ if (useRapidity) outRes->AddAxis(yID, nY, minY, maxY);
+ else outRes->AddAxis(etaID, nEta, minEta, maxEta);
// axis Z: centrality
if (!isPP) outRes->AddAxis(centID, nCent, minCent, maxCent);
}
if (isFullOutput) {
// axis Y: transverse momentum
outMC->AddAxis(ptID, nPt, minPt, maxPt);
- outMC->AddAxis(etaID, nEta, minEta, maxEta);
+ if (useRapidity) outMC->AddAxis(yID, nY, minY, maxY);
+ else outMC->AddAxis(etaID, nEta, minEta, maxEta);
// axis Z: centrality
if (!isPP) outMC->AddAxis(centID, nCent, minCent, maxCent);
}
}
+
+
+
// Note : for now you have to set gRsnUseMiniPackage = 0 to have mon histograms
// listRsn->Add(new TNamed("<Name>:mon","<CutName>:<opt>"));
- // defautl PID - NSigma -> TPC=3 and TOF=3
+ // default PID - NSigma -> TPC=3 and TOF=3
listRsn->Add(new TNamed("Lambda","LambdaNsigma"));
+ listRsn->Add(new TNamed("Lambda","LambdaNsigma:qualityonly"));
+ listRsn->Add(new TNamed("Lambda","LambdaNsigma:qualityonly_pdg"));
+
// // quality only
// listRsn->Add(new TNamed("Lambda","LambdaNsigma:qualityonly"));
// listRsn->Add(new TNamed("<Name>:mon","<CutName>:<opt>"));
// default NSigma -> TPC=3 and TOF=3
- listRsn->Add(new TNamed("Phi","PhiNsigma"));
+// listRsn->Add(new TNamed("Phi","PhiNsigma"));
// // qualityonly
// listRsn->Add(new TNamed("Phi","PhiNsigma:qualityonly"));
//
// // TPC only (Nsigma=1.5)
// listRsn->Add(new TNamed("Phi","PhiNsigma:KTPCnsig15"));
-//
+// listRsn->Add(new TNamed("Phi","PhiNsigma:KTPCnsig15"));
+// listRsn->Add(new TNamed("Phi","PhiNsigma:KTPCnsig20"));
+ listRsn->Add(new TNamed("Phi","PhiNsigma:KTPCnsig25_eta"));
// // TOF only (NSigma=2.0)
+// listRsn->Add(new TNamed("Phi","PhiNsigma:KTOFnsig10"));
+// listRsn->Add(new TNamed("Phi","PhiNsigma:KTOFnsig15"));
// listRsn->Add(new TNamed("Phi","PhiNsigma:KTOFnsig20"));
+// listRsn->Add(new TNamed("Phi","PhiNsigma:KTOFnsig25"));
+// listRsn->Add(new TNamed("Phi","PhiNsigma:KTOFnsig30"));
return kTRUE;
Bool_t valid = kTRUE;
TString dsConfig = AliAnalysisManager::GetGlobalStr("rsnTrainDSConfig",valid);
+ Int_t globalTrainID = AliAnalysisManager::GetGlobalInt("rsnGlobalTrainID",valid);
+
+ Int_t numRuns = AliAnalysisManager::GetGlobalInt("rsnGridNumRuns",valid);
+ Int_t numRunsSkip = AliAnalysisManager::GetGlobalInt("rsnGridNumRunsSkip",valid);
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
- if (!mgr) { Printf("Error[RsnGridPlugin] mgr is null !!!"); return; }
+ if (!mgr) {
+ Printf("Error[RsnGridPlugin] mgr is null !!!");
+ return;
+ }
AliAnalysisAlien *plugin = (AliAnalysisAlien *) mgr->GetGridHandler();
- if (!plugin) { Printf("Error[RsnGridPlugin] : plugin is null !!!"); return; }
+ if (!plugin) {
+ Printf("Error[RsnGridPlugin] : plugin is null !!!");
+ return;
+ }
// getting latest train id
TString rsnTrainName = gSystem->BaseName(dsConfig.Data());
rsnTrainName.ReplaceAll(".txt","");
+ rsnTrainName.Append(TString::Format("/%03d/%d_%d",globalTrainID,numRunsSkip,numRuns).Data());
if (!gGrid) TGrid::Connect("alien://");
if (!gGrid) return;
- TGridResult *r = gGrid->Query(Form("%s/RsnTrain/%s",gGrid->GetHomeDirectory(),rsnTrainName.Data()),"*/analysis.root");
+ TGridResult *r = gGrid->Query(TString::Format("%s/RsnTrain/%s",gGrid->GetHomeDirectory(),rsnTrainName.Data()).Data(),"*/analysis.root");
Int_t idRsnTrain = 0;
if (r) {
TString s = r->GetKey(r->GetSize()-1,"lfn");
}
rsnTrainName.Append(Form("/%03d",idRsnTrain));
- TString rsnTrainWkDir = Form("RsnTrain/%s",rsnTrainName.Data());
- Info("RsnGridPlugin()",Form("RSN Train directory : %s%s",gGrid->GetHomeDirectory(),rsnTrainWkDir.Data()));
+ TString rsnTrainWkDir = TString::Format("RsnTrain/%s",rsnTrainName.Data()).Data();
+ Info("RsnGridPlugin()",TString::Format("RSN Train directory : %s%s",gGrid->GetHomeDirectory(),rsnTrainWkDir.Data()).Data());
plugin->SetGridWorkingDir(rsnTrainWkDir.Data());
plugin->SetGridOutputDir("output"); // In this case will be $HOME/work/output
plugin->SetOverwriteMode(kFALSE);
// plugin->SetKeepLogs(kTRUE);
- RsnSetData(plugin,dsConfig,1000);
+ RsnSetData(plugin,dsConfig,numRuns,numRunsSkip,1000);
plugin->SetSplitMaxInputFileNumber(25);
// Fatal("RsnDataSet","No dataset found !!!");
}
-void RsnSetData(AliAnalysisAlien *plugin,TString dsConf,Int_t maxRunsPerMaster = 1000) {
+void RsnSetData(AliAnalysisAlien *plugin,TString dsConf,Int_t numRuns = 1000,Int_t numRunsSkip=0,Int_t maxRunsPerMaster = 1000) {
Bool_t dsFound = kTRUE;
Int_t nRunsPerMaster = 0;
in >> line;
}
if (isRun) {
- // Printf("Adding RUN : %s",line.Data());
- plugin->AddRunNumber(line.Data());
- nRunsPerMaster++;
+ if (numRunsSkip>0) {
+ numRunsSkip--;
+ continue;
+ } else {
+ if (nRunsPerMaster < numRuns ) {
+ Printf("Adding RUN : %s",line.Data());
+ plugin->AddRunNumber(line.Data());
+ nRunsPerMaster++;
+ } else {
+ break;
+ }
+
+ }
}
}
} else {
if (strObj) str = strObj->GetString();
else str = "";
}
+
Int_t isESD = 0;
- Int_t isPP = 1;
+ Int_t isPP = 0;
Int_t useRsnMini = 1;
- Int_t useMixing = 0;
- Int_t numMix = 10;
+ Int_t useMixing = 1;
+ Int_t numMix = 5;
Int_t fullOutput = 1;
Int_t mcMomentum = 0;
Int_t mcMon = 0;
- Int_t usePhysSel = 0;
+ Int_t usePhysSel = 1;
Int_t useCentralityTask = 0;
+ Int_t useEventPlaneTask = 0;
+
+ Double_t eventCutVertex = 10.0;
+
+ // useCommonQualityCut=-1 -> Defaultcuts for 2010
+ Int_t useCommonQualityCut = -1;
+ useCommonQualityCut = 5;
Int_t useEventMixPar = 0;
Int_t useRsnPar = 0;
Int_t useRsnParDev = -1;
- TString rootver = "v5-32-01";
+ TString rootver = "v5-33-02b";
TString alirootver = "";
// alirootver = "v5-03-07-AN";
//============= 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";
-
- // dsConfig = "datasets-grid/LHC11a10b_AOD080.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";
-
-
+ TString dsConfig = "datasets-grid/LHC11e3a_AOD074.txt";
+ Int_t globalTrainID=0;
+ Int_t numRuns = 1000;
+ Int_t numRunsSkip = 0;
//================================================
// common options
AliAnalysisManager::SetGlobalInt("rsnUsePhysSel",usePhysSel);
AliAnalysisManager::SetGlobalInt("rsnUseCentralityTask",useCentralityTask);
+ AliAnalysisManager::SetGlobalInt("rsnUseEventPlaneTask",useEventPlaneTask);
+
AliAnalysisManager::SetGlobalInt("rsnUsePIDResponse",1);
+
+ AliAnalysisManager::SetGlobalInt("rsnCommonQualityCut",useCommonQualityCut);
+
// rsn options
AliAnalysisManager::SetGlobalInt("rsnUseMixing",useMixing);
AliAnalysisManager::SetGlobalInt("rsnOutputFull",fullOutput);
AliAnalysisManager::SetGlobalInt("rsnUseMCMomentum",mcMomentum);
AliAnalysisManager::SetGlobalInt("rsnUseMCMonitoring",mcMon);
-
+ AliAnalysisManager::SetGlobalDbl("rsnEventCutVertex",eventCutVertex);
// expert options (don't change)
AliAnalysisManager::SetGlobalInt("rsnMixPrintRefresh",-1);
// RSN train settings for GRID
AliAnalysisManager::SetGlobalStr("rsnTrainDSConfig",dsConfig.Data());
+ AliAnalysisManager::SetGlobalInt("rsnGlobalTrainID",globalTrainID);
+ AliAnalysisManager::SetGlobalInt("rsnGridNumRuns",numRuns);
+ AliAnalysisManager::SetGlobalInt("rsnGridNumRunsSkip",numRunsSkip);
// root and aliroot version
AliAnalysisManager::SetGlobalStr("rsnLegoTrainROOTversion",rootver.Data());
if (lego_path.IsNull()) {
Bool_t valid;
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());
--- /dev/null
+TList *RsnManagerTrain(TString addRsnManager="AddRsnToManagerTrain.C",
+ Int_t isESD=0,
+ Int_t isMC=0,
+ Int_t isPP=1,
+ Int_t useRsnMini = 1,
+ Int_t useMixing = 0,
+ Int_t numMix = 10,
+ Int_t fullOutput = 1)
+{
+
+ // sets Rsn Lego train path
+ TString legoTrainPath = "$ALICE_ROOT/PWGLF/RESONANCES/macros/lego_train";
+
+ // creates list
+ TList *listRsn = new TList();
+
+ TString commonCutOption="";
+ commonCutOption = "mon";
+
+ Printf("Adding RsnManger : %s",addRsnManager.Data());
+ AddResonanceToRsnManager(listRsn,addRsnManager.Data(),legoTrainPath.Data());
+
+ AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
+ if (!mgr) {
+ Printf("Error[RsnManager] mgr is null !!!");
+ return 0;
+ }
+
+ Bool_t valid;
+ AliAnalysisManager::GetGlobalStr("rsnLegoTrainPath",valid);
+ if (valid) {
+ return list;
+ }
+
+ Printf("Setting up RSN variables ...");
+ AliAnalysisManager::SetGlobalStr("rsnLegoTrainPath",legoTrainPath.Data());
+ AliAnalysisManager::SetGlobalInt("rsnIsPP",isPP);
+ AliAnalysisManager::SetGlobalInt("rsnUseMC",isMC);
+ AliAnalysisManager::SetGlobalInt("rsnUseMiniPackage",useRsnMini);
+
+ // mixing setting
+ AliAnalysisManager::SetGlobalInt("rsnUseMixing",useMixing);
+ AliAnalysisManager::SetGlobalInt("rsnNumMix",numMix);
+
+ // oputput settings
+ AliAnalysisManager::SetGlobalInt("rsnOutputFull",fullOutput);
+
+ // expert options (don't change)
+ AliAnalysisManager::SetGlobalInt("rsnMixPrintRefresh",-1);
+
+ AliAnalysisManager::SetGlobalStr("rsnLegoTrainCommonCutOption",commonCutOption.Data());
+
+ return listRsn;
+}
+
+Bool_t AddResonanceToRsnManager(TList *listRsn,TString rsnAddMacro="AddRsnToManagerPhi.C",TString path="") {
+ if (!listRsn) return kFALSE;
+
+ RsnManagerLoadMacro(rsnAddMacro,path);
+ rsnAddMacro.ReplaceAll(".C","");
+ gROOT->ProcessLine(TString::Format("%s((TList*)%p)",rsnAddMacro.Data(),listRsn).Data());
+
+ return kTRUE;
+}
+
+Bool_t RsnManagerLoadMacro(TString macro,TString path="") {
+
+ TString lego_path=path;
+
+ if (lego_path.IsNull()) {
+ Bool_t valid;
+ lego_path = AliAnalysisManager::GetGlobalStr("rsnLegoTrainPath",valid);
+ if (!valid) lego_path = "$ALICE_ROOT/PWG2/RESONANCES/macros/lego_train";
+ }
+ if (!gSystem->AccessPathName(macro.Data())) {
+ gROOT->LoadMacro(macro.Data());
+ Printf("Macro loaded from %s/%s ...",gSystem->pwd(),macro.Data());
+ return kTRUE;
+ }
+
+ if (!gSystem->AccessPathName(gSystem->ExpandPathName(Form("%s/%s",lego_path.Data(),macro.Data())))) {
+ gROOT->LoadMacro(gSystem->ExpandPathName(Form("%s/%s",lego_path.Data(),macro.Data())));
+ Printf("Macro loaded from %s ...",gSystem->ExpandPathName(Form("%s/%s",lego_path.Data(),macro.Data())));
+ return kTRUE;
+ }
+
+ Printf("Error loading %s",macro.Data());
+
+ return kFALSE;
+}
+
--- /dev/null
+BASE=/alice/data/2010/LHC10b
+PREFIX=000
+DATA_PATTERN=*ESDs/pass2/AOD073/*AliAOD.root
+RUNS
+117223
+117222
+117221
+117220
+117121
+117120
+117119
+117118
+117117
+117116
+117113
+117112
+117110
+117109
+117100
+117099
+117098
+117092
+117086
+117082
+117078
+117077
+117065
+117064
+117063
+117061
+117060
+117059
+117054
+117053
+117052
+117051
+117050
+117049
+117048
+117046
+117045
+117042
+117041
+117039
+117035
+117034
+116684
+116682
+116681
+116645
+116644
+116643
+116642
+116640
+116611
+116610
+116609
+116574
+116572
+116571
+116562
+116561
+116559
+116432
+116431
+116429
+116403
+116402
+116401
+116372
+116360
+116358
+116288
+116287
+116204
+116203
+116198
+116197
+116134
+116130
+116123
+116118
+116112
+116111
+116102
+116081
+116079
+115892
+115890
+115889
+115888
+115887
+115882
+115881
+115880
+115521
+115516
+115514
+115414
+115406
+115401
+115393
+115345
+115338
+115335
+115328
+115327
+115325
+115322
+115318
+115315
+115312
+115310
+115237
+115193
+115186
+115173
+114931
+114930
+114924
+114920
+114919
+114918
+114916
+114798
+114786
+114785
+114783
+114778
+114757
+114753
+114750
+114747
+114746
+114745
+114744
+114743
+114740
+114737
--- /dev/null
+BASE=/alice/data/2010/LHC10h
+PREFIX=000
+DATA_PATTERN=*ESDs/pass2/AOD049/*AliAOD.root
+RUNS
+139510
+139507
+139505
+139503
+139465
+139438
+139437
+139360
+139329
+139328
+139314
+139310
+139309
+139173
+139107
+139105
+139038
+139037
+139036
+139029
+139028
+138872
+138871
+138870
+138837
+138732
+138730
+138666
+138662
+138653
+138652
+138638
+138624
+138621
+138583
+138582
+138579
+138578
+138534
+138469
+138442
+138439
+138438
+138396
+138364
+138275
+138225
+138201
+138197
+138192
+138190
+137848
+137844
+137752
+137751
+137724
+137722
+137718
+137704
+137693
+137692
+137691
+137686
+137685
+137639
+137638
+137608
+137595
+137549
+137546
+137544
+137541
+137539
+137531
+137530
+137443
+137441
+137440
+137439
+137434
+137432
+137431
+137430
+137366
+137243
+137236
+137235
+137232
+137231
+137230
+137162
+137161
+137135
--- /dev/null
+BASE=/alice/data/2010/LHC10h
+PREFIX=000
+DATA_PATTERN=*ESDs/pass2/AOD073/*AliAOD.root
+RUNS
+137124
+137125
+137132
+137133
+137135
+137136
+137137
+137161
+137162
+137163
+137165
+137230
+137231
+137232
+137235
+137236
+137243
+137365
+137366
+137370
+137430
+137431
+137432
+137434
+137439
+137440
+137441
+137443
+137530
+137531
+137546
+137638
+137639
+137685
+137689
+137693
+137718
+137724
+137843
+137847
+137848
+138150
+138154
+138190
+138438
+138469
+138533
+138582
+138637
+138652
+138730
+138731
+138732
+138742
+138826
+138828
+138830
+138870
+138871
+138872
+138977
+138980
+139028
+139029
+139030
+139031
+139034
+139036
+139105
+139308
+139309
+139310
+139311
+139316
+139360
+139438
+139439
+139440
+139470
+139503
+139504
+139505
+139510
+139511
+139513
+139514
--- /dev/null
+BASE=/alice/sim/LHC11a10a_bis
+PREFIX=
+DATA_PATTERN=*/AOD090/*AliAOD.root
+RUNS
+139510
+139507
+139505
+139503
+139465
+139438
+139437
+139360
+139329
+139328
+139314
+139310
+139309
+139173
+139107
+139105
+139038
+139037
+139036
+139029
+139028
+138872
+138871
+138870
+138837
+138732
+138730
+138666
+138662
+138653
+138652
+138638
+138624
+138621
+138583
+138582
+138579
+138578
+138534
+138469
+138442
+138439
+138438
+138396
+138364
+138275
+138225
+138201
+138197
+138192
+138190
+137848
+137844
+137752
+137751
+137724
+137722
+137718
+137704
+137693
+137692
+137691
+137686
+137685
+137639
+137638
+137608
+137595
+137549
+137546
+137544
+137541
+137539
+137531
+137530
+137443
+137441
+137440
+137439
+137434
+137432
+137431
+137430
+137366
+137243
+137236
+137235
+137232
+137231
+137230
+137162
+137161
+137135
--- /dev/null
+BASE=/alice/sim/LHC11a10b_bis
+PREFIX=
+DATA_PATTERN=AOD080/*AliAOD.root
+RUNS
+137124
+137125
+137132
+137133
+137135
+137136
+137137
+137161
+137163
+137165
+137230
+137231
+137232
+137235
+137236
+137243
+137365
+137366
+137370
+137430
+137431
+137432
+137434
+137439
+137440
+137441
+137443
+137530
+137531
+137539
+137541
+137544
+137546
+137549
+137595
+137608
+137609
+137638
+137639
+137685
+137686
+137689
+137691
+137692
+137693
+137704
+137718
+137722
+137724
+137748
+137751
+137752
+137843
+137844
+137847
+137848
+138125
+138150
+138151
+138153
+138154
+138190
+138192
+138197
+138200
+138201
+138225
+138275
+138359
+138364
+138396
+138469
+138533
+138534
+138579
+138582
+138583
+138620
+138621
+138624
+138637
+138638
+138653
+138662
+138666
+138731
+138732
+138736
+138737
+138740
+138795
+138796
+138826
+138828
+138830
+138836
+138837
+138870
+138871
+138872
+139024
+139025
+139028
+139029
+139031
+139034
+139036
+139037
+139038
+139042
+139104
+139105
+139107
+139110
+139172
+139173
+139308
+139309
+139310
+139311
+139314
+139316
+139328
+139329
+139360
+139437
+139438
+139439
+139440
+139441
+139465
+139466
+139467
+139470
+139471
+139503
+139504
+139505
+139507
+139510
+139511
+139513
+139514
+139517
\ No newline at end of file
--- /dev/null
+BASE=/alice/data/2011/LHC11a
+PREFIX=000
+DATA_PATTERN=*ESDs/pass3_without_SDD/AOD067/*AliAOD.root
+RUNS
+146686
+146688
+146689
+146746
+146747
+146748
+146801
+146802
+146803
+146804
+146805
+146806
+146807
+146808
+146812
+146813
+146814
+146817
+146824
+146856
+146857
+146858
+146859
+146860
--- /dev/null
+BASE=/alice/data/2011/LHC11a
+PREFIX=000
+DATA_PATTERN=*ESDs/pass3_with_SDD/AOD072/*AliAOD.root
+RUNS
+146686
+146688
+146689
+146746
+146747
+146748
+146801
+146802
+146803
+146804
+146805
+146806
+146807
+146808
+146812
+146813
+146814
+146817
+146824
+146856
+146857
+146858
+146859
+146860
--- /dev/null
+BASE=/alice/sim/2011/LHC11e3a
+PREFIX=
+DATA_PATTERN=*AOD074/*AliAOD.root
+RUNS
+146686
+146688
+146689
+146746
+146747
+146748
+146801
+146802
+146803
+146804
+146805
+146806
+146807
+146808
+146812
+146813
+146814
+146817
+146824
+146856
+146857
+146858
+146859
+146860
--- /dev/null
+BASE=/alice/sim/2011/LHC11h5b
+PREFIX=
+DATA_PATTERN=*AOD079/*AliAOD.root
+RUNS
+146686
+146688
+146689
+146746
+146747
+146748
+146801
+146802
+146803
+146804
+146806
+146807
+146808
+146812
+146813
+146814
+146817
+146856
+146857
+146858
+146859
+146860
--- /dev/null
+BASE=/alice/data/2010/LHC10b
+PREFIX=000
+DATA_PATTERN=*ESDs/pass2/*ESDs.root
+RUNS
+117223
+117222
+117221
+117220
+117121
+117120
+117119
+117118
+117117
+117116
+117113
+117112
+117110
+117109
+117100
+117099
+117098
+117092
+117086
+117082
+117078
+117077
+117065
+117064
+117063
+117061
+117060
+117059
+117054
+117053
+117052
+117051
+117050
+117049
+117048
+117046
+117045
+117042
+117041
+117039
+117035
+117034
+116684
+116682
+116681
+116645
+116644
+116643
+116642
+116640
+116611
+116610
+116609
+116574
+116572
+116571
+116562
+116561
+116559
+116432
+116431
+116429
+116403
+116402
+116401
+116372
+116360
+116358
+116288
+116287
+116204
+116203
+116198
+116197
+116134
+116130
+116123
+116118
+116112
+116111
+116102
+116081
+116079
+115892
+115890
+115889
+115888
+115887
+115882
+115881
+115880
+115521
+115516
+115514
+115414
+115406
+115401
+115393
+115345
+115338
+115335
+115328
+115327
+115325
+115322
+115318
+115315
+115312
+115310
+115237
+115193
+115186
+115173
+114931
+114930
+114924
+114920
+114919
+114918
+114916
+114798
+114786
+114785
+114783
+114778
+114757
+114753
+114750
+114747
+114746
+114745
+114744
+114743
+114740
+114737
--- /dev/null
+BASE=/alice/data/2010/LHC10h
+PREFIX=000
+DATA_PATTERN=*ESDs/pass2/*ESDs.root
+RUNS
+139517
+139514
+139513
+139511
+139510
+139507
+139505
+139504
+139503
+139471
+139470
+139467
+139466
+139465
+139441
+139440
+139439
+139438
+139437
+139360
+139329
+139328
+139316
+139314
+139311
+139310
+139309
+139308
+139173
+139172
+139110
+139107
+139105
+139104
+139042
+139038
+139037
+139036
+139034
+139031
+139030
+139029
+139028
+139025
+139024
+138983
+138982
+138980
+138979
+138978
+138977
+138976
+138973
+138972
+138965
+138924
+138872
+138871
+138870
+138837
+138836
+138831
+138830
+138828
+138826
+138796
+138795
+138742
+138740
+138737
+138736
+138732
+138731
+138730
+138666
+138662
+138653
+138652
+138638
+138637
+138624
+138621
+138620
+138583
+138582
+138579
+138578
+138534
+138533
+138469
+138442
+138439
+138438
+138396
+138364
+138359
+138275
+138225
+138201
+138200
+138197
+138192
+138190
+138154
+138153
+138151
+138150
+138126
+138125
+137848
+137847
+137844
+137843
+137752
+137751
+137748
+137724
+137722
+137718
+137704
+137693
+137692
+137691
+137689
+137686
+137685
+137639
+137638
+137609
+137608
+137595
+137549
+137546
+137544
+137541
+137539
+137531
+137530
+137443
+137441
+137440
+137439
+137434
+137432
+137431
+137430
+137370
+137366
+137365
+137243
+137236
+137235
+137232
+137231
+137230
+137165
+137163
+137162
+137161
+137137
+137136
+137135
+137133
+137132
+137125
+137124
+137045
+137042
+136879
+136854
+136851
--- /dev/null
+BASE=/alice/sim/LHC11a10a_bis
+PREFIX=
+DATA_PATTERN=AliESDs.root
+RUNS
+137161
+137162
+137163
+137165
+137230
+137231
+137232
+137235
+137236
+137243
+137365
+137366
+137370
+137430
+137431
+137432
+137434
+137439
+137440
+137441
+137443
+137530
+137531
+137539
+137541
+137544
+137546
+137549
+137595
+137608
+137609
+137638
+137639
+137685
+137686
+137689
+137691
+137692
+137693
+137704
+137718
+137722
+137724
+137748
+137751
+137752
+137843
+137844
+137847
+137848
+138125
+138126
+138150
+138151
+138153
+138154
+138190
+138192
+138197
+138200
+138201
+138225
+138275
+138359
+138364
+138396
+138438
+138439
+138442
+138469
+138533
+138534
+138578
+138579
+138582
+138583
+138620
+138621
+138624
+138637
+138638
+138652
+138653
+138662
+138666
+138730
+138731
+138732
+138736
+138737
+138740
+138742
+138795
+138796
+138826
+138828
+138830
+138831
+138836
+138837
+138870
+138871
+138872
+139024
+139025
+139028
+139029
+139030
+139031
+139034
+139036
+139037
+139038
+139042
+139104
+139105
+139107
+139110
+139172
+139173
+139308
+139309
+139310
+139311
+139314
+139316
+139328
+139329
+139360
+139437
+139438
+139439
+139440
+139441
+139465
+139466
+139467
+139470
+139471
+139503
+139504
+139505
+139507
+139510
+139511
+139513
+139514
+139517
--- /dev/null
+BASE=/alice/sim/2012/LHC12a4
+PREFIX=
+DATA_PATTERN=AliESDs.root
+RUNS
+114931
+115186
+115193
+115393
+115401
+115414
+116102
+116288
+116402
+116403
+116562
+116571
+116574
+116643
+116645
+117048
+117050
+117052
+117053
+117054
+117059
+117060
+117063
+117065
+117077
+117086
+117092
+117099
+117109
+117112
+117116
+117220
+117222
+119159
+119161
+119163
+119841
+119842
+119844
+119845
+119846
+119849
+119853
+119856
+119859
+119862
+120067
+120069
+120072
+120073
+120076
+120079
+120244
+120503
+120504
+120505
+120616
+120617
+120671
+120741
+120750
+120758
+120820
+120821
+120822
+120823
+120824
+120825
+120829
+122374
+122375
+124751
+125023
+125085
+125097
+125100
+125101
+125134
+125296
+125630
+125632
+125633
+125842
+125843
+125844
+125847
+125848
+125849
+125850
+125851
+125855
+126004
+126007
+126008
+126073
+126078
+126081
+126082
+126088
+126090
+126097
+126158
+126160
+126167
+126168
+126283
+126284
+126285
+126351
+126352
+126359
+126403
+126404
+126405
+126406
+126407
+126408
+126409
+126422
+126424
+126425
+126432
+126437
+127940
+128777
+128778
+128913
+129599
+129639
+129641
+129654
+129659
+129666
+129667
+129723
+129725
+129726
+129729
+129735
+129736
+129738
+129742
+129744
+129959
+129960
+129961
+129983
+130149
+130157
+130158
+130172
+130178
+130179
+130342
+130343
+130354
+130356
+130480
+130517
+130519
+130620
+130623
+130628
+130696
+130704
+130793
+130795
+130798
+130799
+130834
+130840
--- /dev/null
+/PWG2/mvala/data_LHC11a_000146686_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146688_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146689_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146746_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146747_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146748_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146801_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146802_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146803_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146804_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146805_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146806_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146807_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146808_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146812_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146813_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146814_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146817_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146824_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146856_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146857_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146858_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146859_AOD067_p3_without_SDD
+/PWG2/mvala/data_LHC11a_000146860_AOD067_p3_without_SDD
--- /dev/null
+/PWG2/mvala/data_LHC11a_000146686_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146688_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146689_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146746_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146747_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146748_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146801_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146802_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146803_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146804_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146805_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146806_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146807_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146808_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146812_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146813_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146814_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146817_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146824_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146856_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146857_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146858_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146859_AOD072_p3_with_SDD
+/PWG2/mvala/data_LHC11a_000146860_AOD072_p3_with_SDD
--- /dev/null
+/PWG2/mvala/sim_LHC11e3a_000146686_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146688_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146689_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146746_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146747_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146748_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146801_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146802_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146803_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146804_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146805_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146806_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146807_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146808_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146812_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146813_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146814_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146817_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146824_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146856_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146857_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146858_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146859_AOD074
+/PWG2/mvala/sim_LHC11e3a_000146860_AOD074
--- /dev/null
+/PWG2/mvala/sim_LHC11h5b_000146686_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146688_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146689_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146746_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146747_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146748_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146801_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146802_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146803_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146804_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146806_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146807_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146808_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146812_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146813_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146814_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146817_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146856_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146857_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146858_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146859_AOD079
+/PWG2/mvala/sim_LHC11h5b_000146860_AOD079