]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskEmcalQGTagging.C
added unsubtracted jet container
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskEmcalQGTagging.C
1 AliAnalysisTaskEmcalQGTagging* AddTaskEmcalQGTagging(const char * njetsBase,
2                                                      const char * njetsUS,
3                                                      const char * njetsTrue,
4                                                      const Double_t R,
5                                                      const char * nrhoBase, 
6                                                      const char * ntracks, 
7                                                      const char * natracksUS,
8                                                      const char * nclusters,
9                                                      const char * ntracksTrue,
10                                                      const char *type,                                
11                                                      const char *CentEst,
12                                                      Int_t       pSel,
13                                                      TString     trigClass      = "",
14                                                      TString     kEmcalTriggers = "",
15                                                      TString     tag            = "",
16                                                      AliAnalysisTaskEmcalQGTagging::JetShapeType jetShapeType, AliAnalysisTaskEmcalQGTagging::JetShapeSub jetShapeSub ) {
17   
18   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
19   if (!mgr)
20     {
21       Error("AddTaskEmcalQGTagging","No analysis manager found.");
22       return 0;
23     }
24   Bool_t ismc=kFALSE;
25   ismc = (mgr->GetMCtruthEventHandler())?kTRUE:kFALSE;
26
27   // Check the analysis type using the event handlers connected to the analysis manager.
28   //==============================================================================
29   if (!mgr->GetInputEventHandler())
30     {
31       ::Error("AddTaskEmcalQGTagging", "This task requires an input event handler");
32       return NULL;
33     }
34
35   TString wagonName = Form("JetQGTaggings_%s_TC%s%s",njetsBase,trigClass.Data(),tag.Data());
36
37   //Configure jet tagger task
38   AliAnalysisTaskEmcalQGTagging *task = new AliAnalysisTaskEmcalQGTagging(wagonName.Data());
39
40   //task->SetNCentBins(4);
41   task->SetJetShapeType(jetShapeType);
42   task->SetJetShapeSub(jetShapeSub);
43   
44   TString thename(njetsBase);
45   //if(thename.Contains("Sub")) task->SetIsConstSub(kTRUE);
46   //task->SetVzRange(-10.,10.);
47
48   AliParticleContainer *trackCont  = task->AddParticleContainer(ntracks);
49    AliParticleContainer *trackContUS  = task->AddParticleContainer(ntracksUS);
50   AliParticleContainer *trackContTrue  = task->AddParticleContainer(ntracksTrue);
51   AliClusterContainer *clusterCont = task->AddClusterContainer(nclusters);
52
53   AliJetContainer *jetContBase=0x0;
54    AliJetContainer *jetContUS=0x0;
55   AliJetContainer *jetContTrue=0x0;
56
57   TString strType(type);
58
59   if (jetShapeType==AliAnalysisTaskEmcalQGTagging::kTrue) {
60     jetContBase = task->AddJetContainer(njetsBase,strType,R);
61     if(jetContBase) {
62       jetContBase->SetRhoName(nrhoBase);
63       jetContBase->ConnectParticleContainer(trackCont);
64       jetContBase->ConnectClusterContainer(clusterCont);
65       jetContBase->SetPercAreaCut(0.6);
66       jetContBase->SetPythiaInfoName("PythiaInfo");
67     }
68   }
69   
70   if (jetShapeType==AliAnalysisTaskEmcalQGTagging::kTrueDet){
71     
72     jetContBase = task->AddJetContainer(njetsBase,strType,R);
73     if(jetContBase) {
74       jetContBase->SetRhoName(nrhoBase);
75       jetContBase->ConnectParticleContainer(trackCont);
76       jetContBase->ConnectClusterContainer(clusterCont);
77       jetContBase->SetPercAreaCut(0.6);
78       jetContBase->SetPythiaInfoName("PythiaInfo");
79     }
80
81     jetContTrue = task->AddJetContainer(njetsTrue,strType,R);
82     if(jetContTrue) {
83       jetContTrue->SetRhoName(nrhoBase);
84       jetContTrue->ConnectParticleContainer(trackContTrue);
85       jetContTrue->SetPercAreaCut(0.6); 
86       jetContTrue->SetPythiaInfoName("PythiaInfo");
87     }
88   }  
89
90   if (jetShapeType==AliAnalysisTaskEmcalQGTagging::kData){
91     jetContBase = task->AddJetContainer(njetsBase,strType,R);
92     if(jetContBase) {
93       jetContBase->SetRhoName(nrhoBase);
94       jetContBase->ConnectParticleContainer(trackCont);
95       jetContBase->ConnectClusterContainer(clusterCont);
96       jetContBase->SetPercAreaCut(0.6);
97     }    
98   }
99   
100   if (jetShapeType==AliAnalysisTaskEmcalQGTagging::kDetEmb){
101     jetContBase = task->AddJetContainer(njetsBase,strType,R);
102     if(jetContBase) {
103       jetContBase->SetRhoName(nrhoBase);
104       jetContBase->ConnectParticleContainer(trackCont);
105       jetContBase->ConnectClusterContainer(clusterCont);
106       jetContBase->SetPercAreaCut(0.6);
107       jetContBase->SetPythiaInfoName("PythiaInfo");
108     }
109
110     jetContTrue = task->AddJetContainer(njetsTrue,strType,R);
111     if(jetContTrue) {
112       jetContTrue->SetRhoName(nrhoBase);
113       jetContTrue->ConnectParticleContainer(trackContTrue);
114       jetContTrue->SetPercAreaCut(0.6); 
115       jetContTrue->SetPythiaInfoName("PythiaInfo");
116     }
117     if(jetShapeSub==AliAnalysisTaskEmcalQGTagging::kConstSub){
118   if(jetContUS) {
119       jetContUS->SetRhoName(nrhoBase);
120       jetContUS->ConnectParticleContainer(trackContUS);
121       jetContUS->SetPercAreaCut(0.6); 
122       jetContUS->SetPythiaInfoName("PythiaInfo");
123   }}
124
125
126
127     
128   }
129   
130   task->SetCaloTriggerPatchInfoName(kEmcalTriggers.Data());
131   task->SetCentralityEstimator(CentEst);
132   task->SelectCollisionCandidates(pSel);
133   task->SetUseAliAnaUtils(kFALSE);
134
135   mgr->AddTask(task);
136   
137   //Connnect input
138   mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer() );
139
140   //Connect output
141   TString contName1(wagonName);
142
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"; 
147  
148   if (jetShapeSub == AliAnalysisTaskEmcalQGTagging::kNoSub) contName1 += "_NoSub"; 
149   if (jetShapeSub == AliAnalysisTaskEmcalQGTagging::kConstSub) contName1 += "_ConstSub"; 
150   if (jetShapeSub == AliAnalysisTaskEmcalQGTagging::kDerivSub) contName1 += "_DerivSub"; 
151
152
153   TString outputfile = Form("%s",AliAnalysisManager::GetCommonFileName());
154   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contName1.Data(), TTree::Class(),AliAnalysisManager::kOutputContainer,outputfile);
155     
156   mgr->ConnectOutput(task,1,coutput1);
157
158   return task;  
159
160 }
161