]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/STRANGENESS/Cascades/macros/AddTaskExtractCascade.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / Cascades / macros / AddTaskExtractCascade.C
1 AliAnalysisTaskExtractCascade *AddTaskExtractCascade( Bool_t lSwitchIsNuclear     = kFALSE, 
2                                                                   Bool_t lSwitchINT7 = kFALSE,
3                                                                   const TString lMasterJobSessionFlag = "")
4 {
5 // Creates, configures and attaches to the train a cascades check task.
6    // Get the pointer to the existing analysis manager via the static access method.
7    //==============================================================================
8    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
9    if (!mgr) {
10       ::Error("AddTaskExtractCascade", "No analysis manager to connect to.");
11       return NULL;
12    }   
13
14    // Check the analysis type using the event handlers connected to the analysis manager.
15    //==============================================================================
16    if (!mgr->GetInputEventHandler()) {
17       ::Error("AddTaskExtractCascade", "This task requires an input event handler");
18       return NULL;
19    }   
20    TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
21
22    // Create and configure the task
23          AliAnalysisTaskExtractCascade *taskextract = new AliAnalysisTaskExtractCascade("taskextract");
24
25    //Configuration
26    taskextract -> SetIsNuclear     ( lSwitchIsNuclear     );
27    taskextract -> SetINT7Trigger   ( lSwitchINT7          );
28
29    mgr->AddTask(taskextract);
30
31    TString outputFileName = AliAnalysisManager::GetCommonFileName();
32    
33    outputFileName += ":PWGLFExtractCascade";
34    //if (lSwitchIsNuclear) outputFileName += "_AA";
35    outputFileName += "_PP";
36    if (mgr->GetMCtruthEventHandler()) outputFileName += "_MC";
37    //if(lMasterJobSessionFlag.Length()) outputFileName += lMasterJobSessionFlag.Data();
38    
39    Printf("Set OutputFileName : \n %s\n", outputFileName.Data() );
40
41    AliAnalysisDataContainer *coutputList = mgr->CreateContainer("clist",
42                                                              TList::Class(),
43                                                              AliAnalysisManager::kOutputContainer,
44                                                              outputFileName );
45    AliAnalysisDataContainer *coutputTreeCascade = mgr->CreateContainer("cTreeCascade",
46                                                              TTree::Class(),
47                                                              AliAnalysisManager::kOutputContainer,
48                                                              outputFileName );
49    
50    //This one you should merge in file-resident ways...
51    coutputTreeCascade->SetSpecialOutput();
52
53    //Recommendation: Tree as a single output slot
54    mgr->ConnectInput( taskextract, 0, mgr->GetCommonInputContainer());
55    mgr->ConnectOutput(taskextract, 1, coutputList);
56    mgr->ConnectOutput(taskextract, 2, coutputTreeCascade);
57    
58    return taskextract;
59 }