#ifndef _MdEventPlotterAG_MdEventPlotter_h_ #define _MdEventPlotterAG_MdEventPlotter_h_ #include // before all #include #include #include #include #include #include // #include #include #include // #include // #include #include // class TStyle; namespace mdet { class Counter; } namespace mevt { class Counter; } namespace MdEventPlotterAG { class MdEventPlotter : public fwk::VModule { public: typedef std::vector Positions; typedef Positions::iterator PosIter; typedef std::vector > Coordinates; typedef Coordinates::iterator CoordIter; typedef std::vector > NmuSizes; typedef NmuSizes::iterator NmuIter; typedef std::vector< boost::tuple > LDFCounterList; typedef LDFCounterList::const_iterator LDFCounterIt; MdEventPlotter(); ~MdEventPlotter(); VModule::ResultFlag Init(); VModule::ResultFlag Run(evt::Event& e); VModule::ResultFlag Finish(); double CounterProjectedArea(const mdet::Counter& c, const mevt::Counter &, const utl::Point& p, const utl::Vector& v, const utl::CoordinateSystemPtr siteCS); private: VModule::ResultFlag PlotEvent(evt::Event& ); VModule::ResultFlag PlotMLDF (evt::Event& ); void InitializeStyle(); void PlotAllCores(); void PlotDistanceDistributions(); void PlotNmuDistribution(); unsigned int fRunNumber; unsigned int fEventNumber; double fAreaDet; double fWindowSize; std::string fOutDir; std::string fRun; std::string fPlotExtension1; std::string fPlotExtension2; std::string fPlotExtension3; TStyle *fStyle; Positions fCandidates; Positions fSilents; Positions fSaturated; Positions fRejected; Coordinates fCores; NmuSizes fNmuSizes; LDFCounterList LDFCandidates; LDFCounterList LDFSilents; LDFCounterList LDFSaturated; std::ofstream* fFile1; REGISTER_MODULE("MdEventPlotterAG", MdEventPlotter); }; } #endif // _MdEventPlotterAG_MdEventPlotter_h_