/** \file basic information on the footprint of a shower \author Javier Gonzalez \version $Id$ \date 19 Apr 2012 */ #ifndef _sevt_SdFootprintData_h_ #define _sevt_SdFootprintData_h_ static const char CVSId_sevt_SdFootprintData[] = "$Id$"; #include #include namespace sevt { /** \class SdFootprintData SdFootprintData.h "sevt/SdFootprintData.h" \brief Class to hold simple parameters describing the footprint of an SD event. This class is intended for simple parameters related to the footprint of the event like the ones used in the neutrino analyses. Since the set of parameters used in the analyses changes with time, this class provides getters and setter for the most standard ones and leaves the user the choice to add his or her own. The allowed parameters are indexed by the SdFootprintEnumerations::Parameter enumeration, which includes some values for user-defined parameters. \author Javier Gonzalez \version $Id$ \ingroup shower \date 19 Apr 2012 */ class SdFootprintData { public: typedef SdFootprintEnumerations::Alignment Alignment; SdFootprintData(): fLength(0), fWidth(0), fSpeed(0), fSpeedStandardDeviation(0), fTOTFraction(0), fAlignment(SdFootprintEnumerations::eNotAligned) {} ~SdFootprintData(){} //! \name Standard Parameters //@{ double GetLength() const { return fLength; } double GetWidth() const { return fWidth; } /// The mean 'apparent speed' of the signals as they sweep over the array. double GetSpeed() const { return fSpeed; } /// The standard deviation of apparent speed histogram. All possible pairs of stations correspond to an entry in the histogram. double GetSpeedStandardDeviation() const { return fSpeedStandardDeviation; } /// Fraction of stations with a TOT trigger double GetTOTFraction() const { return fTOTFraction; } double GetAreaOverPeakAsymmetry() const { return fAreaOverPeakAsymmetry; } /// Flag describing how 'aligned' an event is. Alignment GetAlignment() const { return fAlignment; } void SetLength(double l) { fLength = l; } void SetWidth(double w) { fWidth = w; } void SetSpeed(double s, double ds) { fSpeed = s; fSpeedStandardDeviation = ds; } void SetTOTFraction(double f) { fTOTFraction = f; } void SetAreaOverPeakAsymmetry(double a) { fAreaOverPeakAsymmetry = a; } void SetAlignment(Alignment alignment) { fAlignment = alignment; } //@} //! \name Not-so-standard Parameters //@{ typedef SdFootprintEnumerations::Parameter Parameter; void SetParameter(Parameter p, double v) { fParameters.SetParameter(p, v); } bool HasParameter(Parameter p) const { return fParameters.HasParameter(p); } double GetParameter(Parameter p) const { return fParameters.GetParameter(p); } std::vector GetParameterVector() const { return fParameters.GetEnumVector(); } //@} private: double fLength; double fWidth; double fSpeed; double fSpeedStandardDeviation; double fTOTFraction; double fAreaOverPeakAsymmetry; Alignment fAlignment; utl::ParameterStorage fParameters; }; } // sevt #endif // _sevt_SdFootprintData_h_ // Configure (x)emacs for this file ... // Local Variables: // mode:c++ // compile-command: "make -C .. -k" // End: