]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskEmcalJetMassResponse.C
Merge branch master into TRDdev
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskEmcalJetMassResponse.C
1 AliAnalysisTaskEmcalJetMassResponse* AddTaskEmcalJetMassResponse(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                                                                  TF1        * fBkgMass,
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   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
16   if (!mgr)
17     {
18       Error("AddTaskEmcalJetMassResponse","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("AddTaskEmcalJetMassResponse", "This task requires an input event handler");
29       return NULL;
30     }
31
32   TString wagonName = Form("JetMassResponse_%s_TC%s%s",njetsBase,trigClass.Data(),tag.Data());
33
34   //Configure jet tagger task
35   AliAnalysisTaskEmcalJetMassResponse *task = new AliAnalysisTaskEmcalJetMassResponse(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   task->SetJetMassAverageFunc(fBkgMass);
60
61   mgr->AddTask(task);
62
63   //Connnect input
64   mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer() );
65
66   //Connect output
67   TString contName(wagonName);
68   TString outputfile = Form("%s",AliAnalysisManager::GetCommonFileName());
69   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contName.Data(), TList::Class(),AliAnalysisManager::kOutputContainer,outputfile);
70   mgr->ConnectOutput(task,1,coutput1);
71   AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(Form("%sTree",contName.Data()), TTree::Class(),AliAnalysisManager::kOutputContainer,outputfile);
72   mgr->ConnectOutput(task,2,coutput2);
73
74   return task;  
75
76 }
77