#ifndef HShowerHistCell_H
#define HShowerHistCell_H
#pragma interface

#include "hdataobject.h"
#include "hparset.h"

class TH3S;
class TH2F;
class HShowerCalPar;
class HShowerCalParCell;
class HShowerGeometry;

enum enum_HSHC_Methods
{
    HSHC_CAL_TEST = 0,
    HSHC_CAL_ELECT,
    HSHC_RUN_SIGMA,
    HSHC_RUN_THRESHOLD,
    HSHC_CAL_SIGMA,
    HSHC_CAL_THRESHOLD,

    HSHC_RUN_INTEGRATE,
    HSHC_CAL_INTEGRATE,

    HSHC_MAX
};

extern const Char_t* g_cpstr_HSHC_Methods[];

//------------------------------------------------------------------------------

#define MAX_OFFSET          (-255.0f)
#define DEF_CHANNEL_10pC    (50.0f)

//------------------------------------------------------------------------------

class HShowerHistCell : public TObject
{
public:
    HShowerHistCell();
    HShowerHistCell(Int_t nSect, Int_t nMod, Int_t nRow, Int_t nCol);
   ~HShowerHistCell();

    Bool_t  reset();
    Bool_t  fill(Int_t nRow, Int_t nCol, Int_t nVal);
    Bool_t  draw(Int_t nRow, Int_t nCol, Option_t* opt="");
    Bool_t  book();
    Bool_t  book(Int_t nRows, Int_t nCols);
    void    deleteHist();

    void    calculate(Int_t iEvents, HShowerCalPar* pCalPar, Int_t iMethod,
                                Float_t fParam1, Float_t fParam2);

    TH3S*   getHistogram()     { return m_pHist;   }
    void    writeHistogram();

    Char_t  getSector(void)   { return m_nSector; }
    Char_t  getModule(void)   { return m_nModule; }
    Char_t  getRows(void)     { return m_nRows;   }
    Char_t  getCols(void)     { return m_nCols;   }

    void    setSector(Char_t s) { m_nSector = s;    }
    void    setModule(Char_t m) { m_nModule = m;    }
    void    setRows(Char_t r)   { m_nRows   = r;    }
    void    setCols(Char_t c)   { m_nCols   = c;    }


    void    setChannel10pC(Float_t f)   { m_fChannel10pC = f;       }
    Float_t getChannel10pC(void)        { return m_fChannel10pC;    }

    void    setGeometry(HShowerGeometry* pGeom) { m_pGeom = pGeom;}
    HShowerGeometry* getGeometry()              { return m_pGeom;}

private:
    void    getName(Char_t* name, Int_t nInt);
    void    getTitle(Char_t* title, Int_t nInt);

    void    fillData(Int_t nRow, Int_t nCol, Int_t nBins, Int_t * pData);
    Int_t   getMax(void);
    Float_t getMean(Int_t nMin, Int_t nMax, Int_t nThreshold);
    Float_t getSigma(Float_t fMean, Int_t nMin, Int_t nMax, Int_t nThreshold);

    void  makeRunFromCal(HShowerCalParCell* pCell);

    // -------------------------------------------------------------------------

    TH3S   *m_pHist;  //!
    TH2F   *m_pSlopeHist;  //!
    TH2F   *m_pOffsetHist;  //!

    Char_t  m_nSector;
    Char_t  m_nModule;

    Char_t  m_nRows;
    Char_t  m_nCols;

    Int_t   m_nDataSize; //!
    Int_t*  m_pData; //!

    Int_t   m_iEvents; //!

    Float_t m_fChannel10pC;
    HShowerGeometry *m_pGeom; //!Pointer to geometry parameters container

    // -------------------------------------------------------------------------

    ClassDef(HShowerHistCell, 2) //ROOT extension

    void calTest(HLocation &loc, HShowerCalParCell *pCell,
                                 Float_t fParam1, Float_t fParam2);
    void calElect(HLocation &loc,HShowerCalParCell* pCell,
                                 Float_t fParam1, Float_t fParam2);
    void runSigma(HLocation &loc,HShowerCalParCell* pCell,
                                 Float_t fParam1, Float_t fParam2);
    void runThreshold(HLocation &loc,HShowerCalParCell* pCell,
                                 Float_t fParam1, Float_t fParam2);
    void runIntegrate(HLocation &loc,HShowerCalParCell* pCell,
                                 Float_t fParam1, Float_t fParam2);
};

#endif

Last change: Sat May 22 13:13:36 2010
Last generated: 2010-05-22 13:13

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.