// @(#)$Id: hshowerhitIPU.h,v 1.2 2003-11-21 15:07:28 halo Exp $
//*-- Authors : Marcin Jaskula, Jerzy Pietraszko 11/10/2002
//            : code taken from HShowerCalIPU

#ifndef HShowerHitIPU_H
#define HShowerHitIPU_H
#pragma interface

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

#include "hlocateddataobject.h"

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

class HShowerHitIPU : public HLocatedDataObject
{
public:
    HShowerHitIPU(void)                 { clear();              }

    inline Int_t  clear();
    Byte_t   getCharge() const          { return m_bCharge;     }
    void     setCharge(Byte_t bCharge)  { m_bCharge = bCharge;  }

    Char_t   getSector(void)            { return m_nSector;     }
    Char_t   getRow(void)               { return m_nRow;        }
    Char_t   getCol(void)               { return m_nCol;        }

    void     setSector(Char_t s)        { m_nSector = s;        }
    void     setRow(Char_t r)           { m_nRow = r;           }
    void     setCol(Char_t c)           { m_nCol = c;           }

    UShort_t getSum0() const            { return m_nSum0;       }
    void     setSum0(UShort_t nSum0)    { m_nSum0 = nSum0;      }
    UShort_t getSum1() const            { return m_nSum1;       }
    void     setSum1(UShort_t nSum1)    { m_nSum1 = nSum1;      }
    UShort_t getSum2() const            { return m_nSum2;       }
    void     setSum2(UShort_t nSum2)    { m_nSum2 = nSum2;      }

    inline void     setSum(Int_t i, UShort_t nSum);
    inline UShort_t getSum(Int_t i);

    Byte_t   getFlag() const            { return m_bFlag;       }
    void     setFlag(Byte_t bFlag)      { m_bFlag = bFlag;      }

    Int_t    calcAddress(void);
    inline Int_t    getNLocationIndex(void);
    inline Int_t    getLocationIndex(Int_t i);

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

private:

    Char_t   m_nSector;  // position of the pad
    Char_t   m_nRow;
    Char_t   m_nCol;

    Byte_t   m_bCharge;  // charge on the pad
    UShort_t m_nSum0;    // sums from 9 pads around
    UShort_t m_nSum1;
    UShort_t m_nSum2;

    Byte_t   m_bFlag;    // logical sum of positive conditions

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

    ClassDef(HShowerHitIPU, 1) //ROOT extension
};
// -----------------------------------------------------------------------------

inline Int_t HShowerHitIPU::clear()
{
    m_bCharge = 0;
    m_nSum0   = 0;
    m_nSum1   = 0;
    m_nSum2   = 0;

    m_nSector = -1;
    m_nRow    = -1;
    m_nCol    = -1;

    m_bFlag   = 0;

    return 1;
}
// -----------------------------------------------------------------------------

inline void HShowerHitIPU::setSum(Int_t i, UShort_t nSum)
{
    switch(i)
    {
        case 0: m_nSum0 = nSum; break;
        case 1: m_nSum1 = nSum; break;
        case 2: m_nSum2 = nSum; break;
        default: break;
    }

    Warning("setSum", "index %d out of bounds", i);
}
// -----------------------------------------------------------------------------

inline UShort_t HShowerHitIPU::getSum(Int_t i)
{
    switch(i)
    {
        case 0: return m_nSum0;
        case 1: return m_nSum1;
        case 2: return m_nSum2;
        default: break;
    }

    Warning("getSum", "index %d out of bounds", i);

    return 0;
}
// -----------------------------------------------------------------------------

inline Int_t HShowerHitIPU::getNLocationIndex(void)
{
    return 4;
}

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

inline Int_t HShowerHitIPU::getLocationIndex(Int_t i)
{
    switch(i)
    {
        case 0 : return getSector(); break;
        case 1 : return 0; break;
        case 2 : return getRow(); break;
        case 3 : return getCol(); break;
    }

    return -1;
}

#endif

Last change: Sat May 22 13:13:45 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.