7 #include <TClonesArray.h> 8 #include "AliAODCaloCluster.h" 9 #include "AliAODEvent.h" 10 #include "AliAnalysisManager.h" 12 #include "AliESDCaloCluster.h" 13 #include "AliESDEvent.h" 28 fEnergyTimeHistBefore(0),
31 fEnergyTimeHistAfter(0),
32 fEnergyExoticClusters(0)
40 fOutCaloName(
"EmcClusters"),
46 fEnergyTimeHistBefore(0),
49 fEnergyTimeHistAfter(0),
50 fEnergyExoticClusters(0)
56 fBranchNames=
"ESD:AliESDRun.,AliESDHeader.,PrimaryVertex.";
79 fEnergyDistBefore =
new TH1F(
"hEnergyDistBefore",
"hEnergyDistBefore;E_{clus} (GeV)",1500,0,150);
81 fEtaPhiDistBefore =
new TH2F(
"hEtaPhiDistBefore",
"hEtaPhiDistBefore;#eta;#phi",280,-0.7,0.7,200*3.14,0,2*3.14);
83 fEnergyTimeHistBefore =
new TH2F(
"hEnergyTimeDistBefore",
"hEnergyTimeDistBefore;E_{clus} (GeV);time",1500,0,150,500,-1e-6,1e-6);
85 fEnergyDistAfter =
new TH1F(
"hEnergyDistAfter",
"hEnergyDistAfter;E_{clus} (GeV)",1500,0,150);
87 fEtaPhiDistAfter =
new TH2F(
"hEtaPhiDistAfter",
"hEtaPhiDistAfter;#eta;#phi",280,-0.7,0.7,200*3.14,0,2*3.14);
89 fEnergyTimeHistAfter =
new TH2F(
"hEnergyTimeDistAfter",
"hEnergyTimeDistAfter;E_{clus} (GeV);time",1500,0,150,500,-1e-6,1e-6);
91 fEnergyExoticClusters =
new TH1F(
"fEnergyExoticClusters",
"fEnergyExoticClusters;E_{ex clus} (GeV)",1500,0,150);
107 if (dynamic_cast<AliAODEvent*>(InputEvent())) {
126 AliFatal(Form(
"%s: Container with same name %s already present. Aborting", GetName(),
fOutCaloName.Data()));
141 if (!clusters)
return kFALSE;
146 AliVCluster *clus = 0;
147 clusters->ResetCurrentID();
149 if (!clus->IsEMCAL())
continue;
154 clus->GetPosition(pos);
170 clus->SetIsExotic(exResult);
174 clus->SetNonLinCorrEnergy(energy);
185 clus->GetPosition(pos);
193 UInt_t rejectionReason = 0;
198 AliESDCaloCluster *ec =
dynamic_cast<AliESDCaloCluster*
>(clus);
200 oc =
new ((*fOutClusters)[clusCount]) AliESDCaloCluster(*ec);
203 AliAODCaloCluster *ac =
dynamic_cast<AliAODCaloCluster*
>(clus);
205 oc =
new ((*fOutClusters)[clusCount]) AliAODCaloCluster(*ac);
208 oc->SetE(clus->GetNonLinCorrEnergy());
209 oc->SetNonLinCorrEnergy(clus->GetNonLinCorrEnergy());
210 oc->SetHadCorrEnergy(0);
Bool_t Run()
Run function. This is the core function of the analysis and contains the user code. Therefore users have to implement this function.
Bool_t IsRejectExoticCluster() const
Bool_t fEsdMode
pointer to reco utils
Base task in the EMCAL framework.
Bool_t fLocalInitialized
whether or not the task has been already initialized
TH2F * fEtaPhiDistBefore
!eta/phi distribution before
Bool_t IsExoticCluster(const AliVCluster *cluster, AliVCaloCells *cells, Int_t bc=0)
void UserCreateOutputObjects()
void SwitchOffRejectExoticCell()
void Print(const Option_t *) const
AliClusterContainer * GetClusterContainer(Int_t i=0) const
Get cluster container attached to this task.
virtual Bool_t AcceptCluster(Int_t i, UInt_t &rejectionReason) const
Int_t GetNonLinearityFunction() const
AliVCluster * GetNextCluster()
TH2F * fEnergyTimeHistAfter
!energy/time distribution after
AliVCaloCells * fCaloCells
!cells
AliEMCALRecoUtils * fRecoUtils
name of output clusters; if empty updates old clusters instead of creating a new collection ...
TH1F * fEnergyDistBefore
!energy distribution before
AliEmcalList * fOutput
!output list
TH1F * fEnergyDistAfter
!energy distribution after
Bool_t IsRejectExoticCell() const
Bool_t fCreateHisto
whether or not create histograms
void SetMakeGeneralHistograms(Bool_t g)
virtual void ExecOnce()
Perform steps needed to initialize the analysis.
void ExecOnce()
Perform steps needed to initialize the analysis.
TH1F * fEnergyExoticClusters
!energy of exotic clusters
void UserCreateOutputObjects()
Main initialization function on the worker.
TH2F * fEtaPhiDistAfter
!eta/phi distribution after
Float_t CorrectClusterEnergyLinearity(AliVCluster *clu)
Container structure for EMCAL clusters.
void InitNonLinearityParam()
TClonesArray * fOutClusters
!output cluster collection
TH2F * fEnergyTimeHistBefore
!energy/time distribution before
virtual ~AliEmcalClusterMaker()
void SwitchOnRejectExoticCell()