]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/QATasks/macros/AddTaskQAMultistrange.C
Updated version of Multristrage QA task and post process
[u/mrichter/AliRoot.git] / PWGLF / QATasks / macros / AddTaskQAMultistrange.C
1 AliAnalysisTaskQAMultistrange *AddTaskQAMultistrange( Bool_t   isMC                   = kFALSE,
2                                                       Int_t    minnTPCcls             = 70,
3                                                       Float_t  centrlowlim            = 0.,
4                                                       Float_t  centruplim             = 90.,
5                                                       TString  centrest               = "V0M",
6                                                       Bool_t   kusecleaning           = kTRUE, 
7                                                       Float_t  vtxlim                 = 10.,
8                                                       TString  collidingSystem        = "PbPb",
9                                                       Bool_t   SDDSelection           = kFALSE,
10                                                       Bool_t   withSDD                = kFALSE,
11                                                       Float_t  minptondaughtertracks  = 0.,
12                                                       Float_t  etacutondaughtertracks = 0.8) {
13
14    // Creates, configures and attaches to the train a cascades check task.
15    // Get the pointer to the existing analysis manager via the static access method.
16    //==============================================================================
17    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
18    if (!mgr) {
19       ::Error("AddTaskQAMultistrange", "No analysis manager to connect to.");
20       return NULL;
21    }   
22
23    // Check the analysis type using the event handlers connected to the analysis manager.
24    //==============================================================================
25    if (!mgr->GetInputEventHandler()) {
26       ::Error("AddTaskQAMultistrange", "This task requires an input event handler");
27       return NULL;
28    }   
29    TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
30
31    // Create and configure the task
32    AliAnalysisTaskQAMultistrange *taskcheckcascade = new AliAnalysisTaskQAMultistrange("TaskCheckCascade");
33
34    taskcheckcascade->SetIsMC                       (isMC);
35    taskcheckcascade->SetAnalysisType               (type);
36    taskcheckcascade->SetCollidingSystem            (collidingSystem);
37    taskcheckcascade->SetSDDselection               (SDDSelection);
38    taskcheckcascade->SetQualityCutZprimVtxPos      (kTRUE);             // selects vertices in +-10cm
39    taskcheckcascade->SetQualityCutNoTPConlyPrimVtx (kTRUE);             // retains only events with tracking + SPD vertex
40    taskcheckcascade->SetQualityCutTPCrefit         (kTRUE);             // requires TPC refit flag to be true to select a track
41    taskcheckcascade->SetQualityCutnTPCcls          (kTRUE);             // rejects tracks that have less than n clusters in the TPC
42    taskcheckcascade->SetQualityCutMinnTPCcls       (minnTPCcls);        // minimum number of TPC clusters to accept daughter tracks
43    taskcheckcascade->SetQualityCutPileup           (kFALSE);
44    taskcheckcascade->SetwithSDD                    (withSDD);
45    taskcheckcascade->SetCentralityLowLim           (centrlowlim);       // setting centrality selection vriables
46    taskcheckcascade->SetCentralityUpLim            (centruplim);
47    taskcheckcascade->SetCentralityEst              (centrest);
48    taskcheckcascade->SetUseCleaning                (kusecleaning);
49    taskcheckcascade->SetVertexRange                (vtxlim);
50    taskcheckcascade->SetMinptCutOnDaughterTracks   (minptondaughtertracks);  
51    taskcheckcascade->SetEtaCutOnDaughterTracks     (etacutondaughtertracks);
52
53    mgr->AddTask(taskcheckcascade);
54
55    // Create ONLY the output containers for the data produced by the task.
56    // Get and connect other common input/output containers via the manager as below
57    //==============================================================================
58
59    // User file name (if need be)
60    
61    TString outputFileName = AliAnalysisManager::GetCommonFileName();
62    outputFileName += ":PWGLFStrangeness.outputCheckCascade";
63
64    AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("cfcontCuts",
65                                                              AliCFContainer::Class(),
66                                                              AliAnalysisManager::kOutputContainer,
67                                                              outputFileName );
68    AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("cfcontMCgen",
69                                                              AliCFContainer::Class(),
70                                                              AliAnalysisManager::kOutputContainer,
71                                                              outputFileName );
72    
73    mgr->ConnectInput( taskcheckcascade, 0, mgr->GetCommonInputContainer());
74    mgr->ConnectOutput(taskcheckcascade, 1, coutput1);
75    mgr->ConnectOutput(taskcheckcascade, 2, coutput2);  
76  
77    return taskcheckcascade;
78 }   
79