]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskEmcalJetMassBkg.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskEmcalJetMassBkg.C
1 AliAnalysisTaskEmcalJetMassBkg* AddTaskEmcalJetMassBkg(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,                                             
8                                                        const char *CentEst,
9                                                        Int_t       pSel,
10                                                        TString     trigClass,
11                                                        TString     kEmcalTriggers) {
12
13   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
14   if (!mgr)
15     {
16       Error("AddTaskEmcalJetMassBkg","No analysis manager found.");
17       return 0;
18     }
19   Bool_t ismc=kFALSE;
20   ismc = (mgr->GetMCtruthEventHandler())?kTRUE:kFALSE;
21
22   // Check the analysis type using the event handlers connected to the analysis manager.
23   //==============================================================================
24   if (!mgr->GetInputEventHandler())
25     {
26       ::Error("AddTaskEmcalJetMassBkg", "This task requires an input event handler");
27       return NULL;
28     }
29
30   TString wagonName = Form("JetMassBkg_%s_TC%s",njetsBase,trigClass.Data());
31
32   //Configure jet tagger task
33   AliAnalysisTaskEmcalJetMassBkg *task = new AliAnalysisTaskEmcalJetMassBkg(wagonName.Data());
34
35   task->SetNCentBins(4);
36   task->SetConeRadius(R);
37
38   if (strcmp(type,"TPC")==0)
39     task->SetConeEtaPhiTPC();
40   else if (strcmp(type,"EMCAL")==0)
41     task->SetConeEtaPhiEMCAL();
42
43   AliParticleContainer *trackCont  = task->AddParticleContainer(ntracks);
44   AliClusterContainer *clusterCont = task->AddClusterContainer(nclusters);
45
46   TString strJetsBase(njetsBase);
47   if(strJetsBase.Contains("JetPythia")) {
48     if(trackCont)   trackCont->SetTrackBitMap(TObject::kBitMask);
49     if(clusterCont) clusterCont->SetClusterBitMap(TObject::kBitMask);
50   }
51
52   task->SetJetContainerBase(0);
53
54   TString strType(type);
55   AliJetContainer *jetContBase = task->AddJetContainer(njetsBase,strType,R);
56   if(jetContBase) {
57     jetContBase->SetRhoName(nrhoBase);
58     jetContBase->SetRhoMassName(nrhoMass);
59     jetContBase->ConnectParticleContainer(trackCont);
60     jetContBase->ConnectClusterContainer(clusterCont);
61     //  jetContBase->SetZLeadingCut(0.98,0.98);
62     jetContBase->SetPercAreaCut(0.6);
63   }
64
65   task->SetCaloTriggerPatchInfoName(kEmcalTriggers.Data());
66   task->SetCentralityEstimator(CentEst);
67   task->SelectCollisionCandidates(pSel);
68   task->SetUseAliAnaUtils(kFALSE);
69
70   mgr->AddTask(task);
71
72   //Connnect input
73   mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer() );
74
75   //Connect output
76   TString contName(wagonName);
77   TString outputfile = Form("%s",AliAnalysisManager::GetCommonFileName());
78   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contName.Data(), TList::Class(),AliAnalysisManager::kOutputContainer,outputfile);
79   mgr->ConnectOutput(task,1,coutput1);
80
81   return task;  
82 }