1 AliAnalysisTaskEmcalQGTagging* AddTaskEmcalQGTagging(const char * njetsBase,
2 const char * njetsTrue,
6 const char * nclusters,
7 const char * ntracksTrue,
11 TString trigClass = "",
12 TString kEmcalTriggers = "",
14 AliAnalysisTaskEmcalQGTagging::JetShapeType jetShapeType, AliAnalysisTaskEmcalQGTagging::JetShapeSub jetShapeSub ) {
16 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
19 Error("AddTaskEmcalQGTagging","No analysis manager found.");
23 ismc = (mgr->GetMCtruthEventHandler())?kTRUE:kFALSE;
25 // Check the analysis type using the event handlers connected to the analysis manager.
26 //==============================================================================
27 if (!mgr->GetInputEventHandler())
29 ::Error("AddTaskEmcalQGTagging", "This task requires an input event handler");
33 TString wagonName = Form("JetQGTaggings_%s_TC%s%s",njetsBase,trigClass.Data(),tag.Data());
35 //Configure jet tagger task
36 AliAnalysisTaskEmcalQGTagging *task = new AliAnalysisTaskEmcalQGTagging(wagonName.Data());
38 //task->SetNCentBins(4);
39 task->SetJetShapeType(jetShapeType);
40 task->SetJetShapeSub(jetShapeSub);
42 TString thename(njetsBase);
43 //if(thename.Contains("Sub")) task->SetIsConstSub(kTRUE);
44 //task->SetVzRange(-10.,10.);
46 AliParticleContainer *trackCont = task->AddParticleContainer(ntracks);
47 AliParticleContainer *trackContTrue = task->AddParticleContainer(ntracksTrue);
48 AliClusterContainer *clusterCont = task->AddClusterContainer(nclusters);
50 AliJetContainer *jetContBase=0x0;
51 AliJetContainer *jetContTrue=0x0;
53 TString strType(type);
55 if (jetShapeType==AliAnalysisTaskEmcalQGTagging::kTrue) {
56 jetContBase = task->AddJetContainer(njetsBase,strType,R);
58 jetContBase->SetRhoName(nrhoBase);
59 jetContBase->ConnectParticleContainer(trackCont);
60 jetContBase->ConnectClusterContainer(clusterCont);
61 jetContBase->SetPercAreaCut(0.6);
62 jetContBase->SetPythiaInfoName("PythiaInfo");
66 if (jetShapeType==AliAnalysisTaskEmcalQGTagging::kTrueDet){
68 jetContBase = task->AddJetContainer(njetsBase,strType,R);
70 jetContBase->SetRhoName(nrhoBase);
71 jetContBase->ConnectParticleContainer(trackCont);
72 jetContBase->ConnectClusterContainer(clusterCont);
73 jetContBase->SetPercAreaCut(0.6);
74 jetContBase->SetPythiaInfoName("PythiaInfo");
77 jetContTrue = task->AddJetContainer(njetsTrue,strType,R);
79 jetContTrue->SetRhoName(nrhoBase);
80 jetContTrue->ConnectParticleContainer(trackContTrue);
81 jetContTrue->SetPercAreaCut(0.6);
82 jetContTrue->SetPythiaInfoName("PythiaInfo");
86 if (jetShapeType==AliAnalysisTaskEmcalQGTagging::kData){
87 jetContBase = task->AddJetContainer(njetsBase,strType,R);
89 jetContBase->SetRhoName(nrhoBase);
90 jetContBase->ConnectParticleContainer(trackCont);
91 jetContBase->ConnectClusterContainer(clusterCont);
92 jetContBase->SetPercAreaCut(0.6);
96 if (jetShapeType==AliAnalysisTaskEmcalQGTagging::kDetEmb){
97 jetContBase = task->AddJetContainer(njetsBase,strType,R);
99 jetContBase->SetRhoName(nrhoBase);
100 jetContBase->ConnectParticleContainer(trackCont);
101 jetContBase->ConnectClusterContainer(clusterCont);
102 jetContBase->SetPercAreaCut(0.6);
103 jetContBase->SetPythiaInfoName("PythiaInfo");
106 jetContTrue = task->AddJetContainer(njetsTrue,strType,R);
108 jetContTrue->SetRhoName(nrhoBase);
109 jetContTrue->ConnectParticleContainer(trackContTrue);
110 jetContTrue->SetPercAreaCut(0.6);
111 jetContTrue->SetPythiaInfoName("PythiaInfo");
116 task->SetCaloTriggerPatchInfoName(kEmcalTriggers.Data());
117 task->SetCentralityEstimator(CentEst);
118 task->SelectCollisionCandidates(pSel);
119 task->SetUseAliAnaUtils(kFALSE);
124 mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer() );
127 TString contName1(wagonName);
129 if (jetShapeType == AliAnalysisTaskEmcalQGTagging::kTrue) contName1 += "_True";
130 if (jetShapeType == AliAnalysisTaskEmcalQGTagging::kTrueDet) contName1 += "_TrueDet";
131 if (jetShapeType == AliAnalysisTaskEmcalQGTagging::kData) contName1 += "_Data";
132 if (jetShapeType == AliAnalysisTaskEmcalQGTagging::kDetEmb) contName1 += "_DetEmb";
134 if (jetShapeSub == AliAnalysisTaskEmcalQGTagging::kNoSub) contName1 += "_NoSub";
135 if (jetShapeSub == AliAnalysisTaskEmcalQGTagging::kConstSub) contName1 += "_ConstSub";
136 if (jetShapeSub == AliAnalysisTaskEmcalQGTagging::kDerivSub) contName1 += "_DerivSub";
139 TString outputfile = Form("%s",AliAnalysisManager::GetCommonFileName());
140 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contName1.Data(), TTree::Class(),AliAnalysisManager::kOutputContainer,outputfile);
142 mgr->ConnectOutput(task,1,coutput1);