class AliAnalysisTaskEMCALTriggerQA : public AliAnalysisTaskSE
{
public:
- AliAnalysisTaskEMCALTriggerQA(); // default constructor
AliAnalysisTaskEMCALTriggerQA(const char *name); // named constructor
void InitGeometry();
void SetGeometryName(TString name) { fGeoName = name ; }
-
+ void SetEventTriggerL1Bit(Int_t ega, Int_t eje)
+ { fBitEGA = ega ; fBitEJE = eje; }
+
void AccessOADB() ;
void SwitchOnEMCALOADB() { fAccessOADB = kTRUE ; }
void SwitchOffEMCALOADB() { fAccessOADB = kFALSE ; }
+
+ void SwitchOnMCData() { fMCData = kTRUE ; }
+ void SwitchOffMCData() { fMCData = kFALSE ; }
+
+ void SwitchOnV0SignalHistograms() { fFillV0SigHisto = kTRUE ; }
+ void SwitchOffV0SignalHistograms() { fFillV0SigHisto = kFALSE ; }
+
+ void SwitchOnClusterAcceptanceHistograms() { fFillClusAcceptHisto = kTRUE ; }
+ void SwitchOffClusterAcceptanceHistograms() { fFillClusAcceptHisto = kFALSE ; }
void SetOADBFilePath(TString path) { fOADBFilePath = path ; }
void SetSTUFEERatioHistogramsRange (Int_t nbins, Float_t max) { fNBinsSTUFEERatio = nbins; fMaxSTUFEERatio = max ; }
void SetSTUTRURatioHistogramsRange (Int_t nbins, Float_t max) { fNBinsSTUTRURatio = nbins; fMaxSTUFEERatio = max ; }
void SetClusterEHistogramsRange (Int_t nbins, Float_t max) { fNBinsClusterE = nbins; fMaxClusterE = max ; }
-
+ void SetClusterEtaHistogramsRange (Int_t nbins, Float_t max) { fNBinsClusterEta = nbins; fMaxClusterEta = max ; }
+ void SetClusterPhiHistogramsRange (Int_t nbins, Float_t max, Float_t min)
+ { fNBinsClusterPhi = nbins; fMaxClusterPhi = max ; fMinClusterPhi = min ; }
+
private:
TList *fOutputList; //! Output list
Float_t fV0A; // V0 A signal
Float_t fV0C; // V0 C signal
+ Bool_t fFillV0SigHisto; // V0 signal creation and fill
+ Bool_t fFillClusAcceptHisto; // Fill eta/phi distributions
+ Bool_t fMCData; // Simulation On/Off
+
// Event by event trigger recognition bit
Bool_t fEventMB ; // Bit for MB events
Bool_t fEventL0 ; // Bit for L0 events
TProfile2D *fhFORMeanAmp; //! Mean FastOR(FEE) signal per Row and Column
TProfile2D *fhL0MeanAmp; //! Mean FastOR(TRU) signal per Row and Column
TProfile2D *fhL1MeanAmp; //! Mean FastOR(STU) signal per Row and Column
- TH1F *fhV0[10]; //! V0 distribution for a triggered event
TH2F *fhL1GPatchMax; //! FOR of max. amplitude patch with L1 Gamma patch associated
TH2F *fhL1G2PatchMax; //! FOR of max. amplitude patch with L1 Gamma patch associated
TH2F *fhL1JPatchMax; //! FOR of max. amplitude patch with L1 Jet patch associated
TH2F *fhL1J2PatchMax; //! FOR of max. amplitude patch with L1 Jet patch associated
// Cluster vs trigger histograms
- enum triggerType{kMBTrig = 0, kL0Trig = 1, kL1GammaTrig = 2, kL1GammaTrig2 = 3, kL1JetTrig = 4, kL1JetTrig2 = 5, kL1GammaOnlyTrig = 6, kL1JetOnlyTrig = 7, kCentralTrig = 8, kSemiCentralTrig = 9 };
+ enum triggerType{ kMBTrig = 0, kL0Trig = 1,
+ kL1GammaTrig = 2, kL1GammaTrig2 = 3,
+ kL1JetTrig = 4, kL1JetTrig2 = 5,
+ kL1GammaOnlyTrig = 6, kL1JetOnlyTrig = 7,
+ kL1Gamma2OnlyGammaTrig = 8, kL1Jet2OnlyJetTrig = 9,
+ kCentralTrig = 10, kSemiCentralTrig = 11 };
TH1F *fhClusMBPure[3]; //! Clusters E distribution for pure MB trigger
TH1F *fhClusMaxMBPure[3]; //! Maximum E Cluster per event distribution for pure MB trigger
- TH1F *fhClus[10]; //! Clusters E distribution for a trigger
- TH1F *fhClusMax[10]; //! Maximum E Cluster per event distribution for MB trigger
+ static const int fgkTriggerCombi = 12; // total number of trigger combinations defined above
+
+ TH1F *fhClus [fgkTriggerCombi]; //! Clusters E distribution for a trigger
+ TH1F *fhClusMax[fgkTriggerCombi]; //! Maximum E Cluster per event distribution for MB trigger
- TH2F *fhClusCen[10]; //! Clusters Centrality vs E distribution for a trigger
- TH2F *fhClusCenMax[10]; //! Maximum E Cluster vs Centrality per event distribution for a trigger
+ TH2F *fhClusCen [fgkTriggerCombi]; //! Clusters Centrality vs E distribution for a trigger
+ TH2F *fhClusCenMax[fgkTriggerCombi]; //! Maximum E Cluster vs Centrality per event distribution for a trigger
- TH2F *fhClusV0[10]; //! Clusters V0 vs E distribution for a trigger
- TH2F *fhClusV0Max[10]; //! Maximum E Cluster vs Centrality per event distribution for a trigger
+ TH2F *fhClusV0 [fgkTriggerCombi]; //! Clusters V0 vs E distribution for a trigger
+ TH2F *fhClusV0Max[fgkTriggerCombi]; //! Maximum E Cluster vs Centrality per event distribution for a trigger
- TH2F *fhClusEta[10]; //! Clusters eta vs E distribution for a trigger
- TH2F *fhClusEtaMax[10]; //! Maximum E Cluster vs Eta per event distribution for a trigger
+ TH2F *fhClusEta [fgkTriggerCombi]; //! Clusters eta vs E distribution for a trigger
+ TH2F *fhClusEtaMax[fgkTriggerCombi]; //! Maximum E Cluster vs Eta per event distribution for a trigger
- TH2F *fhClusPhi[10]; //! Clusters Phi vs E distribution for a trigger
- TH2F *fhClusPhiMax[10]; //! Maximum E Cluster vs Phi per event distribution for a trigger
+ TH2F *fhClusPhi [fgkTriggerCombi]; //! Clusters Phi vs E distribution for a trigger
+ TH2F *fhClusPhiMax[fgkTriggerCombi]; //! Maximum E Cluster vs Phi per event distribution for a trigger
- TH2F *fhClusEtaPhiHigh[10]; //! Clusters eta vs phi distribution for a trigger, energy above 10 GeV
- TH2F *fhClusEtaPhiHighCluMax[10]; //! Maximum E Cluster, Phi vs Eta per event distribution for a trigger, energy above 10 GeV
+ TH2F *fhClusEtaPhiHigh [fgkTriggerCombi]; //! Clusters eta vs phi distribution for a trigger, energy above fEtaPhiEnMin GeV
+ TH2F *fhClusEtaPhiHighCluMax[fgkTriggerCombi]; //! Maximum E Cluster, Phi vs Eta per event distribution for a trigger, energy above fEtaPhiEnMin GeV
- TH2F *fhClusEtaPhiHighCellMax[10]; //! Clusters maximum energy cell index eta vs phi distribution for MB trigger, energy above 10 GeV
- TH2F *fhClusEtaPhiHighCellMaxCluMax[10]; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for MB trigger, energy above 10 GeV
+ TH2F *fhClusEtaPhiHighCellMax [fgkTriggerCombi]; //! Clusters maximum energy cell index eta vs phi distribution for a trigger, energy above fEtaPhiEnMin GeV
+ TH2F *fhClusEtaPhiHighCellMaxCluMax[fgkTriggerCombi]; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for MB trigger, energy above fEtaPhiEnMin GeV
- TH2F *fhClusEtaPhiLow[10]; //! Clusters eta vs phi distribution for MB trigger, energy below 10 GeV
- TH2F *fhClusEtaPhiLowCluMax[10]; //! Maximum E Cluster, Phi vs Eta per event distribution for MB trigger, energy below 10 GeV
+ TH2F *fhClusEtaPhiLow [fgkTriggerCombi]; //! Clusters eta vs phi distribution for a trigger, energy below fEtaPhiEnMin GeV
+ TH2F *fhClusEtaPhiLowCluMax[fgkTriggerCombi]; //! Maximum E Cluster, Phi vs Eta per event distribution for MB trigger, energy below fEtaPhiEnMin GeV
- TH2F *fhClusEtaPhiLowCellMax[10]; //! Clusters maximum energy cell index eta vs phi distribution for MB trigger, energy below 10 GeV
- TH2F *fhClusEtaPhiLowCellMaxCluMax[10]; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for MB trigger, energy below 10 GeV
+ TH2F *fhClusEtaPhiLowCellMax [fgkTriggerCombi]; //! Clusters maximum energy cell index eta vs phi distribution for a trigger, energy below fEtaPhiEnMin GeV
+ TH2F *fhClusEtaPhiLowCellMaxCluMax[fgkTriggerCombi]; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for MB trigger, energy below fEtaPhiEnMin GeV
+
+ TH1F *fhV0[fgkTriggerCombi];//! V0 distribution for a triggered event
// Histograms bins
Float_t fMaxSTUTRURatio ; // Maximum value for STU/TRU ratios histograms
Int_t fNBinsClusterE ; // Number of bins for E cluster histograms
Float_t fMaxClusterE ; // Maximum value for E cluster histograms
-
+ Int_t fNBinsClusterPhi ; // Number of bins for Phi cluster histograms
+ Float_t fMaxClusterPhi ; // Maximum value for Phi cluster histograms
+ Float_t fMinClusterPhi ; // Maximum value for Phi cluster histograms
+ Int_t fNBinsClusterEta ; // Number of bins for Eta cluster histograms
+ Float_t fMaxClusterEta ; // Maximum value for Eta cluster histograms
+
+
//Constants needed by the class: EMCAL
- static const int fgkFALTRORows = AliEMCALGeoParams::fgkEMCALRows*(AliEMCALGeoParams::fgkEMCALModules-7)/2; // total number
+ //static const int fgkFALTRORows = AliEMCALGeoParams::fgkEMCALRows*(AliEMCALGeoParams::fgkEMCALModules-7)/2; // total number
+ static const int fgkFALTRORows = 60; //AliEMCALGeoParams::fgkEMCALSTURows-4; // total number, temporary, not considers DCal
// of fake altro rows in EMCAL
// (ALTRO channels in one SM times 5 SM divided by 2 per FALTRO)
- static const int fgkFALTROCols = AliEMCALGeoParams::fgkEMCALCols; // total number of fake altro columns in EMCAL
+ static const int fgkFALTROCols = AliEMCALGeoParams::fgkEMCALSTUCols; // total number of fake altro columns in EMCAL
// (ALTRO channels in one SM times 2 SM divided by 2 per FALTRO)
// cell, patch maps
AliAnalysisTaskEMCALTriggerQA& operator=(const AliAnalysisTaskEMCALTriggerQA&); // not implemented
- ClassDef(AliAnalysisTaskEMCALTriggerQA, 12);
+ ClassDef(AliAnalysisTaskEMCALTriggerQA, 14);
};
#endif