18 #include <TClonesArray.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;
109 if (
GetCaloUtils()->GetEMCALChannelStatus(sm,icol, irow,status) )
134 const Int_t buffersize = 255;
135 char onePar[buffersize] ;
137 snprintf(onePar,buffersize,
"--- AliAnaRandomTrigger ---:") ;
141 snprintf(onePar,buffersize,
"N per event = %d;",
fNRandom ) ;
143 snprintf(onePar,buffersize,
"Min E = %3.2f - Max E = %3.2f;",
GetMinPt(),
GetMaxPt()) ;
145 snprintf(onePar,buffersize,
"Min Eta = %3.2f - Max Eta = %3.2f;",
fEtaCut[0],
fEtaCut[1]) ;
147 snprintf(onePar,buffersize,
"Min Phi = %3.2f - Max Phi = %3.2f;",
fPhiCut[0],
fPhiCut[1]) ;
150 return new TObjString(parList) ;
160 outputContainer->SetName(
"RandomTrigger") ;
166 fhE =
new TH1F (
"hE",
"Random E distribution", nptbins,ptmin,ptmax);
167 fhE->SetXTitle(
"E (GeV)");
168 outputContainer->Add(
fhE);
170 fhPt =
new TH1F (
"hPt",
"Random p_{T} distribution", nptbins,ptmin,ptmax);
171 fhPt->SetXTitle(
"p_{T} (GeV/c)");
172 outputContainer->Add(
fhPt);
174 fhPhi =
new TH2F (
"hPhi",
"Random #phi distribution",
175 nptbins,ptmin,ptmax, nphibins,phimin,phimax);
176 fhPhi->SetYTitle(
"#phi (rad)");
177 fhPhi->SetXTitle(
"p_{T} (GeV/c)");
178 outputContainer->Add(
fhPhi);
180 fhEta =
new TH2F (
"hEta",
"Random #eta distribution",
181 nptbins,ptmin,ptmax, netabins,etamin,etamax);
182 fhEta->SetYTitle(
"#eta ");
183 fhEta->SetXTitle(
"p_{T} (GeV/c)");
184 outputContainer->Add(
fhEta);
186 fhEtaPhi =
new TH2F (
"hEtaPhi",
"Random #eta vs #phi ",netabins,etamin,etamax, nphibins,phimin,phimax);
191 return outputContainer;
219 printf(
"**** Print %s %s ****\n", GetName(), GetTitle() ) ;
224 printf(
"Min Eta = %3.2f - Max Eta = %3.2f\n",
fEtaCut[0],
fEtaCut[1]);
225 printf(
"Min Phi = %3.2f - Max Phi = %3.2f\n",
fPhiCut[0],
fPhiCut[1]);
262 AliDebug(1,Form(
"iRandom %d, Trigger e %2.2f pt %2.2f, phi %2.2f, eta %2.2f, SM %d",
268 AliDebug(1,Form(
"Final aod branch entries %d",
GetOutputAODBranch()->GetEntriesFast()));
279 AliDebug(1,Form(
"AOD branch entries %d, fNRandom %d", naod,
fNRandom));
281 for(
Int_t iaod = 0; iaod < naod ; iaod++)
305 else AliFatal(Form(
"Detector < %s > not known!", det.Data()));
320 else AliFatal(Form(
"Detector < %d > not known!", det));
Float_t GetHistoPtMax() const
virtual Int_t GetSModNumber() const
virtual Double_t Eta() const
virtual Double_t Pt() const
Float_t GetHistoPtMin() const
Int_t fNRandom
Number of random particles per event.
virtual Float_t GetMaxPt() const
virtual void AddAODParticle(AliCaloTrackParticle part)
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
Int_t GetNumberOfCellsFromEMCALBorder() const
virtual void SetDetectorTag(UInt_t d)
void SetTriggerDetector(TString det)
Set the detrimeter for the analysis.
virtual TClonesArray * GetOutputAODBranch() const
Int_t fTriggerDetector
Detector : EMCAL, PHOS, CTS.
TList * GetCreateOutputObjects()
Float_t GetHistoPhiMin() const
virtual Double_t E() 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)
Base class for CaloTrackCorr analysis algorithms.
TString fTriggerDetectorString
Detector : EMCAL, PHOS, CTS.
Container for input particle information on CaloTrackCorr package.
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 void SetSModNumber(Int_t sm)
TH1F * fhPt
! pT distribution
Float_t GetHistoEtaMax() const
Int_t GetHistoPtBins() const
virtual Int_t GetModuleNumber(AliCaloTrackParticle *part) const
TH1F * fhE
! E distribution
Gerenate a random trigger.
virtual Double_t Phi() const
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...