]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/SPECTRA/macros/AddTaskCheckCascade.C
c96f84fbb090172796dc0654e4fa60d3e767575a
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / macros / AddTaskCheckCascade.C
1 AliAnalysisTaskCheckCascade *AddTaskCheckCascade(Short_t       lCollidingSystems     = 0  /*0 = pp, 1 = AA*/,
2                                                  const TString lMasterJobSessionFlag = "")
3 {
4 // Creates, configures and attaches to the train a cascades check task.
5    // Get the pointer to the existing analysis manager via the static access method.
6    //==============================================================================
7    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
8    if (!mgr) {
9       ::Error("AddTaskCheckCascade", "No analysis manager to connect to.");
10       return NULL;
11    }   
12
13    // Check the analysis type using the event handlers connected to the analysis manager.
14    //==============================================================================
15    if (!mgr->GetInputEventHandler()) {
16       ::Error("AddTaskCheckCascade", "This task requires an input event handler");
17       return NULL;
18    }   
19    TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
20
21    // Create and configure the task
22         AliAnalysisTaskCheckCascade *taskcheckcascade = new AliAnalysisTaskCheckCascade("TaskCheckCascade");
23    taskcheckcascade->SetCollidingSystems(lCollidingSystems);
24    taskcheckcascade->SetAnalysisType(type);
25    
26    mgr->AddTask(taskcheckcascade);
27
28    // Create ONLY the output containers for the data produced by the task.
29    // Get and connect other common input/output containers via the manager as below
30    //==============================================================================
31
32    // User file name (if need be)
33    /*
34    TString DefaultCommonFileName = AliAnalysisManager::GetCommonFileName();
35    
36    if(DefaultCommonFileName == "AnalysisResults.root"){
37         // Just change the Common File name IF it was not change before
38         // -> To avoid screwing-up the analysis train and send the output of the previous task to a non-existing file
39         TString lCommonFileName = "sLHC09-CheckCascade";
40         if(lMasterJobSessionFlag.Length()){
41                 lCommonFileName += "-";
42                 lCommonFileName += lMasterJobSessionFlag.Data();
43         }
44                 lCommonFileName += ".root"; 
45         
46         mgr->SetCommonFileName( lCommonFileName.Data() );
47    }
48    */
49    
50    TString outputFileName = AliAnalysisManager::GetCommonFileName();
51    outputFileName += ":PWG2CheckCascade";
52    if (lCollidingSystems) outputFileName += "_AA_";
53    else outputFileName += "_PP_";
54    if (mgr->GetMCtruthEventHandler()) outputFileName += "MC_";
55    if(lMasterJobSessionFlag.Length()) outputFileName += lMasterJobSessionFlag.Data();
56    
57    Printf("AddTaskCheckCascade - Set OutputFileName : \n %s\n", outputFileName.Data() );
58
59    AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("clistCasc",
60                                                              TList::Class(),
61                                                              AliAnalysisManager::kOutputContainer,
62                                                              outputFileName );
63    
64    mgr->ConnectInput( taskcheckcascade, 0, mgr->GetCommonInputContainer());
65    mgr->ConnectOutput(taskcheckcascade, 1, coutput1);
66    
67    return taskcheckcascade;
68 }