*
* @brief
*
- * @ingroup pwg2_forward_corr
+ * @ingroup pwglf_forward_corr
*
*/
#include <TObject.h>
#include <TObjArray.h>
#include <TAxis.h>
class TH2D;
+class TH1D;
/**
* This class contains the acceptance correction due to dead channels
*
* These are generated from the on-line dead channel calculations
*
- * @ingroup pwg2_forward_corr
+ * @ingroup pwglf_forward_corr
*/
class AliFMDCorrAcceptance : public TObject
{
* @return The correction @f$ a_{r,v}@f$
*/
TH2D* GetCorrection(UShort_t d, Char_t r, UShort_t b) const;
+ /**
+ * Get the phi acceptance
+ *
+ * @param d Detector
+ * @param r ring
+ * @param v vertex
+ *
+ * @return
+ */
+ TH1D* GetPhiAcceptance(UShort_t d, Char_t r, Double_t v) const;
+ /**
+ * Get the phi acceptance
+ *
+ * @param d Detector
+ * @param r ring
+ * @param b vertex bin number
+ *
+ * @return
+ */
+ TH1D* GetPhiAcceptance(UShort_t d, Char_t r, UShort_t b) const;
/**
* Get the vertex axis used
*
* @return vertex axis
*/
const TAxis& GetVertexAxis() const { return fVertexAxis; }
+ /**
+ * @return true if the overflow bins along eta are set to the ratio
+ * of OK strips to all strips for a given eta bin.
+ */
+ Bool_t HasOverflow() const { return fHasOverflow; }
/* @} */
/**
* @param max Maximum
*/
void SetVertexAxis(Int_t nBins, Double_t min, Double_t max);
+ /**
+ * Set that we have (or not) the overflow bin present
+ *
+ * @param present If true, assume the overflow bins are filled
+ */
+ void SetHasOverflow(Bool_t present=true) { fHasOverflow = present; }
/* @} */
/**
* @param option
*/
void Print(Option_t* option="R") const; //*MENU*
+ void ls(Option_t* option="") const; //*MENU*
+ // void Draw(Option_t* option="");
+ // void SaveAs(const Char_t* filename, Option_t* option="colz") const;
/* @} */
protected:
/**
/**
* Get the ring array corresponding to the specified ring
*
+ * @param m Array
* @param d Detector
* @param r Ring
*
* @return Pointer to ring array, or null in case of problems
*/
- TObjArray* GetRingArray(UShort_t d, Char_t r) const;
+ TObjArray* GetRingArray(const TObjArray& m, UShort_t d, Char_t r) const;
/**
* Get the ring array corresponding to the specified ring
*
+ * @param m Array
* @param d Detector
* @param r Ring
*
* @return Pointer to ring array, or newly created container
*/
- TObjArray* GetOrMakeRingArray(UShort_t d, Char_t r);
+ TObjArray* GetOrMakeRingArray(TObjArray& m, UShort_t d, Char_t r) const;
+ TObject* GetObject(const TObjArray& m, UShort_t d,
+ Char_t r, UShort_t b) const;
+
+ void FillCache() const;
- TObjArray fRingArray; // Array of per-ring, per-vertex 2nd map
+ TObjArray fRingArray; // Array of per-ring, per-vertex 2d map
+ mutable TObjArray* fCache; //! Array of per-ring, per-vertex 1d factors
TAxis fVertexAxis; // The vertex axis
- ClassDef(AliFMDCorrAcceptance,1); // Acceptance correction due to dead areas
+ Bool_t fHasOverflow; // Whether we have the overflow bin set
+ ClassDef(AliFMDCorrAcceptance,2); // Acceptance correction due to dead areas
};
//____________________________________________________________________