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