diff --git a/src/THcShower.cxx b/src/THcShower.cxx index 9cfe34521fd448a1ba702166213041da301a3303..394955a115cdd2d153b0f084f92c6134baee91d2 100644 --- a/src/THcShower.cxx +++ b/src/THcShower.cxx @@ -163,6 +163,19 @@ THaAnalysisObject::EStatus THcShower::Init( const TDatime& date ) return kInitError; } + if(fHasArray) { + cout << "THcShower::Init: adjustment of fiducial volume limits to the fly's eye part." << endl; + cout << " Old limits:" << endl; + cout << " Xmin = " << fvXmin << " Xmax = " << fvXmax << endl; + cout << " Ymin = " << fvYmin << " Ymax = " << fvYmax << endl; + fvXmin = TMath::Max(fvXmin, fArray->fvXmin()); + fvXmax = TMath::Min(fvXmax, fArray->fvXmax()); + fvYmin = TMath::Max(fvYmin, fArray->fvYmin()); + fvYmax = TMath::Min(fvYmax, fArray->fvYmax()); + cout << " New limits:" << endl; + cout << " Xmin = " << fvXmin << " Xmax = " << fvXmax << endl; + cout << " Ymin = " << fvYmin << " Ymax = " << fvYmax << endl; + } cout << "---------------------------------------------------------------\n"; cout << "From THcShower::Init: initialized " << GetApparatus()->GetName() diff --git a/src/THcShower.h b/src/THcShower.h index a90b3ddcfc62c73bac6b15d9739c4a3be6d0f00c..df673cc5c6b1c1967fed48666652fbccfaf4355c 100644 --- a/src/THcShower.h +++ b/src/THcShower.h @@ -154,8 +154,8 @@ public: Int_t GetNBlocks(Int_t NLayer) const { return fNBlocks[NLayer];} - Double_t GetXPos(Int_t NLayer, Int_t NRaw) const { - return fXPos[NLayer][NRaw]; + Double_t GetXPos(Int_t NLayer, Int_t NRow) const { + return fXPos[NLayer][NRow]; } Double_t GetYPos(Int_t NLayer, Int_t Side) const { @@ -247,8 +247,8 @@ protected: Int_t fNclust; // Number of clusters Int_t fNtracks; // Number of shower tracks, i.e. number of // cluster-to-track association - Double_t fEtot; // Total energy - Double_t fEtotNorm; // Total energy divided by spec central momentum + Double_t fEtot; // Total energy + Double_t fEtotNorm; // Total energy divided by spec central momentum THcShowerClusterList* fClusterList; // List of hit clusters diff --git a/src/THcShowerArray.cxx b/src/THcShowerArray.cxx index c64bbd967d12bfa8c5309b69a9e91aaf7f5b9ee2..0fce28e3dd0cbe3da882ac60e2568cc84bf2f666 100644 --- a/src/THcShowerArray.cxx +++ b/src/THcShowerArray.cxx @@ -85,6 +85,9 @@ Int_t THcShowerArray::ReadDatabase( const TDatime& date ) prefix[1]='\0'; cout << "Parent name: " << GetParent()->GetPrefix() << endl; + fNRows=fNColumns=0; + fXFront=fYFront=fZFront=0.; + fXStep=fYStep=0.; fUsingFADC=0; fPedSampLow=0; fPedSampHigh=9; @@ -628,3 +631,31 @@ void THcShowerArray::InitializePedestals( ) fPedCount[i] = 0; } } + +//------------------------------------------------------------------------------ + +// Fiducial volume limits. + +Double_t THcShowerArray::fvXmin() { + THcShower* fParent; + fParent = (THcShower*) GetParent(); + return fXPos[0][0] - fXStep/2 + fParent->fvDelta; +} + +Double_t THcShowerArray::fvYmax() { + THcShower* fParent; + fParent = (THcShower*) GetParent(); + return fYPos[0][0] + fYStep/2 - fParent->fvDelta; +} + +Double_t THcShowerArray::fvXmax() { + THcShower* fParent; + fParent = (THcShower*) GetParent(); + return fXPos[fNRows-1][fNColumns-1] + fXStep/2 - fParent->fvDelta; +} + +Double_t THcShowerArray::fvYmin() { + THcShower* fParent; + fParent = (THcShower*) GetParent(); + return fYPos[fNRows-1][fNColumns-1] - fYStep/2 + fParent->fvDelta; +} diff --git a/src/THcShowerArray.h b/src/THcShowerArray.h index d4eb98a9406497aceb6b3264b13ac85be7f3375c..b6f88f32f71b24e851cfe376d4d7a8ed5676e094 100644 --- a/src/THcShowerArray.h +++ b/src/THcShowerArray.h @@ -56,6 +56,11 @@ public: return 0.0; }; + // Fiducial volume limits. + Double_t fvXmin(); + Double_t fvYmax(); + Double_t fvXmax(); + Double_t fvYmin(); protected: