21 THcShower(
const char* name,
const char* description =
"",
37 return fXPos[NLayer][NRow];
45 return fYPos[2*NLayer+(1-Side)];
53 if (Side!=0&&Side!=1) {
54 cout <<
"*** Wrong Side in GetPedLimit:" << Side <<
" ***" << endl;
64 if (Side!=0&&Side!=1) {
65 cout <<
"*** Wrong Side in GetGain:" << Side <<
" ***" << endl;
75 if (Side!=0&&Side!=1) {
76 cout <<
"*** Wrong Side in GetPedDefault:" << Side <<
" ***" << endl;
86 if (Side!=0&&Side!=1) {
87 cout <<
"*** Wrong Side in GetWindowMin:" << Side <<
" ***" << endl;
97 if (Side!=0&&Side!=1) {
98 cout <<
"*** Wrong Side in GetWindowMax:" << Side <<
" ***" << endl;
147 if (side!=0&&side!=1) {
148 cout <<
"THcShower::Ycor : wrong side " << side << endl;
151 Int_t sign = 1 - 2*side;
161 if (side!=0&&side!=1) {
162 cout <<
"THcShower::YcorPr : wrong side " << side << endl;
170 if ((
y < 0. && side == 1) || (
y > 0. && side == 0))
289 void Setup(
const char* name,
const char* description);
THcShowerHitSet THcShowerCluster
vector< THcShowerCluster * > THcShowerClusterList
set< THcShowerHit * > THcShowerHitSet
Double_t addZ(Double_t x, THcShowerHit *h)
Double_t addE(Double_t x, THcShowerHit *h)
Double_t addY(Double_t x, THcShowerHit *h)
Double_t clE(THcShowerCluster *cluster)
Double_t clEplane(THcShowerCluster *cluster, Int_t iplane, Int_t side)
Double_t clX(THcShowerCluster *cluster)
Double_t addX(Double_t x, THcShowerHit *h)
Double_t clEpr(THcShowerCluster *cluster)
Double_t clZ(THcShowerCluster *cluster)
Double_t addEpr(Double_t x, THcShowerHit *h)
Double_t clY(THcShowerCluster *cluster)
Builds a Hall C ENGx1INE style list of raw hits from raw data.
Fly's eye array of shower blocks.
One plane of shower blocks with side readout.
Generic segmented shower detector.
Double_t * GetPosAdcTimeWindowMax()
Double_t * fPosAdcTimeWindowMax
static const Int_t kADCSampleIntegral
Int_t MatchCluster(THaTrack *, Double_t &, Double_t &)
Double_t GetXPos(Int_t NLayer, Int_t NRow) const
Int_t GetPedLimit(Int_t NBlock, Int_t NLayer, Int_t Side)
Float_t YcorPr(Double_t y, Int_t side)
virtual Int_t End(THaRunBase *r=0)
void Setup(const char *name, const char *description)
virtual EStatus Init(const TDatime &run_time)
Double_t fYclustArrayTrack
virtual Int_t ReadDatabase(const TDatime &date)
Double_t * fNegAdcTimeWindowMin
Float_t GetShEnergy(THaTrack *, UInt_t NLayers, UInt_t L0=0)
Double_t GetWindowMin(Int_t NBlock, Int_t NLayer, Int_t Side)
Double_t GetZPos(Int_t NLayer) const
Double_t GetWindowMax(Int_t NBlock, Int_t NLayer, Int_t Side)
void ClusterHits(THcShowerHitSet &HitSet, THcShowerClusterList *ClusterList)
Double_t GetAdcTdcOffset()
Int_t GetNBlocks(Int_t NLayer) const
Double_t GetYPos(Int_t NLayer, Int_t Side) const
static const Int_t kADCSampIntDynPed
THcShowerPlane ** fPlanes
Float_t Ycor(Double_t y, Int_t side)
Double_t GetPedDefault(Int_t NBlock, Int_t NLayer, Int_t Side)
virtual Int_t FineProcess(TClonesArray &tracks)
THcShowerClusterList * fClusterList
static const Int_t kADCStandard
Double_t * fPosAdcTimeWindowMin
static const Int_t kADCDynamicPedestal
Double_t GetGain(Int_t NBlock, Int_t NLayer, Int_t Side)
Double_t fXclustArrayTrack
Double_t * GetNegAdcTimeWindowMin()
Double_t * GetNegAdcTimeWindowMax()
Double_t GetBlockThick(Int_t NLayer)
Double_t * fNegAdcTimeWindowMax
virtual Int_t CoarseProcess(TClonesArray &tracks)
virtual void Clear(Option_t *opt="")
virtual Int_t Decode(const THaEvData &)
Int_t GetNBlocks(Int_t layer)
virtual Int_t DefineVariables(EMode mode=kDefine)
Double_t * GetPosAdcTimeWindowMin()
Int_t fdbg_sparsified_cal
Double_t Power(Double_t x, Double_t y)