//
// General macro to configure the RSN analysis task.
// It calls all configs desired by the user, by means
// of the boolean switches defined in the first lines.
// ---
// Inputs:
// 1) flag to know if running on MC or data
// 2) path where all configs are stored
// ---
// Returns:
// kTRUE --> initialization successful
// kFALSE --> initialization failed (some config gave errors)
//
Bool_t usePhi = kTRUE;
Bool_t isESD = kTRUE;
const char *suffix = "noPID";
AliRsnMiniAnalysisTask * AddAnalysisTaskPhiRAAPbPb
(
Bool_t isMC,
Bool_t isPP,
const char *path,
Int_t nmix = 0,
Int_t centr = 3
)
{
//
// -- INITIALIZATION ----------------------------------------------------------------------------
//
// retrieve analysis manager
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
// create the task and connect with physics selection
AliRsnMiniAnalysisTask *task = new AliRsnMiniAnalysisTask("RSN", isMC);
if (centr == 1) task->UseESDTriggerMask(AliVEvent::kCentral);
if (centr == 2) task->UseESDTriggerMask(AliVEvent::kSemiCentral);
if (centr == 3) task->UseESDTriggerMask(AliVEvent::kMB);
mgr->AddTask(task);
// settings
if (isPP)
task->UseMultiplicity("QUALITY");
else
task->UseCentrality("V0M");
// // set mixing
task->UseContinuousMix();
// //task->UseBinnedMix();
task->SetNMix(nmix);
task->SetMaxDiffVz(1.0);
task->SetMaxDiffMult(10.0);
task->SetMaxDiffAngle(1E20);
//
// -- EVENT CUTS (same for all configs) ---------------------------------------------------------
//
// cut on primary vertex:
// - 2nd argument --> |Vz| range
// - 3rd argument --> minimum required number of contributors
// - 4th argument --> tells if TPC stand-alone vertexes must be accepted
AliRsnCutPrimaryVertex *cutVertex = new AliRsnCutPrimaryVertex("cutVertex", 10.0, 0, kFALSE);
// set the check for pileup
if (isPP) cutVertex->SetCheckPileUp(kTRUE);
// define and fill cut set
AliRsnCutSet *eventCuts = new AliRsnCutSet("eventCuts", AliRsnTarget::kEvent);
eventCuts->AddCut(cutVertex);
eventCuts->SetCutScheme(cutVertex->GetName());
// set cuts in task
task->SetEventCuts(eventCuts);
//
// -- EVENT-ONLY COMPUTATIONS -------------------------------------------------------------------
//
// initialize value computation for multiplicity/centrality
// second argument tells if the value must be taken from MC
// (when this can be done)
// after creating the value, the task returns its ID
Int_t multID = task->CreateValue(AliRsnMiniValue::kMult, kFALSE);
// create event-related output
AliRsnMiniOutput *outMult = task->CreateOutput("eventMult", "HIST", "EVENT");
// set axes, by passing value ID and defining the binning
if (isPP)
outMult->AddAxis(multID, 300, 0.0, 300.0);
else
outMult->AddAxis(multID, 100, 0.0, 100.0);
//
// -- PAIR CUTS (common to all resonances) ------------------------------------------------------
//
AliRsnCutMiniPair *cutY = new AliRsnCutMiniPair("cutRapidity", AliRsnCutMiniPair::kRapidityRange);
cutY->SetRangeD(-0.5, 0.5);
AliRsnCutSet *cutsPair = new AliRsnCutSet("pairCuts", AliRsnTarget::kMother);
cutsPair->AddCut(cutY);
cutsPair->SetCutScheme(cutY->GetName());
//
// -- CONFIGS -----------------------------------------------------------------------------------
//
if (usePhi) {
gROOT->LoadMacro(Form("%s/ConfigPhiRAAPbPb.C", path));
ConfigPhiRAAPbPb(task, isMC, isESD, suffix, cutsPair, centr);
}
//
// -- CONTAINERS --------------------------------------------------------------------------------
//
const char *file = AliAnalysisManager::GetCommonFileName();
AliAnalysisDataContainer *output = mgr->CreateContainer("RsnOut", TList::Class(), AliAnalysisManager::kOutputContainer, file);
mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
mgr->ConnectOutput(task, 1, output);
return task;
}
AddAnalysisTaskPhiRAAPbPb.C:1 AddAnalysisTaskPhiRAAPbPb.C:2 AddAnalysisTaskPhiRAAPbPb.C:3 AddAnalysisTaskPhiRAAPbPb.C:4 AddAnalysisTaskPhiRAAPbPb.C:5 AddAnalysisTaskPhiRAAPbPb.C:6 AddAnalysisTaskPhiRAAPbPb.C:7 AddAnalysisTaskPhiRAAPbPb.C:8 AddAnalysisTaskPhiRAAPbPb.C:9 AddAnalysisTaskPhiRAAPbPb.C:10 AddAnalysisTaskPhiRAAPbPb.C:11 AddAnalysisTaskPhiRAAPbPb.C:12 AddAnalysisTaskPhiRAAPbPb.C:13 AddAnalysisTaskPhiRAAPbPb.C:14 AddAnalysisTaskPhiRAAPbPb.C:15 AddAnalysisTaskPhiRAAPbPb.C:16 AddAnalysisTaskPhiRAAPbPb.C:17 AddAnalysisTaskPhiRAAPbPb.C:18 AddAnalysisTaskPhiRAAPbPb.C:19 AddAnalysisTaskPhiRAAPbPb.C:20 AddAnalysisTaskPhiRAAPbPb.C:21 AddAnalysisTaskPhiRAAPbPb.C:22 AddAnalysisTaskPhiRAAPbPb.C:23 AddAnalysisTaskPhiRAAPbPb.C:24 AddAnalysisTaskPhiRAAPbPb.C:25 AddAnalysisTaskPhiRAAPbPb.C:26 AddAnalysisTaskPhiRAAPbPb.C:27 AddAnalysisTaskPhiRAAPbPb.C:28 AddAnalysisTaskPhiRAAPbPb.C:29 AddAnalysisTaskPhiRAAPbPb.C:30 AddAnalysisTaskPhiRAAPbPb.C:31 AddAnalysisTaskPhiRAAPbPb.C:32 AddAnalysisTaskPhiRAAPbPb.C:33 AddAnalysisTaskPhiRAAPbPb.C:34 AddAnalysisTaskPhiRAAPbPb.C:35 AddAnalysisTaskPhiRAAPbPb.C:36 AddAnalysisTaskPhiRAAPbPb.C:37 AddAnalysisTaskPhiRAAPbPb.C:38 AddAnalysisTaskPhiRAAPbPb.C:39 AddAnalysisTaskPhiRAAPbPb.C:40 AddAnalysisTaskPhiRAAPbPb.C:41 AddAnalysisTaskPhiRAAPbPb.C:42 AddAnalysisTaskPhiRAAPbPb.C:43 AddAnalysisTaskPhiRAAPbPb.C:44 AddAnalysisTaskPhiRAAPbPb.C:45 AddAnalysisTaskPhiRAAPbPb.C:46 AddAnalysisTaskPhiRAAPbPb.C:47 AddAnalysisTaskPhiRAAPbPb.C:48 AddAnalysisTaskPhiRAAPbPb.C:49 AddAnalysisTaskPhiRAAPbPb.C:50 AddAnalysisTaskPhiRAAPbPb.C:51 AddAnalysisTaskPhiRAAPbPb.C:52 AddAnalysisTaskPhiRAAPbPb.C:53 AddAnalysisTaskPhiRAAPbPb.C:54 AddAnalysisTaskPhiRAAPbPb.C:55 AddAnalysisTaskPhiRAAPbPb.C:56 AddAnalysisTaskPhiRAAPbPb.C:57 AddAnalysisTaskPhiRAAPbPb.C:58 AddAnalysisTaskPhiRAAPbPb.C:59 AddAnalysisTaskPhiRAAPbPb.C:60 AddAnalysisTaskPhiRAAPbPb.C:61 AddAnalysisTaskPhiRAAPbPb.C:62 AddAnalysisTaskPhiRAAPbPb.C:63 AddAnalysisTaskPhiRAAPbPb.C:64 AddAnalysisTaskPhiRAAPbPb.C:65 AddAnalysisTaskPhiRAAPbPb.C:66 AddAnalysisTaskPhiRAAPbPb.C:67 AddAnalysisTaskPhiRAAPbPb.C:68 AddAnalysisTaskPhiRAAPbPb.C:69 AddAnalysisTaskPhiRAAPbPb.C:70 AddAnalysisTaskPhiRAAPbPb.C:71 AddAnalysisTaskPhiRAAPbPb.C:72 AddAnalysisTaskPhiRAAPbPb.C:73 AddAnalysisTaskPhiRAAPbPb.C:74 AddAnalysisTaskPhiRAAPbPb.C:75 AddAnalysisTaskPhiRAAPbPb.C:76 AddAnalysisTaskPhiRAAPbPb.C:77 AddAnalysisTaskPhiRAAPbPb.C:78 AddAnalysisTaskPhiRAAPbPb.C:79 AddAnalysisTaskPhiRAAPbPb.C:80 AddAnalysisTaskPhiRAAPbPb.C:81 AddAnalysisTaskPhiRAAPbPb.C:82 AddAnalysisTaskPhiRAAPbPb.C:83 AddAnalysisTaskPhiRAAPbPb.C:84 AddAnalysisTaskPhiRAAPbPb.C:85 AddAnalysisTaskPhiRAAPbPb.C:86 AddAnalysisTaskPhiRAAPbPb.C:87 AddAnalysisTaskPhiRAAPbPb.C:88 AddAnalysisTaskPhiRAAPbPb.C:89 AddAnalysisTaskPhiRAAPbPb.C:90 AddAnalysisTaskPhiRAAPbPb.C:91 AddAnalysisTaskPhiRAAPbPb.C:92 AddAnalysisTaskPhiRAAPbPb.C:93 AddAnalysisTaskPhiRAAPbPb.C:94 AddAnalysisTaskPhiRAAPbPb.C:95 AddAnalysisTaskPhiRAAPbPb.C:96 AddAnalysisTaskPhiRAAPbPb.C:97 AddAnalysisTaskPhiRAAPbPb.C:98 AddAnalysisTaskPhiRAAPbPb.C:99 AddAnalysisTaskPhiRAAPbPb.C:100 AddAnalysisTaskPhiRAAPbPb.C:101 AddAnalysisTaskPhiRAAPbPb.C:102 AddAnalysisTaskPhiRAAPbPb.C:103 AddAnalysisTaskPhiRAAPbPb.C:104 AddAnalysisTaskPhiRAAPbPb.C:105 AddAnalysisTaskPhiRAAPbPb.C:106 AddAnalysisTaskPhiRAAPbPb.C:107 AddAnalysisTaskPhiRAAPbPb.C:108 AddAnalysisTaskPhiRAAPbPb.C:109 AddAnalysisTaskPhiRAAPbPb.C:110 AddAnalysisTaskPhiRAAPbPb.C:111 AddAnalysisTaskPhiRAAPbPb.C:112 AddAnalysisTaskPhiRAAPbPb.C:113 AddAnalysisTaskPhiRAAPbPb.C:114 AddAnalysisTaskPhiRAAPbPb.C:115 AddAnalysisTaskPhiRAAPbPb.C:116 AddAnalysisTaskPhiRAAPbPb.C:117 AddAnalysisTaskPhiRAAPbPb.C:118 AddAnalysisTaskPhiRAAPbPb.C:119 AddAnalysisTaskPhiRAAPbPb.C:120 AddAnalysisTaskPhiRAAPbPb.C:121 AddAnalysisTaskPhiRAAPbPb.C:122 AddAnalysisTaskPhiRAAPbPb.C:123 AddAnalysisTaskPhiRAAPbPb.C:124 AddAnalysisTaskPhiRAAPbPb.C:125 AddAnalysisTaskPhiRAAPbPb.C:126