]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/STRANGENESS/Cascades/macros/AddTaskCheckCascade.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / Cascades / 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    taskcheckcascade-> SetTriggerMaskType            ("kMB");
27    taskcheckcascade-> SetRelaunchV0CascVertexers    (0);     //NOTE
28    taskcheckcascade-> SetQualityCutZprimVtxPos      (kTRUE);
29    taskcheckcascade-> SetRejectEventPileUp          (kTRUE);
30    taskcheckcascade-> SetQualityCutNoTPConlyPrimVtx (kTRUE);
31    taskcheckcascade-> SetQualityCutTPCrefit         (kTRUE);
32    taskcheckcascade-> SetQualityCut80TPCcls         (kTRUE);
33    taskcheckcascade-> SetAlephParamFor1PadTPCCluster(kTRUE);
34         // taskcheckcascade-> SetExtraSelections            (0);
35    taskcheckcascade-> SetAngularCorrelationType     ("TrigLeadingTrck-AssoCasc"); // 1.1 - "TrigAnyCasc-AssoAnyPrim", 1.2 - "TrigCascLeading-AssoAnyPrim", 2. - "TrigLeadingTrck-AssoCasc"
36    
37    mgr->AddTask(taskcheckcascade);
38
39    // Create ONLY the output containers for the data produced by the task.
40    // Get and connect other common input/output containers via the manager as below
41    //==============================================================================
42
43    // User file name (if need be)
44    /*
45    TString DefaultCommonFileName = AliAnalysisManager::GetCommonFileName();
46    
47    if(DefaultCommonFileName == "AnalysisResults.root"){
48         // Just change the Common File name IF it was not change before
49         // -> To avoid screwing-up the analysis train and send the output of the previous task to a non-existing file
50         TString lCommonFileName = "sLHC10-CheckCascade";
51         if(lMasterJobSessionFlag.Length()){
52                 lCommonFileName += "-";
53                 lCommonFileName += lMasterJobSessionFlag.Data();
54         }
55                 lCommonFileName += ".root"; 
56         
57         mgr->SetCommonFileName( lCommonFileName.Data() );
58    }
59    */
60    
61    TString outputFileName = AliAnalysisManager::GetCommonFileName();
62    
63    outputFileName += ":PWG2CheckCascade";
64    if (lCollidingSystems) outputFileName += "_AA_";
65    else outputFileName += "_PP";
66    if (mgr->GetMCtruthEventHandler()) outputFileName += "_MC";
67    //if(lMasterJobSessionFlag.Length()) outputFileName += lMasterJobSessionFlag.Data();
68    
69    Printf("AddTaskCheckCascade - Set OutputFileName : \n %s\n", outputFileName.Data() );
70
71    AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("clistCasc",
72                                                              TList::Class(),
73                                                              AliAnalysisManager::kOutputContainer,
74                                                              outputFileName );
75    
76 //    AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("cPaveTextBookKeeping",
77 //                                                           TPaveText::Class(),
78 //                                                           AliAnalysisManager::kOutputContainer,
79 //                                                           outputFileName );
80    
81    
82    mgr->ConnectInput( taskcheckcascade, 0, mgr->GetCommonInputContainer());
83    mgr->ConnectOutput(taskcheckcascade, 1, coutput1);
84    //mgr->ConnectOutput(taskcheckcascade, 2, coutput2);
85    
86    return taskcheckcascade;
87 }