]>
Commit | Line | Data |
---|---|---|
1 | ||
2 | ||
3 | AliAnalysisTaskJetCorePP* AddTaskJetCorePP( | |
4 | const Char_t* branchPrefix="clustersAOD", | |
5 | const Char_t* jetAlgo="ANTIKT", | |
6 | Float_t jetParameterR = 0.4, //jet R | |
7 | UInt_t trkFilterMask = 272, | |
8 | Float_t trackLowPtCut = 0.15, | |
9 | const Char_t* jetbgAlgo="ANTIKT", //background jet algo | |
10 | Float_t bgjetParameterR = 0.3, //R of jet to be removed while bg calc | |
11 | Float_t bgMaxJetPt = 8.0, //max jet pt to be accepted to bg | |
12 | Int_t rndTrials = 2000, //number of trials to get jet free cell area | |
13 | Float_t jetFreeAreaFrac = 0.75, //cell area free of jets | |
14 | Float_t bgConeR = 0.4, //R of perp cone jet R | |
15 | Int_t collisionSystem = 0, //pp=0, pPb=1 | |
16 | Int_t offlineTriggerMask=AliVEvent::kMB, //MinBias=0 | |
17 | Int_t minContribVtx = 1, | |
18 | Float_t vtxZMin = -10.0, | |
19 | Float_t vtxZMax = 10.0, | |
20 | Float_t centMin = 0.0, | |
21 | Float_t centMax = 100.0, | |
22 | Float_t triggerEtaCut = 0.9, | |
23 | Float_t trackEtaCut = 0.9, | |
24 | const Char_t* nonStdFile="", | |
25 | const Char_t* mcFullFlag="", // real="", all jets= "MC" | |
26 | const Char_t* mcChargFlag="", // real="", charged jets = "MC2" | |
27 | Bool_t bfillrespmx=0, // 0=dont fill resp mx histos, 1=fill histos | |
28 | Bool_t bDiceEff=0, // 0=leave efficiency as it is, 1= reduce efficiency by constant amount via SetFixedEfficiency | |
29 | Bool_t bMomSmear=0, // 0=leave efficiency as it is, 1= reduce efficiency by constant amount via SetFixedEfficiency | |
30 | Bool_t bDoubleBinning=0, // 0= 2GeV bin size 1= 1GeV/bin size | |
31 | Bool_t bUseExchContainer=0, // | |
32 | Int_t triggerType=0, //0=single incl trigger, 1=leading track, 2=hadron pt>10 | |
33 | Int_t evtRangeLow=0, //last digit of range of ESD event number | |
34 | Int_t evtRangeHigh=9, //first digit of range of ESD event number | |
35 | Float_t trigRangeLow=0, //trigger pT low bin boreder works with triggType=0 | |
36 | Float_t trigRangeHigh=50 //trigger pT high border works with triggType=0 | |
37 | ){ | |
38 | Printf("adding task jet response\n"); | |
39 | ||
40 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
41 | if(!mgr){ | |
42 | ::Error("AddTaskJetCorePP", "No analysis manager to connect to."); | |
43 | return NULL; | |
44 | } | |
45 | if(!mgr->GetInputEventHandler()){ | |
46 | ::Error("AddTaskJetCorePP", "This task requires an input event handler."); | |
47 | return NULL; | |
48 | } | |
49 | ||
50 | Float_t jetEtaMin = -0.9 + jetParameterR; | |
51 | Float_t jetEtaMax = 0.9 - jetParameterR; | |
52 | ||
53 | TString analBranch=""; | |
54 | TString analBranchBg=""; //jet to be removed from bg | |
55 | TString analBranchFullMC=""; //full jets MC to be used with charged jets MC | |
56 | TString analBranchChargMC=""; //charged jets | |
57 | TString analBranchBgChargMC=""; //charged jets background | |
58 | TString analBranchKine=""; //kine jets | |
59 | TString analBranchBgKine=""; //kine jets background | |
60 | ||
61 | TString mcFullSuffix=""; //MC = all jets | |
62 | TString mcChargSuffix=""; //MC2= charged jets, MC = all jets | |
63 | ||
64 | ||
65 | ||
66 | TString bpfx(branchPrefix); | |
67 | TString stJetAlgo(jetAlgo); | |
68 | TString stJetBgAlgo(jetbgAlgo); | |
69 | stJetAlgo.ToUpper(); | |
70 | stJetBgAlgo.ToUpper(); | |
71 | ||
72 | TString jet=""; | |
73 | TString jetbg=""; | |
74 | TString otherparams=""; | |
75 | ||
76 | jet = jet + "_" + stJetAlgo + Form("%02d",(Int_t) (10*jetParameterR)); // _ANTIKT02 | |
77 | jetbg = jetbg + "_" + stJetBgAlgo + Form("%02d",(Int_t) (10*bgjetParameterR)); | |
78 | ||
79 | if(!bpfx.Contains("KINE")){ | |
80 | ||
81 | analBranch = bpfx; | |
82 | analBranchBg = bpfx; | |
83 | ||
84 | otherparams = otherparams + "_B0"; //bg mode | |
85 | otherparams = otherparams + Form("_Filter%05d",(UInt_t) trkFilterMask); | |
86 | otherparams = otherparams + Form("_Cut%05d",(Int_t) (1000*trackLowPtCut)); | |
87 | ||
88 | if(analBranch.BeginsWith("clustersAOD")){ | |
89 | otherparams = otherparams + Form("_Skip%02d",0); | |
90 | } | |
91 | ||
92 | analBranch = analBranch + jet + otherparams; //antikt jet | |
93 | analBranchBg = analBranchBg + jetbg + otherparams; //kt bg jet | |
94 | ||
95 | if(bDiceEff || bMomSmear){ //dicing efficiency relates rec only | |
96 | analBranch = analBranch + Form("Detector%d%dFr0",(Int_t) bDiceEff,(Int_t) bMomSmear); //dice=1, smear=0, change eff fraction =0 | |
97 | analBranchBg = analBranchBg + Form("Detector%d%dFr0",(Int_t) bDiceEff,(Int_t) bMomSmear); | |
98 | } | |
99 | ||
100 | //clustersAOD_ANTIKT04_B0_Filter00272_Cut00150_Skip00 | |
101 | //clustersAOD_ANTIKT04_B0_Filter00272_Cut00150_Skip00_Detector10Fr0 | |
102 | //Skip00 none of the most energetic jets is ommited | |
103 | //Cut00150 pT min cut on track | |
104 | //Filter00272 | |
105 | ||
106 | mcFullSuffix=Form("%s",mcFullFlag); //MC = all jets | |
107 | mcChargSuffix=Form("%s",mcChargFlag); //MC2= charged jets, MC = all jets | |
108 | ||
109 | if(mcChargSuffix.Length()>0 && mcChargSuffix=="MC2"){ //charged jets generator level | |
110 | analBranchChargMC = bpfx + mcChargSuffix + jet + otherparams; | |
111 | analBranchBgChargMC = bpfx + mcChargSuffix + jetbg + otherparams; | |
112 | } | |
113 | ||
114 | if(mcFullSuffix.Length()>0 && mcFullSuffix=="MC"){ //full jets generator level | |
115 | analBranchFullMC = bpfx + mcFullSuffix + jet + otherparams; | |
116 | } | |
117 | }else{ //KINE JETS | |
118 | //clustersKINECHARGED_ANTIKT02_Cut00150 | |
119 | otherparams = otherparams + Form("_Cut%05d",TMath::Nint(1000*trackLowPtCut)); | |
120 | ||
121 | analBranchKine = analBranchKine + bpfx + jet + otherparams; | |
122 | analBranchBgKine = analBranchBgKine + bpfx + jetbg + otherparams; | |
123 | } | |
124 | ||
125 | TString analBranchTmp = analBranch; | |
126 | ||
127 | if(bpfx.Contains("KINE")){ | |
128 | analBranchTmp=analBranchKine; | |
129 | } | |
130 | AliAnalysisTaskJetCorePP *task = new AliAnalysisTaskJetCorePP(Form("JetCorePP_%s_%s_%d",analBranchTmp.Data(), mcChargSuffix.Data(), offlineTriggerMask)); | |
131 | ||
132 | task->SetBranchName(analBranch.Data()); | |
133 | task->SetBranchNameFullMC(analBranchFullMC.Data()); | |
134 | task->SetBranchNameChargMC(analBranchChargMC.Data()); | |
135 | task->SetBranchNameKine(analBranchKine.Data()); | |
136 | task->SetBranchNameBg(analBranchBg.Data()); //kine jets | |
137 | task->SetBranchNameBgChargMC(analBranchBgChargMC.Data()); //jet to be removed from bg | |
138 | task->SetBranchNameBgKine(analBranchBgKine.Data()); //kine jets | |
139 | task->SetNonStdFile(nonStdFile); | |
140 | task->SetSystem(collisionSystem); | |
141 | task->SetJetR(jetParameterR); | |
142 | task->SetBgJetR(bgjetParameterR); | |
143 | task->SetBgMaxJetPt(bgMaxJetPt); | |
144 | task->SetRndTrials(rndTrials); | |
145 | task->SetFreeAreaFrac(jetFreeAreaFrac); | |
146 | task->SetBgConeR(bgConeR); | |
147 | task->SetOfflineTrgMask(offlineTriggerMask); | |
148 | task->SetMinContribVtx(minContribVtx); | |
149 | task->SetVtxZMin(vtxZMin); | |
150 | task->SetVtxZMax(vtxZMax); | |
151 | task->SetFilterMask(trkFilterMask); | |
152 | task->SetCentMin(centMin); | |
153 | task->SetCentMax(centMax); | |
154 | task->SetJetEtaMin(jetEtaMin); | |
155 | task->SetJetEtaMax(jetEtaMax); | |
156 | task->SetTriggerEtaCut(triggerEtaCut); | |
157 | task->SetTrackEtaCut(trackEtaCut); | |
158 | task->SetTrackLowPtCut(trackLowPtCut); | |
159 | task->SetTriggerType(triggerType); | |
160 | task->SetEventNumberRangeLow(evtRangeLow); | |
161 | task->SetEventNumberRangeHigh(evtRangeHigh); | |
162 | task->SetTriggerPtRangeLow(trigRangeLow); | |
163 | task->SetTriggerPtRangeHigh(trigRangeHigh); | |
164 | task->SetFillResponseMatrix(bfillrespmx); | |
165 | task->SetBinning(bDoubleBinning); | |
166 | task->SetUseExchangeContainerInput(bUseExchContainer); | |
167 | ||
168 | task->SetDebugLevel(0); //No debug messages 0 | |
169 | mgr->AddTask(task); | |
170 | ||
171 | //E= range of last two decimal numbers in event numbers | |
172 | //Ptt range of the cosidered trigger bin | |
173 | AliAnalysisDataContainer *coutputJetCorePP = mgr->CreateContainer( | |
174 | Form("pwgjejetcorepp_%s_%s%02d_%s_%d_T%d_E%d_%d_Ptt%.0f_%.0f",analBranchTmp.Data(),jetbgAlgo,TMath::Nint(10*bgjetParameterR),mcChargSuffix.Data(),offlineTriggerMask,triggerType,evtRangeLow,evtRangeHigh,trigRangeLow,trigRangeHigh), | |
175 | TList::Class(), | |
176 | AliAnalysisManager::kOutputContainer, | |
177 | Form("%s:PWGJE_jetcorepp_%s_%s%02d_%s_%d_T%d_E%d_%d_Ptt%.0f_%.0f",AliAnalysisManager::GetCommonFileName(),analBranchTmp.Data(),jetbgAlgo,TMath::Nint(10*bgjetParameterR),mcChargSuffix.Data(),offlineTriggerMask,triggerType,evtRangeLow,evtRangeHigh,trigRangeLow,trigRangeHigh) | |
178 | ); | |
179 | ||
180 | mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer()); | |
181 | //FK//mgr->ConnectOutput(task, 0, mgr->GetCommonOutputContainer()); | |
182 | ||
183 | if(bUseExchContainer){ | |
184 | ||
185 | if(analBranchKine.Length()>0){ //kine jets = input slot 1 | |
186 | AliAnalysisDataContainer* containerKineJets = (AliAnalysisDataContainer*)mgr->GetContainers()->FindObject(analBranchKine.Data()); | |
187 | mgr->ConnectInput(task, 1, containerKineJets); | |
188 | } | |
189 | if(analBranchBgKine.Length()>0){ //kine jets to be removed from bg = input slot 2 | |
190 | AliAnalysisDataContainer* containerKineJetsBg = (AliAnalysisDataContainer*)mgr->GetContainers()->FindObject(analBranchBgKine.Data()); | |
191 | mgr->ConnectInput(task, 2, containerKineJetsBg); | |
192 | } | |
193 | } | |
194 | ||
195 | mgr->ConnectOutput(task, 1, coutputJetCorePP); | |
196 | return task; | |
197 | } |