1 #ifndef JMUONGANDALF_INCLUDE
2 #define JMUONGANDALF_INCLUDE
79 JRegressor_t::T_ns.setRange(-50.0, +450.0);
80 JRegressor_t::Vmax_npe = 10.0;
81 JRegressor_t::MAXIMUM_ITERATIONS = 10000;
119 if (std::equal_to<KM3NETDAQ::JDAQPMTIdentifier>()(first, second))
120 return std::less<JTRIGGER::JHit>()(first, second);
122 return std::less<KM3NETDAQ::JDAQPMTIdentifier>()(first, second);
137 if ( InPreFits.empty() )
return;
154 JEvt::iterator __end = InPreFits.end();
157 __end = std::partition( InPreFits.begin(), __end,
162 if (InPreFits.begin() != __end) {
164 std::copy(InPreFits.begin(), __end, std::back_inserter(OutFits));
166 if (numberOfPrefits > 0) {
167 std::advance(__end = InPreFits.begin(), std::min(numberOfPrefits, OutFits.size()));
170 std::partial_sort(InPreFits.begin(), __end, InPreFits.end(),
qualitySorter);
172 __end = std::partition(InPreFits.begin(), __end,
178 buildL0(timeSlice, *
router_, std::back_inserter(dataL0));
182 for (JEvt::const_iterator track = InPreFits.begin(); track != __end; ++track) {
193 for (JDataL0_t::const_iterator i = dataL0.begin(); i != dataL0.end(); ++i) {
206 std::sort(data.begin(), data.end(),
compare);
208 JDataW0_t::iterator __end = std::unique( data.begin(), data.end(),
209 std::equal_to<KM3NETDAQ::JDAQPMTIdentifier>()
212 const int NDF = std::distance(data.begin(), __end) -
fitRegresor_.parameters.size();
218 if (track->getE() > 0.1)
229 const double energy(0);
Data regression method for JFIT::JLine3Z.
class to handle Muon Gandalf reconstruction first, two other angular reconstructionS should be ran : ...
JRegressor_t fitRegresor_
number of iterations from JGandalf.cc
Definition for fit results, A good fit should hold: OKAY.
std::size_t numberOfPrefits
void getJEvt(const KM3NETDAQ::JDAQTimeslice &timeSlice, JFIT::JEvt &InPreFits, JFIT::JEvt &OutFits) const
Declaration of Member function that actually performs the reconstruction.
Auxiliary class to test history.
Data structure for fit of straight line in positive z-direction.
Container for historical events.
static parameter_type pT()
Linear fit of JFIT::JLine1Z.
JMuonGandalf(const JLANG::JSharedPointer< const JDETECTOR::JModuleRouter > &router, const JFIT::JMuonGandalfParameters_t ¶meters, std::string pdfFile)
Parameterized constructor.
JLANG::JSharedPointer< const JDETECTOR::JModuleRouter > router_
angular resolution [rad] from JGandalf.cc
JFit getFit(const JHistory &history, const JTrack3D &track, const double Q, const int NDF, const double energy=0.0, const int status=0)
Get fit.
Basic data structure for L0 hit.
Definition of fit parameters from various applications.
Basic data structure for time and time over threshold information of hit.
static parameter_type pDX()
JAxis3D & rotate(const JRotation3D &R)
Rotate axis.
JFIT::JRegressor< JFIT::JLine3Z, JFIT::JGandalf > JRegressor_t
control parameter from JGandalf.cc
Auxiliary class to test history.
Auxiliary class for a hit with background rate value.
JDirection3D getDirection(const JFit &fit)
Get direction.
Auxiliary class to match data points with given model.
angular resolution [rad] from JGandalf.cc
static parameter_type pY()
static parameter_type pDY()
counter_type advance(counter_type &counter, const counter_type value, const counter_type limit=std::numeric_limits< counter_type >::max())
Advance counter.
number of hits from JGandalf.cc
static parameter_type pX()
JPosition3D getPosition(const JFit &fit)
Get position.
JFIT::JMuonGandalfParameters_t parameters_
double getQuality(const double chi2, const int NDF)
Get quality of fit.
Data structure for set of track fit results.
Data structure for L0 hit.
Data structure for fit of straight line paralel to z-axis.
void copy(const Head &from, JHead &to)
Copy header from from to to.
JMuonGandalf()
Default constructor.
bool qualitySorter(const JFit &first, const JFit &second)
Comparison of fit results.
static bool compare(const JTRIGGER::JHitL0 &first, const JTRIGGER::JHitL0 &second)
Compare hits by PMT identifier and time.
JPosition3D & rotate(const JRotation3D &R)
Rotate.