Skip to content
Snippets Groups Projects
Commit b1ad79ed authored by Fernando Araiza Gonzalez's avatar Fernando Araiza Gonzalez Committed by Mark K Jones
Browse files

Modifications to allow per-pmt time window cuts for calorimeter.

parent d94d80b8
No related branches found
No related tags found
No related merge requests found
...@@ -223,8 +223,6 @@ Int_t THcShower::ReadDatabase( const TDatime& date ) ...@@ -223,8 +223,6 @@ Int_t THcShower::ReadDatabase( const TDatime& date )
{"cal_fv_test", &fvTest, kInt,0,1}, {"cal_fv_test", &fvTest, kInt,0,1},
{"cal_fv_delta", &fvDelta, kDouble,0,1}, {"cal_fv_delta", &fvDelta, kDouble,0,1},
{"cal_ADCMode", &fADCMode, kInt, 0, 1}, {"cal_ADCMode", &fADCMode, kInt, 0, 1},
{"cal_AdcTimeWindowMin", &fAdcTimeWindowMin, kDouble, 0, 1},
{"cal_AdcTimeWindowMax", &fAdcTimeWindowMax, kDouble, 0, 1},
{"cal_adc_tdc_offset", &fAdcTdcOffset, kDouble, 0, 1}, {"cal_adc_tdc_offset", &fAdcTdcOffset, kDouble, 0, 1},
{"dbg_raw_cal", &fdbg_raw_cal, kInt, 0, 1}, {"dbg_raw_cal", &fdbg_raw_cal, kInt, 0, 1},
{"dbg_decoded_cal", &fdbg_decoded_cal, kInt, 0, 1}, {"dbg_decoded_cal", &fdbg_decoded_cal, kInt, 0, 1},
...@@ -241,8 +239,6 @@ Int_t THcShower::ReadDatabase( const TDatime& date ) ...@@ -241,8 +239,6 @@ Int_t THcShower::ReadDatabase( const TDatime& date )
fdbg_clusters_cal = 0; fdbg_clusters_cal = 0;
fdbg_tracks_cal = 0; fdbg_tracks_cal = 0;
fdbg_init_cal = 0; fdbg_init_cal = 0;
fAdcTimeWindowMin=0;
fAdcTimeWindowMax=10000;
fAdcTdcOffset=0.0; fAdcTdcOffset=0.0;
fADCMode=kADCDynamicPedestal; fADCMode=kADCDynamicPedestal;
gHcParms->LoadParmValues((DBRequest*)&list, prefix); gHcParms->LoadParmValues((DBRequest*)&list, prefix);
...@@ -376,6 +372,9 @@ Int_t THcShower::ReadDatabase( const TDatime& date ) ...@@ -376,6 +372,9 @@ Int_t THcShower::ReadDatabase( const TDatime& date )
Double_t hcal_neg_cal_const[fNTotBlocks]; Double_t hcal_neg_cal_const[fNTotBlocks];
Double_t hcal_neg_gain_cor[fNTotBlocks]; Double_t hcal_neg_gain_cor[fNTotBlocks];
fAdcTimeWindowMin = new Double_t [fNTotBlocks];
fAdcTimeWindowMax = new Double_t [fNTotBlocks];
DBRequest list[]={ DBRequest list[]={
{"cal_pos_cal_const", hcal_pos_cal_const, kDouble, fNTotBlocks}, {"cal_pos_cal_const", hcal_pos_cal_const, kDouble, fNTotBlocks},
{"cal_pos_ped_limit", fShPosPedLimit, kInt, fNTotBlocks,1}, {"cal_pos_ped_limit", fShPosPedLimit, kInt, fNTotBlocks,1},
...@@ -383,10 +382,18 @@ Int_t THcShower::ReadDatabase( const TDatime& date ) ...@@ -383,10 +382,18 @@ Int_t THcShower::ReadDatabase( const TDatime& date )
{"cal_neg_cal_const", hcal_neg_cal_const, kDouble, fNTotBlocks}, {"cal_neg_cal_const", hcal_neg_cal_const, kDouble, fNTotBlocks},
{"cal_neg_ped_limit", fShNegPedLimit, kInt, fNTotBlocks,1}, {"cal_neg_ped_limit", fShNegPedLimit, kInt, fNTotBlocks,1},
{"cal_neg_gain_cor", hcal_neg_gain_cor, kDouble, fNTotBlocks}, {"cal_neg_gain_cor", hcal_neg_gain_cor, kDouble, fNTotBlocks},
{"cal_AdcTimeWindowMin", fAdcTimeWindowMin, kDouble, static_cast<UInt_t>(fNTotBlocks)},
{"cal_AdcTimeWindowMax", fAdcTimeWindowMax, kDouble, static_cast<UInt_t>(fNTotBlocks)},
{"cal_min_peds", &fShMinPeds, kInt,0,1}, {"cal_min_peds", &fShMinPeds, kInt,0,1},
{0} {0}
}; };
fShMinPeds=0.; fShMinPeds=0.;
for(UInt_t ip=0;ip<fNTotBlocks;ip++) {
fAdcTimeWindowMin[ip] = -1000.;
fAdcTimeWindowMax[ip] = 1000.;
}
gHcParms->LoadParmValues((DBRequest*)&list, prefix); gHcParms->LoadParmValues((DBRequest*)&list, prefix);
// Debug output. // Debug output.
......
...@@ -74,10 +74,10 @@ public: ...@@ -74,10 +74,10 @@ public:
Int_t GetADCMode() { Int_t GetADCMode() {
return fADCMode; return fADCMode;
} }
Double_t GetAdcTimeWindowMin() { Double_t* GetAdcTimeWindowMin() {
return fAdcTimeWindowMin; return fAdcTimeWindowMin;
} }
Double_t GetAdcTimeWindowMax() { Double_t* GetAdcTimeWindowMax() {
return fAdcTimeWindowMax; return fAdcTimeWindowMax;
} }
Double_t GetAdcTdcOffset() { Double_t GetAdcTdcOffset() {
...@@ -155,8 +155,8 @@ protected: ...@@ -155,8 +155,8 @@ protected:
static const Int_t kADCDynamicPedestal=1; static const Int_t kADCDynamicPedestal=1;
static const Int_t kADCSampleIntegral=2; static const Int_t kADCSampleIntegral=2;
static const Int_t kADCSampIntDynPed=3; static const Int_t kADCSampIntDynPed=3;
Double_t fAdcTimeWindowMin; Double_t* fAdcTimeWindowMin;
Double_t fAdcTimeWindowMax; Double_t* fAdcTimeWindowMax;
Double_t fAdcTdcOffset; Double_t fAdcTdcOffset;
Int_t fAnalyzePedestals; // Flag for pedestal analysis. Int_t fAnalyzePedestals; // Flag for pedestal analysis.
......
...@@ -154,8 +154,6 @@ Int_t THcShowerArray::ReadDatabase( const TDatime& date ) ...@@ -154,8 +154,6 @@ Int_t THcShowerArray::ReadDatabase( const TDatime& date )
{"cal_arr_zsize", &fZSize, kDouble}, {"cal_arr_zsize", &fZSize, kDouble},
{"cal_using_fadc", &fUsingFADC, kInt, 0, 1}, {"cal_using_fadc", &fUsingFADC, kInt, 0, 1},
{"cal_arr_ADCMode", &fADCMode, kInt, 0, 1}, {"cal_arr_ADCMode", &fADCMode, kInt, 0, 1},
{"cal_arr_AdcTimeWindowMin", &fAdcTimeWindowMin, kDouble, 0, 1},
{"cal_arr_AdcTimeWindowMax", &fAdcTimeWindowMax, kDouble, 0, 1},
{"cal_arr_adc_tdc_offset", &fAdcTdcOffset, kDouble, 0, 1}, {"cal_arr_adc_tdc_offset", &fAdcTdcOffset, kDouble, 0, 1},
{"cal_arr_AdcThreshold", &fAdcThreshold, kDouble, 0, 1}, {"cal_arr_AdcThreshold", &fAdcThreshold, kDouble, 0, 1},
{"cal_ped_sample_low", &fPedSampLow, kInt, 0, 1}, {"cal_ped_sample_low", &fPedSampLow, kInt, 0, 1},
...@@ -171,8 +169,6 @@ Int_t THcShowerArray::ReadDatabase( const TDatime& date ) ...@@ -171,8 +169,6 @@ Int_t THcShowerArray::ReadDatabase( const TDatime& date )
fDebugAdc = 0; // Set ADC debug parameter to false unless set in parameter file fDebugAdc = 0; // Set ADC debug parameter to false unless set in parameter file
fADCMode=kADCDynamicPedestal; fADCMode=kADCDynamicPedestal;
fAdcTimeWindowMin=0;
fAdcTimeWindowMax=10000;
fAdcTdcOffset=0.0; fAdcTdcOffset=0.0;
fAdcThreshold=0.; fAdcThreshold=0.;
...@@ -273,12 +269,23 @@ Int_t THcShowerArray::ReadDatabase( const TDatime& date ) ...@@ -273,12 +269,23 @@ Int_t THcShowerArray::ReadDatabase( const TDatime& date )
Double_t cal_arr_cal_const[fNelem]; Double_t cal_arr_cal_const[fNelem];
Double_t cal_arr_gain_cor[fNelem]; Double_t cal_arr_gain_cor[fNelem];
fAdcTimeWindowMin = new Double_t [fNelem];
fAdcTimeWindowMax = new Double_t [fNelem];
DBRequest list1[]={ DBRequest list1[]={
{"cal_arr_ped_limit", fPedLimit, kInt, static_cast<UInt_t>(fNelem),1}, {"cal_arr_ped_limit", fPedLimit, kInt, static_cast<UInt_t>(fNelem),1},
{"cal_arr_cal_const", cal_arr_cal_const, kDouble, static_cast<UInt_t>(fNelem)}, {"cal_arr_cal_const", cal_arr_cal_const, kDouble, static_cast<UInt_t>(fNelem)},
{"cal_arr_gain_cor", cal_arr_gain_cor, kDouble, static_cast<UInt_t>(fNelem)}, {"cal_arr_gain_cor", cal_arr_gain_cor, kDouble, static_cast<UInt_t>(fNelem)},
{"cal_arr_AdcTimeWindowMin", fAdcTimeWindowMin, kDouble, static_cast<UInt_t>(fNelem)},
{"cal_arr_AdcTimeWindowMax", fAdcTimeWindowMax, kDouble, static_cast<UInt_t>(fNelem)},
{0} {0}
}; };
for(UInt_t ip=0;ip<fNelem;ip++) {
fAdcTimeWindowMin[ip] = -1000.;
fAdcTimeWindowMax[ip] = 1000.;
}
gHcParms->LoadParmValues((DBRequest*)&list1, prefix); gHcParms->LoadParmValues((DBRequest*)&list1, prefix);
// Debug output. // Debug output.
...@@ -871,7 +878,7 @@ void THcShowerArray::FillADC_DynamicPedestal() ...@@ -871,7 +878,7 @@ void THcShowerArray::FillADC_DynamicPedestal()
Double_t pulseTime = ((THcSignalHit*) frAdcPulseTime->ConstructedAt(ielem))->GetData(); Double_t pulseTime = ((THcSignalHit*) frAdcPulseTime->ConstructedAt(ielem))->GetData();
Double_t adctdcdiffTime = StartTime-pulseTime; Double_t adctdcdiffTime = StartTime-pulseTime;
Bool_t errorflag = ((THcSignalHit*) frAdcErrorFlag->ConstructedAt(ielem))->GetData(); Bool_t errorflag = ((THcSignalHit*) frAdcErrorFlag->ConstructedAt(ielem))->GetData();
Bool_t pulseTimeCut = (adctdcdiffTime > fAdcTimeWindowMin) && (adctdcdiffTime < fAdcTimeWindowMax); Bool_t pulseTimeCut = (adctdcdiffTime > fAdcTimeWindowMin[npad]) && (adctdcdiffTime < fAdcTimeWindowMax[npad]);
if (!errorflag && pulseTimeCut) { if (!errorflag && pulseTimeCut) {
......
...@@ -145,8 +145,8 @@ protected: ...@@ -145,8 +145,8 @@ protected:
static const Int_t kADCDynamicPedestal=1; static const Int_t kADCDynamicPedestal=1;
static const Int_t kADCSampleIntegral=2; static const Int_t kADCSampleIntegral=2;
static const Int_t kADCSampIntDynPed=3; static const Int_t kADCSampIntDynPed=3;
Double_t fAdcTimeWindowMin ; Double_t *fAdcTimeWindowMin ;
Double_t fAdcTimeWindowMax ; Double_t *fAdcTimeWindowMax ;
Double_t fAdcThreshold ; Double_t fAdcThreshold ;
Double_t fAdcTdcOffset; Double_t fAdcTdcOffset;
......
...@@ -738,8 +738,8 @@ void THcShowerPlane::FillADC_DynamicPedestal() ...@@ -738,8 +738,8 @@ void THcShowerPlane::FillADC_DynamicPedestal()
{ {
Double_t StartTime = 0.0; Double_t StartTime = 0.0;
if( fglHod ) StartTime = fglHod->GetStartTime(); if( fglHod ) StartTime = fglHod->GetStartTime();
Double_t AdcTimeWindowMin=static_cast<THcShower*>(fParent)->GetAdcTimeWindowMin(); Double_t* AdcTimeWindowMin=static_cast<THcShower*>(fParent)->GetAdcTimeWindowMin();
Double_t AdcTimeWindowMax=static_cast<THcShower*>(fParent)->GetAdcTimeWindowMax(); Double_t* AdcTimeWindowMax=static_cast<THcShower*>(fParent)->GetAdcTimeWindowMax();
for (Int_t ielem=0;ielem<frNegAdcPulseInt->GetEntries();ielem++) { for (Int_t ielem=0;ielem<frNegAdcPulseInt->GetEntries();ielem++) {
Int_t npad = ((THcSignalHit*) frNegAdcPulseInt->ConstructedAt(ielem))->GetPaddleNumber() - 1; Int_t npad = ((THcSignalHit*) frNegAdcPulseInt->ConstructedAt(ielem))->GetPaddleNumber() - 1;
Double_t pulseInt = ((THcSignalHit*) frNegAdcPulseInt->ConstructedAt(ielem))->GetData(); Double_t pulseInt = ((THcSignalHit*) frNegAdcPulseInt->ConstructedAt(ielem))->GetData();
...@@ -750,7 +750,7 @@ void THcShowerPlane::FillADC_DynamicPedestal() ...@@ -750,7 +750,7 @@ void THcShowerPlane::FillADC_DynamicPedestal()
Double_t adctdcdiffTime = StartTime-pulseTime; Double_t adctdcdiffTime = StartTime-pulseTime;
Double_t threshold = ((THcSignalHit*) frNegAdcThreshold->ConstructedAt(ielem))->GetData(); Double_t threshold = ((THcSignalHit*) frNegAdcThreshold->ConstructedAt(ielem))->GetData();
Bool_t errorflag = ((THcSignalHit*) frNegAdcErrorFlag->ConstructedAt(ielem))->GetData(); Bool_t errorflag = ((THcSignalHit*) frNegAdcErrorFlag->ConstructedAt(ielem))->GetData();
Bool_t pulseTimeCut = (adctdcdiffTime > AdcTimeWindowMin) && (adctdcdiffTime < AdcTimeWindowMax); Bool_t pulseTimeCut = (adctdcdiffTime > AdcTimeWindowMin[npad]) && (adctdcdiffTime < AdcTimeWindowMax[npad]);
if (!errorflag && pulseTimeCut) { if (!errorflag && pulseTimeCut) {
fGoodNegAdcPulseIntRaw.at(npad) =pulseIntRaw; fGoodNegAdcPulseIntRaw.at(npad) =pulseIntRaw;
...@@ -784,7 +784,7 @@ void THcShowerPlane::FillADC_DynamicPedestal() ...@@ -784,7 +784,7 @@ void THcShowerPlane::FillADC_DynamicPedestal()
Double_t pulseTime = ((THcSignalHit*) frPosAdcPulseTime->ConstructedAt(ielem))->GetData(); Double_t pulseTime = ((THcSignalHit*) frPosAdcPulseTime->ConstructedAt(ielem))->GetData();
Double_t adctdcdiffTime = StartTime-pulseTime; Double_t adctdcdiffTime = StartTime-pulseTime;
Bool_t errorflag = ((THcSignalHit*) frPosAdcErrorFlag->ConstructedAt(ielem))->GetData(); Bool_t errorflag = ((THcSignalHit*) frPosAdcErrorFlag->ConstructedAt(ielem))->GetData();
Bool_t pulseTimeCut = (adctdcdiffTime > AdcTimeWindowMin) && (adctdcdiffTime < AdcTimeWindowMax); Bool_t pulseTimeCut = (adctdcdiffTime > AdcTimeWindowMin[npad]) && (adctdcdiffTime < AdcTimeWindowMax[npad]);
if (!errorflag && pulseTimeCut) { if (!errorflag && pulseTimeCut) {
fGoodPosAdcPulseIntRaw.at(npad) = pulseIntRaw; fGoodPosAdcPulseIntRaw.at(npad) = pulseIntRaw;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment