+
+ /// Whether or not we can make histograms.
+ virtual Bool_t CanHistogram() const { return kFALSE; }
+
+ /// Select a dimension to be histogrammed (if CanHistogram==kTRUE) only
+ virtual void MakeHistogramForDimension(Int_t /* index */, Bool_t /* value */,
+ Double_t /*xmin*/=0.0, Double_t /*xmax*/=4096.0) { }
+
+ /// Get histogram range
+ virtual void HistogramRange(Double_t& xmin, Double_t& xmax) const { xmin=xmax=0.0; }
+
+ /// Whether we have histograms for a given dimension, or not
+ virtual Bool_t IsHistogrammed(Int_t /*dim*/) const { return kFALSE; }
+
+ /// Get sparse histogram for a given channel
+ virtual AliMUONSparseHisto* GetChannelSparseHisto(Int_t detElemId, Int_t manuId,
+ Int_t manuChannel, Int_t dim=0) const = 0;
+
+ /// Get sparse histogram for a given manu (valid only if IsChannelLevelEnabled()==kFALSE and IsManuLevelEnabled()==kTRUE)
+ virtual AliMUONSparseHisto* GetManuSparseHisto(Int_t detElemId, Int_t manuId,
+ Int_t dim=0) const = 0;
+
+ /// To allow merging of different objects
+ virtual Long64_t Merge(TCollection* list) = 0;
+
+ /// Disable recording of information at the channel level
+ virtual void DisableChannelLevel() = 0;
+
+ /// Whether we store values at the channel level
+ virtual Bool_t IsChannelLevelEnabled() const = 0;
+
+ /// Disable recording of information at the manu level (and below)
+ virtual void DisableManuLevel() = 0;
+
+ /// Whether we store values at the channel level
+ virtual Bool_t IsManuLevelEnabled() const = 0;
+
+ /// Whether we store values at the bus patch level or not
+ virtual Bool_t IsBusPatchLevelEnabled() const = 0;
+
+ /// Whether we store values at the PCB level or not
+ virtual Bool_t IsPCBLevelEnabled() const = 0;