Jpp
 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 "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  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  L2.reset();
184  SN.reset();
185 
186  writeTimeslices = 0;
187  writeSummary = 1;
188  writeL0 = 0;
189  writeL1 = 0;
190  writeL2 = 0;
191  writeSN = 0;
192  }
193 
194 
195  /**
196  * Test equality for high-rate vetos.
197  *
198  * \param R1_Hz high-rate veto
199  * \param R2_Hz high-rate veto
200  * \return true if equal; else false
201  */
202  static bool equals(const double R1_Hz, const double R2_Hz)
203  {
204  using namespace std;
205 
206  if (R1_Hz <= numeric_limits<int>::max() &&
207  R2_Hz <= numeric_limits<int>::max()) {
208 
209  return (int) R1_Hz == (int) R2_Hz;
210 
211  } else {
212 
213  return (R1_Hz > numeric_limits<int>::max() &&
214  R2_Hz > numeric_limits<int>::max());
215  }
216  }
217 
218 
219  /**
220  * Equality
221  *
222  * \param parameters trigger parameters
223  * \return true if equals; else false
224  */
226  {
227  return (trigger3DShower.equals(parameters) &&
228  triggerMXShower.equals(parameters) &&
229  trigger3DMuon .equals(parameters) &&
230  triggerNB .equals(parameters) &&
231 
233  parameters.highRateVeto_Hz) &&
234 
235  L2Min == parameters.L2Min &&
236  ctMin == parameters.ctMin &&
237  TMaxLocal_ns == parameters.TMaxLocal_ns &&
238  TMaxEvent_ns == parameters.TMaxEvent_ns &&
239  numberOfBins == parameters.numberOfBins &&
240  combineL1 == parameters.combineL1 &&
241 
242  L2.equals(parameters.L2) &&
243  SN.equals(parameters.SN) &&
244 
245  writeSummary .equals(parameters.writeSummary) &&
246  writeL0 .equals(parameters.writeL0) &&
247  writeL1 .equals(parameters.writeL1) &&
248  writeL2 .equals(parameters.writeL2) &&
249  writeSN .equals(parameters.writeSN));
250  }
251 
252 
253  /**
254  * Equal operator for trigger parameters.
255  *
256  * \param first event
257  * \param second event
258  * \result true if first event equal to second; else false
259  */
260  friend inline bool operator==(const JTriggerParameters& first,
261  const JTriggerParameters& second)
262  {
263  return first.equals(second);
264  }
265 
266 
267  /**
268  * Type conversion operators.
269  */
270  inline operator JTrigger3DShower_t::JParameters() const { return trigger3DShower; } //!< JTrigger3DShower parameters
271  inline operator JTriggerMXShower_t::JParameters() const { return triggerMXShower; } //!< JTriggerMXShower parameters
272  inline operator JTrigger3DMuon_t::JParameters() const { return trigger3DMuon; } //!< JTrigger3DMuon parameters
273  inline operator JTriggerNB_t::JParameters() const { return triggerNB; } //!< JTrigger3DMuon parameters
274 
275 
276  /**
277  * Action method at file open.
278  *
279  * \param version version
280  */
281  static void actionAtFileOpen(int version)
282  {
284  }
285 
286 
287  /**
288  * Action method at file read.
289  */
291  {
292  if (ROOT_IO_VERSION <= 7) {
293 
295  }
296 
297  if (ROOT_IO_VERSION <= 6) {
298 
301 
302  } else if (ROOT_IO_VERSION <= 8) {
303 
306  }
307 
308  if (ROOT_IO_VERSION <= 11) {
309 
311  }
312  }
313 
314 
316 
317 
318  // Trigger specific parameters
319 
324 
325 
326  // Global parameters
327 
328  double highRateVeto_Hz; ///< high-rate veto [Hz]
329  int L2Min; ///< minimal number of L0 hits for L2
330  double ctMin; ///< this parameter has been deprecated
331  double TMaxLocal_ns; ///< maximal time difference between L0 hits for L1
332  double TMaxEvent_ns; ///< maximal time before and after event for snapshot
333  int numberOfBins; ///< number of bins for lookup table of timeslice
334  bool combineL1; ///< combine multiple L1s in many-fold coincidence
335 
336  JL2Parameters L2; ///< L2 processing
337  JL2Parameters SN; ///< Supernova trigger
338 
339  JPrescaler writeTimeslices; ///< write JDAQTimeslice with L0 data (deprecated)
340  JPrescaler writeSummary; ///< write JDAQSummaryslice
341  JPrescaler writeL0; ///< write JDAQTimeslice with L0 data
342  JPrescaler writeL1; ///< write JDAQTimeslice with L1 data
343  JPrescaler writeL2; ///< write JDAQTimeslice with L2 data
344  JPrescaler writeSN; ///< write JDAQTimeslice with SN data
345 
346  static int ROOT_IO_VERSION; //!< Streamer version of JTriggerParameters as obtained from ROOT file.
347  };
348 }
349 
350 
351 /**
352  * Read L2 parameters from input.
353  *
354  * \param in input stream
355  * \param parameters L2 parameters
356  * \return input stream
357  */
358 std::istream& operator>>(std::istream& in, JTRIGGER::JL2Parameters& parameters);
359 
360 
361 /**
362  * Write L2 parameters to output.
363  *
364  * \param out output stream
365  * \param parameters L2 parameters
366  * \return output stream
367  */
368 std::ostream& operator<<(std::ostream& out, const JTRIGGER::JL2Parameters& parameters);
369 
370 
371 /**
372  * Read trigger parameters from input.
373  *
374  * \param in input stream
375  * \param parameters trigger parameters
376  * \return input stream
377  */
378 std::istream& operator>>(std::istream& in, JTRIGGER::JTriggerParameters& parameters);
379 
380 
381 /**
382  * Write trigger parameters to output.
383  *
384  * \param out output stream
385  * \param parameters trigger parameters
386  * \return output stream
387  */
388 std::ostream& operator<<(std::ostream& out, const JTRIGGER::JTriggerParameters& parameters);
389 
390 #endif
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.
double getIndexOfRefraction()
Get average index of refraction of water.
Definition: JConstants.hh:111
bool enabled
enabled status of trigger
Definition: JTriggerNB_t.hh:84
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
esac print_variable DETECTOR INPUT_FILE OUTPUT_FILE CDF for TYPE in
Definition: JSirene.sh:45
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
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.
ClassDef(JTriggerParameters, 12)
const double getInverseSpeedOfLight()
Get inverse speed of light.
Definition: JConstants.hh:100
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.
Constants.
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
void reset()
Reset trigger parameters.
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 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:1278
int numberOfModules
minimal number of modules to trigger event
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.
virtual ~JL2Parameters()
Virtual destructor.
version
Definition: JCalibratePMT.sh:7
JTrigger3DMuon_t::JParameters trigger3DMuon
JPrescaler writeSN
write JDAQTimeslice with SN data
void set(const double DMax_m=0.0)
Set dependent trigger parameters.