11 #include "THaNonTrackingDetector.h"
22 THaApparatus*
a = NULL );
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);
296 virtual Int_t End(THaRunBase *r = 0);
Int_t fdbg_sparsified_cal
Double_t GetBlockThick(Int_t NLayer)
Double_t * GetNegAdcTimeWindowMax()
Double_t * GetNegAdcTimeWindowMin()
Double_t GetWindowMin(Int_t NBlock, Int_t NLayer, Int_t Side)
Fly's eye array of shower blocks.
Double_t clY(THcShowerCluster *cluster)
Double_t addX(Double_t x, THcShowerHit *h)
virtual void Clear(Option_t *opt="")
Double_t GetYPos(Int_t NLayer, Int_t Side) const
Double_t addE(Double_t x, THcShowerHit *h)
static const Int_t kADCSampIntDynPed
Double_t * fNegAdcTimeWindowMax
Builds a Hall C ENGINE style list of raw hits from raw data.
Double_t clEplane(THcShowerCluster *cluster, Int_t iplane, Int_t side)
static const Int_t kADCStandard
vector< THcShowerCluster * > THcShowerClusterList
Double_t clE(THcShowerCluster *cluster)
virtual Int_t Decode(const THaEvData &)
Double_t clZ(THcShowerCluster *cluster)
LongDouble_t Power(LongDouble_t x, LongDouble_t y)
Double_t GetWindowMax(Int_t NBlock, Int_t NLayer, Int_t Side)
THcShowerClusterList * fClusterList
virtual Int_t CoarseProcess(TClonesArray &tracks)
Double_t GetZPos(Int_t NLayer) const
Double_t fYclustArrayTrack
Float_t Ycor(Double_t y, Int_t side)
Double_t * fPosAdcTimeWindowMax
Double_t clX(THcShowerCluster *cluster)
Double_t GetAdcTdcOffset()
Float_t GetShEnergy(THaTrack *, UInt_t NLayers, UInt_t L0=0)
virtual Int_t DefineVariables(EMode mode=kDefine)
static const Int_t kADCDynamicPedestal
Double_t * GetPosAdcTimeWindowMax()
virtual Int_t FineProcess(TClonesArray &tracks)
Double_t GetGain(Int_t NBlock, Int_t NLayer, Int_t Side)
void Setup(const char *name, const char *description)
Int_t GetNBlocks(Int_t layer)
virtual Int_t ReadDatabase(const TDatime &date)
Double_t * GetPosAdcTimeWindowMin()
Float_t YcorPr(Double_t y, Int_t side)
Double_t * fNegAdcTimeWindowMin
Double_t * fPosAdcTimeWindowMin
THcShowerHitSet THcShowerCluster
Double_t clEpr(THcShowerCluster *cluster)
virtual Int_t End(THaRunBase *r=0)
static const Int_t kADCSampleIntegral
Generic segmented shower detector.
Int_t GetPedLimit(Int_t NBlock, Int_t NLayer, Int_t Side)
One plane of shower blocks with side readout.
THcShowerPlane ** fPlanes
set< THcShowerHit * > THcShowerHitSet
Double_t GetPedDefault(Int_t NBlock, Int_t NLayer, Int_t Side)
Double_t addEpr(Double_t x, THcShowerHit *h)
Double_t addZ(Double_t x, THcShowerHit *h)
Int_t MatchCluster(THaTrack *, Double_t &, Double_t &)
Double_t addY(Double_t x, THcShowerHit *h)
Int_t GetNBlocks(Int_t NLayer) const
Double_t fXclustArrayTrack
void ClusterHits(THcShowerHitSet &HitSet, THcShowerClusterList *ClusterList)
Double_t GetXPos(Int_t NLayer, Int_t NRow) const
virtual EStatus Init(const TDatime &run_time)