]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/STRANGENESS/LambdaK0/macros/AddTaskExtractPerformanceV0.C
1a8651e20c299783f4ef316c3459ca4fde75f94a
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / LambdaK0 / macros / AddTaskExtractPerformanceV0.C
1 AliAnalysisTaskExtractPerformanceV0 *AddTaskExtractPerformanceV0( Bool_t lSwitchIsNuclear     = kFALSE, 
2                                                                   Bool_t lSwitchINT7          = kFALSE,
3                                                                   Bool_t lSwitchUseOnTheFly   = kFALSE,
4                                                                   Bool_t lSwitchTakeAllTracks = kFALSE,  
5                                                                   const TString lMasterJobSessionFlag = "")
6 {
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("AddTaskExtractPerformanceV0", "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("AddTaskExtractPerformanceV0", "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          AliAnalysisTaskExtractPerformanceV0 *taskv0extractperformance = new AliAnalysisTaskExtractPerformanceV0("taskv0extractperformance");
26
27    //Configuration
28    taskv0extractperformance -> SetIsNuclear     ( lSwitchIsNuclear     );
29    taskv0extractperformance -> SetINT7Trigger   ( lSwitchINT7          );
30    taskv0extractperformance -> SetUseOnTheFly   ( lSwitchUseOnTheFly   );
31    taskv0extractperformance -> SetTakeAllTracks ( lSwitchTakeAllTracks );
32
33    mgr->AddTask(taskv0extractperformance);
34
35    TString outputFileName = AliAnalysisManager::GetCommonFileName();
36    
37    outputFileName += ":PWGLFExtractPerformanceV0";
38    //if (lSwitchIsNuclear) outputFileName += "_AA";
39    outputFileName += "_PP";
40    if (mgr->GetMCtruthEventHandler()) outputFileName += "_MC";
41    //if(lMasterJobSessionFlag.Length()) outputFileName += lMasterJobSessionFlag.Data();
42    
43    Printf("Set OutputFileName : \n %s\n", outputFileName.Data() );
44
45    AliAnalysisDataContainer *coutputList = mgr->CreateContainer("clistV0MC",
46                                                              TList::Class(),
47                                                              AliAnalysisManager::kOutputContainer,
48                                                              outputFileName );
49    AliAnalysisDataContainer *coutputTree = mgr->CreateContainer("cTreeMC",
50                                                              TTree::Class(),
51                                                              AliAnalysisManager::kOutputContainer,
52                                                              outputFileName );
53    
54    //This one you should merge in file-resident ways...
55    coutputTree->SetSpecialOutput();
56
57    //Recommendation: Tree as a single output slot
58    mgr->ConnectInput( taskv0extractperformance, 0, mgr->GetCommonInputContainer());
59    mgr->ConnectOutput(taskv0extractperformance, 1, coutputList);
60    mgr->ConnectOutput(taskv0extractperformance, 2, coutputTree);
61    
62    return taskv0extractperformance;
63 }