#ifndef HShowerCalPar_H
#define HShowerCalPar_H
#pragma interface
#include "hparset.h"
#include "hshowerparset.h"
#include "hlocation.h"
#include "hobjtable.h"
#include "hshowercalparcell.h"
class HParHadAsciiFileIo;
class TH2F;
enum enum_HSCPM_Var
{
HSCPV_SLOPE = 0,
HSCPV_OFFSET,
HSCPV_THRESHOLD,
HSCPV_GAIN,
HSCPV_MAX
};
enum enum_HSCPM_Mod
{
HSCPM_SET = 0,
HSCPM_ADD,
HSCPM_MULT
};
class HShowerCalPar : public HShowerParSet
{
public:
HShowerCalPar(const Char_t* name="ShowerCalPar",
const Char_t* title="Calibration parameters for Shower",
const Char_t* context="ShowerStandardCalib");
~HShowerCalPar();
void setSetup(Int_t nSectors, Int_t nModules,
Int_t nRows, Int_t nColumns);
Int_t getNSectors() { return m_nSectors; }
Int_t getNModules() { return m_nModules; }
Int_t getNRows() { return m_nRows; }
Int_t getNColumns() { return m_nColumns; }
void setCellClassName(const Char_t* pszName);
Char_t* getCellClassName();
HShowerCalParCell*& getSlot(HLocation &loc);
HShowerCalParCell* getObject(HLocation &loc);
Float_t getOffset(HLocation &loc);
Float_t getSlope(HLocation &loc);
Float_t getThreshold(HLocation &loc);
Float_t getGain(HLocation &loc);
void setOffset(HLocation &loc, Float_t fOffset);
void setSlope(HLocation &loc, Float_t fSlope);
void setThreshold(HLocation &loc, Float_t fThreshold);
void setGain(HLocation &loc, Float_t fGain);
virtual Bool_t initAscii(HParHadAsciiFileIo* pHadAsciiFile);
virtual Bool_t writeAscii(HParHadAsciiFileIo* pHadAsciiFile);
virtual Bool_t defaultInit();
void Print();
void setWriteForElectronic(Bool_t bWrite)
{ m_bWriteForElectronic = bWrite; }
Bool_t getWriteForElectronic(void)
{ return m_bWriteForElectronic; }
void setSlopesToValue(Float_t fSlope)
{ changeValues(HSCPV_SLOPE, HSCPM_SET, fSlope); }
void addValueToSlopes(Float_t fAdd)
{ changeValues(HSCPV_SLOPE, HSCPM_ADD, fAdd); }
void multiplySlopesByValue(Float_t fM)
{ changeValues(HSCPV_SLOPE, HSCPM_MULT, fM); }
void setOffsetsToValue(Float_t fOffset)
{ changeValues(HSCPV_OFFSET, HSCPM_SET, fOffset);}
void addValueToOffsets(Float_t fAdd)
{ changeValues(HSCPV_OFFSET, HSCPM_ADD, fAdd); }
void multiplyOffsetsByValue(Float_t fM)
{ changeValues(HSCPV_OFFSET, HSCPM_MULT, fM); }
void setThresholdsToValue(Float_t fThreshold)
{ changeValues(HSCPV_THRESHOLD, HSCPM_SET,
fThreshold); }
void addValueToThresholds(Float_t fAdd)
{ changeValues(HSCPV_THRESHOLD, HSCPM_ADD, fAdd);}
void multiplyThresholdsByValue(Float_t fM)
{ changeValues(HSCPV_THRESHOLD, HSCPM_MULT, fM); }
void setGainsToValue(Float_t fGain)
{ changeValues(HSCPV_GAIN, HSCPM_SET, fGain); }
void addValueToGains(Float_t fAdd)
{ changeValues(HSCPV_GAIN, HSCPM_ADD, fAdd); }
void multiplyGainsByValue(Float_t fM)
{ changeValues(HSCPV_GAIN, HSCPM_MULT, fM); }
TH2F* getOffsetsHist(Int_t iSector, Int_t iModule)
{ return getHist(iSector, iModule, HSCPV_OFFSET); }
TH2F* getSlopesHist(Int_t iSector, Int_t iModule)
{ return getHist(iSector, iModule, HSCPV_SLOPE); }
TH2F* getThresholdsHist(Int_t iSector, Int_t iModule)
{ return getHist(iSector, iModule, HSCPV_THRESHOLD); }
TH2F* getGainsHist(Int_t iSector, Int_t iModule)
{ return getHist(iSector, iModule, HSCPV_GAIN); }
private:
void changeValues(Int_t iVar, Int_t iOpr, Float_t f);
TH2F* getHist(Int_t iSector, Int_t iModule, enum_HSCPM_Var enType);
ClassDef(HShowerCalPar, 2)
private:
Int_t m_nSectors;
Int_t m_nModules;
Int_t m_nRows;
Int_t m_nColumns;
Bool_t m_bWriteForElectronic;
Char_t m_szClassName[40];
HObjTable m_ParamsTable;
};
#endif
Last change: Sat May 22 13:13:15 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.