Jpp
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions | Private Attributes | List of all members
JTRIGGER::JTrigger3DShower Class Reference

Shower trigger. More...

#include <JTrigger3DShower.hh>

Inheritance diagram for JTRIGGER::JTrigger3DShower:
JTRIGGER::JTrigger3D JTRIGGER::JTriggerInterface

Public Types

typedef JTriggerInput::value_type value_type
 
typedef JMatch< value_typematch_type
 

Public Member Functions

 JTrigger3DShower (const JTrigger3DShower_t::JParameters &input)
 Constructor. More...
 
void operator() (const JTriggerInput &input, std::back_insert_iterator< JTriggerOutput > out) const
 Process trigger. More...
 
JTriggerbit_t getTriggerBit () const
 Get the trigger bit. More...
 

Static Public Member Functions

static JTrigger3D::JParameters getParameters (const JTrigger3DShower_t::JParameters &input)
 Convert trigger parameters. More...
 
static const char * getTriggerName (JTriggerbit_t bit)
 Get trigger name. More...
 

Public Attributes

JParameters parameters
 
JModuleCounter getNumberOfModules
 Function object to count unique modules. More...
 

Protected Member Functions

template<JTriggerbit_t N>
bool checkTriggerBit () const
 Test whether specific trigger bit correponds to derived trigger class. More...
 
template<JTriggerbit_t N>
JTriggerbit_t find_trigger_bit (JBit< N > bit) const
 Recursive method to find the trigger bit of the given trigger data. More...
 
JTriggerbit_t find_trigger_bit (JBit< NUMBER_OF_TRIGGER_BITS > bit) const
 Termination method of recursive method to find the trigger bit of the given trigger data. More...
 

Static Protected Member Functions

template<JTriggerbit_t N>
static const char * getTriggerName ()
 Get trigger name. More...
 
template<JTriggerbit_t N>
static const char * get_trigger_name (JBit< N > bit, JTriggerbit_t value)
 Recursive method to get trigger name for given trigger bit. More...
 
static const char * get_trigger_name (JBit< NUMBER_OF_TRIGGER_BITS > bit, JTriggerbit_t value)
 Termination method of recursive method to get trigger name. More...
 

Private Attributes

std::vector< value_typebuffer
 

Detailed Description

Shower trigger.

Definition at line 22 of file JTrigger3DShower.hh.

Member Typedef Documentation

◆ value_type

typedef JTriggerInput::value_type JTRIGGER::JTriggerInterface::value_type
inherited

Definition at line 161 of file JTriggerInterface.hh.

◆ match_type

Definition at line 162 of file JTriggerInterface.hh.

Constructor & Destructor Documentation

◆ JTrigger3DShower()

JTRIGGER::JTrigger3DShower::JTrigger3DShower ( const JTrigger3DShower_t::JParameters input)
inline

Constructor.

Parameters
inputtrigger parameters

Definition at line 31 of file JTrigger3DShower.hh.

31  :
33  {}

Member Function Documentation

◆ getParameters()

static JTrigger3D::JParameters JTRIGGER::JTrigger3DShower::getParameters ( const JTrigger3DShower_t::JParameters input)
inlinestatic

Convert trigger parameters.

Parameters
inputtrigger parameters
Returns
trigger parameters

Definition at line 42 of file JTrigger3DShower.hh.

43  {
44  using namespace JTOOLS;
45 
46  const double TMaxEvent_ns = input.DMax_m * getIndexOfRefraction() * getInverseSpeedOfLight();
47 
48  return JTrigger3D::JParameters(input.enabled,
49  input.numberOfHits,
50  input.numberOfModules,
51  TMaxEvent_ns + input.TMaxExtra_ns,
53  input.factoryLimit);
54  }

◆ operator()()

void JTRIGGER::JTrigger3D::operator() ( const JTriggerInput input,
std::back_insert_iterator< JTriggerOutput out 
) const
inlineinherited

Process trigger.

Parameters
inputinput data
outoutput data

Definition at line 101 of file JTrigger3D.hh.

102  {
103  using std::distance;
104 
105  if (parameters.enabled && input.size() >= parameters.numberOfHits) {
106 
107  match_type& match3D = *parameters.match3D;
108 
109  for (JTriggerInput::const_iterator p = input.begin(), q = p; p != input.end(); ) {
110 
111  for (++q; q->getT() - p->getT() < parameters.TMaxEvent_ns; ++q) {}
112 
113  if (distance (p,q) >= parameters.numberOfHits &&
115 
116  if (distance(p,q) < parameters.factoryLimit) {
117 
118  do {
119 
120  if (distance (p,q) >= parameters.numberOfHits &&
122 
123  // copy
124 
125  JTriggerInput::iterator root = buffer.begin();
126  JTriggerInput::iterator __p = buffer.begin();
127  JTriggerInput::iterator __q = buffer.begin();
128 
129  *root = *p;
130 
131  ++__p;
132  ++__q;
133 
134  for (JTriggerInput::const_iterator i = p; ++i != q; ) {
135  if (match3D(*p,*i)) {
136  *__q = *i;
137  ++__q;
138  }
139  }
140 
141  if (distance (root,__q) >= parameters.numberOfHits &&
143 
144  __q = clusterize(__p, __q, match3D, parameters.numberOfHits - 1);
145 
146  if (distance (root,__q) >= parameters.numberOfHits &&
148  *out = JEvent(input.getDAQChronometer(), root, __q, this->getTriggerBit());
149  ++out;
150  }
151  }
152  }
153 
154  ++p;
155 
156  } while (q->getT() - p->getT() >= parameters.TMaxEvent_ns);
157 
158  } else {
159 
160  // Anomalous large event
161 
162  *out = JEvent(input.getDAQChronometer(), p, q, this->getTriggerBit());
163  ++out;
164 
165  p = q;
166  }
167 
168  } else {
169 
170  for (++p; q->getT() - p->getT() >= parameters.TMaxEvent_ns; ++p) {}
171  }
172  }
173  }
174  }

◆ checkTriggerBit()

template<JTriggerbit_t N>
bool JTRIGGER::JTriggerInterface::checkTriggerBit ( ) const
inlineprotectedinherited

Test whether specific trigger bit correponds to derived trigger class.

This method will be specialised using the marco setTriggerBit() so that it will return true if this triggered event corresponds to bit N.

This method will be repeatedly called by method find_trigger_bit() which in turn is called by the member method JTriggerInterface::getTriggerBit() so that it returns the correct trigger bit.

Returns
false

Definition at line 76 of file JTriggerInterface.hh.

77  {
78  return false;
79  }

◆ find_trigger_bit() [1/2]

template<JTriggerbit_t N>
JTriggerbit_t JTRIGGER::JTriggerInterface::find_trigger_bit ( JBit< N >  bit) const
inlineprotectedinherited

Recursive method to find the trigger bit of the given trigger data.

Parameters
bittrigger bit
Returns
trigger bit

Definition at line 89 of file JTriggerInterface.hh.

90  {
91  if (checkTriggerBit<N>())
92  return N;
93  else
94  return find_trigger_bit(JBit<N+1>());
95  }

◆ find_trigger_bit() [2/2]

JTriggerbit_t JTRIGGER::JTriggerInterface::find_trigger_bit ( JBit< NUMBER_OF_TRIGGER_BITS >  bit) const
inlineprotectedinherited

Termination method of recursive method to find the trigger bit of the given trigger data.

This method throws an error.

Parameters
bittrigger bit
Returns
trigger bit

Definition at line 105 of file JTriggerInterface.hh.

106  {
107  throw JTriggerException("Method find_trigger_bit<>(): no corresponding trigger bit found.");
108  }

◆ getTriggerName() [1/2]

template<JTriggerbit_t N>
static const char* JTRIGGER::JTriggerInterface::getTriggerName ( )
inlinestaticprotectedinherited

