Jpp
JTriggerParameters.hh
Go to the documentation of this file.
1 #ifndef __JTRIGGERPARAMETERS__
2 #define __JTRIGGERPARAMETERS__
3 
4 #include <istream>
5 #include <ostream>
6 #include <limits>
7 
8 #include <TROOT.h>
9 #include <TObject.h>
10 
11 #include "JROOT/JRoot.hh"
12 #include "JTools/JConstants.hh"
13 
14 #include "JTrigger/JPrescaler.hh"
18 #include "JTrigger/JTriggerNB_t.hh"
19 
20 
21 /**
22  * \author mdejong
23  */
24 
25 namespace JTRIGGER {}
26 namespace JPP { using namespace JTRIGGER; }
27 
28 namespace JTRIGGER {
29 
30  /**
31  * Data structure for L2 parameters.
32  */
33  struct JL2Parameters :
34  public TObject
35  {
36  /**
37  * Default constructor.
38  */
40  {
41  reset();
42  }
43 
44 
45  /**
46  * Constructor.
47  *
48  * \param numberOfHits minimal number of hits
49  * \param TMaxLocal_ns maximal time difference [ns]
50  * \param ctMin minimal cosine space angle between PMT axes
51  */
53  const double TMaxLocal_ns,
54  const double ctMin)
55  {
56  this->numberOfHits = numberOfHits;
57  this->TMaxLocal_ns = TMaxLocal_ns;
58  this->ctMin = ctMin;
59  }
60 
61 
62  /**
63  * Virtual destructor.
64  */
65  virtual ~JL2Parameters()
66  {}
67 
68 
69  /**
70  * Reset L2 parameters.
71  */
72  void reset()
73  {
74  numberOfHits = 0;
75  TMaxLocal_ns = 0.0;
76  ctMin = 1.0;
77  }
78 
79 
80  /**
81  * Equality
82  *
83  * \param parameters L2 parameters
84  * \return true if equals; else false
85  */
86  bool equals(const JL2Parameters& parameters) const
87  {
88  return (this->numberOfHits == parameters.numberOfHits &&
89  this->TMaxLocal_ns == parameters.TMaxLocal_ns &&
90  this->ctMin == parameters.ctMin);
91  }
92 
93 
94  /**
95  * Check validity.
96  *
97  * \return true if not-equal to default value; else false
98  */
99  inline bool is_valid() const
100  {
101  return !this->equals(JL2Parameters());
102  }
103 
104 
106 
107  int numberOfHits; ///< minimal number of hits
108  double TMaxLocal_ns; ///< maximal time difference [ns]
109  double ctMin; ///< minimal cosine space angle between PMT axes
110  };
111 
112 
113  /**
114  * Data structure for all trigger parameters.
115  */
117  public TObject
118  {
119  public:
120  /**
121  * Default constructor.
122  */
124  {
125  reset();
126  }
127 
128 
129  /**
130  * Virtual destructor.
131  */
133  {}
134 
135 
136  /**
137  * Set dependent trigger parameters.
138  *
139  * \param DMax_m maximal distance between PMTs [m]
140  */
141  void set(const double DMax_m = 0.0)
142  {
143  using namespace JTOOLS;
144 
145  const double t1 = DMax_m * getIndexOfRefraction() * getInverseSpeedOfLight();
146 
147  if (t1 > TMaxEvent_ns) {
148  TMaxEvent_ns = t1;
149  }
150 
151  trigger3DMuon.DMax_m = DMax_m;
152 
153  // backward compatibility
154 
155  if (!L2.is_valid()) {
157  }
158  }
159 
160 
161  /**
162  * Reset trigger parameters.
163  */
164  void reset()
165  {
168  trigger3DMuon .reset();
169  triggerNB .reset();
170 
171  highRateVeto_Hz = std::numeric_limits<double>::max();
172  L2Min = 2;
173  ctMin = -1.0;
174  TMaxLocal_ns = 10.0;
175  TMaxEvent_ns = 1000.0;
176  numberOfBins = 1000;
177  combineL1 = true;
178 
179  L2.reset();
180  SN.reset();
181 
182  writeTimeslices = 0;
183  writeSummary = 1;
184  writeL0 = 0;
185  writeL1 = 0;
186  writeL2 = 0;
187  writeSN = 0;
188  }
189 
190 
191  /**
192  * Test equality for high-rate vetos.
193  *
194  * \param R1_Hz high-rate veto
195  * \param R2_Hz high-rate veto
196  * \return true if equal; else false
197  */
198  static bool equals(const double R1_Hz, const double R2_Hz)
199  {
200  using namespace std;
201 
202  if (R1_Hz <= numeric_limits<int>::max() &&
203  R2_Hz <= numeric_limits<int>::max()) {
204 
205  return (int) R1_Hz == (int) R2_Hz;
206 
207  } else {
208 
209  return (R1_Hz > numeric_limits<int>::max() &&
210  R2_Hz > numeric_limits<int>::max());
211  }
212  }
213 
214 
215  /**
216  * Equality
217  *
218  * \param parameters trigger parameters
219  * \return true if equals; else false
220  */
221  bool equals(const JTriggerParameters& parameters) const
222  {
223  return (trigger3DShower.equals(parameters) &&
224  triggerMXShower.equals(parameters) &&
225  trigger3DMuon .equals(parameters) &&
226  triggerNB .equals(parameters) &&
227 
229  parameters.highRateVeto_Hz) &&
230 
231  L2Min == parameters.L2Min &&
232  ctMin == parameters.ctMin &&
233  TMaxLocal_ns == parameters.TMaxLocal_ns &&
234  TMaxEvent_ns == parameters.TMaxEvent_ns &&
235  numberOfBins == parameters.numberOfBins &&
236  combineL1 == parameters.combineL1 &&
237 
238  L2.equals(parameters.L2) &&
239  SN.equals(parameters.SN) &&
240 
241  writeSummary .equals(parameters.writeSummary) &&
242  writeL0 .equals(parameters.writeL0) &&
243  writeL1 .equals(parameters.writeL1) &&
244  writeL2 .equals(parameters.writeL2) &&
245  writeSN .equals(parameters.writeSN));
246  }
247 
248 
249  /**
250  * Equal operator for trigger parameters.
251  *
252  * \param first event
253  * \param second event
254  * \result true if first event equal to second; else false
255  */
256  friend inline bool operator==(const JTriggerParameters& first,
257  const JTriggerParameters& second)
258  {
259  return first.equals(second);
260  }
261 
262 
263  /**
264  * Type conversion operators.
265  */
266  inline operator JTrigger3DShower_t::JParameters() const { return trigger3DShower; } //!< JTrigger3DShower parameters
267  inline operator JTriggerMXShower_t::JParameters() const { return triggerMXShower; } //!< JTriggerMXShower parameters
268  inline operator JTrigger3DMuon_t::JParameters() const { return trigger3DMuon; } //!< JTrigger3DMuon parameters
269  inline operator JTriggerNB_t::JParameters() const { return triggerNB; } //!< JTrigger3DMuon parameters
270 
271 
272  /**
273  * Action method at file open.
274  *
275  * \param version version
276  */
277  static void actionAtFileOpen(int version)
278  {
279  ROOT_IO_VERSION = version;
280  }
281 
282 
283  /**
284  * Action method at file read.
285  */
287  {
288  if (ROOT_IO_VERSION <= 7) {
289 
291  }
292 
293  if (ROOT_IO_VERSION <= 6) {
294 
297 
298  } else if (ROOT_IO_VERSION <= 8) {
299 
302  }
303  }
304 
305 
307 
308 
309  // Trigger specific parameters
310 
315 
316 
317  // Global parameters
318 
319  double highRateVeto_Hz; ///< high-rate veto [Hz]
320  int L2Min; ///< minimal number of L0 hits for L2
321  double ctMin; ///< this parameter has been deprecated
322  double TMaxLocal_ns; ///< maximal time difference between L0 hits for L1
323  double TMaxEvent_ns; ///< maximal time before and after event for snapshot
324  int numberOfBins; ///< number of bins for lookup table of timeslice
325  bool combineL1; ///< combine multiple L1s in many-fold coincidence
326 
327  JL2Parameters L2; ///< L2 processing
328  JL2Parameters SN; ///< Supernova trigger
329 
330  JPrescaler writeTimeslices; ///< write JDAQTimeslice with L0 data (deprecated)
331  JPrescaler writeSummary; ///< write JDAQSummaryslice
332  JPrescaler writeL0; ///< write JDAQTimeslice with L0 data
333  JPrescaler writeL1; ///< write JDAQTimeslice with L1 data
334  JPrescaler writeL2; ///< write JDAQTimeslice with L2 data
335  JPrescaler writeSN; ///< write JDAQTimeslice with SN data
336 
337  static int ROOT_IO_VERSION; //!< Streamer version of JTriggerParameters as obtained from ROOT file.
338  };
339 }
340 
341 
342 /**
343  * Read L2 parameters from input.
344  *
345  * \param in input stream
346  * \param parameters L2 parameters
347  * \return input stream
348  */
349 std::istream& operator>>(std::istream& in, JTRIGGER::JL2Parameters& parameters);
350 
351 
352 /**
353  * Write L2 parameters to output.
354  *
355  * \param out output stream
356  * \param parameters L2 parameters
357  * \return output stream
358  */
359 std::ostream& operator<<(std::ostream& out, const JTRIGGER::JL2Parameters& parameters);
360 
361 
362 /**
363  * Read trigger parameters from input.
364  *
365  * \param in input stream
366  * \param parameters trigger parameters
367  * \return input stream
368  */
369 std::istream& operator>>(std::istream& in, JTRIGGER::JTriggerParameters& parameters);
370 
371 
372 /**
373  * Write trigger parameters to output.
374  *
375  * \param out output stream
376  * \param parameters trigger parameters
377  * \return output stream
378  */
379 std::ostream& operator<<(std::ostream& out, const JTRIGGER::JTriggerParameters& parameters);
380 
381 #endif
JTRIGGER::JTrigger3DShower_t::JParameters::numberOfModules
int numberOfModules
minimal number of modules to trigger event
Definition: JTrigger3DShower_t.hh:104
JTRIGGER::JTriggerParameters::combineL1
bool combineL1
combine multiple L1s in many-fold coincidence
Definition: JTriggerParameters.hh:325
JTRIGGER::JTriggerMXShower_t::JParameters
Trigger parameters.
Definition: JTriggerMXShower_t.hh:24
JTriggerNB_t.hh
JTRIGGER::JTriggerParameters::numberOfBins
int numberOfBins
number of bins for lookup table of timeslice
Definition: JTriggerParameters.hh:324
JTRIGGER::JPrescaler::equals
bool equals(const JPrescaler &prescaler) const
Equality.
Definition: JPrescaler.hh:60
JTRIGGER::JTriggerNB_t::JParameters::reset
void reset()
Reset trigger parameters.
Definition: JTriggerNB_t.hh:51
TObject
Definition: JRoot.hh:19
JTRIGGER::JTriggerParameters::L2Min
int L2Min
minimal number of L0 hits for L2
Definition: JTriggerParameters.hh:320
JTRIGGER::JL2Parameters::~JL2Parameters
virtual ~JL2Parameters()
Virtual destructor.
Definition: JTriggerParameters.hh:65
JTRIGGER::JL2Parameters
Data structure for L2 parameters.
Definition: JTriggerParameters.hh:33
JTRIGGER::JL2Parameters::ClassDef
ClassDef(JL2Parameters, 1)
JTRIGGER::JTriggerParameters::set
void set(const double DMax_m=0.0)
Set dependent trigger parameters.
Definition: JTriggerParameters.hh:141
JTRIGGER::JTriggerNB_t::JParameters
Trigger parameters.
Definition: JTriggerNB_t.hh:27
JTRIGGER::JL2Parameters::numberOfHits
int numberOfHits
minimal number of hits
Definition: JTriggerParameters.hh:107
JTRIGGER::JTriggerParameters::TMaxLocal_ns
double TMaxLocal_ns
maximal time difference between L0 hits for L1
Definition: JTriggerParameters.hh:322
JTRIGGER::JL2Parameters::reset
void reset()
Reset L2 parameters.
Definition: JTriggerParameters.hh:72
JTRIGGER::JTriggerParameters
Data structure for all trigger parameters.
Definition: JTriggerParameters.hh:116
operator<<
std::ostream & operator<<(std::ostream &out, const JTRIGGER::JL2Parameters &parameters)
Write L2 parameters to output.
Definition: software/JTrigger/JTriggerParameters.cc:41
JTRIGGER::JTriggerNB_t::JParameters::equals
bool equals(const JParameters &parameters) const
Equality.
Definition: JTriggerNB_t.hh:71
JTRIGGER::JTriggerParameters::triggerNB
JTriggerNB_t::JParameters triggerNB
Definition: JTriggerParameters.hh:314
JTRIGGER::JTriggerParameters::TMaxEvent_ns
double TMaxEvent_ns
maximal time before and after event for snapshot
Definition: JTriggerParameters.hh:323
JTRIGGER::JTrigger3DShower_t::JParameters::equals
bool equals(const JParameters &parameters) const
Equality.
Definition: JTrigger3DShower_t.hh:88
JTrigger3DMuon_t.hh
JTRIGGER::JTriggerParameters::triggerMXShower
JTriggerMXShower_t::JParameters triggerMXShower
Definition: JTriggerParameters.hh:312
JTRIGGER::JTriggerParameters::ROOT_IO_VERSION
static int ROOT_IO_VERSION
Streamer version of JTriggerParameters as obtained from ROOT file.
Definition: JTriggerParameters.hh:337
JTRIGGER::JTrigger3DMuon_t::JParameters::reset
void reset()
Reset trigger parameters.
Definition: JTrigger3DMuon_t.hh:78
JTRIGGER::JTriggerMXShower_t::JParameters::equals
bool equals(const JParameters &parameters) const
Equality.
Definition: JTriggerMXShower_t.hh:89
JTRIGGER::JTriggerParameters::trigger3DShower
JTrigger3DShower_t::JParameters trigger3DShower
Definition: JTriggerParameters.hh:311
JTRIGGER::JTriggerParameters::JTriggerParameters
JTriggerParameters()
Default constructor.
Definition: JTriggerParameters.hh:123
JTriggerMXShower_t.hh
JTRIGGER::JTriggerParameters::L2
JL2Parameters L2
L2 processing.
Definition: JTriggerParameters.hh:327
JTRIGGER::JTriggerParameters::ctMin
double ctMin
this parameter has been deprecated
Definition: JTriggerParameters.hh:321
JPP
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Definition: JAAnetToolkit.hh:37
JTRIGGER::JL2Parameters::ctMin
double ctMin
minimal cosine space angle between PMT axes
Definition: JTriggerParameters.hh:109
JTRIGGER::JTrigger3DMuon_t::JParameters
Trigger parameters.
Definition: JTrigger3DMuon_t.hh:24
JTRIGGER::JTriggerParameters::actionAtFileOpen
static void actionAtFileOpen(int version)
Action method at file open.
Definition: JTriggerParameters.hh:277
JTRIGGER::JTriggerParameters::writeL2
JPrescaler writeL2
write JDAQTimeslice with L2 data
Definition: JTriggerParameters.hh:334
JTOOLS::getInverseSpeedOfLight
const double getInverseSpeedOfLight()
Get inverse speed of light.
Definition: JConstants.hh:100
JTRIGGER::JTriggerParameters::actionAtFileRead
void actionAtFileRead()
Action method at file read.
Definition: JTriggerParameters.hh:286
JConstants.hh
JTRIGGER::JTrigger3DShower_t::JParameters::reset
void reset()
Reset trigger parameters.
Definition: JTrigger3DShower_t.hh:71
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::JTriggerParameters::ClassDef
ClassDef(JTriggerParameters, 11)
JTrigger3DShower_t.hh
JTRIGGER::JTriggerMXShower_t::JParameters::reset
void reset()
Reset trigger parameters.
Definition: JTriggerMXShower_t.hh:72
JTRIGGER::JTrigger3DMuon_t::JParameters::numberOfModules
int numberOfModules
minimal number of modules to trigger event
Definition: JTrigger3DMuon_t.hh:115
JTRIGGER::JTriggerParameters::~JTriggerParameters
virtual ~JTriggerParameters()
Virtual destructor.
Definition: JTriggerParameters.hh:132
JTRIGGER::JPrescaler
Auxiliary class for prescaling.
Definition: JPrescaler.hh:23
JTRIGGER::JTrigger3DMuon_t::JParameters::numberOfHits
int numberOfHits
minimal number of hits to trigger event
Definition: JTrigger3DMuon_t.hh:114
JTRIGGER::JTriggerParameters::SN
JL2Parameters SN
Supernova trigger.
Definition: JTriggerParameters.hh:328
JTRIGGER::JTriggerParameters::equals
bool equals(const JTriggerParameters &parameters) const
Equality.
Definition: JTriggerParameters.hh:221
JTRIGGER::JTriggerParameters::writeSummary
JPrescaler writeSummary
write JDAQSummaryslice
Definition: JTriggerParameters.hh:331
JTRIGGER::JTriggerParameters::highRateVeto_Hz
double highRateVeto_Hz
high-rate veto [Hz]
Definition: JTriggerParameters.hh:319
operator>>
std::istream & operator>>(std::istream &in, JTRIGGER::JL2Parameters &parameters)
Read L2 parameters from input.
Definition: software/JTrigger/JTriggerParameters.cc:24
std
Definition: jaanetDictionary.h:36
JTRIGGER::JTriggerParameters::writeSN
JPrescaler writeSN
write JDAQTimeslice with SN data
Definition: JTriggerParameters.hh:335
JTRIGGER::JTrigger3DMuon_t::JParameters::DMax_m
double DMax_m
maximal distance between PMTs [m]
Definition: JTrigger3DMuon_t.hh:116
JTRIGGER::JL2Parameters::JL2Parameters
JL2Parameters()
Default constructor.
Definition: JTriggerParameters.hh:39
JTRIGGER::JTriggerParameters::trigger3DMuon
JTrigger3DMuon_t::JParameters trigger3DMuon
Definition: JTriggerParameters.hh:313
JTRIGGER::JTrigger3DMuon_t::JParameters::equals
bool equals(const JParameters &parameters) const
Equality.
Definition: JTrigger3DMuon_t.hh:97
JTRIGGER::JTriggerParameters::writeL1
JPrescaler writeL1
write JDAQTimeslice with L1 data
Definition: JTriggerParameters.hh:333
JRoot.hh
JTRIGGER
Checksum.
Definition: JSupport/JSupport.hh:35
JTOOLS
Auxiliary classes and methods for multi-dimensional interpolations and histograms.
Definition: JAbstractCollection.hh:9
JTRIGGER::JTriggerParameters::reset
void reset()
Reset trigger parameters.
Definition: JTriggerParameters.hh:164
JPrescaler.hh
JTRIGGER::JTriggerParameters::writeL0
JPrescaler writeL0
write JDAQTimeslice with L0 data
Definition: JTriggerParameters.hh:332
JTRIGGER::JL2Parameters::is_valid
bool is_valid() const
Check validity.
Definition: JTriggerParameters.hh:99
JTRIGGER::JTrigger3DShower_t::JParameters
Trigger parameters.
Definition: JTrigger3DShower_t.hh:24
JTRIGGER::JL2Parameters::equals
bool equals(const JL2Parameters &parameters) const
Equality.
Definition: JTriggerParameters.hh:86
JTRIGGER::JL2Parameters::TMaxLocal_ns
double TMaxLocal_ns
maximal time difference [ns]
Definition: JTriggerParameters.hh:108
JTRIGGER::JTriggerParameters::operator==
friend bool operator==(const JTriggerParameters &first, const JTriggerParameters &second)
Equal operator for trigger parameters.
Definition: JTriggerParameters.hh:256
JTRIGGER::JTriggerParameters::writeTimeslices
JPrescaler writeTimeslices
write JDAQTimeslice with L0 data (deprecated)
Definition: JTriggerParameters.hh:330
JTRIGGER::JTriggerParameters::equals
static bool equals(const double R1_Hz, const double R2_Hz)
Test equality for high-rate vetos.
Definition: JTriggerParameters.hh:198
JTRIGGER::JL2Parameters::JL2Parameters
JL2Parameters(const int numberOfHits, const double TMaxLocal_ns, const double ctMin)
Constructor.
Definition: JTriggerParameters.hh:52