6 #include "G4UIdirectory.hh"
7 #include "G4UIcommand.hh"
8 #include "G4UIcmdWithADoubleAndUnit.hh"
9 #include "G4UIcmdWithADouble.hh"
10 #include "G4UIcmdWithAnInteger.hh"
15 WCSimEvent(eventaction)
17 initialiseString =
" (this is a default set; it may be overwritten by user commands)";
21 WCSimDAQDir->SetGuidance(
"Commands to select DAQ options");
23 G4String defaultDigitizer =
"SKI";
38 G4String defaultTrigger =
"NDigits";
52 TriggerChoice->AvailableForStates(G4State_PreInit, G4State_Idle);
57 bool defaultMultiDigitsPerTrigger =
false;
67 bool defaultRelativeHitTime =
false;
69 RelativeHitTime->SetGuidance(
"Set the digitized hit time relative to the first one");
75 DigitizerDir->SetGuidance(
"Generic commands for digitizers");
77 int defaultDigitizerDeadTime = -99;
85 int defaultDigitizerIntegrationWindow = -99;
93 double defaultDigitizerTimingPrecision = -99;
101 double defaultDigitizerPEPrecision = -99;
114 int defaultSaveFailuresTriggerMode = 0;
116 SaveFailuresTriggerMode->SetGuidance(
"0: save only triggered events; 1: save both triggered and failed events; 2: save only failed events");
122 double defaultSaveFailuresTriggerTime = 100;
130 int defaultSaveFailuresPreTriggerWindow = -400;
138 int defaultSaveFailuresPostTriggerWindow = 950;
151 int defaultNDigitsTriggerThreshold = -99;
159 int defaultNDigitsTriggerWindow = -99;
167 bool defaultNDigitsTriggerAdjustForNoise =
true;
175 int defaultNDigitsPreTriggerWindow = -99;
183 int defaultNDigitsPostTriggerWindow = -99;
229 G4cout <<
"Digitizer choice set to " << newValue <<
initialiseString.c_str() << G4endl;
234 G4cout <<
"Trigger choice set to " << newValue <<
initialiseString.c_str() << G4endl;
241 G4cout <<
"Will restrict number of digits per PMT per trigger to <= 1" <<
initialiseString.c_str() << G4endl;
243 G4cout <<
"Will allow number of digits per PMT per trigger to go > 1" <<
initialiseString.c_str() << G4endl;
254 G4cout <<
"Digitizer deadtime set to " << newValue <<
" ns" <<
initialiseString.c_str() << G4endl;
258 G4cout <<
"Digitizer integration window set to " << newValue <<
" ns" <<
initialiseString.c_str() << G4endl;
262 G4cout <<
"Digitizer timing resolution set to " << newValue <<
" ns" <<
initialiseString.c_str() << G4endl;
266 G4cout <<
"Digitizer charge resolution set to " << newValue <<
" p.e." <<
initialiseString.c_str() << G4endl;
273 std::string failuremode;
275 failuremode =
"Saving only triggered events";
277 failuremode =
"Saving both triggered and failed events";
279 failuremode =
"Saving only failed events";
281 G4cerr <<
"Unknown value of /DAQ/TriggerSaveFailures/Mode " <<
StoreSaveFailuresMode <<
" Exiting..." << G4endl;
287 G4cout <<
"Trigger time for events which fail all triggers will be set to " << newValue <<
" ns" <<
initialiseString.c_str() << G4endl;
291 G4cout <<
"SaveFailures pretrigger window set to " << newValue <<
" ns" <<
initialiseString.c_str() << G4endl;
295 G4cout <<
"SaveFailures posttrigger window set to " << newValue <<
" ns" <<
initialiseString.c_str() << G4endl;
301 G4cout <<
"NDigits trigger threshold set to " << newValue <<
initialiseString.c_str() << G4endl;
307 G4cout <<
"Will adjust NDigits trigger threshold using average dark noise rate" <<
initialiseString.c_str() << G4endl;
310 G4cout <<
"NDigits trigger window set to " << newValue <<
" ns" <<
initialiseString.c_str() << G4endl;
314 G4cout <<
"NDigits pretrigger window set to " << newValue <<
" ns" <<
initialiseString.c_str() << G4endl;
318 G4cout <<
"NDigits posttrigger window set to " << newValue <<
" ns" <<
initialiseString.c_str() << G4endl;
325 G4cout <<
"Passing Trigger options to the trigger class instance" << G4endl;
330 G4cout <<
"\tWill restrict number of digits per PMT per trigger to <= 1" << G4endl;
332 G4cout <<
"\tWill allow number of digits per PMT per trigger to go > 1" <<
initialiseString.c_str() << G4endl;
336 std::string failuremode;
338 failuremode =
"Saving only triggered events";
340 failuremode =
"Saving both triggered and failed events";
342 failuremode =
"Saving only failed events";
343 G4cout <<
"\t" << failuremode << G4endl;
345 G4cout <<
"\tTrigger time for events which fail all triggers will be set to " <<
StoreSaveFailuresTime <<
" ns" << G4endl;
361 G4cout <<
"\tWill adjust NDigits trigger threshold using average dark noise rate" << G4endl;
364 G4cout <<
"\tNDigits trigger window set to " <<
StoreNDigitsWindow <<
" ns" << G4endl;
378 G4cout <<
"Passing Digitizer options to the digitizer class instance" << G4endl;
G4UIdirectory * SaveFailuresTriggerDir
void SetTriggerChoice(G4String trigger)
G4int StoreSaveFailuresPreWindow
void SetSaveFailuresPreTriggerWindow(G4int window)
Set the pretrigger window for the SaveFailures trigger (value will be forced negative) ...
G4int StoreSaveFailuresPostWindow
G4UIcmdWithAString * DigitizerChoice
G4UIcmdWithAnInteger * NDigitsTriggerWindow
G4UIcmdWithABool * MultiDigitsPerTrigger
WCSimEventAction * WCSimEvent
G4int StoreDigitizerDeadTime
G4int StoreSaveFailuresMode
void SetNDigitsWindow(G4int window)
Set the time window for the NDigits trigger.
G4UIcmdWithAnInteger * SaveFailuresTriggerMode
G4String StoreDigitizerChoice
void SetDigitizerOptions()
G4double StoreSaveFailuresTime
G4UIcmdWithAnInteger * SaveFailuresPostTriggerWindow
G4UIdirectory * NDigitsTriggerDir
G4UIcmdWithAnInteger * NDigitsTriggerThreshold
G4UIcmdWithAnInteger * NDigitsPreTriggerWindow
G4int StoreNDigitsPreWindow
G4UIdirectory * WCSimDAQDir
G4double StoreDigitizerPEPrecision
G4String initialiseString
void SetNDigitsThreshold(G4int threshold)
Set the threshold for the NDigits trigger.
void SetMultiDigitsPerTrigger(G4bool allow_multi)
Set whether to allow the number of digits per PMT per trigger to go > 1.
G4UIdirectory * DigitizerDir
G4UIcmdWithABool * RelativeHitTime
void SetDigitizerPEPrecision(double precision)
Override the default digitizer timing resolution (ns)
void SetNDigitsAdjustForNoise(G4bool adjust)
Automatically adjust the NDigits threshold based on the average noise occupancy?
G4bool StoreNDigitsAdjustForNoise
void SetSaveFailuresPostTriggerWindow(G4int window)
Set the posttrigger window for the SaveFailures trigger (value will be forced positive) ...
G4UIcmdWithABool * NDigitsTriggerAdjustForNoise
void SetRelativeDigitizedHitTime(bool val)
G4int StoreNDigitsThreshold
G4String StoreTriggerChoice
void SetDigitizerChoice(G4String digitizer)
G4UIcmdWithAnInteger * SaveFailuresPreTriggerWindow
G4bool MultiDigitsPerTriggerSet
WCSimWCDAQMessenger(WCSimEventAction *)
G4UIcmdWithADouble * DigitizerTimingPrecision
void SetDigitizerIntegrationWindow(int inttime)
Override the default digitizer deadtime (ns)
G4bool StoreMultiDigitsPerTrigger
void SetNDigitsPostTriggerWindow(G4int window)
Set the posttrigger window for the NDigits trigger (value will be forced positive) ...
G4UIcmdWithADouble * SaveFailuresTriggerTime
G4UIcmdWithAnInteger * NDigitsPostTriggerWindow
WCSimWCDigitizerBase * WCSimDigitize
void SetNewValue(G4UIcommand *command, G4String newValue)
void SetDigitizerTimingPrecision(double precision)
Override the default digitizer integration window (ns)
G4UIcmdWithAnInteger * DigitizerIntegrationWindow
WCSimWCTriggerBase * WCSimTrigger
void SetSaveFailuresMode(G4int mode)
Set the mode for saving failed triggers (0:save only triggered events, 1:save both triggered events &...
G4int StoreNDigitsPostWindow
G4int StoreDigitizerIntegrationWindow
G4UIcmdWithAnInteger * DigitizerDeadTime
G4UIcmdWithADouble * DigitizerPEPrecision
void SetSaveFailuresTime(G4double time)
Set the dummy trigger time for the failed triggers.
void SetNDigitsPreTriggerWindow(G4int window)
Set the pretrigger window for the NDigits trigger (value will be forced negative) ...
G4UIcmdWithAString * TriggerChoice
void SetDigitizerDeadTime(int deadtime)
G4double StoreDigitizerTimingPrecision