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