WCSim
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
WCSimWCTriggerBase Class Referenceabstract

The base class for WCSim triggering algorithms. More...

#include <WCSimWCTrigger.hh>

Inheritance diagram for WCSimWCTriggerBase:
Inheritance graph
Collaboration diagram for WCSimWCTriggerBase:
Collaboration graph

Public Member Functions

 WCSimWCTriggerBase (G4String name, WCSimDetectorConstruction *, WCSimWCDAQMessenger *, G4String)
 Create WCSimWCTriggerBase instance with knowledge of the detector and DAQ options. More...
 
virtual ~WCSimWCTriggerBase ()
 
void Digitize ()
 The main user-callable routine of the class. Gets the input & creates the output WCSimWCTriggeredDigitsCollection's, then calls DoTheWork() More...
 
int NumberOfGatesInThisEvent ()
 Returns the number of trigger gates in the event (i.e. the number of triggers passed) More...
 
Double_t GetTriggerTime (int i)
 Get the time of the ith trigger. More...
 
TriggerType_t GetTriggerType (int i)
 Get the trigger type of the ith trigger. More...
 
std::vector< Double_t > GetTriggerInfo (int i)
 Get the additional trigger information associated with the ith trigger. More...
 
G4String GetTriggerClassName ()
 Get the trigger class name. More...
 
void SetMultiDigitsPerTrigger (G4bool allow_multi)
 Set whether to allow the number of digits per PMT per trigger to go > 1. More...
 
G4bool GetMultiDigitsPerTrigger ()
 
void SetNDigitsThreshold (G4int threshold)
 Set the threshold for the NDigits trigger. More...
 
void SetNDigitsWindow (G4int window)
 Set the time window for the NDigits trigger. More...
 
void SetNDigitsAdjustForNoise (G4bool adjust)
 Automatically adjust the NDigits threshold based on the average noise occupancy? More...
 
void SetNDigitsPreTriggerWindow (G4int window)
 Set the pretrigger window for the NDigits trigger (value will be forced negative) More...
 
void SetNDigitsPostTriggerWindow (G4int window)
 Set the posttrigger window for the NDigits trigger (value will be forced positive) More...
 
void SetTriggerOffset (G4double value)
 Set the timing offset. More...
 
void SetSaveFailuresMode (G4int mode)
 Set the mode for saving failed triggers (0:save only triggered events, 1:save both triggered events & failed events, 2:save only failed events) More...
 
void SetSaveFailuresTime (G4double time)
 Set the dummy trigger time for the failed triggers. More...
 
void SetSaveFailuresPreTriggerWindow (G4int window)
 Set the pretrigger window for the SaveFailures trigger (value will be forced negative) More...
 
void SetSaveFailuresPostTriggerWindow (G4int window)
 Set the posttrigger window for the SaveFailures trigger (value will be forced positive) More...
 
void SetDarkRate (double idarkrate)
 Knowledge of the dark rate (use for automatically adjusting for noise) More...
 
void SaveOptionsToOutput (WCSimRootOptions *wcopt)
 Save current values of options. More...
 

Protected Member Functions

virtual void DoTheWork (WCSimWCDigitsCollection *WCDCPMT)=0
 This should call the trigger algorithms, and handle any temporary DigitsCollection's. More...
 
void GetVariables ()
 Get the default threshold, etc. from the derived class, and override with read from the .mac file. More...
 
virtual bool GetDefaultMultiDigitsPerTrigger ()
 Set the default trigger class specific decision of whether to save multiple digits per PMT per trigger (overridden by .mac) More...
 
virtual int GetDefaultNDigitsWindow ()
 Set the default trigger class specific NDigits window (in ns) (overridden by .mac) More...
 
virtual int GetDefaultNDigitsThreshold ()
 Set the default trigger class specific NDigits threshold (in ns) (overridden by .mac) More...
 
virtual int GetDefaultNDigitsPreTriggerWindow ()
 Set the default trigger class specific NDigits pretrigger window (in ns) (overridden by .mac) More...
 
virtual int GetDefaultNDigitsPostTriggerWindow ()
 Set the default trigger class specific NDigits posttrigger window (in ns) (overridden by .mac) More...
 
