@@ -96,6 +96,9 @@ void WCSimWCTriggerBase::GetVariables()
96
96
int WCSimWCTriggerBase::GetPreTriggerWindow (TriggerType_t t)
97
97
{
98
98
switch (t) {
99
+ case kTriggerNoTrig :
100
+ return 0 ;
101
+ break ;
99
102
case kTriggerNDigits :
100
103
case kTriggerNDigitsTest :
101
104
return ndigitsPreTriggerWindow;
@@ -114,6 +117,9 @@ int WCSimWCTriggerBase::GetPreTriggerWindow(TriggerType_t t)
114
117
int WCSimWCTriggerBase::GetPostTriggerWindow (TriggerType_t t)
115
118
{
116
119
switch (t) {
120
+ case kTriggerNoTrig :
121
+ return WCSimWCTriggerBase::LongTime;
122
+ break ;
117
123
case kTriggerNDigits :
118
124
case kTriggerNDigitsTest :
119
125
return ndigitsPostTriggerWindow;
@@ -409,6 +415,25 @@ void WCSimWCTriggerBase::FillDigitsCollection(WCSimWCDigitsCollection* WCDCPMT,
409
415
410
416
}
411
417
418
+ void WCSimWCTriggerBase::AlgNoTrigger (WCSimWCDigitsCollection* WCDCPMT, bool remove_hits, bool test) {
419
+
420
+ // Does not doanything, just writes out all hits
421
+ TriggerType_t this_triggerType = kTriggerNoTrig ;
422
+ std::vector<Float_t> triggerinfo;
423
+ Int_t Ndigits=0 ;
424
+ for (G4int i = 0 ; i < WCDCPMT->entries () ; i++) {
425
+ for ( G4int ip = 0 ; ip < (*WCDCPMT)[i]->GetTotalPe () ; ip++) {
426
+ Ndigits++;
427
+ }
428
+ }
429
+ triggerinfo.push_back (Ndigits);
430
+ TriggerTypes.push_back (kTriggerNoTrig );
431
+ TriggerInfos.push_back (triggerinfo);
432
+ TriggerTimes.push_back (0 .);
433
+
434
+ FillDigitsCollection (WCDCPMT, remove_hits, this_triggerType);
435
+ }
436
+
412
437
void WCSimWCTriggerBase::SaveOptionsToOutput (WCSimRootOptions * wcopt)
413
438
{
414
439
wcopt->SetTriggerClassName (triggerClassName);;
@@ -513,6 +538,32 @@ void WCSimWCTriggerNDigits::DoTheWork(WCSimWCDigitsCollection* WCDCPMT) {
513
538
AlgNDigits (WCDCPMT, remove_hits);
514
539
}
515
540
541
+ // *******************************************
542
+ // DERIVED CLASS
543
+ // *******************************************
544
+
545
+
546
+ WCSimWCTriggerNoTrigger::WCSimWCTriggerNoTrigger (G4String name,
547
+ WCSimDetectorConstruction* myDetector,
548
+ WCSimWCDAQMessenger* myMessenger)
549
+ :WCSimWCTriggerBase(name, myDetector, myMessenger)
550
+ {
551
+ triggerClassName = " NoTrigger" ;
552
+ }
553
+
554
+ WCSimWCTriggerNoTrigger::~WCSimWCTriggerNoTrigger ()
555
+ {
556
+ }
557
+
558
+ void WCSimWCTriggerNoTrigger::DoTheWork (WCSimWCDigitsCollection* WCDCPMT) {
559
+ // Apply an NDigits trigger
560
+ bool remove_hits = false ;
561
+ SetMultiDigitsPerTrigger (true );
562
+ SetSaveFailuresMode (0 );
563
+ AlgNoTrigger (WCDCPMT, remove_hits);
564
+ }
565
+
566
+
516
567
// *******************************************
517
568
// DERIVED CLASS
518
569
// *******************************************
0 commit comments