From 6ca2daacf3ba34fa8828c0d196ec48b22fb2da57 Mon Sep 17 00:00:00 2001 From: Vardan Tadevosyan <tadevosn@jlab.org> Date: Tue, 24 Nov 2015 17:17:37 +0400 Subject: [PATCH] Correct THcShowerArray pedestal calculations. --- src/THcShowerArray.cxx | 33 +++++++++++++++++++++++---------- src/THcShowerArray.h | 1 - 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/src/THcShowerArray.cxx b/src/THcShowerArray.cxx index fb2f1c3..5d5d9a9 100644 --- a/src/THcShowerArray.cxx +++ b/src/THcShowerArray.cxx @@ -101,7 +101,6 @@ Int_t THcShowerArray::ReadDatabase( const TDatime& date ) // Here read the 2-D arrays of pedestals, gains, etc. // Pedestal limits per channel. - fPedLimit = new Int_t [fNelem]; THcShower* fParent; @@ -136,6 +135,15 @@ Int_t THcShowerArray::ReadDatabase( const TDatime& date ) cout << " Layer #" << fLayerNum << ", number of elements " << fNelem << endl; + cout << " Columns " << fNColumns << ", Rows " << fNRows << endl; + + cout << " Using FADC " << fUsingFADC << endl; + if (fUsingFADC) { + cout << " FADC pedestal sample low = " << fPedSampLow << ", high = " + << fPedSampHigh << endl; + cout << " FADC data sample low = " << fDataSampLow << ", high = " + << fDataSampHigh << endl; + } // cout << " Origin of Layer at X = " << fOrigin.X() // << " Y = " << fOrigin.Y() << " Z = " << fOrigin.Z() << endl; @@ -322,12 +330,17 @@ Int_t THcShowerArray::AccumulatePedestals(TClonesArray* rawhits, Int_t nexthit) THcRawShowerHit* hit = (THcRawShowerHit *) rawhits->At(ihit); // OK for hit list sorted by layer. - if(hit->fPlane > fLayerNum) { - break; - } + // if(hit->fPlane > fLayerNum) { + // break; + // } Int_t element = hit->fCounter - 1; // Should check if in range - Int_t adc = hit->GetData(0); + + Int_t adc = fUsingFADC ? + hit->GetData(0,fPedSampLow,fPedSampHigh,fDataSampLow,fDataSampHigh) + : + hit->GetData(0); + if(adc <= fPedLimit[element]) { fPedSum[element] += adc; @@ -355,15 +368,15 @@ Int_t THcShowerArray::AccumulatePedestals(TClonesArray* rawhits, Int_t nexthit) THcRawShowerHit* hit = (THcRawShowerHit *) rawhits->At(ih); - // OK for hit list sorted by layer. - if(hit->fPlane > fLayerNum) { - break; - } + Int_t adc = fUsingFADC ? + hit->GetData(0,fPedSampLow,fPedSampHigh,fDataSampLow,fDataSampHigh) + : + hit->GetData(0); cout << " hit " << ih << ":" << " plane = " << hit->fPlane << " counter = " << hit->fCounter - << " ADC = " << hit->GetData(0) + << " ADC = " << adc << endl; } diff --git a/src/THcShowerArray.h b/src/THcShowerArray.h index 372c770..d3ca918 100644 --- a/src/THcShowerArray.h +++ b/src/THcShowerArray.h @@ -97,7 +97,6 @@ protected: virtual Int_t ReadDatabase( const TDatime& date ); virtual Int_t DefineVariables( EMode mode = kDefine ); - //virtual void InitializePedestals( ); ClassDef(THcShowerArray,0); // Fly;s Eye calorimeter array }; #endif -- GitLab