2 #include <evt/ShowerScintillatorRecData.h>
3 #include <evt/ShowerMRecData.h>
4 #include <evt/ShowerUnivRecData.h>
5 #include <AugerEvent.h>
6 #include <cevt/CEvent.h>
7 #include <mevt/MEvent.h>
8 #include <revt/Header.h>
9 #include <revt/EventTrigger.h>
10 #include <revt/REvent.h>
11 #include <sevt/Meteo.h>
12 #include <sevt/EventTrigger.h>
14 #include <sevt/SEvent.h>
15 #include <evt/ShowerRRecData.h>
17 #include <evt/ShowerRecData.h>
18 #include <evt/ShowerSRecData.h>
19 #include <evt/ShowerFRecData.h>
20 #include <evt/ShowerSimData.h>
21 #include <evt/LaserData.h>
22 #include <evt/RadioSimulation.h>
24 #include <fevt/FEvent.h>
25 #include <fevt/FdComponentSelector.h>
27 #include <fevt/EyeRecData.h>
29 #include <utl/AugerException.h>
30 #include <utl/ErrorLogger.h>
31 #include <utl/TabulatedFunctionErrors.h>
33 #include <utl/AnalyticCoordinateTransformator.h>
37 #include <utl/LameShadowPtr_imp.h>
48 ShowerRRecData::GetRadius()
51 if (HasParameter(eShowerAxisX) &&
52 HasParameter(eShowerAxisY) &&
53 HasParameter(eShowerAxisZ)) {
55 AnalyticCoordinateTransformator::GetRadiusFromCartesianCoordinates(
56 GetParameter(eShowerAxisX),
57 GetParameter(eShowerAxisY),
58 GetParameter(eShowerAxisZ)
61 WARNING(
"ShowerRRecData::GetRadius(): Parameter eShowerAxis was not set");
62 return std::numeric_limits<double>::quiet_NaN();
69 ShowerRRecData::GetRadiusError()
72 if (HasParameter(eShowerAxisX) &&
73 HasParameter(eShowerAxisY) &&
74 HasParameter(eShowerAxisZ) &&
75 HasParameterCovariance(eShowerAxisX, eShowerAxisX) &&
76 HasParameterCovariance(eShowerAxisY, eShowerAxisY) &&
77 HasParameterCovariance(eShowerAxisZ, eShowerAxisZ) &&
78 HasParameterCovariance(eShowerAxisX, eShowerAxisY) &&
79 HasParameterCovariance(eShowerAxisX, eShowerAxisZ) &&
80 HasParameterCovariance(eShowerAxisY, eShowerAxisZ)) {
81 const double covarianceRR =
82 AnalyticCoordinateTransformator::GetSphericalCovarianceFromCartesian(
85 GetParameter(eShowerAxisX),
86 GetParameter(eShowerAxisY),
87 GetParameter(eShowerAxisZ),
88 GetParameterCovariance(eShowerAxisX, eShowerAxisX),
89 GetParameterCovariance(eShowerAxisY, eShowerAxisY),
90 GetParameterCovariance(eShowerAxisZ, eShowerAxisZ),
91 GetParameterCovariance(eShowerAxisX, eShowerAxisY),
92 GetParameterCovariance(eShowerAxisX, eShowerAxisZ),
93 GetParameterCovariance(eShowerAxisY, eShowerAxisZ)
95 return sqrt(covarianceRR);
97 WARNING(
"ShowerRRecData::GetRadiusError(): Parameter or Covariances of eShowerAxis was not set, returning NaN");
98 return std::numeric_limits<double>::quiet_NaN();
105 ShowerRRecData::GetAzimuth()
108 if (HasParameter(eShowerAxisX) && HasParameter(eShowerAxisY)) {
109 return AnalyticCoordinateTransformator::GetAzimuthFromCartesianCoordinates(GetParameter(eShowerAxisX), GetParameter(eShowerAxisY));
111 WARNING(
"ShowerRRecData::GetAzimuth(): Parameter eShowerAxis was not set");
112 return std::numeric_limits<double>::quiet_NaN();
119 ShowerRRecData::GetAzimuthError()
122 if (HasParameter(eShowerAxisX) &&
123 HasParameter(eShowerAxisY) &&
124 HasParameter(eShowerAxisZ) &&
125 HasParameterCovariance(eShowerAxisX, eShowerAxisX) &&
126 HasParameterCovariance(eShowerAxisY, eShowerAxisY) &&
127 HasParameterCovariance(eShowerAxisZ, eShowerAxisZ) &&
128 HasParameterCovariance(eShowerAxisX, eShowerAxisY) &&
129 HasParameterCovariance(eShowerAxisX, eShowerAxisZ) &&
130 HasParameterCovariance(eShowerAxisY, eShowerAxisZ)) {
131 const double covariance22 =
132 AnalyticCoordinateTransformator::GetSphericalCovarianceFromCartesian(
135 GetParameter(eShowerAxisX),
136 GetParameter(eShowerAxisY),
137 GetParameter(eShowerAxisZ),
138 GetParameterCovariance(eShowerAxisX, eShowerAxisX),
139 GetParameterCovariance(eShowerAxisY, eShowerAxisY),
140 GetParameterCovariance(eShowerAxisZ, eShowerAxisZ),
141 GetParameterCovariance(eShowerAxisX, eShowerAxisY),
142 GetParameterCovariance(eShowerAxisX, eShowerAxisZ),
143 GetParameterCovariance(eShowerAxisY, eShowerAxisZ)
145 return sqrt(covariance22);
147 WARNING(
"ShowerRRecData::GetAzimuthError(): Parameter or Covariances of eShowerAxis was not set, returning NaN");
148 return std::numeric_limits<double>::quiet_NaN();
155 ShowerRRecData::GetZenith()
158 if (HasParameter(eShowerAxisX) && HasParameter(eShowerAxisY) && HasParameter(eShowerAxisZ)) {
160 AnalyticCoordinateTransformator::GetZenithFromCartesianCoordinates(
161 GetParameter(eShowerAxisX),
162 GetParameter(eShowerAxisY),
163 GetParameter(eShowerAxisZ)
166 WARNING(
"ShowerRRecData::GetZenith(): Parameter eShowerAxis was not set");
167 return std::numeric_limits<double>::quiet_NaN();
174 ShowerRRecData::GetZenithError()
177 if (HasParameter(eShowerAxisX) &&
178 HasParameter(eShowerAxisY) &&
179 HasParameter(eShowerAxisZ) &&
180 HasParameterCovariance(eShowerAxisX, eShowerAxisX) &&
181 HasParameterCovariance(eShowerAxisY, eShowerAxisY) &&
182 HasParameterCovariance(eShowerAxisZ, eShowerAxisZ) &&
183 HasParameterCovariance(eShowerAxisX, eShowerAxisY) &&
184 HasParameterCovariance(eShowerAxisX, eShowerAxisZ) &&
185 HasParameterCovariance(eShowerAxisY, eShowerAxisZ)) {
186 const double covariance11 =
187 AnalyticCoordinateTransformator::GetSphericalCovarianceFromCartesian(
190 GetParameter(eShowerAxisX),
191 GetParameter(eShowerAxisY),
192 GetParameter(eShowerAxisZ),
193 GetParameterCovariance(eShowerAxisX, eShowerAxisX),
194 GetParameterCovariance(eShowerAxisY, eShowerAxisY),
195 GetParameterCovariance(eShowerAxisZ, eShowerAxisZ),
196 GetParameterCovariance(eShowerAxisX, eShowerAxisY),
197 GetParameterCovariance(eShowerAxisX, eShowerAxisZ),
198 GetParameterCovariance(eShowerAxisY, eShowerAxisZ)
200 return sqrt(covariance11);
202 WARNING(
"ShowerRRecData::GetZenithError(): Parameter or Covariances of eShowerAxis was not set, returning NaN");
203 return std::numeric_limits<double>::quiet_NaN();
210 ShowerRRecData::GetAzimuthPreFit()
213 if (HasParameter(ePreFitShowerAxisX) && HasParameter(ePreFitShowerAxisY)) {
215 AnalyticCoordinateTransformator::GetAzimuthFromCartesianCoordinates(GetParameter(ePreFitShowerAxisX), GetParameter(ePreFitShowerAxisY));
217 WARNING(
"ShowerRRecData::GetAzimuthPreFit(): Parameter ePreFitShowerAxis was not set");
218 return std::numeric_limits<double>::quiet_NaN();
225 ShowerRRecData::GetAzimuthPreFitError()
228 if (HasParameter(ePreFitShowerAxisX) &&
229 HasParameter(ePreFitShowerAxisY) &&
230 HasParameter(ePreFitShowerAxisZ) &&
231 HasParameterCovariance(ePreFitShowerAxisX, ePreFitShowerAxisX) &&
232 HasParameterCovariance(ePreFitShowerAxisY, ePreFitShowerAxisY) &&
233 HasParameterCovariance(ePreFitShowerAxisZ, ePreFitShowerAxisZ) &&
234 HasParameterCovariance(ePreFitShowerAxisX, ePreFitShowerAxisY) &&
235 HasParameterCovariance(ePreFitShowerAxisX, ePreFitShowerAxisZ) &&
236 HasParameterCovariance(ePreFitShowerAxisY, ePreFitShowerAxisZ)) {
237 const double covariance22 =
238 AnalyticCoordinateTransformator::GetSphericalCovarianceFromCartesian(
241 GetParameter(ePreFitShowerAxisX),
242 GetParameter(ePreFitShowerAxisY),
243 GetParameter(ePreFitShowerAxisZ),
244 GetParameterCovariance(ePreFitShowerAxisX, ePreFitShowerAxisX),
245 GetParameterCovariance(ePreFitShowerAxisY, ePreFitShowerAxisY),
246 GetParameterCovariance(ePreFitShowerAxisZ, ePreFitShowerAxisZ),
247 GetParameterCovariance(ePreFitShowerAxisX, ePreFitShowerAxisY),
248 GetParameterCovariance(ePreFitShowerAxisX, ePreFitShowerAxisZ),
249 GetParameterCovariance(ePreFitShowerAxisY, ePreFitShowerAxisZ)
251 return sqrt(covariance22);
253 WARNING(
"ShowerRRecData::GetAzimuthPreFitError(): Parameter or Covariances of ePreFitShowerAxis was not set, returning NaN");
254 return std::numeric_limits<double>::quiet_NaN();
261 ShowerRRecData::GetZenithPreFit()
264 if (HasParameter(ePreFitShowerAxisX) && HasParameter(ePreFitShowerAxisY) && HasParameter(ePreFitShowerAxisZ)) {
266 AnalyticCoordinateTransformator::GetZenithFromCartesianCoordinates(
267 GetParameter(ePreFitShowerAxisX),
268 GetParameter(ePreFitShowerAxisY),
269 GetParameter(ePreFitShowerAxisZ)
272 WARNING(
"ShowerRRecData::GetZenithPreFit(): Parameter ePreFitShowerAxis was not set");
273 return std::numeric_limits<double>::quiet_NaN();
280 ShowerRRecData::GetZenithPreFitError()
283 if (HasParameter(ePreFitShowerAxisX) &&
284 HasParameter(ePreFitShowerAxisY) &&
285 HasParameter(ePreFitShowerAxisZ) &&
286 HasParameterCovariance(ePreFitShowerAxisX, ePreFitShowerAxisX) &&
287 HasParameterCovariance(ePreFitShowerAxisY, ePreFitShowerAxisY) &&
288 HasParameterCovariance(ePreFitShowerAxisZ, ePreFitShowerAxisZ) &&
289 HasParameterCovariance(ePreFitShowerAxisX, ePreFitShowerAxisY) &&
290 HasParameterCovariance(ePreFitShowerAxisX, ePreFitShowerAxisZ) &&
291 HasParameterCovariance(ePreFitShowerAxisY, ePreFitShowerAxisZ)) {
292 const double covariance11 =
293 AnalyticCoordinateTransformator::GetSphericalCovarianceFromCartesian(
296 GetParameter(ePreFitShowerAxisX),
297 GetParameter(ePreFitShowerAxisY),
298 GetParameter(ePreFitShowerAxisZ),
299 GetParameterCovariance(ePreFitShowerAxisX, ePreFitShowerAxisX),
300 GetParameterCovariance(ePreFitShowerAxisY, ePreFitShowerAxisY),
301 GetParameterCovariance(ePreFitShowerAxisZ, ePreFitShowerAxisZ),
302 GetParameterCovariance(ePreFitShowerAxisX, ePreFitShowerAxisY),
303 GetParameterCovariance(ePreFitShowerAxisX, ePreFitShowerAxisZ),
304 GetParameterCovariance(ePreFitShowerAxisY, ePreFitShowerAxisZ)
306 return sqrt(covariance11);
308 WARNING(
"ShowerRRecData::GetZenithPreFitError(): Parameter or Covariances of ePreFitShowerAxis was not set, returning NaN");
309 return std::numeric_limits<double>::quiet_NaN();
315 ShowerRRecData::GetCoordinateOrigin()
319 if (HasParameter(revt::eCoordinateOriginX) &&
320 HasParameter(revt::eCoordinateOriginY) &&
321 HasParameter(revt::eCoordinateOriginZ)) {
322 return utl::Point(GetParameter(revt::eCoordinateOriginX),
323 GetParameter(revt::eCoordinateOriginY),
324 GetParameter(revt::eCoordinateOriginZ),
327 WARNING(
"ShowerRRecData::GetCoordinateOrigin(): Parameter eCoordinateOrigin was not set. Throwing exception...");
334 ShowerRRecData::HasCorePosition()
339 HasParameter(revt::eCoreZ));
344 ShowerRRecData::GetCorePosition()
348 if (HasCorePosition()) {
351 GetParameter(revt::eCoreZ),
354 WARNING(
"ShowerRRecData::GetCorePosition(): Parameter eCore was not set. You might want to use GetReferenceCorePosition(). Throwing exception...");
361 ShowerRRecData::GetCoreError()
367 HasParameterError(revt::eCoreZ)) {
370 GetParameterError(revt::eCoreZ),
373 WARNING(
"ShowerRRecData::GetCoreError(): Parameter eCore was not set. Throwing exception...");
380 ShowerRRecData::GetCoreCorrelationXY()
387 WARNING(
"ShowerRRecData::GetCoreError(): Parameter eCore was not set. Throwing exception...");
394 ShowerRRecData::HasAxis()
397 return (HasParameter(revt::eShowerAxisX) &&
398 HasParameter(revt::eShowerAxisY) &&
399 HasParameter(revt::eShowerAxisZ));
404 ShowerRRecData::GetAxis()
409 return utl::Vector(GetParameter(revt::eShowerAxisX),
410 GetParameter(revt::eShowerAxisY),
411 GetParameter(revt::eShowerAxisZ),
414 WARNING(
"ShowerRRecData::GetAxis(): Parameter eShowerAxis was not set. You might want to use GetReferenceAxis(). Throwing exception...");
422 ShowerRRecData::GetMagneticFieldVector()
426 if (HasParameter(revt::eMagneticFieldVectorX) &&
427 HasParameter(revt::eMagneticFieldVectorY) &&
428 HasParameter(revt::eMagneticFieldVectorZ)) {
429 return utl::Vector(GetParameter(revt::eMagneticFieldVectorX),
430 GetParameter(revt::eMagneticFieldVectorY),
431 GetParameter(revt::eMagneticFieldVectorZ),
434 WARNING(
"ShowerRRecData::GetMagneticFieldVector(): Parameter eMagneticFieldVector was not set. Throwing exception...");
441 ShowerRRecData::HasReferenceCorePosition(
const Event& event)
444 if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseSDReferenceCore) {
446 ERROR(
"No SRecShower available but SD reference core specified in the settings.");
451 }
else if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseFDReferenceCore) {
453 ERROR(
"No FEvent available but FD reference Core specified in the settings!");
459 if (eyeIter->GetId() != fWhichEye)
463 ERROR(
"Eye has no RecData or FRecShower but FD reference Core specified in the settings!");
470 }
else if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseMCReferenceCore) {
472 ERROR(
"No SimShower available but MC reference core specified in the settings.");
475 return event.GetSimShower().HasPosition();
477 }
else if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseRDReferenceCore) {
480 HasParameter(revt::eCoreZ)) {
485 }
else if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseRDCoordinateOrigin) {
487 }
else if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseExternalReferenceCore) {
488 if (HasParameter(revt::eExternalCoreX) &&
489 HasParameter(revt::eExternalCoreY) &&
490 HasParameter(revt::eExternalCoreZ)) {
496 ERROR(
"unknown reference core");
502 ShowerRRecData::HasReferenceAxis(
const Event& event)
505 if (ShowerRRecData::fReferenceAxisFlag == ShowerRRecData::eUseSDReferenceAxis) {
507 ERROR(
"No SRecShower available but SD reference core specified in the settings.");
512 }
else if (ShowerRRecData::fReferenceAxisFlag == ShowerRRecData::eUseFDReferenceAxis) {
514 ERROR(
"No FEvent available but FD reference Core specified in the settings!");
520 if (eyeIter->GetId() != fWhichEye)
524 ERROR(
"Eye has no RecData or FRecShower but FD reference Core specified in the settings!");
531 }
else if (ShowerRRecData::fReferenceAxisFlag == ShowerRRecData::eUseMCReferenceAxis) {
533 ERROR(
"No SimShower available but MC reference core specified in the settings.");
536 return event.GetSimShower().HasDirection();
538 }
else if (ShowerRRecData::fReferenceAxisFlag == ShowerRRecData::eUseRDReferenceAxis) {
539 if (HasParameter(revt::eShowerAxisX) &&
540 HasParameter(revt::eShowerAxisY) &&
541 HasParameter(revt::eShowerAxisZ)) {
546 }
else if (ShowerRRecData::fReferenceAxisFlag == ShowerRRecData::eUseExternalReferenceAxis) {
547 if (HasParameter(revt::eExternalShowerAxisX) &&
548 HasParameter(revt::eExternalShowerAxisY) &&
549 HasParameter(revt::eExternalShowerAxisZ)) {
555 ERROR(
"unknown reference direction");
563 ShowerRRecData::GetReferenceCorePosition(
const Event& event)
567 if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseSDReferenceCore) {
569 ERROR(
"No SRecShower available but SD reference core specified in the settings.");
572 const ShowerSRecData& showersrec =
event.GetRecShower().GetSRecShower();
575 }
else if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseFDReferenceCore) {
577 ERROR(
"No FEvent available but FD reference Core specified in the settings!");
583 if (eyeIter->GetId() != fWhichEye)
587 ERROR(
"Eye has no RecData or FRecShower but FD reference Core specified in the settings!");
595 }
else if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseMCReferenceCore) {
597 ERROR(
"No SimShower available but MC reference core specified in the settings.");
600 return event.GetSimShower().GetPosition();
602 }
else if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseRDReferenceCore) {
603 const ShowerRRecData& showerrrec =
event.GetRecShower().GetRRecShower();
605 }
else if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseRDCoordinateOrigin) {
606 const ShowerRRecData& showerrrec =
event.GetRecShower().GetRRecShower();
608 }
else if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseExternalReferenceCore) {
610 if (HasParameter(revt::eExternalCoreX) &&
611 HasParameter(revt::eExternalCoreY) &&
612 HasParameter(revt::eExternalCoreZ)) {
613 return utl::Point(GetParameter(revt::eExternalCoreX),
614 GetParameter(revt::eExternalCoreY),
615 GetParameter(revt::eExternalCoreZ),
618 WARNING(
"ShowerRRecData::GetCorePosition(): Parameter eExternalCore was not set. Throwing exception...");
622 ERROR(
"unknown reference core");
628 ShowerRRecData::GetReferenceCoreError(
const Event& event)
632 if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseSDReferenceCore) {
634 ERROR(
"No SRecShower available but SD reference core specified in the settings.");
637 const ShowerSRecData& showersrec =
event.GetRecShower().GetSRecShower();
640 }
else if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseFDReferenceCore) {
642 ERROR(
"No FEvent available but FD reference Core specified in the settings!");
648 if (eyeIter->GetId() != fWhichEye)
652 ERROR(
"Eye has no RecData or FRecShower but FD reference Core specified in the settings!");
660 }
else if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseMCReferenceCore) {
662 ERROR(
"No SimShower available but MC reference core specified in the settings.");
665 ERROR(
"MC is specified as reference core position, no error for this setting.");
668 }
else if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseRDReferenceCore) {
669 ERROR(
"RD is specified as reference core position, no error for this setting.");
671 }
else if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseRDCoordinateOrigin) {
672 ERROR(
"RDCoordinateOrigin is specified as reference core position, no error for this setting.");
674 }
else if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseExternalReferenceCore) {
675 WARNING(
"External is specified as reference core position, no error for this setting.");
678 ERROR(
"unknown reference core");
683 ShowerRRecData::GetReferenceCoreErrorCorrelationXY(
const Event& event)
686 if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseSDReferenceCore) {
688 ERROR(
"No SRecShower available but SD reference core specified in the settings.");
691 const ShowerSRecData& showersrec =
event.GetRecShower().GetSRecShower();
694 }
else if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseFDReferenceCore) {
696 ERROR(
"No FEvent available but FD reference Core specified in the settings!");
702 if (eyeIter->GetId() != fWhichEye)
706 ERROR(
"Eye has no RecData or FRecShower but FD reference Core specified in the settings!");
714 }
else if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseMCReferenceCore) {
716 ERROR(
"No SimShower available but MC reference core specified in the settings.");
719 ERROR(
"MC is specified as reference core position, no ReferenceCoreErrorCorrelationXY for this setting.");
722 }
else if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseRDReferenceCore) {
723 ERROR(
"RD is specified as reference core position, no ReferenceCoreErrorCorrelationXY for this setting.");
725 }
else if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseRDCoordinateOrigin) {
726 ERROR(
"RDCoordinateOrigin is specified as reference core position, no ReferenceCoreErrorCorrelationXY for this setting.");
728 }
else if (ShowerRRecData::fReferenceCoreFlag == ShowerRRecData::eUseExternalReferenceCore) {
729 WARNING(
"External is specified as reference core position, no ReferenceCoreErrorCorrelationXY for this setting.");
732 ERROR(
"unknown reference core");
738 ShowerRRecData::GetReferenceAxis(
const Event& event)
741 if (ShowerRRecData::fReferenceAxisFlag == ShowerRRecData::eUseSDReferenceAxis) {
743 ERROR(
"No SRecShower available but SD reference direction specified in the settings.");
746 const ShowerSRecData& showersrec =
event.GetRecShower().GetSRecShower();
749 }
else if (ShowerRRecData::fReferenceAxisFlag == ShowerRRecData::eUseFDReferenceAxis) {
751 ERROR(
"No FEvent available but FD reference direction specified in the settings!");
757 if (eyeIter->GetId() != fWhichEye)
761 ERROR(
"Eye has no RecData or FRecShower but FD reference direction specified in the settings!");
769 }
else if (ShowerRRecData::fReferenceAxisFlag == ShowerRRecData::eUseMCReferenceAxis) {
771 ERROR(
"No SimShower available but MC reference direction specified in the settings.");
774 return -1 *
event.GetSimShower().GetDirection();
776 }
else if (ShowerRRecData::fReferenceAxisFlag == ShowerRRecData::eUseRDReferenceAxis) {
777 const ShowerRRecData& showerrrec =
event.GetRecShower().GetRRecShower();
779 }
else if (ShowerRRecData::fReferenceAxisFlag == ShowerRRecData::eUseExternalReferenceAxis) {
781 if (HasParameter(revt::eExternalShowerAxisX) &&
782 HasParameter(revt::eExternalShowerAxisY) &&
783 HasParameter(revt::eExternalShowerAxisZ)) {
784 return utl::Vector(GetParameter(revt::eExternalShowerAxisX),
785 GetParameter(revt::eExternalShowerAxisY),
786 GetParameter(revt::eExternalShowerAxisZ),
789 WARNING(
"ShowerRRecData::GetReferenceAxis(): Parameter eExternalShowerAxis was not set. Throwing exception...");
793 ERROR(
"unknown reference direction");
const utl::Vector & GetCoreError() const
Shower core as reconstructed by the FD or FD eye.
double GetCorrelationXY() const
#define LAMESHADOWPTR_INST(_T_...)
utl::Vector GetAxis() const
Returns vector of the shower axis.
Fluorescence Detector Eye Event.
Interface class to access to the SD Reconstruction of a Shower.
boost::filter_iterator< ComponentSelector, ConstAllEyeIterator > ConstEyeIterator
ShowerRecData & GetRecShower()
Interface class to access to the RD Reconstruction of a Shower.
bool HasSimShower() const
double GetCorrelationXY() const
core xy correlation (MU: in which coordinate system???)
EyeIterator EyesEnd(const ComponentSelector::Status status)
const utl::Vector & GetCoreError() const
Base class for exceptions trying to access non-existing components.
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
utl::Point GetCoordinateOrigin() const
bool HasFRecShower() const
Check if reconstructed shower info has been allocated.
evt::ShowerFRecData & GetFRecShower()
Reconstructed shower info for this eye.
EyeIterator EyesBegin(const ComponentSelector::Status status)
const utl::Vector & GetAxis() const
#define WARNING(message)
Macro for logging warning messages.
Top of Fluorescence Detector event hierarchy.
Interface class to access to Fluorescence reconstruction of a Shower.
const utl::Point & GetCorePosition() const
utl::Point GetCorePosition() const
returns pointer of the position vector of the core in the reference coor system
static Policy::type Create(const utl::Point &theOrigin)
Create the standard local coordinate system for a Point.
#define ERROR(message)
Macro for logging error messages.
const utl::Point & GetCorePosition() const
Shower core as reconstructed by the FD or FD eye.
bool HasSRecShower() const
fevt::EyeRecData & GetRecData()
Reconstructed data for this eye.
const utl::Vector & GetAxis() const
Shower Axis as reconstructed by the FD or FD eye.