18 #include <TClonesArray.h>
22 #include "AliAODPWG4ParticleCorrelation.h"
23 #include "AliEMCALGeometry.h"
35 fTriggerDetectorString(
"EMCAL"),
36 fRandom(0), fNRandom(0),
58 if(!
GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta,phi, absId))
return kTRUE;
60 Int_t icol = -1, irow = -1, iRCU = -1;
72 if (nborder<1) nborder = 1;
77 if(irow >= nborder && irow < 24-nborder) okrow =kTRUE;
81 if((
GetCaloUtils()->EMCALGeometryName()).Contains(
"12SM"))
83 if(irow >= nborder && irow < 8-nborder) okrow =kTRUE;
87 if(irow >= nborder && irow <12-nborder) okrow =kTRUE;
94 if(icol >= nborder) okcol = kTRUE;
98 if(icol < 48-nborder) okcol = kTRUE;
102 if (!okcol || !okrow)
return kTRUE;
108 if(
GetCaloUtils()->GetEMCALChannelStatus(sm,icol, irow) > 0)
return kTRUE ;
132 const Int_t buffersize = 255;
133 char onePar[buffersize] ;
135 snprintf(onePar,buffersize,
"--- AliAnaRandomTrigger ---:") ;
139 snprintf(onePar,buffersize,
"N per event = %d;",
fNRandom ) ;
141 snprintf(onePar,buffersize,
"Min E = %3.2f - Max E = %3.2f;",
GetMinPt(),
GetMaxPt()) ;
143 snprintf(onePar,buffersize,
"Min Eta = %3.2f - Max Eta = %3.2f;",
fEtaCut[0],
fEtaCut[1]) ;
145 snprintf(onePar,buffersize,
"Min Phi = %3.2f - Max Phi = %3.2f;",
fPhiCut[0],
fPhiCut[1]) ;
148 return new TObjString(parList) ;
158 outputContainer->SetName(
"RandomTrigger") ;
164 fhE =
new TH1F (
"hE",
"Random E distribution", nptbins,ptmin,ptmax);
165 fhE->SetXTitle(
"E (GeV)");
166 outputContainer->Add(
fhE);
168 fhPt =
new TH1F (
"hPt",
"Random p_{T} distribution", nptbins,ptmin,ptmax);
169 fhPt->SetXTitle(
"p_{T} (GeV/c)");
170 outputContainer->Add(
fhPt);
172 fhPhi =
new TH2F (
"hPhi",
"Random #phi distribution",
173 nptbins,ptmin,ptmax, nphibins,phimin,phimax);
174 fhPhi->SetYTitle(
"#phi (rad)");
175 fhPhi->SetXTitle(
"p_{T} (GeV/c)");
176 outputContainer->Add(
fhPhi);
178 fhEta =
new TH2F (
"hEta",
"Random #eta distribution",
179 nptbins,ptmin,ptmax, netabins,etamin,etamax);
180 fhEta->SetYTitle(
"#eta ");
181 fhEta->SetXTitle(
"p_{T} (GeV/c)");
182 outputContainer->Add(
fhEta);
184 fhEtaPhi =
new TH2F (
"hEtaPhi",
"Random #eta vs #phi ",netabins,etamin,etamax, nphibins,phimin,phimax);
189 return outputContainer;
217 printf(
"**** Print %s %s ****\n", GetName(), GetTitle() ) ;
222 printf(
"Min Eta = %3.2f - Max Eta = %3.2f\n",
fEtaCut[0],
fEtaCut[1]);
223 printf(
"Min Phi = %3.2f - Max Phi = %3.2f\n",
fPhiCut[0],
fPhiCut[1]);
256 AliAODPWG4Particle trigger = AliAODPWG4Particle(
fMomentum);
260 AliDebug(1,Form(
"iRandom %d, Trigger e %2.2f pt %2.2f, phi %2.2f, eta %2.2f, SM %d",
261 irandom, trigger.E(), trigger.Pt(), trigger.Phi(), trigger.Eta(), trigger.GetSModNumber()));
266 AliDebug(1,Form(
"Final aod branch entries %d",
GetOutputAODBranch()->GetEntriesFast()));
277 AliDebug(1,Form(
"AOD branch entries %d, fNRandom %d", naod,
fNRandom));
279 for(
Int_t iaod = 0; iaod < naod ; iaod++)
303 else AliFatal(Form(
"Detector < %s > not known!", det.Data()));
318 else AliFatal(Form(
"Detector < %d > not known!", det));
Float_t GetHistoPtMax() const
Float_t GetHistoPtMin() const
Int_t fNRandom
Number of random particles per event.
virtual Float_t GetMaxPt() const
virtual void AddToHistogramsName(TString add)
Float_t fPhiCut[2]
Phi acceptance, radians.
Bool_t ExcludeDeadBadRegions(Float_t eta, Float_t phi)
TH2F * fhEta
! eta distribution vs pT, negative
AliEMCALRecoUtils * GetEMCALRecoUtils() const
void InitParameters()
Initialize the parameters of the analysis.
TObjString * GetAnalysisCuts()
Save parameters used for analysis.
virtual void SetOutputAODClassName(TString name)
Int_t GetHistoPhiBins() const
virtual TClonesArray * GetOutputAODBranch() const
Int_t fTriggerDetector
Detector : EMCAL, PHOS, CTS.
TList * GetCreateOutputObjects()
Float_t GetHistoPhiMin() const
TLorentzVector fMomentum
! Avoid generating TLorentzVectors per event.
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
virtual void SetOutputAODName(TString name)
void SetTriggerDetector(TString &det)
Set the detrimeter for the analysis.
Base class for CaloTrackCorr analysis algorithms.
TString fTriggerDetectorString
Detector : EMCAL, PHOS, CTS.
virtual AliHistogramRanges * GetHistogramRanges()
virtual AliEMCALGeometry * GetEMCALGeometry() const
virtual AliCalorimeterUtils * GetCaloUtils() const
TRandom3 fRandom
Random generator.
void MakeAnalysisFillAOD()
virtual Double_t GetEventWeight() const
TH2F * fhEtaPhi
! eta vs phi distribution of positive charge
Float_t GetHistoEtaMin() const
virtual Int_t GetModuleNumber(AliAODPWG4Particle *part) const
ClassImp(AliAnalysisTaskDeltaPt) AliAnalysisTaskDeltaPt
TH1F * fhPt
! pT distribution
Float_t GetHistoEtaMax() const
virtual void AddAODParticle(AliAODPWG4Particle part)
Int_t GetHistoPtBins() const
TH1F * fhE
! E distribution
Gerenate a random trigger.
virtual Float_t GetMinPt() const
virtual void Print(const Option_t *) const
Print some relevant parameters set for the analysis.
TH2F * fhPhi
! phi distribution vs pT, negative
AliAnaRandomTrigger()
Default Constructor. Initialize parameters.
Float_t GetHistoPhiMax() const
Int_t GetHistoEtaBins() const
DCal, not used so far, just in case.
void MakeAnalysisFillHistograms()
Float_t fEtaCut[2]
Eta acceptance.
Int_t GetModuleNumberCellIndexes(Int_t absId, Int_t calo, Int_t &icol, Int_t &irow, Int_t &iRCU) const
Get the EMCAL/PHOS module, columns, row and RCU/DDL number that corresponds to this absId...