virtual int GetDefaultTriggerOffset ()
 Set the default trigger class specific NDigits posttrigger window (in ns) (overridden by .mac) More...
 
double GetPreTriggerWindow (TriggerType_t t)
 Get the pretrigger window for a given trigger algorithm. More...
 
double GetPostTriggerWindow (TriggerType_t t)
 Get the posttrigger window for a given trigger algorithm. More...
 
void AlgNDigits (WCSimWCDigitsCollection *WCDCPMT, bool remove_hits, bool test=false)
 An NDigits trigger algorithm. More...
 
void AlgNoTrigger (WCSimWCDigitsCollection *WCDCPMT, bool remove_hits)
 
void ReInitialize ()
 Clear the Trigger* vectors and DigiHitMap. More...
 

Protected Attributes

WCSimWCTriggeredDigitsCollectionDigitsCollection
 The main output of the class - collection of digits in the trigger window. More...
 
std::map< int, int > DigiHitMap
 Keeps track of the PMTs that have been added to the output WCSimWCTriggeredDigitsCollection. More...
 
std::vector< Double_t > TriggerTimes
 The times of the triggers. More...
 
std::vector< TriggerType_tTriggerTypes
 The type of the triggers. More...
 
std::vector< std::vector< Double_t > > TriggerInfos
 Additional information associated with each trigger. More...
 
WCSimWCDAQMessengerDAQMessenger
 Get the options from the .mac file. More...
 
WCSimDetectorConstructionmyDetector
 Know about the detector, so can add appropriate PMT time smearing. More...
 
G4String detectorElement
 
double PMTDarkRate
 Dark noise rate of the PMTs. More...
 
G4bool multiDigitsPerTrigger
 Allow the number of digits per PMT saved in each trigger window to go > 1? More...
 
G4int ndigitsThreshold
 The threshold for the NDigits trigger. More...
 
G4int ndigitsWindow
 The time window for the NDigits trigger. More...
 
G4bool ndigitsAdjustForNoise
 Automatically adjust the NDigits trigger threshold based on the average dark noise rate? More...
 
G4int ndigitsPreTriggerWindow
 The pretrigger window to save before an NDigits trigger. More...
 
G4int ndigitsPostTriggerWindow
 The posttrigger window to save after an NDigits trigger. More...
 
G4int saveFailuresMode
 The mode for saving events which don't pass triggers. More...
 
G4double saveFailuresTime
 The dummy trigger time for failed events. More...
 
G4int saveFailuresPreTriggerWindow
 The pretrigger window to save before an SaveFailures trigger. More...
 
G4int saveFailuresPostTriggerWindow
 The posttrigger window to save after an SaveFailures trigger. More...
 
G4double offset
 
G4String triggerClassName
 Save the name of the trigger class. More...
 

Private Member Functions

void AdjustNDigitsThresholdForNoise ()
 modify the NDigits threshold based on the average dark noise rate More...
 
void FillDigitsCollection (WCSimWCDigitsCollection *WCDCPMT, bool remove_hits, TriggerType_t save_triggerType)
 takes all trigger times, then loops over all Digits & fills the output DigitsCollection More...
 
void SortTriggersByTime ()
 sort the Trigger vectors (Time, Type, Info) by Trigger Time More...
 

Private Attributes

bool digitizeCalled
 Has Digitize() been called yet? More...
 

Static Private Attributes

static const double LongTime = 40E9
 An arbitrary long time to use in loops (ns) More...
 

Detailed Description

The base class for WCSim triggering algorithms.

Concrete implementations of a trigger class should inherit from this class. Minimally, only DoTheWork() needs to be implemented in the implementation class.

Definition at line 33 of file WCSimWCTrigger.hh.

Constructor & Destructor Documentation

◆ WCSimWCTriggerBase()

WCSimWCTriggerBase::WCSimWCTriggerBase ( G4String  name,
WCSimDetectorConstruction inDetector,
WCSimWCDAQMessenger myMessenger,
G4String  inDetectorElement 
)

Create WCSimWCTriggerBase instance with knowledge of the detector and DAQ options.

