Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions | List of all members
JTRIGGER::JTrigger3DMuon Class Reference

Muon trigger. More...

#include <JTrigger3DMuon.hh>

Inheritance diagram for JTRIGGER::JTrigger3DMuon:
JTRIGGER::JTrigger3N JTRIGGER::JTriggerInterface

Public Types

typedef JTriggerInput::value_type value_type
 
typedef JMatch< value_typematch_type
 

Public Member Functions

 JTrigger3DMuon (const JTrigger3DMuon_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 JTrigger3N::JParameters getParameters (const JTrigger3DMuon_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...
 

Detailed Description

Muon trigger.

Definition at line 24 of file JTrigger3DMuon.hh.

Member Typedef Documentation

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

Definition at line 161 of file JTriggerInterface.hh.

Definition at line 162 of file JTriggerInterface.hh.

Constructor & Destructor Documentation

JTRIGGER::JTrigger3DMuon::JTrigger3DMuon ( const JTrigger3DMuon_t::JParameters input)
inline

Constructor.

Parameters
inputtrigger parameters

Definition at line 33 of file JTrigger3DMuon.hh.

33  :
35  {}
static JTrigger3N::JParameters getParameters(const JTrigger3DMuon_t::JParameters &input)
Convert trigger parameters.
JTrigger3N(const JParameters &input)
Constructor.
Definition: JTrigger3N.hh:96

Member Function Documentation

static JTrigger3N::JParameters JTRIGGER::JTrigger3DMuon::getParameters ( const JTrigger3DMuon_t::JParameters input)
inlinestatic

Convert trigger parameters.

Parameters
inputtrigger parameters
Returns
trigger parameters

Definition at line 44 of file JTrigger3DMuon.hh.

45  {
46  using namespace JTOOLS;
47 
48  const double TMaxEvent_ns = (sqrt((input.DMax_m + input.roadWidth_m*getSinThetaC()) *
49  (input.DMax_m - input.roadWidth_m*getSinThetaC())) +
51 
52  return JTrigger3N::JParameters(input.enabled,
53  input.numberOfHits,
54  input.numberOfModules,
55  TMaxEvent_ns + input.TMaxExtra_ns,
59  input.factoryLimit);
60  }
1D match criterion.
Definition: JMatch1D.hh:31
double TMaxExtra_ns
maximal extra time [ns]
double roadWidth_m
maximal road width [m]
int factoryLimit
maximal number of hits to apply trigger logic (above this limit, always trigger)
static const double PI
Constants.
Definition: JConstants.hh:20
double DMax_m
maximal distance between PMTs [m]
Direction set covering (part of) solid angle.
Definition: JOmega3D.hh:62
double getSinThetaC()
Get average sine of Cherenkov angle of water.
Definition: JConstants.hh:144
const double getInverseSpeedOfLight()
Get inverse speed of light.
Definition: JConstants.hh:100
int numberOfHits
minimal number of hits to trigger event
int numberOfModules
minimal number of modules to trigger event
bool enabled
enabled status of trigger
double getTanThetaC()
Get average tangent of Cherenkov angle of water.
Definition: JConstants.hh:122
3D match criterion with road width.
Definition: JMatch3B.hh:34
void JTRIGGER::JTrigger3N::operator() ( const JTriggerInput input,
std::back_insert_iterator< JTriggerOutput out 
) const
inlineinherited

Process trigger.

Parameters
inputinput data
outoutput data

Definition at line 117 of file JTrigger3N.hh.

118  {
119  using std::distance;
120 
121  if (parameters.enabled && input.size() >= parameters.numberOfHits) {
122 
123  const match_type& match3D = *parameters.match3D;
124  const match_type& match1D = *parameters.match1D;
125 
126  for (JTriggerInput::const_iterator p = input.begin(), q = p; p != input.end(); ) {
127 
128  for (++q; q->getT() - p->getT() < parameters.TMaxEvent_ns; ++q) {}
129 
130  if (distance (p,q) >= parameters.numberOfHits &&
132 
133  if (distance(p,q) < parameters.factoryLimit) {
134 
135  do {
136 
137  if (distance (p,q) >= parameters.numberOfHits &&
139 
140  // copy
141 
142  JTriggerInput::iterator root = buffer.begin();
143  JTriggerInput::iterator __p = buffer.begin();
144  JTriggerInput::iterator __q = buffer.begin();
145 
146  *root = *p;
147 
148  ++__p;
149  ++__q;
150 
151  for (JTriggerInput::const_iterator i = p; ++i != q; ) {
152  if (match3D(*p,*i)) {
153  *__q = *i;
154  ++__q;
155  }
156  }
157 
158  if (distance (root,__q) >= parameters.numberOfHits &&
160 
161  __q = clusterize(__p, __q, match3D, parameters.numberOfHits - 1);
162 
163  if (distance (root,__q) >= parameters.numberOfHits &&
165 
166  for (JGEOMETRY3D::JRotator3D_t::const_iterator R = parameters.rotator.begin(); R != parameters.rotator.end(); ++R) {
167 
168  for (JTriggerInput::iterator i = root; i != __q; ++i) {
169  i->JPosition3D::rotate(*R);
170  }
171 
172  JTriggerInput::iterator __z = partition(__p, __q, JBind2nd(match1D,*root));
173 
174  if (distance (root,__z) >= parameters.numberOfHits &&
176 
177  __z = clusterize(__p, __z, match1D, parameters.numberOfHits - 1);
178 
179  if (distance (root,__z) >= parameters.numberOfHits &&
181 
182  *out = JEvent(input.getDAQChronometer(), root, __q, this->getTriggerBit());
183  ++out;
184 
185  break;
186  }
187  }
188  }
189  }
190  }
191  }
192 
193  ++p;
194 
195  } while (q->getT() - p->getT() >= parameters.TMaxEvent_ns);
196 
197  } else {
198 
199  // Anomalous large event
200 
201  *out = JEvent(input.getDAQChronometer(), p, q, this->getTriggerBit());
202  ++out;
203 
204  p = q;
205  }
206 
207  } else {
208 
209  for (++p; q->getT() - p->getT() >= parameters.TMaxEvent_ns; ++p) {}
210  }
211  }
212  }
213  }
std::vector< value_type > buffer
Definition: JTrigger3N.hh:219
JBinder2nd< JHit_t > JBind2nd(const JMatch< JHit_t > &match, const JHit_t &second)
Auxiliary method to create JBinder2nd object.
Definition: JBind2nd.hh:70
JLANG::JSharedPointer< match_type > match1D
Definition: JTrigger3N.hh:86
JMatch< value_type > match_type
JParameters parameters
Definition: JTrigger3N.hh:216
const_iterator end() const
get iterator to end of data (without end marker)
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
const JDAQChronometer & getDAQChronometer() const
Get DAQ chronometer.
JModuleCounter getNumberOfModules
Function object to count unique modules.
JGEOMETRY3D::JRotator3D rotator
Definition: JTrigger3N.hh:84
int size() const
get size of data (without end marker)
JTriggerbit_t getTriggerBit() const
Get the trigger bit.
JLANG::JSharedPointer< match_type > match3D
Definition: JTrigger3N.hh:85
Triggered event.
Definition: JEvent.hh:31
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  }
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  }
JTriggerbit_t find_trigger_bit(JBit< N > bit) const
Recursive method to find the trigger bit of the given trigger data.
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  }
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  }
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  }
static const char * get_trigger_name(JBit< N > bit, JTriggerbit_t value)
Recursive method to get trigger name for given trigger bit.
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  }
static const char * get_trigger_name(JBit< N > bit, JTriggerbit_t value)
Recursive method to get trigger name for given trigger bit.
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  }
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  }
JTriggerbit_t find_trigger_bit(JBit< N > bit) const
Recursive method to find the trigger bit of the given trigger data.

Member Data Documentation

JParameters JTRIGGER::JTrigger3N::parameters
inherited

Definition at line 216 of file JTrigger3N.hh.

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: