WCSim
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
WCSimWCDAQMessenger.cc
Go to the documentation of this file.
1 #include "WCSimWCDAQMessenger.hh"
2 #include "WCSimEventAction.hh"
3 #include "WCSimWCDigitizer.hh"
4 #include "WCSimWCTrigger.hh"
5 
6 #include "G4UIdirectory.hh"
7 #include "G4UIcommand.hh"
8 #include "G4UIcmdWithADoubleAndUnit.hh"
9 #include "G4UIcmdWithADouble.hh"
10 #include "G4UIcmdWithAnInteger.hh"
11 
12 #include <string>
13 
15  WCSimEvent(eventaction)
16 {
17  initialiseString = " (this is a default set; it may be overwritten by user commands)";
18  initialised = false;
19 
20  WCSimDAQDir = new G4UIdirectory("/DAQ/");
21  WCSimDAQDir->SetGuidance("Commands to select DAQ options");
22 
23  G4String defaultDigitizer = "SKI";
24  DigitizerChoice = new G4UIcmdWithAString("/DAQ/Digitizer", this);
25  DigitizerChoice->SetGuidance("Set the Digitizer type");
26  DigitizerChoice->SetGuidance("Available choices are:\n"
27  "SKI\n"
28  );
29  DigitizerChoice->SetParameterName("Digitizer", false);
30  DigitizerChoice->SetCandidates(
31  "SKI "
32  );
33  DigitizerChoice->AvailableForStates(G4State_PreInit, G4State_Idle);
34  DigitizerChoice->SetDefaultValue(defaultDigitizer);
35  StoreDigitizerChoice = defaultDigitizer;
36  SetNewValue(DigitizerChoice, defaultDigitizer);
37 
38  G4String defaultTrigger = "NDigits";
39  TriggerChoice = new G4UIcmdWithAString("/DAQ/Trigger", this);
40  TriggerChoice->SetGuidance("Set the Trigger type");
41  TriggerChoice->SetGuidance("Available choices are:\n"
42  "NDigits\n"
43  "NDigits2\n"
44  "NoTrigger\n"
45  );
46  TriggerChoice->SetParameterName("Trigger", false);
47  TriggerChoice->SetCandidates(
48  "NDigits "
49  "NDigits2 "
50  "NoTrigger "
51  );
52  TriggerChoice->AvailableForStates(G4State_PreInit, G4State_Idle);
53  TriggerChoice->SetDefaultValue(defaultTrigger);
54  StoreTriggerChoice = defaultTrigger;
55  SetNewValue(TriggerChoice, defaultTrigger);
56 
57  bool defaultMultiDigitsPerTrigger = false;
58  MultiDigitsPerTrigger = new G4UIcmdWithABool("/DAQ/MultiDigitsPerTrigger", this);
59  MultiDigitsPerTrigger->SetGuidance("Allow the number of digits per PMT per trigger to be > 1?");
60  MultiDigitsPerTrigger->SetParameterName("MultiDigitsPerTrigger",true);
61  MultiDigitsPerTrigger->SetDefaultValue(defaultMultiDigitsPerTrigger);
62  StoreMultiDigitsPerTrigger = defaultMultiDigitsPerTrigger;
63  MultiDigitsPerTriggerSet = false; //this variable is bool & defaults are class specfic; use this to know if the default is overidden
64  //don't SetNewValue -> defaults class-specific and taken from GetDefault*()
65 
66 
67  bool defaultRelativeHitTime = false;
68  RelativeHitTime = new G4UIcmdWithABool("/DAQ/RelativeHitTime", this);
69  RelativeHitTime->SetGuidance("Set the digitized hit time relative to the first one");
70  RelativeHitTime->SetParameterName("RelativeHitTime",true);
71  RelativeHitTime->SetDefaultValue(defaultRelativeHitTime);
72 
73  //Generic digitizer specific options
74  DigitizerDir = new G4UIdirectory("/DAQ/DigitizerOpt/");
75  DigitizerDir->SetGuidance("Generic commands for digitizers");
76 
77  int defaultDigitizerDeadTime = -99;
78  DigitizerDeadTime = new G4UIcmdWithAnInteger("/DAQ/DigitizerOpt/DeadTime", this);
79  DigitizerDeadTime->SetGuidance("The deadtime for the digitizer (in ns)");
80  DigitizerDeadTime->SetParameterName("DigitizerDeadTime",true);
81  DigitizerDeadTime->SetDefaultValue(defaultDigitizerDeadTime);
82  StoreDigitizerDeadTime = defaultDigitizerDeadTime;
83  //don't SetNewValue -> defaults class-specific and taken from GetDefault*()
84 
85  int defaultDigitizerIntegrationWindow = -99;
86  DigitizerIntegrationWindow = new G4UIcmdWithAnInteger("/DAQ/DigitizerOpt/IntegrationWindow", this);
87  DigitizerIntegrationWindow->SetGuidance("The integration window for the digitizer (in ns)");
88  DigitizerIntegrationWindow->SetParameterName("DigitizerIntegrationWindow",true);
89  DigitizerIntegrationWindow->SetDefaultValue(defaultDigitizerIntegrationWindow);
90  StoreDigitizerIntegrationWindow = defaultDigitizerIntegrationWindow;
91  //don't SetNewValue -> defaults class-specific and taken from GetDefault*()
92 
93  double defaultDigitizerTimingPrecision = -99;
94  DigitizerTimingPrecision = new G4UIcmdWithADouble("/DAQ/DigitizerOpt/TimingPrecision", this);
95  DigitizerTimingPrecision->SetGuidance("The timing resolution for the digitizer (in ns)");
96  DigitizerTimingPrecision->SetParameterName("DigitizerTimingPrecision",true);
97  DigitizerTimingPrecision->SetDefaultValue(defaultDigitizerTimingPrecision);
98  StoreDigitizerTimingPrecision = defaultDigitizerTimingPrecision;
99  //don't SetNewValue -> defaults class-specific and taken from GetDefault*()
100 
101  double defaultDigitizerPEPrecision = -99;
102  DigitizerPEPrecision = new G4UIcmdWithADouble("/DAQ/DigitizerOpt/PEPrecision", this);
103  DigitizerPEPrecision->SetGuidance("The charge resolution for the digitizer (in p.e.)");
104  DigitizerPEPrecision->SetParameterName("DigitizerPEPrecision",true);
105  DigitizerPEPrecision->SetDefaultValue(defaultDigitizerPEPrecision);
106  StoreDigitizerPEPrecision = defaultDigitizerPEPrecision;
107  //don't SetNewValue -> defaults class-specific and taken from GetDefault*()
108 
109 
110  //Save failure trigger specific options
111  SaveFailuresTriggerDir = new G4UIdirectory("/DAQ/TriggerSaveFailures/");
112  SaveFailuresTriggerDir->SetGuidance("Commands specific to the Save Failures trigger");
113 
114  int defaultSaveFailuresTriggerMode = 0;
115  SaveFailuresTriggerMode = new G4UIcmdWithAnInteger("/DAQ/TriggerSaveFailures/Mode", this);
116  SaveFailuresTriggerMode->SetGuidance("0: save only triggered events; 1: save both triggered and failed events; 2: save only failed events");
117  SaveFailuresTriggerMode->SetParameterName("SaveFailuresMode",true);
118  SaveFailuresTriggerMode->SetDefaultValue(defaultSaveFailuresTriggerMode);
119  StoreSaveFailuresMode = defaultSaveFailuresTriggerMode;
120  SetNewValue(SaveFailuresTriggerMode, G4UIcommand::ConvertToString(defaultSaveFailuresTriggerMode));
121 
122  double defaultSaveFailuresTriggerTime = 100;
123  SaveFailuresTriggerTime = new G4UIcmdWithADouble("/DAQ/TriggerSaveFailures/TriggerTime", this);
124  SaveFailuresTriggerTime->SetGuidance("The trigger time for the events which failed other triggers");
125  SaveFailuresTriggerTime->SetParameterName("SaveFailuresTime",true);
126  SaveFailuresTriggerTime->SetDefaultValue(defaultSaveFailuresTriggerTime);
127  StoreSaveFailuresTime = defaultSaveFailuresTriggerTime;
128  SetNewValue(SaveFailuresTriggerTime, G4UIcommand::ConvertToString(defaultSaveFailuresTriggerTime));
129 
130  int defaultSaveFailuresPreTriggerWindow = -400;
131  SaveFailuresPreTriggerWindow = new G4UIcmdWithAnInteger("/DAQ/TriggerSaveFailures/PreTriggerWindow", this);
132  SaveFailuresPreTriggerWindow->SetGuidance("Set the SaveFailures pretrigger window (in ns)");
133  SaveFailuresPreTriggerWindow->SetParameterName("SaveFailuresPreTriggerWindow",false);
134  SaveFailuresPreTriggerWindow->SetDefaultValue(defaultSaveFailuresPreTriggerWindow);
135  StoreSaveFailuresPreWindow = defaultSaveFailuresPreTriggerWindow;
136  SetNewValue(SaveFailuresPreTriggerWindow, G4UIcommand::ConvertToString(defaultSaveFailuresPreTriggerWindow));
137 
138  int defaultSaveFailuresPostTriggerWindow = 950;
139  SaveFailuresPostTriggerWindow = new G4UIcmdWithAnInteger("/DAQ/TriggerSaveFailures/PostTriggerWindow", this);
140  SaveFailuresPostTriggerWindow->SetGuidance("Set the SaveFailures posttrigger window (in ns)");
141  SaveFailuresPostTriggerWindow->SetParameterName("SaveFailuresPostTriggerWindow",false);
142  SaveFailuresPostTriggerWindow->SetDefaultValue(defaultSaveFailuresPostTriggerWindow);
143  StoreSaveFailuresPostWindow = defaultSaveFailuresPostTriggerWindow;
144  SetNewValue(SaveFailuresPostTriggerWindow, G4UIcommand::ConvertToString(defaultSaveFailuresPostTriggerWindow));
145 
146 
147  //NDigits trigger specifc options
148  NDigitsTriggerDir = new G4UIdirectory("/DAQ/TriggerNDigits/");
149  NDigitsTriggerDir->SetGuidance("Commands specific to the NDigits trigger");
150 
151  int defaultNDigitsTriggerThreshold = -99;
152  NDigitsTriggerThreshold = new G4UIcmdWithAnInteger("/DAQ/TriggerNDigits/Threshold", this);
153  NDigitsTriggerThreshold->SetGuidance("Set the NDigits trigger threshold");
154  NDigitsTriggerThreshold->SetParameterName("NDigitsThreshold",false);
155  NDigitsTriggerThreshold->SetDefaultValue(defaultNDigitsTriggerThreshold);
156  StoreNDigitsThreshold = defaultNDigitsTriggerThreshold;
157  //don't SetNewValue -> defaults class-specific and taken from GetDefault*()
158 
159  int defaultNDigitsTriggerWindow = -99;
160  NDigitsTriggerWindow = new G4UIcmdWithAnInteger("/DAQ/TriggerNDigits/Window", this);
161  NDigitsTriggerWindow->SetGuidance("Set the NDigits trigger window (in ns)");
162  NDigitsTriggerWindow->SetParameterName("NDigitsWindow",false);
163  NDigitsTriggerWindow->SetDefaultValue(defaultNDigitsTriggerWindow);
164  StoreNDigitsWindow = defaultNDigitsTriggerWindow;
165  //don't SetNewValue -> defaults class-specific and taken from GetDefault*()
166 
167  bool defaultNDigitsTriggerAdjustForNoise = true;
168  NDigitsTriggerAdjustForNoise = new G4UIcmdWithABool("/DAQ/TriggerNDigits/AdjustForNoise", this);
169  NDigitsTriggerAdjustForNoise->SetGuidance("Adjust the NDigits trigger threshold automatically dependent on the average noise rate");
170  NDigitsTriggerAdjustForNoise->SetParameterName("NDigitsAdjustForNoise",true);
171  NDigitsTriggerAdjustForNoise->SetDefaultValue(defaultNDigitsTriggerAdjustForNoise);
172  StoreNDigitsAdjustForNoise = defaultNDigitsTriggerAdjustForNoise;
173  SetNewValue(NDigitsTriggerAdjustForNoise, G4UIcommand::ConvertToString(defaultNDigitsTriggerAdjustForNoise));
174 
175  int defaultNDigitsPreTriggerWindow = -99;
176  NDigitsPreTriggerWindow = new G4UIcmdWithAnInteger("/DAQ/TriggerNDigits/PreTriggerWindow", this);
177  NDigitsPreTriggerWindow->SetGuidance("Set the NDigits pretrigger window (in ns)");
178  NDigitsPreTriggerWindow->SetParameterName("NDigitsPreTriggerWindow",false);
179  NDigitsPreTriggerWindow->SetDefaultValue(defaultNDigitsPreTriggerWindow);
180  StoreNDigitsPreWindow = defaultNDigitsPreTriggerWindow;
181  //don't SetNewValue -> defaults class-specific and taken from GetDefault*()
182 
183  int defaultNDigitsPostTriggerWindow = -99;
184  NDigitsPostTriggerWindow = new G4UIcmdWithAnInteger("/DAQ/TriggerNDigits/PostTriggerWindow", this);
185  NDigitsPostTriggerWindow->SetGuidance("Set the NDigits posttrigger window (in ns)");
186  NDigitsPostTriggerWindow->SetParameterName("NDigitsPostTriggerWindow",false);
187  NDigitsPostTriggerWindow->SetDefaultValue(defaultNDigitsPostTriggerWindow);
188  StoreNDigitsPostWindow = defaultNDigitsPostTriggerWindow;
189  //don't SetNewValue -> defaults class-specific and taken from GetDefault*()
190 
191  initialiseString = "";
192  initialised = true;
193 }
194 
196 {
197  delete SaveFailuresTriggerDir;
202 
203  delete NDigitsTriggerDir;
205  delete NDigitsTriggerWindow;
209 
210  delete DigitizerDir;
211  delete DigitizerDeadTime;
214  delete DigitizerPEPrecision;
215 
216  delete DigitizerChoice;
217  delete TriggerChoice;
218  delete MultiDigitsPerTrigger;
219  delete WCSimDAQDir;
220 }
221 
222 void WCSimWCDAQMessenger::SetNewValue(G4UIcommand* command,G4String newValue)
223 {
224  //Because this Messenger class contains options for classes that don't exist when options are
225  // read in (Trigger and Digitizer class options) we need to store each options' value
226  // for use in the Tell*() methods later
227 
228  if (command == DigitizerChoice) {
229  G4cout << "Digitizer choice set to " << newValue << initialiseString.c_str() << G4endl;
230  WCSimEvent->SetDigitizerChoice(newValue);
231  StoreDigitizerChoice = newValue;
232  }
233  else if (command == TriggerChoice) {
234  G4cout << "Trigger choice set to " << newValue << initialiseString.c_str() << G4endl;
235  WCSimEvent->SetTriggerChoice(newValue);
236  StoreTriggerChoice = newValue;
237  }
238  else if (command == MultiDigitsPerTrigger) {
239  StoreMultiDigitsPerTrigger = MultiDigitsPerTrigger->GetNewBoolValue(newValue);
241  G4cout << "Will restrict number of digits per PMT per trigger to <= 1" << initialiseString.c_str() << G4endl;
242  else
243  G4cout << "Will allow number of digits per PMT per trigger to go > 1" << initialiseString.c_str() << G4endl;
244  if(initialised)
246  }
247  else if ( command == RelativeHitTime ) {
248  // Relative HitTime
249  WCSimEvent->SetRelativeDigitizedHitTime(RelativeHitTime->GetNewBoolValue(newValue));
250  }
251 
252  //Generic digitizer options
253  else if (command == DigitizerDeadTime) {
254  G4cout << "Digitizer deadtime set to " << newValue << " ns" << initialiseString.c_str() << G4endl;
255  StoreDigitizerDeadTime = DigitizerDeadTime->GetNewIntValue(newValue);
256  }
257  else if (command == DigitizerIntegrationWindow) {
258  G4cout << "Digitizer integration window set to " << newValue << " ns" << initialiseString.c_str() << G4endl;
260  }
261  else if (command == DigitizerTimingPrecision) {
262  G4cout << "Digitizer timing resolution set to " << newValue << " ns" << initialiseString.c_str() << G4endl;
263  StoreDigitizerTimingPrecision = DigitizerTimingPrecision->GetNewDoubleValue(newValue);
264  }
265  else if (command == DigitizerPEPrecision) {
266  G4cout << "Digitizer charge resolution set to " << newValue << " p.e." << initialiseString.c_str() << G4endl;
267  StoreDigitizerPEPrecision = DigitizerPEPrecision->GetNewDoubleValue(newValue);
268  }
269 
270  //Save failures "trigger"
271  else if (command == SaveFailuresTriggerMode) {
272  StoreSaveFailuresMode = SaveFailuresTriggerMode->GetNewIntValue(newValue);
273  std::string failuremode;
274  if(StoreSaveFailuresMode == 0)
275  failuremode = "Saving only triggered events";
276  else if(StoreSaveFailuresMode == 1)
277  failuremode = "Saving both triggered and failed events";
278  else if(StoreSaveFailuresMode == 2)
279  failuremode = "Saving only failed events";
280  else {
281  G4cerr << "Unknown value of /DAQ/TriggerSaveFailures/Mode " << StoreSaveFailuresMode << " Exiting..." << G4endl;
282  exit(-1);
283  }
284  G4cout << failuremode << initialiseString.c_str() << G4endl;
285  }
286  else if (command == SaveFailuresTriggerTime) {
287  G4cout << "Trigger time for events which fail all triggers will be set to " << newValue << " ns" << initialiseString.c_str() << G4endl;
288  StoreSaveFailuresTime = SaveFailuresTriggerTime->GetNewDoubleValue(newValue);
289  }
290  else if (command == SaveFailuresPreTriggerWindow) {
291  G4cout << "SaveFailures pretrigger window set to " << newValue << " ns" << initialiseString.c_str() << G4endl;
292  StoreSaveFailuresPreWindow = SaveFailuresPreTriggerWindow->GetNewIntValue(newValue);
293  }
294  else if (command == SaveFailuresPostTriggerWindow) {
295  G4cout << "SaveFailures posttrigger window set to " << newValue << " ns" << initialiseString.c_str() << G4endl;
297  }
298 
299  //NDigits trigger
300  else if (command == NDigitsTriggerThreshold) {
301  G4cout << "NDigits trigger threshold set to " << newValue << initialiseString.c_str() << G4endl;
302  StoreNDigitsThreshold = NDigitsTriggerThreshold->GetNewIntValue(newValue);
303  }
304  else if (command == NDigitsTriggerAdjustForNoise) {
305  StoreNDigitsAdjustForNoise = NDigitsTriggerAdjustForNoise->GetNewBoolValue(newValue);
307  G4cout << "Will adjust NDigits trigger threshold using average dark noise rate" << initialiseString.c_str() << G4endl;
308  }
309  else if (command == NDigitsTriggerWindow) {
310  G4cout << "NDigits trigger window set to " << newValue << " ns" << initialiseString.c_str() << G4endl;
311  StoreNDigitsWindow = NDigitsTriggerWindow->GetNewIntValue(newValue);
312  }
313  else if (command == NDigitsPreTriggerWindow) {
314  G4cout << "NDigits pretrigger window set to " << newValue << " ns" << initialiseString.c_str() << G4endl;
315  StoreNDigitsPreWindow = NDigitsPreTriggerWindow->GetNewIntValue(newValue);
316  }
317  else if (command == NDigitsPostTriggerWindow) {
318  G4cout << "NDigits posttrigger window set to " << newValue << " ns" << initialiseString.c_str() << G4endl;
319  StoreNDigitsPostWindow = NDigitsPostTriggerWindow->GetNewIntValue(newValue);
320  }
321 }
322 
324 {
325  G4cout << "Passing Trigger options to the trigger class instance" << G4endl;
326 
330  G4cout << "\tWill restrict number of digits per PMT per trigger to <= 1" << G4endl;
331  else
332  G4cout << "\tWill allow number of digits per PMT per trigger to go > 1" << initialiseString.c_str() << G4endl;
333  }
334 
336  std::string failuremode;
337  if(StoreSaveFailuresMode == 0)
338  failuremode = "Saving only triggered events";
339  else if(StoreSaveFailuresMode == 1)
340  failuremode = "Saving both triggered and failed events";
341  else if(StoreSaveFailuresMode == 2)
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;
346  if(StoreSaveFailuresPreWindow >= -1E6) {
348  G4cout << "\tSaveFailures pretrigger window set to " << StoreSaveFailuresPreWindow << " ns" << G4endl;
349  }
350  if(StoreSaveFailuresPostWindow >= 0) {
352  G4cout << "\tSaveFailures posttrigger window set to " << StoreSaveFailuresPostWindow << " ns" << G4endl;
353  }
354 
355  if(StoreNDigitsThreshold >= 0) {
357  G4cout << "\tNDigits trigger threshold set to " << StoreNDigitsThreshold << G4endl;
358  }
361  G4cout << "\tWill adjust NDigits trigger threshold using average dark noise rate" << G4endl;
362  if(StoreNDigitsWindow >= 0) {
364  G4cout << "\tNDigits trigger window set to " << StoreNDigitsWindow << " ns" << G4endl;
365  }
366  if(StoreNDigitsPreWindow >= 0) {
368  G4cout << "\tNDigits pretrigger window set to " << StoreNDigitsPreWindow << " ns" << G4endl;
369  }
370  if(StoreNDigitsPostWindow >= 0) {
372  G4cout << "\tNDigits posttrigger window set to " << StoreNDigitsPostWindow << " ns" << G4endl;
373  }
374 }
375 
377 {
378  G4cout << "Passing Digitizer options to the digitizer class instance" << G4endl;
379  if(StoreDigitizerDeadTime >= 0) {
381  G4cout << "\tDigitizer deadtime set to " << StoreDigitizerDeadTime << " ns" << G4endl;
382  }
385  G4cout << "\tDigitizer integration window set to " << StoreDigitizerIntegrationWindow << " ns" << G4endl;
386  }
389  G4cout << "\tDigitizer timing resolution set to " << StoreDigitizerTimingPrecision << " ns" << G4endl;
390  }
391  if(StoreDigitizerPEPrecision >= 0) {
393  G4cout << "\tDigitizer charge resolution set to " << StoreDigitizerPEPrecision << " p.e." << G4endl;
394  }
395 }
G4UIdirectory * SaveFailuresTriggerDir
void SetTriggerChoice(G4String trigger)
void SetSaveFailuresPreTriggerWindow(G4int window)
Set the pretrigger window for the SaveFailures trigger (value will be forced negative) ...
G4UIcmdWithAString * DigitizerChoice
G4UIcmdWithAnInteger * NDigitsTriggerWindow
G4UIcmdWithABool * MultiDigitsPerTrigger
WCSimEventAction * WCSimEvent
void SetNDigitsWindow(G4int window)
Set the time window for the NDigits trigger.
G4UIcmdWithAnInteger * SaveFailuresTriggerMode
G4UIcmdWithAnInteger * SaveFailuresPostTriggerWindow
G4UIdirectory * NDigitsTriggerDir
G4UIcmdWithAnInteger * NDigitsTriggerThreshold
G4UIcmdWithAnInteger * NDigitsPreTriggerWindow
G4UIdirectory * WCSimDAQDir
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 &gt; 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?
void SetSaveFailuresPostTriggerWindow(G4int window)
Set the posttrigger window for the SaveFailures trigger (value will be forced positive) ...
G4UIcmdWithABool * NDigitsTriggerAdjustForNoise
void SetRelativeDigitizedHitTime(bool val)
void SetDigitizerChoice(G4String digitizer)
G4UIcmdWithAnInteger * SaveFailuresPreTriggerWindow
WCSimWCDAQMessenger(WCSimEventAction *)
G4UIcmdWithADouble * DigitizerTimingPrecision
void SetDigitizerIntegrationWindow(int inttime)
Override the default digitizer deadtime (ns)
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 &amp;...
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