Updated macros for Grid/AAF + new macros for trains
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / 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                                                           TString  anatype             = "AOD") 
8 {
9    // Creates, configures and attaches to the train a cascades check task.
10    // Get the pointer to the existing analysis manager via the static access method.
11    //==============================================================================
12    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
13    if (!mgr) {
14       ::Error("AddTaskCheckCascade", "No analysis manager to connect to.");
15       return NULL;
16    }   
17
18    // Check the analysis type using the event handlers connected to the analysis manager.
19    //==============================================================================
20    if (!mgr->GetInputEventHandler()) {
21       ::Error("AddTaskCheckCascade", "This task requires an input event handler");
22       return NULL;
23    }   
24    TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
25
26    // Create and configure the task
27         AliAnalysisTaskCheckCascadePbPb *taskcheckcascadepbpb = new AliAnalysisTaskCheckCascadePbPb("TaskCheckCascadePbPb");
28
29   taskcheckcascadepbpb->SetRelaunchV0CascVertexers    (krelaunchvertexers);
30   taskcheckcascadepbpb->SetAnalysisType               (anatype);
31   taskcheckcascadepbpb->SetQualityCutZprimVtxPos      (kTRUE);             // selects vertices in +-10cm
32   taskcheckcascadepbpb->SetQualityCutNoTPConlyPrimVtx (kTRUE);             // retains only events with tracking + SPD vertex
33   taskcheckcascadepbpb->SetQualityCutTPCrefit         (kTRUE);             // requires TPC refit flag to be true to select a track
34   taskcheckcascadepbpb->SetQualityCut80TPCcls         (kTRUE);             // rejects tracks that have less than 80 clusters in the TPC
35   taskcheckcascadepbpb->SetExtraSelections            (kextrasel);         // used to add other selection cuts
36   taskcheckcascadepbpb->SetCentralityLowLim           (centrlowlim);       // setting centrality selection vriables
37   taskcheckcascadepbpb->SetCentralityUpLim            (centruplim);
38   taskcheckcascadepbpb->SetCentralityEst              (centrest);
39   taskcheckcascadepbpb->SetVertexRange                (vtxlim);
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 += ":PWGLFCheckCascadePbPb";
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 }