The algorithms considered are either threshold algorithms with a different threshold set for each PMT (T1 threshold, T2 threshold and muon algorithms have thresholds fThresholdLevel1, fThresholdLevel2, fTOTLevel2, fSingleMuon) or Time Over Threshold (fTOTLevel2BinsInWindow time bins with more than fTOTLevel2PMTs PMTs having a signal greater than fTOTLevel2 above baseline in a time window spanning fTOTLevel2Bins time bins )
The algorithm followed to determine the trigger in a given station is the following:
<ol>
<li> Find the earliest and latest time bins in all PMTs </li>
<li> Iterate over the time bins, starting at the earliest time. At each time bin, do the following: </li>
<ul>
<li> Count the number of PMTs that have signal above the various thresholds </li>
<li> If there are more than fTOTLevel2PMTs, increase the number of triggered bins in the TOT window.
<li> Check if there are at least fTOTLevel2PMTs PMTs with signal exceding the TOT threshold at the first bin in the window (bin - fTOTLevel2Bins). If there are, the number of triggered bins needs to be decreased by one. </li>
<li> Check if the number of triggered bins is greater than fTOTLevel2BinsInWindow.
</ul>
<li> When a trigger condition is fullfiled, the start and end bin of the trace is set. </li>
<li> When we reach the end bin, the start and end are reset to 0 and the trace is copied into PMTSimData. </li>
<li> Check if the trace is a T2 threshold. </li>
</ol>
Requirements
<ul>
<li>sevt::PMTSimData::HasFADCTrace, needs a trace in PMTSimData
</ul>
It provides:
<ul>
<li> sevt::PMTSimData::MakeFADCTrace(const utl::TimeStamp&, Station::SignalComponent). It creates one FADC trace per local trigger at the local trigger time.
<li> sevt::StationSimData::MakeTriggerData(const utl::TimeStamp&). It makes a StationTriggerData in StationSimData
</ul>
The way the interface is set up, the StationGPSData is created at the same time, to guarantee that it will exist. However, the time will only be set in the GPS simulator.