Definition at line 40 of file WCSimWCTrigger.cc.

◆ ~WCSimWCTriggerBase()

WCSimWCTriggerBase::~WCSimWCTriggerBase ( )
virtual

Definition at line 68 of file WCSimWCTrigger.cc.

Member Function Documentation

◆ AdjustNDigitsThresholdForNoise()

void WCSimWCTriggerBase::AdjustNDigitsThresholdForNoise ( )
private

modify the NDigits threshold based on the average dark noise rate

Definition at line 155 of file WCSimWCTrigger.cc.

◆ AlgNDigits()

void WCSimWCTriggerBase::AlgNDigits ( WCSimWCDigitsCollection WCDCPMT,
bool  remove_hits,
bool  test = false 
)
protected

An NDigits trigger algorithm.

Looks through the input WCSimWCDigitsCollection and integrates the number of hits in a (specified) time window If the integral passes above a (specified) threshold, a trigger is issued

The trigger type is kTriggerNDigits

The trigger time is the time of the first digit above threshold

The trigger information is the number of hits in the time window (i.e. the number of hits that caused the trigger to fire)

Currently setup with the optional 'test' argument which runs the algorithm with half the hit threshold for testing purposes. Triggers issued in this mode have type kTriggerNDigitsTest

Definition at line 240 of file WCSimWCTrigger.cc.

◆ AlgNoTrigger()

void WCSimWCTriggerBase::AlgNoTrigger ( WCSimWCDigitsCollection WCDCPMT,
bool  remove_hits 
)
protected

Definition at line 501 of file WCSimWCTrigger.cc.

◆ Digitize()

void WCSimWCTriggerBase::Digitize ( )

The main user-callable routine of the class. Gets the input & creates the output WCSimWCTriggeredDigitsCollection's, then calls DoTheWork()

Definition at line 176 of file WCSimWCTrigger.cc.

◆ DoTheWork()

virtual void WCSimWCTriggerBase::DoTheWork ( WCSimWCDigitsCollection WCDCPMT)
protectedpure virtual

This should call the trigger algorithms, and handle any temporary DigitsCollection's.

Implemented in WCSimWCTriggerNDigits2, WCSimWCTriggerNoTrigger, and WCSimWCTriggerNDigits.

◆ FillDigitsCollection()

void WCSimWCTriggerBase::FillDigitsCollection ( WCSimWCDigitsCollection WCDCPMT,
bool  remove_hits,
TriggerType_t  save_triggerType 
)
private

takes all trigger times, then loops over all Digits & fills the output DigitsCollection

Definition at line 366 of file WCSimWCTrigger.cc.

◆ GetDefaultMultiDigitsPerTrigger()

virtual bool WCSimWCTriggerBase::GetDefaultMultiDigitsPerTrigger ( )
inlineprotectedvirtual

Set the default trigger class specific decision of whether to save multiple digits per PMT per trigger (overridden by .mac)

Reimplemented in WCSimWCTriggerNDigits2, WCSimWCTriggerNoTrigger, and WCSimWCTriggerNDigits.

Definition at line 105 of file WCSimWCTrigger.hh.

◆ GetDefaultNDigitsPostTriggerWindow()

virtual int WCSimWCTriggerBase::GetDefaultNDigitsPostTriggerWindow ( )
inlineprotectedvirtual

Set the default trigger class specific NDigits posttrigger window (in ns) (overridden by .mac)

Reimplemented in WCSimWCTriggerNDigits2, WCSimWCTriggerNoTrigger, and WCSimWCTriggerNDigits.

Definition at line 113 of file WCSimWCTrigger.hh.

◆ GetDefaultNDigitsPreTriggerWindow()

virtual int WCSimWCTriggerBase::GetDefaultNDigitsPreTriggerWindow ( )
inlineprotectedvirtual

Set the default trigger class specific NDigits pretrigger window (in ns) (overridden by .mac)

Reimplemented in WCSimWCTriggerNDigits2, WCSimWCTriggerNoTrigger, and WCSimWCTriggerNDigits.

Definition at line 111 of file WCSimWCTrigger.hh.

◆ GetDefaultNDigitsThreshold()

