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