]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskEmcalHJetMass.C
add h-jet jet mass analysis class
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskEmcalHJetMass.C
1 AliAnalysisTaskEmcalHJetMass* AddTaskEmcalHJetMass(const char * njetsBase,
2                                                    const Double_t R,
3                                                    const char * nrhoBase,
4                                                    const char * ntracks,
5                                                    const char * nclusters,
6                                                    const char * type,
7                                                    Double_t     ptMinH         = 5.,
8                                                    Double_t     maxDPhi        = 0.6,
9                                                    Int_t        pSel,
10                                                    const char * CentEst        = "V0M",
11                                                    TString      trigClass      = "",
12                                                    TString      kEmcalTriggers = "",
13                                                    TString      nJetsUnsub     = "",
14                                                    TString      tag            = "") {
15
16   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
17   if (!mgr)
18     {
19       Error("AddTaskEmcalHJetMass","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("AddTaskEmcalHJetMass", "This task requires an input event handler");
30       return NULL;
31     }
32
33   TString wagonName = Form("HJetMass_%s_TC%s%s",njetsBase,trigClass.Data(),tag.Data());
34
35   //Configure jet tagger task
36   AliAnalysisTaskEmcalHJetMass *task = new AliAnalysisTaskEmcalHJetMass(wagonName.Data());
37   task->SetNCentBins(4);
38   task->SetMaxDeltaPhi(maxDPhi);
39   
40   AliParticleContainer *trackCont  = task->AddParticleContainer(ntracks);
41   trackCont->SetParticlePtCut(ptMinH);
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->ConnectParticleContainer(trackCont);
51     jetContBase->ConnectClusterContainer(clusterCont);
52     jetContBase->SetPercAreaCut(0.6);
53   }
54   if(!nJetsUnsub.IsNull()) {
55     AliJetContainer *jetContUS = task->AddJetContainer(nJetsUnsub.Data(),strType,R);
56     if(jetContUS) {
57       jetContUS->SetRhoName(nrhoBase);
58       jetContUS->ConnectParticleContainer(trackCont);
59       jetContUS->ConnectClusterContainer(clusterCont);
60       jetContUS->SetPercAreaCut(0.6);
61     }
62   }
63
64   task->SetCaloTriggerPatchInfoName(kEmcalTriggers.Data());
65   task->SetCentralityEstimator(CentEst);
66   task->SelectCollisionCandidates(pSel);
67   task->SetUseAliAnaUtils(kFALSE);
68
69   mgr->AddTask(task);
70
71   //Connnect input
72   mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer() );
73
74   //Connect output
75   TString contName(wagonName);
76   TString outputfile = Form("%s",AliAnalysisManager::GetCommonFileName());
77   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contName.Data(), TList::Class(),AliAnalysisManager::kOutputContainer,outputfile);
78   mgr->ConnectOutput(task,1,coutput1);
79
80   return task;  
81
82 }
83