diff --git a/src/THcScalerEvtHandler.cxx b/src/THcScalerEvtHandler.cxx index ab059283dfda42a1ae754b7691233bc65bfecea4..8b332fe56276e07c7a03176abf4f864d45156da5 100644 --- a/src/THcScalerEvtHandler.cxx +++ b/src/THcScalerEvtHandler.cxx @@ -110,41 +110,44 @@ Int_t THcScalerEvtHandler::ReadDatabase(const TDatime& date ) char prefix[2]; prefix[0]='g'; prefix[1]='\0'; + fNumBCMs = 0; DBRequest list[]={ - {"NumBCMs",&fNumBCMs, kInt}, + {"NumBCMs",&fNumBCMs, kInt, 0, 1}, {0} }; gHcParms->LoadParmValues((DBRequest*)&list, prefix); //cout << " NUmber of BCMs = " << fNumBCMs << endl; // - fBCM_Gain = new Double_t[fNumBCMs]; - fBCM_Offset = new Double_t[fNumBCMs]; - fBCM_delta_charge= new Double_t[fNumBCMs]; - string bcm_namelist; - DBRequest list2[]={ - {"BCM_Gain", fBCM_Gain, kDouble, (UInt_t) fNumBCMs}, - {"BCM_Offset", fBCM_Offset, kDouble,(UInt_t) fNumBCMs}, - {"BCM_Names", &bcm_namelist, kString}, - {"BCM_Current_threshold", &fbcm_Current_Threshold, kDouble,0, 1}, - {"BCM_Current_threshold_index", &fbcm_Current_Threshold_Index, kInt,0,1}, - {0} - }; - fbcm_Current_Threshold = 0.0; - fbcm_Current_Threshold_Index = 0; - gHcParms->LoadParmValues((DBRequest*)&list2, prefix); - vector<string> bcm_names = vsplit(bcm_namelist); - fBCM_Name = new char* [fNumBCMs]; - for(Int_t i=0;i<fNumBCMs;i++) { - fBCM_Name[i] = new char[bcm_names[i].length()+1]; - strcpy(fBCM_Name[i], bcm_names[i].c_str()); - // cout << fBCM_Gain[i] << " " << fBCM_Offset[i] << " " << fBCM_Name[i] << endl; + if(fNumBCMs > 0) { + fBCM_Gain = new Double_t[fNumBCMs]; + fBCM_Offset = new Double_t[fNumBCMs]; + fBCM_delta_charge= new Double_t[fNumBCMs]; + string bcm_namelist; + DBRequest list2[]={ + {"BCM_Gain", fBCM_Gain, kDouble, (UInt_t) fNumBCMs}, + {"BCM_Offset", fBCM_Offset, kDouble,(UInt_t) fNumBCMs}, + {"BCM_Names", &bcm_namelist, kString}, + {"BCM_Current_threshold", &fbcm_Current_Threshold, kDouble,0, 1}, + {"BCM_Current_threshold_index", &fbcm_Current_Threshold_Index, kInt,0,1}, + {0} + }; + fbcm_Current_Threshold = 0.0; + fbcm_Current_Threshold_Index = 0; + gHcParms->LoadParmValues((DBRequest*)&list2, prefix); + vector<string> bcm_names = vsplit(bcm_namelist); + fBCM_Name = new char* [fNumBCMs]; + for(Int_t i=0;i<fNumBCMs;i++) { + fBCM_Name[i] = new char[bcm_names[i].length()+1]; + strcpy(fBCM_Name[i], bcm_names[i].c_str()); + // cout << fBCM_Gain[i] << " " << fBCM_Offset[i] << " " << fBCM_Name[i] << endl; + } + for(Int_t i=0;i<fNumBCMs;i++) { + fBCM_delta_charge[i]=0.; + } } fTotalTime=0.; fPrevTotalTime=0.; fDeltaTime=-1.; - for(Int_t i=0;i<fNumBCMs;i++) { - fBCM_delta_charge[i]=0.; - } // // return kOK;