virtual int WCSimWCTriggerBase::GetDefaultNDigitsThreshold ( )
inlineprotectedvirtual

Set the default trigger class specific NDigits threshold (in ns) (overridden by .mac)

Reimplemented in WCSimWCTriggerNDigits2, WCSimWCTriggerNoTrigger, and WCSimWCTriggerNDigits.

Definition at line 109 of file WCSimWCTrigger.hh.

◆ GetDefaultNDigitsWindow()

virtual int WCSimWCTriggerBase::GetDefaultNDigitsWindow ( )
inlineprotectedvirtual

Set the default trigger class specific NDigits window (in ns) (overridden by .mac)

Reimplemented in WCSimWCTriggerNDigits2, WCSimWCTriggerNoTrigger, and WCSimWCTriggerNDigits.

Definition at line 107 of file WCSimWCTrigger.hh.

◆ GetDefaultTriggerOffset()

virtual int WCSimWCTriggerBase::GetDefaultTriggerOffset ( )
inlineprotectedvirtual

Set the default trigger class specific NDigits posttrigger window (in ns) (overridden by .mac)

Reimplemented in WCSimWCTriggerNDigits2, and WCSimWCTriggerNDigits.

Definition at line 115 of file WCSimWCTrigger.hh.

◆ GetMultiDigitsPerTrigger()

G4bool WCSimWCTriggerBase::GetMultiDigitsPerTrigger ( )
inline

Definition at line 63 of file WCSimWCTrigger.hh.

◆ GetPostTriggerWindow()

double WCSimWCTriggerBase::GetPostTriggerWindow ( TriggerType_t  t)
protected

Get the posttrigger window for a given trigger algorithm.

Definition at line 134 of file WCSimWCTrigger.cc.

◆ GetPreTriggerWindow()

double WCSimWCTriggerBase::GetPreTriggerWindow ( TriggerType_t  t)
protected

Get the pretrigger window for a given trigger algorithm.

Definition at line 113 of file WCSimWCTrigger.cc.

◆ GetTriggerClassName()

G4String WCSimWCTriggerBase::GetTriggerClassName ( )
inline

Get the trigger class name.

Definition at line 55 of file WCSimWCTrigger.hh.

◆ GetTriggerInfo()

std::vector<Double_t> WCSimWCTriggerBase::GetTriggerInfo ( int  i)
inline

Get the additional trigger information associated with the ith trigger.

Definition at line 53 of file WCSimWCTrigger.hh.

◆ GetTriggerTime()

Double_t WCSimWCTriggerBase::GetTriggerTime ( int  i)
inline

Get the time of the ith trigger.

Definition at line 49 of file WCSimWCTrigger.hh.

◆ GetTriggerType()

TriggerType_t WCSimWCTriggerBase::GetTriggerType ( int  i)
inline

Get the trigger type of the ith trigger.

Definition at line 51 of file WCSimWCTrigger.hh.

◆ GetVariables()

void WCSimWCTriggerBase::GetVariables ( )
protected

Get the default threshold, etc. from the derived class, and override with read from the .mac file.

Definition at line 72 of file WCSimWCTrigger.cc.

◆ NumberOfGatesInThisEvent()

int WCSimWCTriggerBase::NumberOfGatesInThisEvent ( )
inline

Returns the number of trigger gates in the event (i.e. the number of triggers passed)

Definition at line 47 of file WCSimWCTrigger.hh.

◆ ReInitialize()

void WCSimWCTriggerBase::ReInitialize ( )
inlineprotected

Clear the Trigger* vectors and DigiHitMap.

Definition at line 154 of file WCSimWCTrigger.hh.

◆ SaveOptionsToOutput()

void WCSimWCTriggerBase::SaveOptionsToOutput ( WCSimRootOptions wcopt)

Save current values of options.

Definition at line 518 of file WCSimWCTrigger.cc.

◆ SetDarkRate()

void WCSimWCTriggerBase::SetDarkRate ( double  idarkrate)
inline

Knowledge of the dark rate (use for automatically adjusting for noise)

Definition at line 91 of file WCSimWCTrigger.hh.

◆ SetMultiDigitsPerTrigger()

