7 #include <TClonesArray.h>
12 #include <TLorentzVector.h>
15 #include "AliEMCALTriggerPatchInfo.h"
17 #include "AliVVZERO.h"
33 fTruncateThreshold(6.),
36 fHistEnergyMedianExLP(0),
38 fHistEnergySumExLP(0),
39 fHistTruncatedMean(0),
43 fHistTracksTracklets(0),
44 fHistTracksV0MultSum(0),
46 fHistSPDTrkClsSumExLP(0),
47 fHistSPDTrkClsMedian(0),
48 fHistSPDTrkClsMedianExLP(0),
49 fHistSPDTrkClsTruncMean(0)
53 const Int_t nMultEst = 3;
54 for(Int_t i = 0; i<nMultEst; i++) {
55 fHistEnergyMedianEst[i] = 0;
56 fHistEnergyMedianExLPEst[i] = 0;
57 fHistEnergySumEst[i] = 0;
58 fHistEnergySumExLPEst[i] = 0;
59 fHistEnergySumAvgEst[i] = 0;
60 fHistEnergySumAvgExLPEst[i] = 0;
61 fHistTruncatedMeanEst[i] = 0;
64 SetMakeGeneralHistograms(kTRUE);
77 fTruncateThreshold(6.),
80 fHistEnergyMedianExLP(0),
82 fHistEnergySumExLP(0),
83 fHistTruncatedMean(0),
87 fHistTracksTracklets(0),
88 fHistTracksV0MultSum(0),
90 fHistSPDTrkClsSumExLP(0),
91 fHistSPDTrkClsMedian(0),
92 fHistSPDTrkClsMedianExLP(0),
93 fHistSPDTrkClsTruncMean(0)
97 const Int_t nMultEst = 3;
98 for(Int_t i = 0; i<nMultEst; i++) {
128 TString histName =
"";
129 TString histTitle =
"";
131 histName = Form(
"fHistPatchEtaPhiE");
132 histTitle = Form(
"%s;#eta;#phi;E",histName.Data());
133 fHistPatchEtaPhiE =
new TH3F(histName.Data(),histTitle.Data(),100,-1.,1.,18*8,0.,TMath::TwoPi(),100,0.,100.);
134 fOutput->Add(fHistPatchEtaPhiE);
136 histName = Form(
"fHistEnergyMedian");
137 histTitle = Form(
"%s;med[#it{E}]",histName.Data());
139 fOutput->Add(fHistEnergyMedian);
141 histName = Form(
"fHistEnergyMedianExLP");
142 histTitle = Form(
"%s;med[#it{E}]",histName.Data());
144 fOutput->Add(fHistEnergyMedianExLP);
146 histName = Form(
"fHistEnergySum");
147 histTitle = Form(
"%s;#sum[#it{E}]",histName.Data());
148 fHistEnergySum =
new TH1F(histName.Data(),histTitle.Data(),nE,minE,maxE);
151 histName = Form(
"fHistEnergySumExLP");
152 histTitle = Form(
"%s;#sum[#it{E}]",histName.Data());
154 fOutput->Add(fHistEnergySumExLP);
156 histName = Form(
"fHistTruncatedMean");
157 histTitle = Form(
"%s;#sum[#it{E}]",histName.Data());
159 fOutput->Add(fHistTruncatedMean);
161 histName = Form(
"fHistTracks");
162 histTitle = Form(
"%s;#it{N}_{tracks}",histName.Data());
163 fHistTracks =
new TH1F(histName.Data(),histTitle.Data(),300,0.,300.);
166 histName = Form(
"fHistTracklets");
167 histTitle = Form(
"%s;#it{N}_{tracklets}",histName.Data());
168 fHistTracklets =
new TH1F(histName.Data(),histTitle.Data(),300,0.,300.);
171 histName = Form(
"fHistV0MultSum");
172 histTitle = Form(
"%s;mult[V0A+V0C]",histName.Data());
173 fHistV0MultSum =
new TH1F(histName.Data(),histTitle.Data(),500,0.,500.);
176 const Int_t nMultEst = 3;
177 Int_t nBinsMultEst[nMultEst] = {300,200,500};
178 Double_t multEstMax[nMultEst] = {300.,200.,500.};
179 TString strMultEst[nMultEst] = {
"Tracks",
"Tracklets",
"V0MultSum"};
180 for(Int_t i = 0; i<nMultEst; i++) {
181 histName = Form(
"fHistEnergyMedianEst%s",strMultEst[i].
Data());
182 histTitle = Form(
"%s;med[#it{E}];%s",histName.Data(),strMultEst[i].Data());
183 fHistEnergyMedianEst[i] =
new TH2F(histName.Data(),histTitle.Data(),nE,minE,maxE/4.,nBinsMultEst[i],0.,multEstMax[i]);
184 fOutput->Add(fHistEnergyMedianEst[i]);
186 histName = Form(
"fHistEnergyMedianExLPEst%s",strMultEst[i].
Data());
187 histTitle = Form(
"%s;med[#it{E}];%s",histName.Data(),strMultEst[i].Data());
188 fHistEnergyMedianExLPEst[i] =
new TH2F(histName.Data(),histTitle.Data(),nE,minE,maxE/4.,nBinsMultEst[i],0.,multEstMax[i]);
189 fOutput->Add(fHistEnergyMedianExLPEst[i]);
191 histName = Form(
"fHistEnergySumEst%s",strMultEst[i].
Data());
192 histTitle = Form(
"%s;#sum[#it{E}];%s",histName.Data(),strMultEst[i].Data());
193 fHistEnergySumEst[i] =
new TH2F(histName.Data(),histTitle.Data(),nE,minE,maxE,nBinsMultEst[i],0.,multEstMax[i]);
194 fOutput->Add(fHistEnergySumEst[i]);
196 histName = Form(
"fHistEnergySumExLPEst%s",strMultEst[i].
Data());
197 histTitle = Form(
"%s;#sum[#it{E}];%s",histName.Data(),strMultEst[i].Data());
198 fHistEnergySumExLPEst[i] =
new TH2F(histName.Data(),histTitle.Data(),nE,minE,maxE,nBinsMultEst[i],0.,multEstMax[i]);
199 fOutput->Add(fHistEnergySumExLPEst[i]);
201 histName = Form(
"fHistEnergySumAvgEst%s",strMultEst[i].
Data());
202 histTitle = Form(
"%s;#sum[#it{E}];%s",histName.Data(),strMultEst[i].Data());
203 fHistEnergySumAvgEst[i] =
new TH2F(histName.Data(),histTitle.Data(),nE,minE,maxE/4.,nBinsMultEst[i],0.,multEstMax[i]);
204 fOutput->Add(fHistEnergySumAvgEst[i]);
206 histName = Form(
"fHistEnergySumAvgExLPEst%s",strMultEst[i].
Data());
207 histTitle = Form(
"%s;#sum[#it{E}];%s",histName.Data(),strMultEst[i].Data());
208 fHistEnergySumAvgExLPEst[i] =
new TH2F(histName.Data(),histTitle.Data(),nE,minE,maxE/4.,nBinsMultEst[i],0.,multEstMax[i]);
209 fOutput->Add(fHistEnergySumAvgExLPEst[i]);
211 histName = Form(
"fHistTruncatedMeanEst%s",strMultEst[i].
Data());
212 histTitle = Form(
"%s;#LT#it{E}#GT_{trunc};%s",histName.Data(),strMultEst[i].Data());
213 fHistTruncatedMeanEst[i] =
new TH2F(histName.Data(),histTitle.Data(),nE,minE,maxE/4.,nBinsMultEst[i],0.,multEstMax[i]);
214 fOutput->Add(fHistTruncatedMeanEst[i]);
217 histName = Form(
"fHistTracksTracklets");
218 histTitle = Form(
"%s;%s;%s",histName.Data(),strMultEst[0].Data(),strMultEst[1].Data());
219 fHistTracksTracklets =
new TH2F(histName.Data(),histTitle.Data(),nBinsMultEst[0],0.,multEstMax[0],nBinsMultEst[1],0.,multEstMax[1]);
220 fOutput->Add(fHistTracksTracklets);
222 histName = Form(
"fHistTracksV0MultSum");
223 histTitle = Form(
"%s;%s;%s",histName.Data(),strMultEst[0].Data(),strMultEst[2].Data());
224 fHistTracksV0MultSum =
new TH2F(histName.Data(),histTitle.Data(),nBinsMultEst[0],0.,multEstMax[0],nBinsMultEst[2],0.,multEstMax[2]);
225 fOutput->Add(fHistTracksV0MultSum);
227 histName = Form(
"fHistSPDTrkClsSum");
228 histTitle = Form(
"%s;#it{N}_{tracklets,SPD};#it{N}_{clusters,SPD};#sum[#it{E}]",histName.Data());
229 fHistSPDTrkClsSum =
new TH3F(histName.Data(),histTitle.Data(),nBinsMultEst[1],0.,multEstMax[1],200,0.,1000.,nE,minE,maxE);
230 fOutput->Add(fHistSPDTrkClsSum);
232 histName = Form(
"fHistSPDTrkClsSumExLP");
233 histTitle = Form(
"%s;#it{N}_{tracklets,SPD};#it{N}_{clusters,SPD};#sum[#it{E}]",histName.Data());
234 fHistSPDTrkClsSumExLP =
new TH3F(histName.Data(),histTitle.Data(),nBinsMultEst[1],0.,multEstMax[1],200,0.,1000.,nE,minE,maxE);
235 fOutput->Add(fHistSPDTrkClsSumExLP);
237 histName = Form(
"fHistSPDTrkClsMedian");
238 histTitle = Form(
"%s;#it{N}_{tracklets,SPD};#it{N}_{clusters,SPD};med[#it{E}]",histName.Data());
239 fHistSPDTrkClsMedian =
new TH3F(histName.Data(),histTitle.Data(),nBinsMultEst[1],0.,multEstMax[1],200,0.,1000.,nE,minE,maxE/4.);
240 fOutput->Add(fHistSPDTrkClsMedian);
242 histName = Form(
"fHistSPDTrkClsMedianExLP");
243 histTitle = Form(
"%s;#it{N}_{tracklets,SPD};#it{N}_{clusters,SPD};med[#it{E}]",histName.Data());
244 fHistSPDTrkClsMedianExLP =
new TH3F(histName.Data(),histTitle.Data(),nBinsMultEst[1],0.,multEstMax[1],200,0.,1000.,nE,minE,maxE/4.);
245 fOutput->Add(fHistSPDTrkClsMedianExLP);
247 histName = Form(
"fHistSPDTrkClsTruncMean");
248 histTitle = Form(
"%s;#it{N}_{tracklets,SPD};#it{N}_{clusters,SPD};#LT#it{E}#GT_{trunc}",histName.Data());
249 fHistSPDTrkClsTruncMean =
new TH3F(histName.Data(),histTitle.Data(),nBinsMultEst[1],0.,multEstMax[1],200,0.,1000.,nE,minE,maxE/4.);
250 fOutput->Add(fHistSPDTrkClsTruncMean);
269 Int_t nTracklets = InputEvent()->GetMultiplicity()->GetNumberOfTracklets();
271 AliVVZERO* vV0 = InputEvent()->GetVZEROData();
272 Float_t multV0A=vV0->GetMTotV0A();
273 Float_t multV0C=vV0->GetMTotV0C();
279 const Int_t nMultEst = 3;
280 Float_t multEst[nMultEst] = {(Float_t)(nTracks),(Float_t)(nTracklets),(Float_t)(multV0A+multV0C)};
281 for(Int_t i = 0; i<nMultEst; i++) {
296 Int_t nClustersLayer0 = InputEvent()->GetNumberOfITSClusters(0);
297 Int_t nClustersLayer1 = InputEvent()->GetNumberOfITSClusters(1);
327 Double_t ptarr[999] = {0};
328 Int_t indexes[999] = {0};
330 for(Int_t i = 0; i<nPatch; i++) {
331 AliEMCALTriggerPatchInfo *patch =
dynamic_cast<AliEMCALTriggerPatchInfo*
>(
fTriggerPatchInfo->At(i));
333 if(patch->GetPatchE()>0.) {
334 ptarr[iacc] = patch->GetPatchE();
337 fHistPatchEtaPhiE->Fill(patch->GetEtaMin(),patch->GetPhiMin(),patch->GetPatchE());
340 TMath::Sort(nPatch,ptarr,indexes);
341 Double_t ptarrSort[999];
343 Double_t ptarrSortExLP[999];
345 for(Int_t i = 0; i<iacc; i++) {
346 ptarrSort[i] = ptarr[indexes[i]];
349 ptarrSortExLP[i] = ptarr[indexes[i]];
357 for(Int_t i = 0; i<iacc; i++) {
371 for(Int_t i = 0; i<iacc; i++) {
373 sum+= ptarr[indexes[i]];
TH1F * fHistEnergySumExLP
total energy in EMCal
AliAnalysisTaskEmcalHighMultTrigger()
TH2F * fHistEnergySumAvgExLPEst[3]
avg energy in EMCal vs mult estimator
TH2F * fHistEnergySumEst[3]
median energy in EMCal excluding N leading patches vs mult estimator
TH2F * fHistEnergySumAvgEst[3]
total energy in EMCal excluding N leading patches vs mult estimator
TH3F * fHistSPDTrkClsSumExLP
correlation between SPD clusters and tracklets and total energy in EMCal
TH1F * fHistEnergySum
median energy in EMCal exclucing N leading patches
TH1F * fHistV0MultSum
Ntracklets.
TH1F * fHistTracks
truncated mean in EMCal
TH3F * fHistSPDTrkClsTruncMean
correlation between SPD clusters and tracklets and median energy in EMCal
AliParticleContainer * GetParticleContainer(Int_t i=0) const
TH3F * fHistSPDTrkClsSum
Ntracks vs V0A+V0C.
TH2F * fHistEnergySumExLPEst[3]
total energy in EMCal vs mult estimator
TH1F * fHistEnergyMedian
patch eta vs phi (center of patch) vs energy
TH2F * fHistTracksV0MultSum
Ntracks vs Ntracklets.
Double_t fMedianEnergyExLP
TString fCaloTriggerPatchInfoName
trigger patch info array name
TH3F * fHistSPDTrkClsMedian
correlation between SPD clusters and tracklets and total energy in EMCal
void Terminate(Option_t *option)
ClassImp(AliAnalysisTaskEmcalHighMultTrigger) AliAnalysisTaskEmcalHighMultTrigger
TH2F * fHistEnergyMedianExLPEst[3]
median energy in EMCal vs mult estimator
TH1F * fHistTruncatedMean
total energy in EMCal exclucing N leading patches
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
TH3F * fHistSPDTrkClsMedianExLP
correlation between SPD clusters and tracklets and median energy in EMCal
TH2F * fHistTracksTracklets
truncated mean in EMCal vs mult estimator
AliEmcalList * fOutput
!output list
void SetMakeGeneralHistograms(Bool_t g)
TClonesArray * fTriggerPatchInfo
!trigger patch info array
TH1F * fHistTracklets
N hybrid tracks.
Base task in the EMCAL jet framework.
Double_t fTruncateThreshold
TH2F * fHistTruncatedMeanEst[3]
avg energy in EMCal excluding N leading patches vs mult estimator
TH1F * fHistEnergyMedianExLP
median energy in EMCal
void UserCreateOutputObjects()
virtual ~AliAnalysisTaskEmcalHighMultTrigger()
Int_t GetNAcceptedParticles() const
void UserCreateOutputObjects()
TH2F * fHistEnergyMedianEst[3]
V0A+V0C multiplicity.