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