#ifndef __JRECONSTRUCTION__JMUONPREFITPARAMETERS__ #define __JRECONSTRUCTION__JMUONPREFITPARAMETERS__ #include #include /** * \author gmaggi */ namespace JRECONSTRUCTION {} namespace JPP { using namespace JRECONSTRUCTION; } namespace JRECONSTRUCTION { /** * Data structure for fit parameters. */ struct JMuonPrefitParameters_t : public TObject { /** * Default constructor. */ JMuonPrefitParameters_t() { this->reset(); } /** * Virtual destructor. */ virtual ~JMuonPrefitParameters_t() {} /** * Reset fit parameters. */ void reset() { factoryLimit = 8; NMaxHits = 50; sigma_ns = 5; gridAngle_deg = 1; useL0 = false; numberOfOutliers = 3; numberOfPrefits = 12; DZMax = 0.0; numberOfDZMax = 1; TMaxLocal_ns = 18.0; ctMin = 0; roadWidth_m = 200; Qmin = 0.0; } /** * Equality * * \param parameters fit parameters * \return true if equals; else false */ bool equals(const JMuonPrefitParameters_t& parameters) const { return (this->factoryLimit == parameters.factoryLimit && this->NMaxHits == parameters.NMaxHits && this->sigma_ns == parameters.sigma_ns && this->gridAngle_deg == parameters.gridAngle_deg && this->useL0 == parameters.useL0 && this->numberOfOutliers == parameters.numberOfOutliers && this->numberOfPrefits == parameters.numberOfPrefits && this->DZMax == parameters.DZMax && this->numberOfDZMax == parameters.numberOfDZMax && this->TMaxLocal_ns == parameters.TMaxLocal_ns && this->roadWidth_m == parameters.roadWidth_m && this->Qmin == parameters.Qmin); } ClassDef(JMuonPrefitParameters_t, 1); int factoryLimit; ///< factory limit for combinatorics int NMaxHits; ///< maximal number of hits double sigma_ns; ///< time resolution [ns] double gridAngle_deg; ///< grid angle for directions [deg] bool useL0; ///< option for L0 hit use int numberOfOutliers; ///< maximum number of outliers size_t numberOfPrefits; ///< number of prefits double DZMax; ///< maximal slope for downward pointing solutions size_t numberOfDZMax; ///< additional number of downward pointing solutions double TMaxLocal_ns; ///< time window for local coincidences [ns] double ctMin; ///< minimal cosine space angle between PMT axes double roadWidth_m; ///< road width [m] double Qmin; ///< minimal quality step }; } /** * Read fit parameters from input. * * \param in input stream * \param parameters fit parameters * \return input stream */ std::istream& operator>>(std::istream& in, JRECONSTRUCTION::JMuonPrefitParameters_t& parameters); /** * Write fit parameters to output. * * \param out output stream * \param parameters fit parameters * \return output stream */ std::ostream& operator<<(std::ostream& out, const JRECONSTRUCTION::JMuonPrefitParameters_t& parameters); #endif