AliAnalysisTaskKinkResonance *AddTaskKinkResonancePhiMC(Short_t lCollidingSystems=0 /*0 = pp, 1 = AA*/)
{
// Creates, configures and attaches to the train a kink resonance task.
// Get the pointer to the existing analysis manager via the static access method.
//==============================================================================
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
::Error("AddTaskKinkResonancePhiMC", "No analysis manager to connect to.");
return NULL;
}
// Check the analysis type using the event handlers connected to the analysis manager.
//==============================================================================
if (!mgr->GetInputEventHandler()) {
::Error("AddTaskKinkResonancePhiMC", "This task requires an input event handler");
return NULL;
}
TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
if (type != "ESD") {
::Error("AddTaskKinkResonancePhiMC", "This task needs an ESD input handler");
return NULL;
}
if (!mgr->GetMCtruthEventHandler()) {
::Error("AddTaskKinkResonancePhiMC", "This task needs an MC handler");
return NULL;
}
// Setup the analysis object
AliResonanceKink *kinkResonanceObjectPMC=new AliResonanceKink();
kinkResonanceObjectPMC->InitOutputHistograms(70,0.99,1.088, 36, -0.9, 0.9, 100, 0.0, 10.0);
kinkResonanceObjectPMC->SetPDGCodes(kKPlus, kKPlus, AliResonanceKink::kPhi);
kinkResonanceObjectPMC->SetAnalysisType("MC"); // "ESD" or "MC" or "DATA"
kinkResonanceObjectPMC->SetMaxNsigmaToVertex(4.0);
kinkResonanceObjectPMC->SetMaxDCAxy(3.0);
kinkResonanceObjectPMC->SetMaxDCAzaxis(3.0);
kinkResonanceObjectPMC->SetPtTrackCut(0.25);
kinkResonanceObjectPMC->SetMinTPCclusters(50);
kinkResonanceObjectPMC->SetMaxChi2PerTPCcluster(3.5);
kinkResonanceObjectPMC->SetMaxCov0(2.0);
kinkResonanceObjectPMC->SetMaxCov2(2.0);
kinkResonanceObjectPMC->SetMaxCov5(0.5);
kinkResonanceObjectPMC->SetMaxCov9(0.5);
kinkResonanceObjectPMC->SetMaxCov14(2.0);
kinkResonanceObjectPMC->SetMinKinkRadius(120.);
kinkResonanceObjectPMC->SetMaxKinkRadius(220.);
kinkResonanceObjectPMC->SetQtLimits(0.05, 0.5);
kinkResonanceObjectPMC->SetUpperAbsEtaCut(0.9);
// Create and configure the task
AliAnalysisTaskKinkResonance *taskresonancePhiMC = new AliAnalysisTaskKinkResonance("TaskResPhiMCKinkPID");
taskresonancePhiMC->SetAnalysisKinkObject(kinkResonanceObjectPMC);
mgr->AddTask(taskresonancePhiMC);
// Create ONLY the output containers for the data produced by the task.
// Get and connect other common input/output containers via the manager as below
//==============================================================================
TString outputFileName = AliAnalysisManager::GetCommonFileName();
outputFileName += ":PWG2KINKResonancePhiMC";
if (lCollidingSystems) outputFileName += "_AA";
else outputFileName += "_PP";
if (mgr->GetMCtruthEventHandler()) outputFileName += "_MC";
AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("KinkResPhiMC",
TList::Class(),
AliAnalysisManager::kOutputContainer,
outputFileName );
mgr->ConnectInput(taskresonancePhiMC, 0, mgr->GetCommonInputContainer());
mgr->ConnectOutput(taskresonancePhiMC, 1, coutput1);
return taskresonancePhiMC;
}
AddTaskKinkResonancePhiMC.C:1 AddTaskKinkResonancePhiMC.C:2 AddTaskKinkResonancePhiMC.C:3 AddTaskKinkResonancePhiMC.C:4 AddTaskKinkResonancePhiMC.C:5 AddTaskKinkResonancePhiMC.C:6 AddTaskKinkResonancePhiMC.C:7 AddTaskKinkResonancePhiMC.C:8 AddTaskKinkResonancePhiMC.C:9 AddTaskKinkResonancePhiMC.C:10 AddTaskKinkResonancePhiMC.C:11 AddTaskKinkResonancePhiMC.C:12 AddTaskKinkResonancePhiMC.C:13 AddTaskKinkResonancePhiMC.C:14 AddTaskKinkResonancePhiMC.C:15 AddTaskKinkResonancePhiMC.C:16 AddTaskKinkResonancePhiMC.C:17 AddTaskKinkResonancePhiMC.C:18 AddTaskKinkResonancePhiMC.C:19 AddTaskKinkResonancePhiMC.C:20 AddTaskKinkResonancePhiMC.C:21 AddTaskKinkResonancePhiMC.C:22 AddTaskKinkResonancePhiMC.C:23 AddTaskKinkResonancePhiMC.C:24 AddTaskKinkResonancePhiMC.C:25 AddTaskKinkResonancePhiMC.C:26 AddTaskKinkResonancePhiMC.C:27 AddTaskKinkResonancePhiMC.C:28 AddTaskKinkResonancePhiMC.C:29 AddTaskKinkResonancePhiMC.C:30 AddTaskKinkResonancePhiMC.C:31 AddTaskKinkResonancePhiMC.C:32 AddTaskKinkResonancePhiMC.C:33 AddTaskKinkResonancePhiMC.C:34 AddTaskKinkResonancePhiMC.C:35 AddTaskKinkResonancePhiMC.C:36 AddTaskKinkResonancePhiMC.C:37 AddTaskKinkResonancePhiMC.C:38 AddTaskKinkResonancePhiMC.C:39 AddTaskKinkResonancePhiMC.C:40 AddTaskKinkResonancePhiMC.C:41 AddTaskKinkResonancePhiMC.C:42 AddTaskKinkResonancePhiMC.C:43 AddTaskKinkResonancePhiMC.C:44 AddTaskKinkResonancePhiMC.C:45 AddTaskKinkResonancePhiMC.C:46 AddTaskKinkResonancePhiMC.C:47 AddTaskKinkResonancePhiMC.C:48 AddTaskKinkResonancePhiMC.C:49 AddTaskKinkResonancePhiMC.C:50 AddTaskKinkResonancePhiMC.C:51 AddTaskKinkResonancePhiMC.C:52 AddTaskKinkResonancePhiMC.C:53 AddTaskKinkResonancePhiMC.C:54 AddTaskKinkResonancePhiMC.C:55 AddTaskKinkResonancePhiMC.C:56 AddTaskKinkResonancePhiMC.C:57 AddTaskKinkResonancePhiMC.C:58 AddTaskKinkResonancePhiMC.C:59 AddTaskKinkResonancePhiMC.C:60 AddTaskKinkResonancePhiMC.C:61 AddTaskKinkResonancePhiMC.C:62 AddTaskKinkResonancePhiMC.C:63 AddTaskKinkResonancePhiMC.C:64 AddTaskKinkResonancePhiMC.C:65 AddTaskKinkResonancePhiMC.C:66 AddTaskKinkResonancePhiMC.C:67 AddTaskKinkResonancePhiMC.C:68 AddTaskKinkResonancePhiMC.C:69 AddTaskKinkResonancePhiMC.C:70 AddTaskKinkResonancePhiMC.C:71 AddTaskKinkResonancePhiMC.C:72 AddTaskKinkResonancePhiMC.C:73