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