// Main methods
void BadClusterHistograms(AliVCluster* clus, const TObjArray *caloClusters, AliVCaloCells * cells,
- Int_t absIdMax, Double_t maxCellFraction, Float_t eCrossFrac,
- Double_t tmax, Double_t timeAverages[2]);
+ Int_t absIdMax, Double_t maxCellFraction, Float_t eCrossFrac, Double_t tmax);
void CalculateAverageTime(AliVCluster *clus, AliVCaloCells *cells, Double_t timeAverages[2]);
void CellInClusterPositionHistograms(AliVCluster* cluster);
- void ClusterAsymmetryHistograms(AliVCluster* clus, Int_t absIdMax, const Bool_t goodCluster );
+ void ClusterAsymmetryHistograms(AliVCluster* clus, Int_t absIdMax, Bool_t goodCluster );
void ClusterHistograms(AliVCluster* cluster, const TObjArray *caloClusters, AliVCaloCells * cells,
- Int_t absIdMax, Double_t maxCellFraction, Float_t eCrossFrac,
- Double_t tmax, Double_t timeAverages[2]);
+ Int_t absIdMax, Double_t maxCellFraction, Float_t eCrossFrac, Double_t tmax);
void ClusterLoopHistograms(const TObjArray * clusters, AliVCaloCells * cells);
void MCHistograms();
- void MCHistograms(const TLorentzVector mom, Int_t pdg);
-
void WeightHistograms(AliVCluster *clus, AliVCaloCells* cells);
// Setters and Getters
Float_t GetPHOSCellAmpMin() const { return fPHOSCellAmpMin ; }
void SetPHOSCellAmpMin (Float_t amp) { fPHOSCellAmpMin = amp ; }
-
+
+ Float_t GetInvMassMinECut() const { return fMinInvMassECut ; }
+ void SetInvMassMinECut(Float_t cut) { fMinInvMassECut = cut ; }
+
TString GetCalorimeter() const { return fCalorimeter ; }
void SetCalorimeter(TString calo) { fCalorimeter = calo ; }
void SwitchOnFillAllPositionHistogram2() { fFillAllPosHisto2 = kTRUE ; }
void SwitchOffFillAllPositionHistogram2() { fFillAllPosHisto2 = kFALSE ; }
- void SwitchOnFillAllTH12Histogram() { fFillAllTH12 = kTRUE ; }
- void SwitchOffFillAllTH12Histogram() { fFillAllTH12 = kFALSE ; }
-
void SwitchOnFillAllTH3Histogram() { fFillAllTH3 = kTRUE ; }
void SwitchOffFillAllTH3Histogram() { fFillAllTH3 = kFALSE ; }
Bool_t fFillAllCellTimeHisto; // Fill all cell time histo
Bool_t fFillAllPosHisto; // Fill all the position related histograms
Bool_t fFillAllPosHisto2; // Fill all the position related histograms 2
- Bool_t fFillAllTH12 ; // Fill simple histograms which information is already in TH3 histograms
Bool_t fFillAllTH3 ; // Fill TH3 histograms
Bool_t fFillAllTMHisto ; // Fill track matching histograms
Bool_t fFillAllPi0Histo ; // Fill invariant mass histograms
//Cuts
Double_t fTimeCutMin ; // Remove clusters/cells with time smaller than this value, in ns
Double_t fTimeCutMax ; // Remove clusters/cells with time larger than this value, in ns
+ Float_t fCellAmpMin; // amplitude Threshold on calorimeter cells, set at execution time
Float_t fEMCALCellAmpMin; // amplitude Threshold on emcal cells
Float_t fPHOSCellAmpMin ; // amplitude Threshold on phos cells
+ Float_t fMinInvMassECut; // Minimum energy cut value for clusters entering the invariant mass calculation
+
// Exotic studies
Float_t fExoNECrossCuts ; // Number of ecross cuts
Float_t fExoECrossCuts[10]; // List of ecross cuts
//Calo Cells
TH1F * fhNCells; //! Number of towers/crystals with signal
+ TH1F * fhNCellsCutAmpMin; //! Number of towers/crystals with signal, with min amplitude
TH1F * fhAmplitude; //! Amplitude measured in towers/crystals
- TH2F * fhAmpId; //! Amplitude measured in towers/crystals vs id of tower.
+ TH2F * fhAmpId; //! Amplitude measured in towers/crystals vs id of tower.
TH3F * fhEtaPhiAmp; //! eta vs phi vs amplitude, cells
TH1F * fhTime; //! Time measured in towers/crystals
TH2F * fhTimeVz; //! Time measured in towers/crystals vs vertex z component, for E > 0.5
TH2F * fhTimeId; //! Time vs Absolute cell Id
- TH2F * fhTimeAmp; //! Time vs Amplitude
+ TH2F * fhTimeAmp; //! Time vs Amplitude
- TH2F * fhCellECross; //! 1 - Energy in cross around cell / cell energy
+ TH2F * fhAmpIdLowGain; //! Amplitude measured in towers/crystals vs id of tower, low gain towers
+ TH2F * fhTimeIdLowGain; //! Time vs Absolute cell Id, low gain
+ TH2F * fhTimeAmpLowGain; //! Time vs Amplitude, low gain
+
+ TH2F * fhCellECross; //! 1 - Energy in cross around cell / cell energy
//Calorimeters Correlation
TH2F * fhCaloCorrNClusters; //! EMCAL vs PHOS, number of clusters
TH2F * fhGridCells ; //! Cells ordered in column/row for different module, Reco
TH2F * fhGridCellsE ; //! Cells ordered in column/row for different module, weighted with energy, Reco
TH2F * fhGridCellsTime ; //! Cells ordered in column/row for different module, weighted with time, Reco
+ TH2F * fhGridCellsLowGain ; //! Cells ordered in column/row for different module, Reco, low gain
+ TH2F * fhGridCellsELowGain ; //! Cells ordered in column/row for different module, weighted with energy, Reco, low gain
+ TH2F * fhGridCellsTimeLowGain ; //! Cells ordered in column/row for different module, weighted with time, Reco, low gain
TH2F ** fhTimeAmpPerRCU; //! Time vs Amplitude measured in towers/crystals different RCU
TH2F ** fhIMMod; //! cluster pairs invariant mass, different module,
TH2F * fhLambda0ForW0MC[14][5]; //! L0 for 7 defined w0= 3, 3.5 ... 6, depending on the particle of origin
//TH2F * fhLambda1ForW0MC[7][5]; //! L1 for 7 defined w0= 3, 3.5 ... 6, depending on the particle of origin
+ TH2F * fhECellTotalRatio; //! e cell / e total vs e total
+ TH2F * fhECellTotalLogRatio; //! log (e cell / e total) vs e total
+ TH2F ** fhECellTotalRatioMod; //! e cell / e total vs e total, per SM
+ TH2F ** fhECellTotalLogRatioMod; //! log (e cell / e total) vs e total, per SM
+
// Exotic studies
TH2F * fhExoNCell [10][5] ; //! Number of cells per cluster for different cuts
//Pure MC
- enum mcTypes {kmcPhoton = 0, kmcPi0 = 1, kmcEta = 2, kmcElectron = 3, kmcNeHadron = 4, kmcChHadron = 5 };
-
- TH2F * fhRecoMCE[6][2] ; //! E generated particle vs reconstructed E
- TH2F * fhRecoMCPhi[6][2] ; //! phi generated particle vs reconstructed phi
- TH2F * fhRecoMCEta[6][2] ; //! eta generated particle vs reconstructed Eta
- TH2F * fhRecoMCDeltaE[6][2] ; //! Gen-Reco E generated particle vs reconstructed E
- TH2F * fhRecoMCRatioE[6][2] ; //! Reco/Gen E generated particle vs reconstructed E
- TH2F * fhRecoMCDeltaPhi[6][2]; //! Gen-Reco phi generated particle vs reconstructed E
- TH2F * fhRecoMCDeltaEta[6][2]; //! Gen-Reco eta generated particle vs reconstructed E
-
- TH1F * fhGenMCE[4] ; //! pt of primary particle
+ enum mcTypes {kmcPhoton = 0, kmcPhotonConv = 1, kmcPi0 = 2, kmcEta = 3,
+ kmcElectron = 4, kmcNeHadron = 5, kmcChHadron = 6 };
+
+ TH2F * fhRecoMCE[7][2] ; //! E generated particle vs reconstructed E
+ TH2F * fhRecoMCPhi[7][2] ; //! phi generated particle vs reconstructed phi
+ TH2F * fhRecoMCEta[7][2] ; //! eta generated particle vs reconstructed Eta
+ TH2F * fhRecoMCDeltaE[7][2] ; //! Gen-Reco E generated particle vs reconstructed E
+ TH2F * fhRecoMCRatioE[7][2] ; //! Reco/Gen E generated particle vs reconstructed E
+ TH2F * fhRecoMCDeltaPhi[7][2]; //! Gen-Reco phi generated particle vs reconstructed E
+ TH2F * fhRecoMCDeltaEta[7][2]; //! Gen-Reco eta generated particle vs reconstructed E
+
+ TH1F * fhGenMCE [4] ; //! pt of primary particle
+ TH1F * fhGenMCPt[4] ; //! pt of primary particle
TH2F * fhGenMCEtaPhi[4] ; //! eta vs phi of primary particle
- TH1F * fhGenMCAccE[4] ; //! pt of primary particle, in acceptance
+ TH1F * fhGenMCAccE [4] ; //! pt of primary particle, in acceptance
+ TH1F * fhGenMCAccPt[4] ; //! pt of primary particle, in acceptance
TH2F * fhGenMCAccEtaPhi[4] ; //! eta vs phi of primary particle, in acceptance
TH2F * fhEMVxyz ; //! Electromagnetic particle production vertex
AliAnaCalorimeterQA & operator = (const AliAnaCalorimeterQA & qa) ;//cpy assignment
AliAnaCalorimeterQA( const AliAnaCalorimeterQA & qa) ; // cpy ctor
- ClassDef(AliAnaCalorimeterQA,27)
+ ClassDef(AliAnaCalorimeterQA,29)
} ;