]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskJetShapeGR.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskJetShapeGR.C
1 AliAnalysisTaskJetShapeGR *AddTaskJetShapeGR(const char * njetsBase,
2                                              const char * njetsSub,
3                                              const char * njetsTrue,
4                                              const Double_t R,
5                                              const char * nrhoBase,
6                                              const char * nrhoMass,
7                                              const char * ntracks,
8                                              const char * nclusters,
9                                              const char * ntracksTrue,
10                                              const char * type           = "TPC",
11                                              const char * CentEst        = "V0M",
12                                              Int_t        pSel           = AliVEvent::kAny,
13                                              TString      trigClass      = "",
14                                              TString      kEmcalTriggers = "",
15                                              TString      tag            = "MCMatch")
16 {
17
18   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
19   if (!mgr)
20     {
21       Error("AddTaskJetShapeGR","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("AddTaskJetShapeGR", "This task requires an input event handler");
32       return NULL;
33     }
34
35   TString wagonName = Form("JetShapeGR_%s_TC%s%s",njetsBase,trigClass.Data(),tag.Data());
36
37   //Configure jet tagger task
38   AliAnalysisTaskJetShapeGR *task = new AliAnalysisTaskJetShapeGR(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   AliParticleContainer *trackContTrue  = task->AddParticleContainer(ntracksTrue);
46
47   Int_t ic = 0;
48
49   TString strType(type);
50   AliJetContainer *jetContBase = task->AddJetContainer(njetsBase,strType,R);
51   if(jetContBase) {
52     jetContBase->SetRhoName(nrhoBase);
53     jetContBase->SetRhoMassName(nrhoMass);
54     jetContBase->ConnectParticleContainer(trackCont);
55     jetContBase->ConnectClusterContainer(clusterCont);
56     jetContBase->SetPercAreaCut(0.6);
57     task->SetJetContainerBase(ic);
58     ic++;
59   }
60   AliJetContainer *jetContSub = task->AddJetContainer(njetsSub,strType,R);
61   if(jetContSub) {
62     jetContSub->SetRhoName(nrhoBase);
63     jetContSub->SetRhoMassName(nrhoMass);
64     jetContSub->ConnectParticleContainer(trackCont);
65     jetContSub->ConnectClusterContainer(clusterCont);
66     jetContSub->SetPercAreaCut(0.6);
67     jetContSub->SetJetPtCut(-1e6);
68     task->SetJetContainerSub(ic);
69     ic++;
70   }
71   AliJetContainer *jetContTrue = task->AddJetContainer(njetsTrue,strType,R);
72   if(jetContTrue) {
73     jetContTrue->ConnectParticleContainer(trackContTrue);
74     jetContTrue->SetPercAreaCut(0.6);
75     jetContTrue->SetJetPtCut(0.1);
76     task->SetJetContainerTrue(ic);
77     ic++;
78   }
79
80   task->SetCaloTriggerPatchInfoName(kEmcalTriggers.Data());
81   task->SetCentralityEstimator(CentEst);
82   task->SelectCollisionCandidates(pSel);
83   task->SetUseAliAnaUtils(kFALSE);
84
85   mgr->AddTask(task);
86
87   //Connnect input
88   mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer() );
89
90   //Connect output
91   TString contName(wagonName);
92   TString outputfile = Form("%s",AliAnalysisManager::GetCommonFileName());
93   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contName.Data(), TList::Class(),AliAnalysisManager::kOutputContainer,outputfile);
94   mgr->ConnectOutput(task,1,coutput1);
95   AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(Form("%sTree",contName.Data()), TTree::Class(),AliAnalysisManager::kOutputContainer,outputfile);
96   mgr->ConnectOutput(task,2,coutput2);
97
98   return task;
99
100
101
102 }