1 AliAnalysisTaskEmcalQGTagging* AddTaskEmcalQGTagging(const char * njetsBase,
3 const char * njetsTrue,
7 const char * natracksUS,
8 const char * nclusters,
9 const char * ntracksTrue,
13 TString trigClass = "",
14 TString kEmcalTriggers = "",
16 AliAnalysisTaskEmcalQGTagging::JetShapeType jetShapeType, AliAnalysisTaskEmcalQGTagging::JetShapeSub jetShapeSub ) {
18 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
21 Error("AddTaskEmcalQGTagging","No analysis manager found.");
25 ismc = (mgr->GetMCtruthEventHandler())?kTRUE:kFALSE;
27 // Check the analysis type using the event handlers connected to the analysis manager.
28 //==============================================================================
29 if (!mgr->GetInputEventHandler())
31 ::Error("AddTaskEmcalQGTagging", "This task requires an input event handler");
35 TString wagonName = Form("JetQGTaggings_%s_TC%s%s",njetsBase,trigClass.Data(),tag.Data());
37 //Configure jet tagger task
38 AliAnalysisTaskEmcalQGTagging *task = new AliAnalysisTaskEmcalQGTagging(wagonName.Data());
40 //task->SetNCentBins(4);
41 task->SetJetShapeType(jetShapeType);
42 task->SetJetShapeSub(jetShapeSub);
44 TString thename(njetsBase);
45 //if(thename.Contains("Sub")) task->SetIsConstSub(kTRUE);
46 //task->SetVzRange(-10.,10.);
48 AliParticleContainer *trackCont = task->AddParticleContainer(ntracks);
49 AliParticleContainer *trackContUS = task->AddParticleContainer(ntracksUS);
50 AliParticleContainer *trackContTrue = task->AddParticleContainer(ntracksTrue);
51 AliClusterContainer *clusterCont = task->AddClusterContainer(nclusters);
53 AliJetContainer *jetContBase=0x0;
54 AliJetContainer *jetContUS=0x0;
55 AliJetContainer *jetContTrue=0x0;
57 TString strType(type);
59 if (jetShapeType==AliAnalysisTaskEmcalQGTagging::kTrue) {
60 jetContBase = task->AddJetContainer(njetsBase,strType,R);
62 jetContBase->SetRhoName(nrhoBase);
63 jetContBase->ConnectParticleContainer(trackCont);
64 jetContBase->ConnectClusterContainer(clusterCont);
65 jetContBase->SetPercAreaCut(0.6);
66 jetContBase->SetPythiaInfoName("PythiaInfo");
70 if (jetShapeType==AliAnalysisTaskEmcalQGTagging::kTrueDet){
72 jetContBase = task->AddJetContainer(njetsBase,strType,R);
74 jetContBase->SetRhoName(nrhoBase);
75 jetContBase->ConnectParticleContainer(trackCont);
76 jetContBase->ConnectClusterContainer(clusterCont);
77 jetContBase->SetPercAreaCut(0.6);
78 jetContBase->SetPythiaInfoName("PythiaInfo");
81 jetContTrue = task->AddJetContainer(njetsTrue,strType,R);
83 jetContTrue->SetRhoName(nrhoBase);
84 jetContTrue->ConnectParticleContainer(trackContTrue);
85 jetContTrue->SetPercAreaCut(0.6);
86 jetContTrue->SetPythiaInfoName("PythiaInfo");
90 if (jetShapeType==AliAnalysisTaskEmcalQGTagging::kData){
91 jetContBase = task->AddJetContainer(njetsBase,strType,R);
93 jetContBase->SetRhoName(nrhoBase);
94 jetContBase->ConnectParticleContainer(trackCont);
95 jetContBase->ConnectClusterContainer(clusterCont);
96 jetContBase->SetPercAreaCut(0.6);
100 if (jetShapeType==AliAnalysisTaskEmcalQGTagging::kDetEmb){
101 jetContBase = task->AddJetContainer(njetsBase,strType,R);
103 jetContBase->SetRhoName(nrhoBase);
104 jetContBase->ConnectParticleContainer(trackCont);
105 jetContBase->ConnectClusterContainer(clusterCont);
106 jetContBase->SetPercAreaCut(0.6);
107 jetContBase->SetPythiaInfoName("PythiaInfo");
110 jetContTrue = task->AddJetContainer(njetsTrue,strType,R);
112 jetContTrue->SetRhoName(nrhoBase);
113 jetContTrue->ConnectParticleContainer(trackContTrue);
114 jetContTrue->SetPercAreaCut(0.6);
115 jetContTrue->SetPythiaInfoName("PythiaInfo");
117 if(jetShapeSub==AliAnalysisTaskEmcalQGTagging::kConstSub){
119 jetContUS->SetRhoName(nrhoBase);
120 jetContUS->ConnectParticleContainer(trackContUS);
121 jetContUS->SetPercAreaCut(0.6);
122 jetContUS->SetPythiaInfoName("PythiaInfo");
130 task->SetCaloTriggerPatchInfoName(kEmcalTriggers.Data());
131 task->SetCentralityEstimator(CentEst);
132 task->SelectCollisionCandidates(pSel);
133 task->SetUseAliAnaUtils(kFALSE);
138 mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer() );
141 TString contName1(wagonName);
143 if (jetShapeType == AliAnalysisTaskEmcalQGTagging::kTrue) contName1 += "_True";
144 if (jetShapeType == AliAnalysisTaskEmcalQGTagging::kTrueDet) contName1 += "_TrueDet";
145 if (jetShapeType == AliAnalysisTaskEmcalQGTagging::kData) contName1 += "_Data";
146 if (jetShapeType == AliAnalysisTaskEmcalQGTagging::kDetEmb) contName1 += "_DetEmb";
148 if (jetShapeSub == AliAnalysisTaskEmcalQGTagging::kNoSub) contName1 += "_NoSub";
149 if (jetShapeSub == AliAnalysisTaskEmcalQGTagging::kConstSub) contName1 += "_ConstSub";
150 if (jetShapeSub == AliAnalysisTaskEmcalQGTagging::kDerivSub) contName1 += "_DerivSub";
153 TString outputfile = Form("%s",AliAnalysisManager::GetCommonFileName());
154 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contName1.Data(), TTree::Class(),AliAnalysisManager::kOutputContainer,outputfile);
156 mgr->ConnectOutput(task,1,coutput1);