Cascade analysis code moved in Cascades folder
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / Cascades / macros / AddTaskCheckCascadePbPb.C
1 AliAnalysisTaskCheckCascadePbPb *AddTaskCheckCascadePbPb( Float_t  centrlowlim         = 0.,
2                                                           Float_t  centruplim          = 90.,
3                                                           TString  centrest            = "V0M",
4                                                           Float_t  vtxlim              = 10.,
5                                                           Bool_t   kextrasel           = kFALSE,
6                                                           Bool_t   krelaunchvertexers  = kFALSE) {
7    // Creates, configures and attaches to the train a cascades check task.
8    // Get the pointer to the existing analysis manager via the static access method.
9    //==============================================================================
10    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
11    if (!mgr) {
12       ::Error("AddTaskCheckCascade", "No analysis manager to connect to.");
13       return NULL;
14    }   
15
16    // Check the analysis type using the event handlers connected to the analysis manager.
17    //==============================================================================
18    if (!mgr->GetInputEventHandler()) {
19       ::Error("AddTaskCheckCascade", "This task requires an input event handler");
20       return NULL;
21    }   
22    TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
23
24    // Create and configure the task
25         AliAnalysisTaskCheckCascadePbPb *taskcheckcascadepbpb = new AliAnalysisTaskCheckCascadePbPb("TaskCheckCascadePbPb");
26
27    taskcheckcascadepbpb->SetRelaunchV0CascVertexers    (krelaunchvertexers);
28    taskcheckcascadepbpb->SetAnalysisType               (type);
29    taskcheckcascadepbpb->SetQualityCutZprimVtxPos      (kTRUE);             // selects vertices in +-10cm
30    taskcheckcascadepbpb->SetQualityCutNoTPConlyPrimVtx (kTRUE);             // retains only events with tracking + SPD vertex
31    taskcheckcascadepbpb->SetQualityCutTPCrefit         (kTRUE);             // requires TPC refit flag to be true to select a track
32    taskcheckcascadepbpb->SetQualityCut80TPCcls         (kTRUE);             // rejects tracks that have less than 80 clusters in the TPC
33    taskcheckcascadepbpb->SetExtraSelections            (kextrasel);         // used to add other selection cuts
34    taskcheckcascadepbpb->SetCentralityLowLim           (centrlowlim);       // setting centrality selection vriables
35    taskcheckcascadepbpb->SetCentralityUpLim            (centruplim);
36    taskcheckcascadepbpb->SetCentralityEst              (centrest);
37    taskcheckcascadepbpb->SetVertexRange                (vtxlim);
38
39    taskcheckcascadepbpb->SelectCollisionCandidates();
40
41    mgr->AddTask(taskcheckcascadepbpb);
42
43    // Create ONLY the output containers for the data produced by the task.
44    // Get and connect other common input/output containers via the manager as below
45    //==============================================================================
46
47    // User file name (if need be)
48    
49    TString outputFileName = AliAnalysisManager::GetCommonFileName();
50    
51    outputFileName += ":PWGLFStrangeness.outputCheckCascadePbPb";
52    if (mgr->GetMCtruthEventHandler()) outputFileName += "_MC";
53    
54    Printf("AddTaskCheckCascade - Set OutputFileName : \n %s\n", outputFileName.Data() );
55
56    AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("clistCasc",
57                                                              TList::Class(),
58                                                              AliAnalysisManager::kOutputContainer,
59                                                              outputFileName );
60    
61    
62    mgr->ConnectInput( taskcheckcascadepbpb, 0, mgr->GetCommonInputContainer());
63    mgr->ConnectOutput(taskcheckcascadepbpb, 1, coutput1);
64    
65    return taskcheckcascadepbpb;
66 }