Go to the documentation of this file.    1 #ifndef JMUONSIMPLEX_INCLUDE 
    2 #define JMUONSIMPLEX_INCLUDE 
  102   if ( InPreFits.empty() ) 
return;
 
  122   JRegressor_t fit(sigma_ns);
 
  127   JRegressor_t::MAXIMUM_ITERATIONS = 10000;
 
  129   const double TMAX_NS = 50.0; 
 
  131   JEvt::iterator __end = InPreFits.end(); 
 
  137   if (InPreFits.begin() != __end) {
 
  139     std::copy(InPreFits.begin(), __end, std::back_inserter(OutFits));
 
  141     if (numberOfPrefits > 0) {
 
  142       std::advance(__end = InPreFits.begin(), std::min(numberOfPrefits, OutFits.size()));
 
  145     std::partial_sort(InPreFits.begin(), __end, InPreFits.end(), 
qualitySorter);
 
  147     __end = std::partition( InPreFits.begin(), __end, 
 
  154     for (KM3NETDAQ::JDAQTimeslice::const_iterator i = timeSlice.begin(); 
 
  155          i != timeSlice.end(); ++i) {
 
  161         buildL0(buffer, std::back_inserter(dataL0));
 
  162         buildL2(buffer, std::back_inserter(dataL1));
 
  168     for (JFIT::JEvt::const_iterator track = InPreFits.begin(); track != __end; ++track) {
 
  176       for (JDataL1_t::const_iterator i = dataL1.begin(); i != dataL1.end(); ++i) {
 
  189         data.reserve(data.size() + dataL0.size());
 
  191         JDataR1_t::iterator __end1 = data.end();
 
  193         for (JDataL0_t::iterator i = dataL0.begin(); i != dataL0.end(); ++i) {
 
  195           if ( std::find_if( data.begin(), __end1, 
 
  196                              std::bind2nd(std::equal_to<KM3NETDAQ::JDAQModuleIdentifier>(), i->getModuleID())) 
 
  218       const int NDF = 
JFIT::getCount(data.begin(), data.end()) - fit.step.size();
 
  222         const double chi2 = fit( 
JFIT::JLine3Z(tz), data.begin(), data.end() );
 
  226         track3D.rotate_back(R);
 
  228         const double energy(0);
 
 
JFIT::JMuonSimplexParameters_t parameters_
 
Auxiliary classes and methods for linear and iterative data regression.
 
Data structure for fit of straight line in positive z-direction.
 
Data structure for L2 parameters.
 
counter_type advance(counter_type &counter, const counter_type value, const counter_type limit=std::numeric_limits< counter_type >::max())
Advance counter.
 
Data structure for normalised vector in positive z-direction.
 
const JModule & getModule(const JObjectID &id) const
Get module parameters.
 
Data structure for set of track fit results.
 
void copy(const Head &from, JHead &to)
Copy header from from to to.
 
JPosition3D & rotate(const JRotation3D &R)
Rotate.
 
Auxiliary class to match data points with given model.
 
Data structure for vector in three dimensions.
 
bool qualitySorter(const JFit &first, const JFit &second)
Comparison of fit results.
 
Template definition of a data regressor of given model.
 
Auxiliary class to test history.
 
Data structure for fit of straight line paralel to z-axis.
 
Auxiliary class to test history.
 
Reduced data structure for L1 hit.
 
bool hasModule(const JObjectID &id) const
Has module.
 
class to handle the Simplex angular reconstruction.
 
void getJEvt(const KM3NETDAQ::JDAQTimeslice &timeSlice, JFIT::JEvt &InPreFits, JFIT::JEvt &OutFits) const
Declaration of Member function that actually performs the reconstruction.
 
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.
 
Container for historical events.
 
2-dimensional frame with time calibrated data from one optical module.
 
double getQuality(const double chi2, const int NDF)
Get quality of fit.
 
JLANG::JSharedPointer< const JDETECTOR::JModuleRouter > router_
 
JPosition3D getPosition(const JFit &fit)
Get position.
 
JMuonSimplex(const JLANG::JSharedPointer< const JDETECTOR::JModuleRouter > &router, const JFIT::JMuonSimplexParameters_t ¶meters)
Parameterized constructor.
 
JMuonSimplex()
Default constructor.
 
JDirection3D getDirection(const JFit &fit)
Get direction.
 
int getCount(const JHitL0 &hit)
Get hit count.