#ifndef ER_H #define ER_H #include "IoSd.h" #include "Es.h" #include "TCdasUtil.h" bool sortbytime (TCalibStation*, TCalibStation*); bool sortbysignal (TCalibStation*, TCalibStation*); enum HorPlot { NMU = 0, LIKECORE = 1, LIKELIHOOD = 2 }; class TReconstruct; /// An event to be reconstructed class TErEvent:public TEsEvent { public: TErEvent(); TErEvent(EventPos); TErEvent(EventId); TErEvent(const TEsEvent & sdevent); ~TErEvent(); string fFileName; ///< Auger root file name int fVerbose; int fRecError; ///< Reconstruction error: 0 = ok, 1 = couldn't reconstruct, -1 = default value (not yet reconstruct) bool fDoHorizontalRec; HorPlot fHorPlot; ///< Type of horizontal display // horizontal features for ED double fEDMapMu[52][52], fEDMapMuBis[52][52], fEDdmax; // utilities void SetHorPlot(HorPlot); ///< set flag for horizontal events in ED void SetDoHorizontalRec(bool); bool Reconstruct(TReconstruct *); ///< manage reconstruction void Print(); void EventList(); void SortStationsByTime() { std::sort(fSelectedStations.begin(),fSelectedStations.end(),sortbytime); }; void SortStationsBySignal() { std::sort(fSelectedStations.begin(),fSelectedStations.end(),sortbysignal); }; void FitEllipse(double& xm, double& ym, double& a, double& b, double& tilt, string method_orientation="distances",string method_area="convexity") const; double GetPolygonArea() const; double Dist(const TCalibStation&) const; //distance to shower axis double Dcore(const TCalibStation&) const; //distance to shower core double CosZeta(const TCalibStation&) const; //Angle in shower plane double Dt(const TCalibStation&) const; // time to shower front TShowerParams fRec; ///< reconstruction parameters ostream & put(ostream & s, char *option); }; #endif