void WCSimWCTriggerBase::SetMultiDigitsPerTrigger ( G4bool  allow_multi)
inline

Set whether to allow the number of digits per PMT per trigger to go > 1.

Definition at line 62 of file WCSimWCTrigger.hh.

◆ SetNDigitsAdjustForNoise()

void WCSimWCTriggerBase::SetNDigitsAdjustForNoise ( G4bool  adjust)
inline

Automatically adjust the NDigits threshold based on the average noise occupancy?

Definition at line 71 of file WCSimWCTrigger.hh.

◆ SetNDigitsPostTriggerWindow()

void WCSimWCTriggerBase::SetNDigitsPostTriggerWindow ( G4int  window)
inline

Set the posttrigger window for the NDigits trigger (value will be forced positive)

Definition at line 75 of file WCSimWCTrigger.hh.

◆ SetNDigitsPreTriggerWindow()

void WCSimWCTriggerBase::SetNDigitsPreTriggerWindow ( G4int  window)
inline

Set the pretrigger window for the NDigits trigger (value will be forced negative)

Definition at line 73 of file WCSimWCTrigger.hh.

◆ SetNDigitsThreshold()

void WCSimWCTriggerBase::SetNDigitsThreshold ( G4int  threshold)
inline

Set the threshold for the NDigits trigger.

Definition at line 67 of file WCSimWCTrigger.hh.

◆ SetNDigitsWindow()

void WCSimWCTriggerBase::SetNDigitsWindow ( G4int  window)
inline

Set the time window for the NDigits trigger.

Definition at line 69 of file WCSimWCTrigger.hh.

◆ SetSaveFailuresMode()

void WCSimWCTriggerBase::SetSaveFailuresMode ( G4int  mode)
inline

Set the mode for saving failed triggers (0:save only triggered events, 1:save both triggered events & failed events, 2:save only failed events)

Definition at line 82 of file WCSimWCTrigger.hh.

◆ SetSaveFailuresPostTriggerWindow()

void WCSimWCTriggerBase::SetSaveFailuresPostTriggerWindow ( G4int  window)
inline

Set the posttrigger window for the SaveFailures trigger (value will be forced positive)

Definition at line 88 of file WCSimWCTrigger.hh.

◆ SetSaveFailuresPreTriggerWindow()

void WCSimWCTriggerBase::SetSaveFailuresPreTriggerWindow ( G4int  window)
inline

Set the pretrigger window for the SaveFailures trigger (value will be forced negative)

Definition at line 86 of file WCSimWCTrigger.hh.

◆ SetSaveFailuresTime()

void WCSimWCTriggerBase::SetSaveFailuresTime ( G4double  time)
inline

Set the dummy trigger time for the failed triggers.

Definition at line 84 of file WCSimWCTrigger.hh.

◆ SetTriggerOffset()

void WCSimWCTriggerBase::SetTriggerOffset ( G4double  value)
inline

Set the timing offset.

Definition at line 78 of file WCSimWCTrigger.hh.

◆ SortTriggersByTime()

void WCSimWCTriggerBase::SortTriggersByTime ( )
inlineprivate

sort the Trigger vectors (Time, Type, Info) by Trigger Time

Definition at line 189 of file WCSimWCTrigger.hh.

Member Data Documentation

◆ DAQMessenger

WCSimWCDAQMessenger* WCSimWCTriggerBase::DAQMessenger
protected

Get the options from the .mac file.

Definition at line 149 of file WCSimWCTrigger.hh.

◆ detectorElement

G4String WCSimWCTriggerBase::detectorElement
protected

Definition at line 151 of file WCSimWCTrigger.hh.

◆ DigiHitMap

std::map<int,int> WCSimWCTriggerBase::DigiHitMap
protected

Keeps track of the PMTs that have been added to the output WCSimWCTriggeredDigitsCollection.

Definition at line 143 of file WCSimWCTrigger.hh.

◆ digitizeCalled

bool WCSimWCTriggerBase::digitizeCalled
private

Has Digitize() been called yet?

Definition at line 212 of file WCSimWCTrigger.hh.

◆ DigitsCollection

