RdFiller.cc
Go to the documentation of this file.
1 // Offline include
2 #include <evt/Event.h>
3 #include <evt/ShowerRecData.h>
4 #include <evt/ShowerRRecData.h>
5 
6 #include <revt/REvent.h>
7 #include <revt/Station.h>
8 #include <revt/StationRecData.h>
9 #include <revt/StationSimData.h>
10 #include <revt/ChannelRecData.h>
11 #include <revt/Channel.h>
12 #include <revt/Header.h>
13 
14 #include <det/Detector.h>
15 #include <rdet/RDetector.h>
16 #include <rdet/Channel.h>
17 #include <rdet/RDetector.h>
18 #include <rdet/Station.h>
19 #include <rdet/Channel.h>
20 
21 #include <fwk/LocalCoordinateSystem.h>
22 #include <fwk/CoordinateSystemRegistry.h>
23 
24 #include <utl/config.h>
25 #include <utl/CoordinateSystemPtr.h>
26 #include <utl/CoordinateSystem.h>
27 #include <utl/TimeStamp.h>
28 #include <utl/AugerUnits.h>
29 #include <utl/Point.h>
30 #include <utl/RadioGeometryUtilities.h>
31 #include <utl/UTMPoint.h>
32 #include <utl/AugerUnits.h>
33 
34 // ADST includes
35 #include <RdTrace.h>
36 #include <Detector.h>
37 #include <DetectorGeometry.h>
38 #include <FileInfo.h>
39 #include "ConversionUtil.h"
40 
41 // ROOT include
42 #include <TVector3.h>
43 #include <TF1.h>
44 
45 #include "RdFiller.h"
46 
47 using namespace utl;
48 using namespace otoa;
49 using namespace revt;
50 using std::vector;
51 using std::string;
52 using std::ostringstream;
53 using std::cerr;
54 using std::endl;
55 using std::complex;
56 using std::numeric_limits;
57 using std::out_of_range;
58 
59 
60 bool
61 RdFiller::FillRadioStations(const evt::Event& theev, bool saveTrace, bool storeExcludedStations)
62 {
63  const revt::REvent& therev = theev.GetREvent();
64 
65  // increase RD RecLevel in case it is 0 and we have signal stations
66  if ((therev.GetNumberOfSignalStations() > 0) &&
67  (fRdEvent.GetRdRecLevel() == eNoRdEvent))
68  fRdEvent.SetRdRecLevel(eHasRdSignalStations);
69 
70  for (const auto& station : therev.AllStationsRange()) {
71 
72  if (!storeExcludedStations && station.IsExcluded())
73  continue; // skip stations (do not store it)
74 
75  // Now we call (or create) the station
76  // And we fill it with values from the member variables and parameter storage
77  try {
78  if (!fRdEvent.HasRdStation(station.GetId()))
79  fRdEvent.AddRdStationWithId(station.GetId());
80 
81  RdRecStation& rstation = fRdEvent.GetRdStationById(station.GetId());
82 
83  if (station.HasRecData()) {
84  const revt::StationRecData& recStation = station.GetRecData();
85 
86  // fill data from parameter storage
87  const std::vector<StationRRecDataQuantities>& enumVector = recStation.GetEnumVector();
88  for (const auto& index : enumVector) {
89  if (recStation.HasParameter(index)) {
90  rstation.SetParameter((index), recStation.GetParameter(index));
91  } else {
92  std::cout << "WARNING: RdFiller: Parameter " << index << " does not exist" << std::endl;
93  }
94  }
95 
96  const auto& covarianceEnumVector = recStation.GetCovarianceEnumVector();
97  int ncount = 0;
98  for (const auto& index2 : covarianceEnumVector) {
99  if (recStation.HasParameterCovariance(index2.first, index2.second)) {
100  rstation.SetParameterCovariance(
101  index2.first, index2.second,
102  recStation.GetParameterCovariance(index2.first, index2.second)
103  );
104  } else
105  ++ncount;
106  }
107 
108  // for debugging purpose, will be removed later
109  if (ncount > 0)
110  WARNING(std::to_string(ncount) + string(" ParameterCovariance pairs does not exist"));
111 
112  rstation.SetHasPulse(station.GetRecData().GetPulseFound());
113  rstation.SetSaturated(station.IsSaturated());
114  rstation.SetExcluded(station.GetExcludedReason());
115  rstation.SetRejectionStatus(station.GetRejectedReason());
116  }
117 
118  // now store the trace if foreseen
119  if (saveTrace) {
120  const revt::StationTimeSeries& trace = station.GetStationTimeSeries();
121  const revt::StationFrequencySpectrum& spectr = station.GetStationFrequencySpectrum();
122  vector<Float_t> vectr[3]; // three-dimensional electric field
123  vector<Float_t> vecsp[3]; // three-dimensional electric field
124 
125  RdTrace rtra;
126  for (unsigned int i = 0; i < trace.GetSize(); ++i) {
127  for (unsigned int j = 0; j < trace[i].GetSize(); ++j) {
128  try {
129  Float_t val = trace[i][j];
130  val /= micro * volt / meter;
131  vectr[j].push_back(val);
132  } catch (std::out_of_range& e) {
133  cerr << " Caught std::out_of_range\n"
134  << e.what() << endl;
135  }
136  }
137  }
138 
139  // We do the same for the Spectrum
140  for (unsigned int i = 0; i < spectr.GetSize(); ++i) {
141  for (unsigned int j = 0; j < spectr[i].GetSize(); ++j) {
142  try {
143  Float_t val = abs(spectr[i][j]);
144  val /= micro * volt / meter / megahertz;
145  vecsp[j].push_back(val);
146  } catch (std::out_of_range& e) {
147  cerr << "Caught std::out_of_range\n"
148  << e.what() << endl;
149  }
150  }
151  }
152 
153  for (int i = 0; i < 3; ++i) {
154  rtra.SetTimeTrace(vectr[i]);
155  rtra.SetSamplingRate(trace.GetBinning() / nanosecond);
156  rtra.SetFreqRange(station.GetFrequencyOfBin(0) / megahertz,
157  station.GetFrequencyOfBin(spectr.GetSize() - 1) / megahertz);
158  rtra.SetAbsoluteFreqSpectrum(vecsp[i]);
159  rstation.SetRdTrace(rtra, i);
160  vectr[i].clear();
161  vecsp[i].clear();
162  }
163 
164  // save trace in shower plane
165  const evt::ShowerRRecData& recShower = theev.GetRecShower().GetRRecShower();
166  if (recShower.HasAxis()) {
167 
168  Point core = recShower.GetCoordinateOrigin();
169  if (recShower.HasCorePosition()) {
170  core = recShower.GetCorePosition();
171  }
172 
174  const utl::Vector& showerAxis = recShower.GetAxis();
176  utl::RadioGeometryUtilities(showerAxis, coreCS, recShower.GetMagneticFieldVector());
177  const utl::TraceV3D traceShowerPlane = csTrans.GetTraceInShowerPlaneVxB(trace);
178  vector<Float_t> vectraceShowerPlane[3];
179  for (unsigned int i = 0; i < traceShowerPlane.GetSize(); ++i) {
180  for (unsigned int j = 0; j < traceShowerPlane[i].GetSize(); ++j) {
181  Float_t val = traceShowerPlane[i][j];
182  val /= (micro * volt / meter);
183  vectraceShowerPlane[j].push_back(val);
184  }
185  }
186  for (int i = 0; i < 3; ++i) {
187  rtra.SetTimeTrace(vectraceShowerPlane[i]);
188  rtra.SetSamplingRate(traceShowerPlane.GetBinning() / nanosecond);
189  rstation.SetRdTraceShowerPlane(rtra, i);
190  vectraceShowerPlane[i].clear();
191  }
192  }
193 
194  }
195  } catch (std::out_of_range& e) {
196  WARNING(string("Caught std::out_of_range ") + e.what() + string(" \n"));
197  }
198 
199  } // sIt
200  return true;
201 }
202 
203 
204 bool
205 RdFiller::FillSimRadioStations(const evt::Event& theev)
206 {
207  const revt::REvent& therev = theev.GetREvent();
208 
209  for (const auto& station : therev.AllStationsRange()) {
210  // Now we call (or create) the station
211  // And we fill it with values from the member variables and parameter storage
212  try {
213  if (!fRdEvent.HasRdSimStation(station.GetId()))
214  fRdEvent.AddRdSimStationWithId(station.GetId());
215 
216  RdSimStation& rstation = fRdEvent.GetRdSimStationById(station.GetId());
217 
218  if (station.HasSimData()) {
219  const revt::StationSimData& simStation = station.GetSimData();
220 
221  // fill data from parameter storage
222  const std::vector<StationRRecDataQuantities>& enumVector = simStation.GetEnumVector();
223  for (const auto& it : enumVector) {
224  if (simStation.HasParameter(it)) {
225  rstation.SetParameter((it), simStation.GetParameter(it));
226 
227  } else {
228  std::cout << "WARNING: RdFiller: Parameter " << it << " does not exist" << std::endl;
229  }
230  }
231 
232  const auto& covarianceEnumVector = simStation.GetCovarianceEnumVector();
233  int ncount = 0;
234  for (const auto& it2 : covarianceEnumVector) {
235  if (simStation.HasParameterCovariance(it2.first, it2.second)) {
236  rstation.SetParameterCovariance(
237  it2.first, it2.second,
238  simStation.GetParameterCovariance(it2.first, it2.second)
239  );
240  } else
241  ++ncount;
242  }
243 
244  // for debugging purpose, will be removed later
245  if (ncount > 0)
246  WARNING(std::to_string(ncount) + string(" ParameterCovariance pairs does not exist"));
247  }
248 
249  // now store the trace if foreseen
250 
251  } catch (std::out_of_range& e) {
252  WARNING(string("Caught std::out_of_range ") + e.what() + string(" \n"));
253  }
254 
255  } // sIt
256  return true;
257 }
258 
259 
260 bool
261 RdFiller::FillRadioShower(const evt::Event& theev)
262 {
263  //Shower parameters
264  const CoordinateSystemPtr referenceCS = det::Detector::GetInstance().GetReferenceCoordinateSystem();
265  const evt::ShowerRRecData& recShower = theev.GetRecShower().GetRRecShower();
266  RdRecShower& theShower = fRdEvent.GetRdRecShower();
267 
268  try {
269  const Point& coordinateOrigin = recShower.GetCoordinateOrigin();
270  const CoordinateSystemPtr coordinateOriginCS = fwk::LocalCoordinateSystem::Create(coordinateOrigin);
271  theShower.SetAxisSiteCS(ToTVector3(recShower.GetAxis(), referenceCS));
272  theShower.SetAxisCoreCS(ToTVector3(recShower.GetAxis(), coordinateOriginCS));
273  fRdEvent.SetRdRecLevel(eHasRdArrivalDirection); // there is an arrival direction available from the RD reconstruction
274 
276  WARNING(string("Caught utl::NonExistentComponentException") + e.what());
277  // If the axis/core are not defined then they are filled with nan
278  theShower.SetAxisSiteCS(TVector3(
279  numeric_limits<double>::quiet_NaN(),
280  numeric_limits<double>::quiet_NaN(),
281  numeric_limits<double>::quiet_NaN()
282  ));
283  theShower.SetAxisCoreCS(TVector3(
284  numeric_limits<double>::quiet_NaN(),
285  numeric_limits<double>::quiet_NaN(),
286  numeric_limits<double>::quiet_NaN())
287  );
288  }
289 
290  try {
291  const utl::Point& core = recShower.GetCorePosition();
292  double northing = 0;
293  double easting = 0;
294  double altitude = 0;
295 
296  try {
298  northing = UTM.GetNorthing();
299  easting = UTM.GetEasting();
300  altitude = UTM.GetHeight();
301  theShower.SetCoreUTMCS(TVector3(easting, northing, altitude));
302  } catch (UTMPoint::UTMZoneException& zone_e) {
303  ERROR ("UTMZoneException: radio rec shower invalid");
304  } catch (UTMPoint::UTMException& e) {
305  ERROR ("UTMException: radio rec shower invalid");
306  }
307 
308  theShower.SetCoreSiteCS(ToTVector3(core, referenceCS, meter));
309 
311  WARNING(string("Caught utl::NonExistentComponentException") + e.what());
312  // If the core are not defined then they are filled with nan
313  theShower.SetCoreSiteCS(TVector3(
314  numeric_limits<double>::quiet_NaN(),
315  numeric_limits<double>::quiet_NaN(),
316  numeric_limits<double>::quiet_NaN())
317  );
318  }
319 
320  const std::vector<ShowerRRecDataQuantities>& enumVector = recShower.GetEnumVector();
321  for (auto it = enumVector.begin(); it != enumVector.end(); ++it) {
322  if (recShower.HasParameter(*it)) {
323  theShower.SetParameter((*it), recShower.GetParameter(*it));
324  } else {
325  std::cout << "WARNING: RdFiller: Parameter " << *it << " does not exist" << std::endl;
326  }
327  }
328 
329  const auto& covarianceEnumVector = recShower.GetCovarianceEnumVector();
330  int ncount = 0;
331  for (auto it2 = covarianceEnumVector.begin(); it2 != covarianceEnumVector.end(); ++it2) {
332  if (recShower.HasParameterCovariance(it2->first, it2->second)) {
333  theShower.SetParameterCovariance(it2->first, it2->second,recShower.GetParameterCovariance(it2->first,it2->second));
334  } else {
335  ++ncount;
336  }
337  }
338 
339  // for debugging purpose, will be removed later
340  if (ncount > 0)
341  WARNING(std::to_string(ncount) + string(" ParameterCovariance pairs does not exist"));
342 
343  // Set Errors of ShowerAxis in Spherical coordinates (has to get into the ADST because it is not trivial to compute the errors in spherical coordinates from a cartesian representation)
344  if (recShower.HasParameter(revt::eShowerAxisX) &&
345  recShower.HasParameterCovariance(eShowerAxisX, eShowerAxisX)) { // assumes other parameter and covariances are already set
346  theShower.SetRadiusError(recShower.GetRadiusError());
347  theShower.SetAzimuthError(recShower.GetAzimuthError());
348  theShower.SetZenithError(recShower.GetZenithError());
349  }
350 
351  if (recShower.HasParameter(revt::ePreFitShowerAxisX) &&
352  recShower.HasParameterCovariance(ePreFitShowerAxisX, ePreFitShowerAxisX)) { // assumes other parameter and covariances are already set
353  theShower.SetZenithPreFitError(recShower.GetZenithPreFitError());
354  theShower.SetAzimuthPreFitError(recShower.GetAzimuthPreFitError());
355  }
356 
357  // check whether electromagnetic energy has been reconstructed
358  if (recShower.HasParameter(eReconstructedElectromagneticEnergy))
359  fRdEvent.SetRdRecLevel(eHasRdElectromagneticEnergy);
360 
361  // check whether Xmax has been reconstructed
362  if (recShower.HasParameter(eReconstructedXmax))
363  fRdEvent.SetRdRecLevel(eHasRdDepthOfMaximum);
364 
365  return true;
366 }
367 
368 
369 bool
370 RdFiller::FillRadioChannels(const revt::REvent& therev, bool saveTrace, bool storeExcludedStations)
371 {
372  const rdet::RDetector& rDetector = det::Detector::GetInstance().GetRDetector();
373 
374  for (const auto& station : therev.AllStationsRange()) {
375 
376  if (!storeExcludedStations && station.IsExcluded())
377  continue; // skip stations (do not store it)
378 
379 
380  // Get the Station or Create a new one
381  if (!fRdEvent.HasRdStation(station.GetId()))
382  fRdEvent.AddRdStationWithId(station.GetId());
383 
384  try {
385  RdRecStation& rstation = fRdEvent.GetRdStationById(station.GetId());
386 
387  // Here we save Radio data at the channel level
388  for (const auto& channel : station.ChannelsRange()) {
389 
390  RdRecChannel rchannel; // create a new empty channel
391 
392  rchannel.SetId(channel.GetId());
393  rchannel.SetADCSignalThreshold(channel.GetSignalThreshold());
394  rchannel.SetADCNoiseThreshold(channel.GetNoiseThreshold());
395  rchannel.SetSaturated(channel.IsSaturated());
396 
397  const rdet::Channel& cDetChannel =
398  rDetector.GetStation(station.GetId()).GetChannel(channel.GetId());
399 
400  if (cDetChannel.GetChannelType() == "ScintillatorTop")
401  rchannel.SetScintillatorTop(true);
402  if (cDetChannel.GetChannelType() == "ScintillatorBottom")
403  rchannel.SetScintillatorBottom(true);
404 
405  // now fill quantities form the ChannelRecData, in particular the parameter storage
406  if (channel.HasRecData()) {
407  const revt::ChannelRecData& recChannel = channel.GetRecData();
408 
409  // fill data from parameter storage
410  const std::vector<ChannelRRecDataQuantities>& enumVector = recChannel.GetEnumVector();
411  for (const auto& index : enumVector) {
412  if (recChannel.HasParameter(index)) {
413  rchannel.SetParameter((index),recChannel.GetParameter(index));
414  } else {
415  std::cout << "WARNING: RdFiller: Channel parameter " << index << " does not exist" << std::endl;
416  }
417  }
418 
419  const auto& covarianceEnumVector = recChannel.GetCovarianceEnumVector();
420  int ncount = 0;
421  for (const auto& index2 : covarianceEnumVector) {
422  if (recChannel.HasParameterCovariance(index2.first, index2.second)) {
423  rchannel.SetParameterCovariance(index2.first, index2.second, recChannel.GetParameterCovariance(index2.first, index2.second));
424  } else {
425  ++ncount;
426  }
427  }
428 
429  // for debugging purpose, will be removed later
430  if (ncount > 0)
431  WARNING(std::to_string(ncount) + string(" ParameterCovariance pairs does not exist"));
432 
433  }
434 
435  // save channel traces if foreseen
436  if (saveTrace) {
437  std::vector<Float_t> timetrace;
438  for (revt::ChannelTimeSeries::ConstIterator ctimt = channel.GetChannelTimeSeries().Begin();
439  ctimt != channel.GetChannelTimeSeries().End(); ++ctimt) {
440  timetrace.push_back(*ctimt / (micro * volt));
441  }
442 
443  std::vector<Float_t> freqtrace;
444  for (revt::ChannelFrequencySpectrum::ConstIterator cfreqit = channel.GetChannelFrequencySpectrum().Begin();
445  cfreqit != channel.GetChannelFrequencySpectrum().End(); ++cfreqit) {
446  freqtrace.push_back(abs(*cfreqit) / (micro * volt / megahertz));
447  }
448 
449  // voltage
450  rchannel.SetRdTimeTrace(timetrace);
451  rchannel.SetRdAbsSpectrum(freqtrace);
452  rchannel.GetRdTrace().SetFreqRange(
453  channel.GetFrequencyOfBin(0) / megahertz,
454  channel.GetFrequencyOfBin(channel.GetChannelFrequencySpectrum().GetSize()-1) / megahertz
455  );
456  rchannel.GetRdTrace().SetSamplingRate(channel.GetChannelTimeSeries().GetBinning() / nanosecond);
457 
458  // adc
459  std::vector<Int_t> adctrace;
460  const revt::ChannelADCTimeSeries& adctrace_offline = channel.GetChannelADCTimeSeries();
461  for (unsigned int idx = 0; idx < adctrace_offline.GetSize(); ++idx)
462  adctrace.push_back(adctrace_offline[idx]);
463 
464  RdADCTrace& rchannel_adc_trace = rchannel.GetRdADCTrace();
465  rchannel_adc_trace.SetTimeTrace(adctrace);
466  rchannel_adc_trace.SetSamplingRate(channel.GetChannelADCTimeSeries().GetBinning() / nanosecond);
467  rchannel_adc_trace.SetMinVoltage(cDetChannel.GetMinVoltage());
468  rchannel_adc_trace.SetMaxVoltage(cDetChannel.GetMaxVoltage());
469  rchannel_adc_trace.SetBitDepth(cDetChannel.GetBitDepth());
470 
471  }
472 
473  rstation.GetRdChannelVector().push_back(rchannel); // store the channel in the RdRecStation object
474  } // chanIt
475  } catch (out_of_range& e) {
476  WARNING(string("Caught std::out_of_range") + e.what());
477  }
478  } // sIt
479  return true;
480 }
481 
482 
483 bool
484 RdFiller::FillRadioEventInfo(const revt::REvent& therev)
485 {
486  fRdEvent.SetRdEventId(therev.GetHeader().GetId());
487  fRdEvent.SetRdRunNumber(therev.GetHeader().GetRunNumber());
488  fRdEvent.SetRdEventTime(therev.GetHeader().GetTime().GetGPSSecond(), therev.GetHeader().GetTime().GetGPSNanoSecond());
489  fRdEvent.SetRejectionStatus(therev.GetRejectionStatus());
490  return true;
491 }
492 
493 
494 bool
495 RdFiller::AddRadioDetector(const det::Detector& offlineDet, Detector& adstDet)
496 {
497  const rdet::RDetector& rdt = offlineDet.GetRDetector();
498  const CoordinateSystemPtr referenceCS = offlineDet.GetReferenceCoordinateSystem();
499  for (const auto& station : rdt.StationsRange()) {
500  //const string& StationName = rdIt->GetName();
501  const utl::Point& position = station.GetPosition();
502  double x = position.GetX(referenceCS);
503  double y = position.GetY(referenceCS);
504  double z = position.GetZ(referenceCS);
505  adstDet.SetRdStation(station.GetId(), x/m, y/m, z/m);
506  }
507  return true;
508 }
509 
510 
511 bool
512 RdFiller::AddRadioInfo(FileInfo* const info, const int radioSaveLevel)
513 {
514  if (radioSaveLevel >= 1)
515  info->SetHasRdStation();
516  if (radioSaveLevel >= 2)
517  info->SetHasRdChannel();
518  return true;
519 }
520 
521 
522 bool
523 RdFiller::AddRadioDetectorGeometry(const det::Detector& offlineDet, DetectorGeometry* const adstGeo)
524 {
525  const rdet::RDetector& rdt = offlineDet.GetRDetector();
526  const CoordinateSystemPtr referenceCS = offlineDet.GetReferenceCoordinateSystem();
527  for (const auto& station : rdt.StationsRange()) {
528  const string& stationName = station.GetName();
529  adstGeo->SetRdStationName(station.GetId(), stationName);
530  double x = 0;
531  double y = 0;
532  double z = 0;
533  try {
534  const utl::Point& position = station.GetPosition();
535  x = position.GetX(referenceCS);
536  y = position.GetY(referenceCS);
537  z = position.GetZ(referenceCS);
538  } catch (NonExistentComponentException& e) {
539  const string warn = "RdStation position information cannot be read from RDetector. "
540  "Station position will be set to 0,0,0";
541  WARNING(warn);
542  }
543  adstGeo->SetRdStation(station.GetId(), x/m, y/m, z/m);
544  }
545  return true;
546 }
Class to access channel level reconstructed data.
int GetBitDepth() const
Get number of bits of ADC.
bool HasParameterCovariance(const Parameter i1, const Parameter i2) const
Class to access station level reconstructed data.
std::vector< Parameter > GetEnumVector() const
bool HasParameter(const Parameter i) const
utl::Vector GetAxis() const
Returns vector of the shower axis.
double GetZenithError() const
returns the error of the zenith angle (from the wave fit)
Point object.
Definition: Point.h:32
Station Level Simulated Data
double GetParameterCovariance(const Parameter i1, const Parameter i2) const
Interface class to access to the Radio part of an event.
Definition: REvent.h:42
Class to hold and convert a point in geodetic coordinates.
Definition: UTMPoint.h:40
std::vector< Parameter > GetEnumVector() const
ShowerRecData & GetRecShower()
Interface class to access to the RD Reconstruction of a Shower.
utl::TimeStamp GetTime() const
Definition: REvent/Header.h:17
double GetParameterCovariance(const Parameter i1, const Parameter i2) const
double GetParameter(const Parameter i) const
double GetBinning() const
size of one slot
Definition: Trace.h:138
bool HasCorePosition() const
Return true if all 3 core parameter are set.
double GetParameter(const Parameter i) const
double GetMaxVoltage() const
Get voltage corresponding to max number of counts.
bool HasParameterCovariance(const Parameter i1, const Parameter i2) const
revt::REvent & GetREvent()
Base class for exceptions trying to access non-existing components.
Detector description interface for Channel-related data.
double GetNorthing() const
Get the northing.
Definition: UTMPoint.h:206
ShowerRRecData & GetRRecShower()
Report attempts to use invalid UTM zone.
Definition: UTMPoint.h:300
double GetAzimuthError() const
returns the error of the azimuth angle (from the wave fit)
std::vector< double >::const_iterator ConstIterator
Definition: Trace.h:60
Detector description interface for RDetector-related data.
Definition: RDetector.h:46
std::vector< std::pair< Parameter, Parameter > > GetCovarianceEnumVector() const
unsigned long long int GetRejectionStatus() const
Definition: REvent.h:244
std::vector< Parameter > GetEnumVector() const
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
const std::string & GetChannelType() const
Get description of Channel Type.
utl::Point GetCoordinateOrigin() const
double GetMinVoltage() const
Get voltage corresponding to 0 counts.
bool HasAxis() const
Return true if all 3 axis parameter are set.
double GetHeight() const
Get the height.
Definition: UTMPoint.h:212
double GetX(const CoordinateSystemPtr &coordinateSystem) const
Definition: BasicVector.h:206
constexpr double nanosecond
Definition: AugerUnits.h:143
double abs(const SVector< n, T > &v)
Header & GetHeader()
access to REvent Header
Definition: REvent.h:239
Top of the hierarchy of the detector description interface.
Definition: Detector.h:81
bool HasParameterCovariance(const Parameter i1, const Parameter i2) const
constexpr double meter
Definition: AugerUnits.h:81
double GetEasting() const
Get the easting.
Definition: UTMPoint.h:209
static const ReferenceEllipsoid & GetWGS84()
Get the auger standard ellipsoid: wgs84.
constexpr double megahertz
Definition: AugerUnits.h:155
SizeType GetSize() const
Definition: Trace.h:156
#define WARNING(message)
Macro for logging warning messages.
Definition: ErrorLogger.h:163
std::vector< std::pair< Parameter, Parameter > > GetCovarianceEnumVector() const
std::vector< std::pair< Parameter, Parameter > > GetCovarianceEnumVector() const
std::vector< Parameter > GetEnumVector() const
bool HasParameter(const Parameter i) const
double GetParameterCovariance(const Parameter i1, const Parameter i2) const
int GetNumberOfSignalStations() const
Get number of signal stations in the event.
Definition: REvent.h:209
double GetZenithPreFitError() const
returns the error of the zenith angle (from the pre wave fit -&gt; on voltage level) ...
double GetParameter(const Parameter i) const
double GetY(const CoordinateSystemPtr &coordinateSystem) const
Definition: BasicVector.h:209
bool HasParameter(const Parameter i) const
std::vector< std::pair< Parameter, Parameter > > GetCovarianceEnumVector() const
int GetRunNumber() const
Event id in the run (Start at zero at the beginning of each run) /provided by the daq...
Definition: REvent/Header.h:22
unsigned long GetGPSSecond() const
GPS second.
Definition: TimeStamp.h:124
Report problems in UTM handling.
Definition: UTMPoint.h:288
double GetGPSNanoSecond() const
GPS nanosecond.
Definition: TimeStamp.h:127
constexpr double volt
Definition: AugerUnits.h:229
Template class for a FADC data or calibrated data container. Use the typedefs (TraceD, TraceI, etc.) defined in Trace-fwd.h.
Definition: Trace-fwd.h:19
utl::CoordinateSystemPtr GetReferenceCoordinateSystem() const
Get the reference coordinate system used for analysis (usually PampaAmarilla for Auger) ...
Definition: Detector.h:141
Vector object.
Definition: Vector.h:30
double GetParameterCovariance(const Parameter i1, const Parameter i2) const
utl::Point GetCorePosition() const
returns pointer of the position vector of the core in the reference coor system
constexpr double micro
Definition: AugerUnits.h:65
const rdet::RDetector & GetRDetector() const
Definition: Detector.cc:143
double GetParameter(const Parameter i) const
TVector3 ToTVector3(const T &v, const utl::CoordinateSystemPtr &cs, const double unit=1)
double GetZ(const CoordinateSystemPtr &coordinateSystem) const
Definition: BasicVector.h:212
static Policy::type Create(const utl::Point &theOrigin)
Create the standard local coordinate system for a Point.
utl::Vector GetMagneticFieldVector() const
returns the magnetic field vector from the components stored in the parameter storage ...
#define ERROR(message)
Macro for logging error messages.
Definition: ErrorLogger.h:165
constexpr double m
Definition: AugerUnits.h:121
const Station & GetStation(const int stationId) const
Get station by Station Id.
Definition: RDetector.cc:141
bool HasParameter(const Parameter i) const
int GetId() const
Definition: REvent/Header.h:21
utl::TraceV3D GetTraceInShowerPlaneVxB(const utl::TraceV3D &trace) const
double GetRadiusError() const
returns the error of the radius (from the spherical wave fit)
bool HasParameterCovariance(const Parameter i1, const Parameter i2) const
double GetAzimuthPreFitError() const
returns the error of the azimuth angle (from the pre wave fit -&gt; on voltage level) ...
const char * what() const
std::exception will print this on crash

, generated on Tue Sep 26 2023.