]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskJetShapeConst.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskJetShapeConst.C
1 AliAnalysisTaskJetShapeConst *AddTaskJetShapeConst(const char * njetsBase,
2                                                    const char * njetsSub,
3                                                    const char * njetsNoEmb,
4                                                    const Double_t R,
5                                                    const char * nrhoBase,
6                                                    const char * nrhoMass,
7                                                    const char * ntracks,
8                                                    const char * nclusters,
9                                                    const char * type           = "TPC",
10                                                    const char * CentEst        = "V0M",
11                                                    Int_t        pSel           = AliVEvent::kAny,
12                                                    TString      trigClass      = "",
13                                                    TString      kEmcalTriggers = "",
14                                                    TString      tag            = "MCMatch",
15                                                    Bool_t       bCreateTree    = kFALSE)
16 {
17
18   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
19   if (!mgr)
20     {
21       Error("AddTaskJetShapeConst","No analysis manager found.");
22       return 0;
23     }
24   Bool_t ismc=kFALSE;
25   ismc = (mgr->GetMCtruthEventHandler())?kTRUE:kFALSE;
26
27   // Check the analysis type using the event handlers connected to the analysis manager.
28   //==============================================================================
29   if (!mgr->GetInputEventHandler())
30     {
31       ::Error("AddTaskJetShapeConst", "This task requires an input event handler");
32       return NULL;
33     }
34
35   TString wagonName = Form("JetShapeConst_%s_TC%s%s",njetsBase,trigClass.Data(),tag.Data());
36
37   //Configure jet tagger task
38   AliAnalysisTaskJetShapeConst *task = new AliAnalysisTaskJetShapeConst(wagonName.Data());
39
40   task->SetNCentBins(4);
41   //task->SetVzRange(-10.,10.);
42
43   AliParticleContainer *trackCont  = task->AddParticleContainer(ntracks);
44   AliClusterContainer *clusterCont = task->AddClusterContainer(nclusters);
45
46   task->SetJetContainerBase(0);
47
48   TString strType(type);
49   AliJetContainer *jetContBase = task->AddJetContainer(njetsBase,strType,R);
50   if(jetContBase) {
51     jetContBase->SetRhoName(nrhoBase);
52     jetContBase->SetRhoMassName(nrhoMass);
53     jetContBase->ConnectParticleContainer(trackCont);
54     jetContBase->ConnectClusterContainer(clusterCont);
55     jetContBase->SetPercAreaCut(0.6);
56   }
57   AliJetContainer *jetContSub = task->AddJetContainer(njetsSub,strType,R);
58   if(jetContSub) {
59     jetContSub->SetRhoName(nrhoBase);
60     jetContSub->SetRhoMassName(nrhoMass);
61     jetContSub->ConnectParticleContainer(trackCont);
62     jetContSub->ConnectClusterContainer(clusterCont);
63     jetContSub->SetPercAreaCut(0.6);
64     jetContSub->SetJetPtCut(-1e6);
65   }
66
67   AliJetContainer *jetContNoEmb = task->AddJetContainer(njetsNoEmb,strType,R);
68   if(jetContNoEmb) {
69     jetContNoEmb->SetRhoName(nrhoBase);
70     jetContNoEmb->SetRhoMassName(nrhoMass);
71     jetContNoEmb->ConnectParticleContainer(trackCont);
72     jetContNoEmb->ConnectClusterContainer(clusterCont);
73     jetContNoEmb->SetPercAreaCut(0.6);
74     jetContNoEmb->SetJetPtCut(-1e6);
75   }
76
77   task->SetCaloTriggerPatchInfoName(kEmcalTriggers.Data());
78   task->SetCentralityEstimator(CentEst);
79   task->SelectCollisionCandidates(pSel);
80   task->SetUseAliAnaUtils(kFALSE);
81   task->SetCreateTree(bCreateTree);
82
83   mgr->AddTask(task);
84
85   //Connnect input
86   mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer() );
87
88   //Connect output
89   TString contName(wagonName);
90   TString outputfile = Form("%s",AliAnalysisManager::GetCommonFileName());
91   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contName.Data(), TList::Class(),AliAnalysisManager::kOutputContainer,outputfile);
92   mgr->ConnectOutput(task,1,coutput1);
93   if(bCreateTree) {
94     AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(Form("%sTree",contName.Data()), TTree::Class(),AliAnalysisManager::kOutputContainer,outputfile);
95     mgr->ConnectOutput(task,2,coutput2);
96   }
97
98   return task;
99 }