WCSimWCTriggeredDigitsCollection* WCSimWCTriggerBase::DigitsCollection
protected

The main output of the class - collection of digits in the trigger window.

Definition at line 142 of file WCSimWCTrigger.hh.

◆ LongTime

const double WCSimWCTriggerBase::LongTime = 40E9
staticprivate

An arbitrary long time to use in loops (ns)

Definition at line 210 of file WCSimWCTrigger.hh.

◆ multiDigitsPerTrigger

G4bool WCSimWCTriggerBase::multiDigitsPerTrigger
protected

Allow the number of digits per PMT saved in each trigger window to go > 1?

Definition at line 164 of file WCSimWCTrigger.hh.

◆ myDetector

WCSimDetectorConstruction* WCSimWCTriggerBase::myDetector
protected

Know about the detector, so can add appropriate PMT time smearing.

Definition at line 150 of file WCSimWCTrigger.hh.

◆ ndigitsAdjustForNoise

G4bool WCSimWCTriggerBase::ndigitsAdjustForNoise
protected

Automatically adjust the NDigits trigger threshold based on the average dark noise rate?

Definition at line 168 of file WCSimWCTrigger.hh.

◆ ndigitsPostTriggerWindow

G4int WCSimWCTriggerBase::ndigitsPostTriggerWindow
protected

The posttrigger window to save after an NDigits trigger.

Definition at line 170 of file WCSimWCTrigger.hh.

◆ ndigitsPreTriggerWindow

G4int WCSimWCTriggerBase::ndigitsPreTriggerWindow
protected

The pretrigger window to save before an NDigits trigger.

Definition at line 169 of file WCSimWCTrigger.hh.

◆ ndigitsThreshold

G4int WCSimWCTriggerBase::ndigitsThreshold
protected

The threshold for the NDigits trigger.

Definition at line 166 of file WCSimWCTrigger.hh.

◆ ndigitsWindow

G4int WCSimWCTriggerBase::ndigitsWindow
protected

The time window for the NDigits trigger.

Definition at line 167 of file WCSimWCTrigger.hh.

◆ offset

G4double WCSimWCTriggerBase::offset
protected

Definition at line 177 of file WCSimWCTrigger.hh.

◆ PMTDarkRate

double WCSimWCTriggerBase::PMTDarkRate
protected

Dark noise rate of the PMTs.

Definition at line 161 of file WCSimWCTrigger.hh.

◆ saveFailuresMode

G4int WCSimWCTriggerBase::saveFailuresMode
protected

The mode for saving events which don't pass triggers.

Definition at line 172 of file WCSimWCTrigger.hh.

◆ saveFailuresPostTriggerWindow

G4int WCSimWCTriggerBase::saveFailuresPostTriggerWindow
protected

The posttrigger window to save after an SaveFailures trigger.

Definition at line 175 of file WCSimWCTrigger.hh.

◆ saveFailuresPreTriggerWindow

G4int WCSimWCTriggerBase::saveFailuresPreTriggerWindow
protected

The pretrigger window to save before an SaveFailures trigger.

Definition at line 174 of file WCSimWCTrigger.hh.

◆ saveFailuresTime

G4double WCSimWCTriggerBase::saveFailuresTime
protected

The dummy trigger time for failed events.

Definition at line 173 of file WCSimWCTrigger.hh.

◆ triggerClassName

G4String WCSimWCTriggerBase::triggerClassName
protected

Save the name of the trigger class.

Definition at line 179 of file WCSimWCTrigger.hh.

◆ TriggerInfos

std::vector< std::vector<Double_t> > WCSimWCTriggerBase::TriggerInfos
protected

Additional information associated with each trigger.

Definition at line 147 of file WCSimWCTrigger.hh.

◆ TriggerTimes

std::vector<Double_t> WCSimWCTriggerBase::TriggerTimes
protected

The times of the triggers.

Definition at line 145 of file WCSimWCTrigger.hh.

◆ TriggerTypes

std::vector<TriggerType_t> WCSimWCTriggerBase::TriggerTypes
protected

The type of the triggers.

Definition at line 146 of file WCSimWCTrigger.hh.


The documentation for this class was generated from the following files: