//-- Author: Gustavo Conesa (INFN-LNF)
// --- Root system ---
+class TH3F;
class TH2F;
class TH1F;
// --- Analysis system ---
+class AliPHOSGeoUtils;
+class AliEMCALGeoUtils;
+class AliESDCaloCluster;
+class AliAODCaloCluster;
+
#include "AliAnaPartCorrBaseClass.h"
class AliAnaCalorimeterQA : public AliAnaPartCorrBaseClass {
AliAnaCalorimeterQA() ; // default ctor
AliAnaCalorimeterQA(const AliAnaCalorimeterQA & g) ; // cpy ctor
AliAnaCalorimeterQA & operator = (const AliAnaCalorimeterQA & g) ;//cpy assignment
- virtual ~AliAnaCalorimeterQA() {;} //virtual dtor
+ virtual ~AliAnaCalorimeterQA() ; //virtual dtor
- void ClusterHistograms(const TLorentzVector mom, const Int_t nCaloCellsPerCluster,
+ void ClusterHistograms(const TLorentzVector mom, const Int_t nCaloCellsPerCluster, const Int_t nModule,
const Int_t nTracksMatched, const TObject* track,
const Int_t * labels, const Int_t nLabels);
void SwitchOnPlotsMaking() {fMakePlots = kTRUE;}
void SwitchOffPlotsMaking() {fMakePlots = kFALSE;}
+ void SwitchOnCalorimetersCorrelation() {fCorrelateCalos = kTRUE;}
+ void SwitchOffCalorimetersCorrelation() {fCorrelateCalos = kFALSE;}
+ void CorrelateCalorimeters(TRefArray* caloClusters);
+
void Terminate(TList * outputList);
void ReadHistograms(TList * outputList); //Fill histograms with histograms in ouput list, needed in Terminate.
+ void SetEMCALGeometryName(TString name) { fEMCALGeoName = name ; }
+ TString EMCALGeometryName() const { return fEMCALGeoName ; }
+
+ Int_t GetModuleNumber(AliESDCaloCluster * cluster);
+ Int_t GetModuleNumber(AliAODCaloCluster * cluster);
+ Int_t GetModuleNumberCellIndexes(const Int_t absId, Int_t & icol, Int_t & irow);
+
+ void SetNumberOfModules(Int_t nmod) {fNModules = nmod;}
+
private:
TString fCalorimeter ; //Calorimeter selection
TString fStyleMacro ; //Location of macro for plots style
Bool_t fMakePlots ; //Print plots
+ Bool_t fCorrelateCalos; //Correlate PHOS/EMCAL clusters
+ AliPHOSGeoUtils * fPHOSGeo ; //! PHOS geometry pointer
+ AliEMCALGeoUtils * fEMCALGeo ; //! EMCAL geometry pointer
+ TString fEMCALGeoName; // Name of geometry to use.
+ Int_t fNModules ; // Number of EMCAL/PHOS modules, set as many histogras as modules
//Histograms
//CaloClusters
TH1F * fhPhi; //! phi distribution, Reco
TH1F * fhEta; //! eta distribution, Reco
TH2F * fhEtaPhi ; //! eta vs phi, Reco
+ TH3F * fhEtaPhiE ; //! eta vs phi vs E, Reco
TH1F * fhECharged ; //! E distribution, Reco, matched with track
TH1F * fhPtCharged ; //! pT distribution, Reco, matched with track
TH1F * fhPhiCharged; //! phi distribution, Reco, matched with track
TH2F * fh2Phi; //! phi distribution, Reco vs MC
TH2F * fh2Eta; //! eta distribution, Reco vs MC
TH2F * fhIM; //! cluster pairs invariant mass
+ TH2F * fhIMCellCut; //! cluster pairs invariant mass, n cells > 1 per cluster
TH2F * fhAsym; //! cluster pairs invariant mass
TH2F * fhNCellsPerCluster; //! N cells per cluster
TH1F * fhNClusters; //! Number of clusters
TH1F * fhNCells; //! Number of towers/crystals with signal
TH1F * fhAmplitude; //! Amplitude measured in towers/crystals
+ //Calorimeters Correlation
+ TH2F * fhCaloCorrNClusters; // EMCAL vs PHOS, number of clusters
+ TH2F * fhCaloCorrEClusters; // EMCAL vs PHOS, total measured cluster energy
+ TH2F * fhCaloCorrNCells; // EMCAL vs PHOS, number of cells
+ TH2F * fhCaloCorrECells; // EMCAL vs PHOS, total measured cell energy
+
+ //Module histograms
+ TH1F ** fhEMod ; //! E distribution for different module, Reco
+ TH1F ** fhNClustersMod ; //! Number of clusters for different module, Reco
+ TH2F ** fhNCellsPerClusterMod ; //! N cells per clusters different module, Reco
+ TH1F ** fhNCellsMod ; //! Number of towers/crystals with signal different module, Reco
+ TH2F ** fhGridCellsMod ; //! Cells ordered in column/row for different module, Reco
+ TH2F ** fhGridCellsEMod ; //! Cells ordered in column/row for different module, weighted with energy, Reco
+ TH1F ** fhAmplitudeMod ; //! Amplitude measured in towers/crystals different module, Reco
+ TH2F ** fhIMMod; //! cluster pairs invariant mass, different module,
+ TH2F ** fhIMCellCutMod; //! cluster pairs invariant mass, n cells > 1 per cluster, different module
+
//MC
TH1F *fhGenGamPt ; // pt of primary gamma
TH1F *fhGenGamEta ; // eta of primart gamma
TH2F *fhMCChHad1pOverER02; //! p/E for track-cluster matches, dR > 0.2, MC charged hadrons
TH2F *fhMCNeutral1pOverER02; //! p/E for track-cluster matches, dR > 0.2, MC neutral
- ClassDef(AliAnaCalorimeterQA,1)
+ ClassDef(AliAnaCalorimeterQA,3)
} ;