Jpp  17.3.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JTrigger/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 "JPhysics/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 JPHYSICS;
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  if (triggerNB.enabled && triggerNB.write.prescale == 0) {
161  }
162  }
163 
164 
165  /**
166  * Reset trigger parameters.
167  */
168  void reset()
169  {
172  trigger3DMuon .reset();
173  triggerNB .reset();
174 
175  highRateVeto_Hz = std::numeric_limits<double>::max();
176  L2Min = 2;
177  ctMin = -1.0;
178  TMaxLocal_ns = 10.0;
179  TMaxEvent_ns = 1000.0;
180  numberOfBins = 1000;
181  combineL1 = true;
182 
183  disableHighRateVeto = false;
184 
185  L2.reset();
186  SN.reset();
187  NB.reset();
188 
189  writeTimeslices = 0;
190  writeSummary = 1;
191  writeL0 = 0;
192  writeL1 = 0;
193  writeL2 = 0;
194  writeSN = 0;
195  }
196 
197 
198  /**
199  * Test equality for high-rate vetos.
200  *
201  * \param R1_Hz high-rate veto
202  * \param R2_Hz high-rate veto
203  * \return true if equal; else false
204  */
205  static bool equals(const double R1_Hz, const double R2_Hz)
206  {
207  using namespace std;
208 
209  if (R1_Hz <= numeric_limits<int>::max() &&
210  R2_Hz <= numeric_limits<int>::max()) {
211 
212  return (int) R1_Hz == (int) R2_Hz;
213 
214  } else {
215 
216  return (R1_Hz > numeric_limits<int>::max() &&
217  R2_Hz > numeric_limits<int>::max());
218  }
219  }
220 
221 
222  /**
223  * Equality
224  *
225  * \param parameters trigger parameters
226  * \return true if equals; else false
227  */
229  {
230  return (trigger3DShower.equals(parameters) &&
231  triggerMXShower.equals(parameters) &&
232  trigger3DMuon .equals(parameters) &&
233  triggerNB .equals(parameters) &&
234 
236  parameters.highRateVeto_Hz) &&
237 
238  L2Min == parameters.L2Min &&
239  ctMin == parameters.ctMin &&
240  TMaxLocal_ns == parameters.TMaxLocal_ns &&
241  TMaxEvent_ns == parameters.TMaxEvent_ns &&
242  numberOfBins == parameters.numberOfBins &&
243  combineL1 == parameters.combineL1 &&
244 
246 
247  L2.equals(parameters.L2) &&
248  SN.equals(parameters.SN) &&
249  NB.equals(parameters.NB) &&
250 
251  writeSummary .equals(parameters.writeSummary) &&
252  writeL0 .equals(parameters.writeL0) &&
253  writeL1 .equals(parameters.writeL1) &&
254  writeL2 .equals(parameters.writeL2) &&
255  writeSN .equals(parameters.writeSN));
256  }
257 
258 
259  /**
260  * Equal operator for trigger parameters.
261  *
262  * \param first event
263  * \param second event
264  * \result true if first event equal to second; else false
265  */
266  friend inline bool operator==(const JTriggerParameters& first,
267  const JTriggerParameters& second)
268  {
269  return first.equals(second);
270  }
271 
272 
273  /**
274  * Type conversion operators.
275  */
276  inline operator JTrigger3DShower_t::JParameters() const { return trigger3DShower; } //!< JTrigger3DShower parameters
277  inline operator JTriggerMXShower_t::JParameters() const { return triggerMXShower; } //!< JTriggerMXShower parameters
278  inline operator JTrigger3DMuon_t::JParameters() const { return trigger3DMuon; } //!< JTrigger3DMuon parameters
279  inline operator JTriggerNB_t::JParameters() const { return triggerNB; } //!< JTrigger3DMuon parameters
280 
281 
282  /**
283  * Action method at file open.
284  *
285  * \param version version
286  */
287  static void actionAtFileOpen(int version)
288  {
290  }
291 
292 
293  /**
294  * Action method at file read.
295  */
297  {
298  if (ROOT_IO_VERSION <= 7) {
299 
301  }
302 
303  if (ROOT_IO_VERSION <= 6) {
304 
307 
308  } else if (ROOT_IO_VERSION <= 8) {
309 
312  }
313 
314  if (ROOT_IO_VERSION <= 11) {
315 
317  }
318  }
319 
320 
322 
323 
324  // Trigger specific parameters
325 
330 
331 
332  // Global parameters
333 
334  double highRateVeto_Hz; ///< high-rate veto [Hz]
335  int L2Min; ///< minimal number of L0 hits for L2
336  double ctMin; ///< this parameter has been deprecated
337  double TMaxLocal_ns; ///< maximal time difference between L0 hits for L1
338  double TMaxEvent_ns; ///< maximal time before and after event for snapshot
339  int numberOfBins; ///< number of bins for lookup table of timeslice
340  bool combineL1; ///< combine multiple L1s in many-fold coincidence
341  bool disableHighRateVeto;///< disable high-rate veto
342 
343  JL2Parameters L2; ///< L2 processing
344  JL2Parameters SN; ///< Supernova trigger
345  JL2Parameters NB; ///< nano-beacon trigger
346 
347  JPrescaler writeTimeslices; ///< write JDAQTimeslice with L0 data (deprecated)
348  JPrescaler writeSummary; ///< write JDAQSummaryslice
349  JPrescaler writeL0; ///< write JDAQTimeslice with L0 data
350  JPrescaler writeL1; ///< write JDAQTimeslice with L1 data
351  JPrescaler writeL2; ///< write JDAQTimeslice with L2 data
352  JPrescaler writeSN; ///< write JDAQTimeslice with SN data
353 
354  static int ROOT_IO_VERSION; //!< Streamer version of JTriggerParameters as obtained from ROOT file.
355  };
356 }
357 
358 
359 /**
360  * Read L2 parameters from input.
361  *
362  * \param in input stream
363  * \param parameters L2 parameters
364  * \return input stream
365  */
366 std::istream& operator>>(std::istream& in, JTRIGGER::JL2Parameters& parameters);
367 
368 
369 /**
370  * Write L2 parameters to output.
371  *
372  * \param out output stream
373  * \param parameters L2 parameters
374  * \return output stream
375  */
376 std::ostream& operator<<(std::ostream& out, const JTRIGGER::JL2Parameters& parameters);
377 
378 
379 /**
380  * Read trigger parameters from input.
381  *
382  * \param in input stream
383  * \param parameters trigger parameters
384  * \return input stream
385  */
386 std::istream& operator>>(std::istream& in, JTRIGGER::JTriggerParameters& parameters);
387 
388 
389 /**
390  * Write trigger parameters to output.
391  *
392  * \param out output stream
393  * \param parameters trigger parameters
394  * \return output stream
395  */
396 std::ostream& operator<<(std::ostream& out, const JTRIGGER::JTriggerParameters& parameters);
397 
398 #endif
ClassDef(JTriggerParameters, 14)
void reset()
Reset trigger parameters.
Data structure for all trigger parameters.
friend bool operator==(const JTriggerParameters &first, const JTriggerParameters &second)
Equal operator for trigger parameters.
bool equals(const JParameters &parameters) const
Equality.
bool equals(const JL2Parameters &parameters) const
Equality.
version
Definition: JEditTuneHV.sh:5
bool enabled
enabled status of trigger
Definition: JTriggerNB_t.hh:84
double getIndexOfRefraction()
Get average index of refraction of water corresponding to group velocity.
double ctMin
minimal cosine space angle between PMT axes
JPrescaler writeTimeslices
write JDAQTimeslice with L0 data (deprecated)
Auxiliary class for prescaling.
Definition: JPrescaler.hh:23
int numberOfBins
number of bins for lookup table of timeslice
double DMax_m
maximal distance between PMTs [m]
int numberOfHits
minimal number of hits to trigger event
Definition: JRoot.hh:19
bool combineL1
combine multiple L1s in many-fold coincidence
bool equals(const JParameters &parameters) const
Equality.
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
Definition: diff-Tuna.sh:38
then usage $script< detector file >< detectorfile > nIf the range of floors is the first detector file is aligned to the second before the comparison nIn this
JL2Parameters()
Default constructor.
static void actionAtFileOpen(int version)
Action method at file open.
This include file serves the purpose of hiding ROOT dependencies and circumphere namespace problems w...
int L2Min
minimal number of L0 hits for L2
ClassDef(JL2Parameters, 1)
int numberOfHits
minimal number of hits
double TMaxLocal_ns
maximal time difference between L0 hits for L1
then echo The file $DIR KM3NeT_00000001_00000000 root already please rename or remove it first
int numberOfModules
minimal number of modules to trigger event
virtual ~JTriggerParameters()
Virtual destructor.
JTriggerMXShower_t::JParameters triggerMXShower
long long int prescale
Definition: JPrescaler.hh:96
void reset()
Reset trigger parameters.
Definition: JTriggerNB_t.hh:52
JL2Parameters(const int numberOfHits, const double TMaxLocal_ns, const double ctMin)
Constructor.
double TMaxEvent_ns
maximal time before and after event for snapshot
void reset()
Reset trigger parameters.
JL2Parameters SN
Supernova trigger.
void reset()
Reset trigger parameters.
JPrescaler writeSummary
write JDAQSummaryslice
double highRateVeto_Hz
high-rate veto [Hz]
JTrigger3DShower_t::JParameters trigger3DShower
static int ROOT_IO_VERSION
Streamer version of JTriggerParameters as obtained from ROOT file.
double ctMin
this parameter has been deprecated
bool is_valid() const
Check validity.
bool equals(const JPrescaler &prescaler) const
Equality.
Definition: JPrescaler.hh:60
Physics constants.
void reset()
Reset trigger parameters.
JL2Parameters NB
nano-beacon trigger
int numberOfHits
minimal number of hits to trigger event
JPrescaler writeL2
write JDAQTimeslice with L2 data
void actionAtFileRead()
Action method at file read.
JPrescaler writeL1
write JDAQTimeslice with L1 data
bool disableHighRateVeto
disable high-rate veto
bool equals(const JParameters &parameters) const
Equality.
Data structure for L2 parameters.
JPrescaler writeL0
write JDAQTimeslice with L0 data
std::istream & operator>>(std::istream &in, JAANET::JHead &header)
Read header from input.
Definition: JHead.hh:1756
int numberOfModules
minimal number of modules to trigger event
const double getInverseSpeedOfLight()
Get inverse speed of light.
double TMaxLocal_ns
maximal time difference [ns]
bool equals(const JParameters &parameters) const
Equality.
Definition: JTriggerNB_t.hh:73
bool equals(const JTriggerParameters &parameters) const
Equality.
std::ostream & operator<<(std::ostream &stream, const CLBCommonHeader &header)
static bool equals(const double R1_Hz, const double R2_Hz)
Test equality for high-rate vetos.
void reset()
Reset L2 parameters.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
Definition: JCanberra.sh:46
virtual ~JL2Parameters()
Virtual destructor.
JTrigger3DMuon_t::JParameters trigger3DMuon
JPrescaler writeSN
write JDAQTimeslice with SN data
void set(const double DMax_m=0.0)
Set dependent trigger parameters.