Get trigger name.

This method will be specialised using the marco setTriggerBit() so that it will return name of trigger for bit N.

This method will be repeatedly called by method get_trigger_name() which in turn is called by the method JTriggerInterface::getTriggerName() so that it returns the correct trigger name.

Returns
NULL

Definition at line 124 of file JTriggerInterface.hh.

125  {
126  return NULL;
127  }

◆ getTriggerName() [2/2]

static const char* JTRIGGER::JTriggerInterface::getTriggerName ( JTriggerbit_t  bit)
inlinestaticinherited

Get trigger name.

param bit trigger bit

Returns
trigger name

Definition at line 182 of file JTriggerInterface.hh.

183  {
184  return get_trigger_name(JBit<0>(), bit);
185  }

◆ get_trigger_name() [1/2]

template<JTriggerbit_t N>
static const char* JTRIGGER::JTriggerInterface::get_trigger_name ( JBit< N >  bit,
JTriggerbit_t  value 
)
inlinestaticprotectedinherited

Recursive method to get trigger name for given trigger bit.

Parameters
bittrigger bit
valuetrigger bit
Returns
trigger name

Definition at line 138 of file JTriggerInterface.hh.

139  {
140  if (bit.value == value)
141  return getTriggerName<N>();
142  else
143  return get_trigger_name(JBit<N+1>(), value);
144  }

◆ get_trigger_name() [2/2]

static const char* JTRIGGER::JTriggerInterface::get_trigger_name ( JBit< NUMBER_OF_TRIGGER_BITS >  bit,
JTriggerbit_t  value 
)
inlinestaticprotectedinherited

Termination method of recursive method to get trigger name.

Parameters
bittrigger bit
valuetrigger bit
Returns
NULL

Definition at line 154 of file JTriggerInterface.hh.

155  {
156  return NULL;
157  }

◆ getTriggerBit()

JTriggerbit_t JTRIGGER::JTriggerInterface::getTriggerBit ( ) const
inlineinherited

Get the trigger bit.

Returns
trigger bit

Definition at line 170 of file JTriggerInterface.hh.

171  {
172  return find_trigger_bit(JBit<0>());
173  }

Member Data Documentation

◆ parameters

JParameters JTRIGGER::JTrigger3D::parameters
inherited

Definition at line 178 of file JTrigger3D.hh.

◆ buffer

std::vector<value_type> JTRIGGER::JTrigger3D::buffer
mutableprivateinherited

Definition at line 181 of file JTrigger3D.hh.

◆ getNumberOfModules

JModuleCounter JTRIGGER::JTriggerInterface::getNumberOfModules
inherited

Function object to count unique modules.

Definition at line 191 of file JTriggerInterface.hh.


