@@ -177,6 +177,35 @@ void TRestDetectorSignalToRawSignalProcess::Initialize() {
177177 fOutputRawSignalEvent = new TRestRawSignalEvent ();
178178}
179179
180+ // /////////////////////////////////////////////
181+ // / \brief Some actions taken before start the event data processing
182+ // /
183+ void TRestDetectorSignalToRawSignalProcess::InitProcess () {
184+ if (fTriggerMode == " fixed" ) {
185+ fTimeStart = fTriggerFixedStartTime - fTriggerDelay * fSampling ;
186+ fTimeEnd = fTimeStart + fNPoints * fSampling ;
187+ }
188+
189+ const set<string> validTriggerModes = {" firstDeposit" , " integralThreshold" , " fixed" };
190+ if (validTriggerModes.count (fTriggerMode .Data ()) == 0 ) {
191+ RESTError << " Trigger mode set to: '" << fTriggerMode
192+ << " ' which is not a valid trigger mode. Please use one of the following trigger modes: " ;
193+ for (const auto & triggerMode : validTriggerModes) {
194+ RESTError << triggerMode << " " ;
195+ }
196+ RESTError << RESTendl;
197+ exit (1 );
198+ }
199+
200+ if (IsLinearCalibration ()) {
201+ const auto range = numeric_limits<Short_t>::max () - numeric_limits<Short_t>::min ();
202+ fCalibrationGain = range * (fCalibrationRange .Y () - fCalibrationRange .X ()) /
203+ (fCalibrationEnergy .Y () - fCalibrationEnergy .X ());
204+ fCalibrationOffset = range * (fCalibrationRange .X () - fCalibrationGain * fCalibrationEnergy .X ()) +
205+ numeric_limits<Short_t>::min ();
206+ }
207+ }
208+
180209// /////////////////////////////////////////////
181210// / \brief The main processing event function
182211// /
@@ -310,54 +339,3 @@ TRestEvent* TRestDetectorSignalToRawSignalProcess::ProcessEvent(TRestEvent* inpu
310339
311340 return fOutputRawSignalEvent ;
312341}
313-
314- // /////////////////////////////////////////////
315- // / \brief Function reading input parameters from the RML
316- // / TRestDetectorSignalToRawSignalProcess metadata section
317- // /
318- void TRestDetectorSignalToRawSignalProcess::InitFromConfigFile () {
319- auto nPoints = GetParameter (" nPoints" );
320- if (nPoints == PARAMETER_NOT_FOUND_STR) {
321- nPoints = GetParameter (" Npoints" , fNPoints );
322- }
323- fNPoints = StringToInteger (nPoints);
324-
325- fTriggerMode = GetParameter (" triggerMode" , fTriggerMode );
326- const set<string> validTriggerModes = {" firstDeposit" , " integralThreshold" , " fixed" };
327- if (validTriggerModes.count (fTriggerMode .Data ()) == 0 ) {
328- RESTError << " Trigger mode set to: '" << fTriggerMode
329- << " ' which is not a valid trigger mode. Please use one of the following trigger modes: " ;
330- for (const auto & triggerMode : validTriggerModes) {
331- RESTError << triggerMode << " " ;
332- }
333- RESTError << RESTendl;
334- exit (1 );
335- }
336-
337- fSampling = GetDblParameterWithUnits (" sampling" , fSampling );
338- fTriggerDelay = StringToInteger (GetParameter (" triggerDelay" , fTriggerDelay ));
339- fIntegralThreshold = StringToDouble (GetParameter (" integralThreshold" , fIntegralThreshold ));
340- fTriggerFixedStartTime = GetDblParameterWithUnits (" triggerFixedStartTime" , fTriggerFixedStartTime );
341-
342- fCalibrationGain = StringToDouble (GetParameter (" gain" , fCalibrationGain ));
343- fCalibrationOffset = StringToDouble (GetParameter (" offset" , fCalibrationOffset ));
344- fCalibrationEnergy = Get2DVectorParameterWithUnits (" calibrationEnergy" , fCalibrationEnergy );
345- fCalibrationRange = Get2DVectorParameterWithUnits (" calibrationRange" , fCalibrationRange );
346-
347- if (IsLinearCalibration ()) {
348- const auto range = numeric_limits<Short_t>::max () - numeric_limits<Short_t>::min ();
349- fCalibrationGain = range * (fCalibrationRange .Y () - fCalibrationRange .X ()) /
350- (fCalibrationEnergy .Y () - fCalibrationEnergy .X ());
351- fCalibrationOffset = range * (fCalibrationRange .X () - fCalibrationGain * fCalibrationEnergy .X ()) +
352- numeric_limits<Short_t>::min ();
353- }
354-
355- fShapingTime = GetDblParameterWithUnits (" shapingTime" , fShapingTime );
356- }
357-
358- void TRestDetectorSignalToRawSignalProcess::InitProcess () {
359- if (fTriggerMode == " fixed" ) {
360- fTimeStart = fTriggerFixedStartTime - fTriggerDelay * fSampling ;
361- fTimeEnd = fTimeStart + fNPoints * fSampling ;
362- }
363- }
0 commit comments