The documentation for this class was generated from the following file:
JTRIGGER::JTrigger3DShower_t::JParameters::numberOfModules
int numberOfModules
minimal number of modules to trigger event
Definition: JTrigger3DShower_t.hh:104
JTRIGGER::JTriggerInterface::getTriggerBit
JTriggerbit_t getTriggerBit() const
Get the trigger bit.
Definition: JTriggerInterface.hh:170
JTRIGGER::JTrigger3DShower_t::JParameters::factoryLimit
int factoryLimit
maximal number of hits to apply trigger logic (above this limit, always trigger
Definition: JTrigger3DShower_t.hh:107
JTRIGGER::JTriggerInterface::match_type
JMatch< value_type > match_type
Definition: JTriggerInterface.hh:162
JTRIGGER::JTrigger3D::JParameters::factoryLimit
int factoryLimit
Definition: JTrigger3D.hh:71
JTRIGGER::JEvent
Triggered event.
Definition: JEvent.hh:31
JTRIGGER::clusterize
JHitIterator_t clusterize(JHitIterator_t __begin, JHitIterator_t __end, const JMatch< JHit_t > &match, const int Nmin=1)
Partition data according given binary match operator.
Definition: JAlgorithm.hh:45
distance
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
Definition: PhysicsEvent.hh:434
JTRIGGER::JTrigger3D::JParameters
Trigger parameters.
Definition: JTrigger3D.hh:37
JTRIGGER::JTrigger3D::JParameters::numberOfModules
int numberOfModules
Definition: JTrigger3D.hh:68
JTRIGGER::JTriggerException
General exception.
Definition: JTriggerException.hh:23
JTOOLS::getInverseSpeedOfLight
const double getInverseSpeedOfLight()
Get inverse speed of light.
Definition: JConstants.hh:100
JTRIGGER::JTrigger3D::buffer
std::vector< value_type > buffer
Definition: JTrigger3D.hh:181
JTRIGGER::JTrigger3DShower_t::JParameters::numberOfHits
int numberOfHits
minimal number of hits to trigger event
Definition: JTrigger3DShower_t.hh:103
JTOOLS::getIndexOfRefraction
double getIndexOfRefraction()
Get average index of refraction of water.
Definition: JConstants.hh:111
JTRIGGER::JMatch3G
3G match criterion.
Definition: JMatch3G.hh:29
JTRIGGER::JTrigger3D::JParameters::match3D
JMatch_t match3D
Definition: JTrigger3D.hh:70
JTRIGGER::JTrigger3D::JParameters::TMaxEvent_ns
double TMaxEvent_ns
Definition: JTrigger3D.hh:69
JTRIGGER::JTrigger3DShower::getParameters
static JTrigger3D::JParameters getParameters(const JTrigger3DShower_t::JParameters &input)
Convert trigger parameters.
Definition: JTrigger3DShower.hh:42
JTRIGGER::JTrigger3D::JParameters::enabled
bool enabled
Definition: JTrigger3D.hh:66
KM3NETDAQ::JDAQChronometer::getDAQChronometer
const JDAQChronometer & getDAQChronometer() const
Get DAQ chronometer.
Definition: JDAQChronometer.hh:88
JTRIGGER::JTriggerInterface::get_trigger_name
static const char * get_trigger_name(JBit< N > bit, JTriggerbit_t value)
Recursive method to get trigger name for given trigger bit.
Definition: JTriggerInterface.hh:138
JTRIGGER::JTrigger3DShower_t::JParameters::DMax_m
double DMax_m
maximal distance between PMTs [m]
Definition: JTrigger3DShower_t.hh:105
JTRIGGER::JTriggerInterface::getNumberOfModules
JModuleCounter getNumberOfModules
Function object to count unique modules.
Definition: JTriggerInterface.hh:191
JTRIGGER::JTrigger3D::parameters
JParameters parameters
Definition: JTrigger3D.hh:178
JTRIGGER::JTriggerInput::end
const_iterator end() const
get iterator to end of data (without end marker)
Definition: JTriggerInput.hh:74
JTRIGGER::JTrigger3D::JTrigger3D
JTrigger3D(const JParameters &input)
Constructor.
Definition: JTrigger3D.hh:80
JTRIGGER::JTrigger3DShower_t::JParameters::TMaxExtra_ns
double TMaxExtra_ns
maximal extra time [ns]
Definition: JTrigger3DShower_t.hh:106
JTOOLS
Auxiliary classes and methods for multi-dimensional interpolations and histograms.
Definition: JAbstractCollection.hh:9
JTRIGGER::JTriggerInput::size
int size() const
get size of data (without end marker)
Definition: JTriggerInput.hh:77
JTRIGGER::JTrigger3DShower_t::JParameters::enabled
bool enabled
enabled status of trigger
Definition: JTrigger3DShower_t.hh:102
JTRIGGER::JTrigger3D::JParameters::numberOfHits
int numberOfHits
Definition: JTrigger3D.hh:67
JTRIGGER::JTriggerInterface::find_trigger_bit
JTriggerbit_t find_trigger_bit(JBit< N > bit) const
Recursive method to find the trigger bit of the given trigger data.
Definition: JTriggerInterface.hh:89