Declaration of Member function that actually performs the reconstruction. 
  144   const int    FACTORY_LIMIT             = 40;
 
  145   const double STANDARD_DEVIATIONS       = 1.0;
 
  146   const int    NUMBER_OF_L1HITS          = (useL0 ? 1 : 4);
 
  158   JDataL0_t dataL0_selected;
 
  161   buildL0(timeSliceBuildL0,  *
moduleRouter_, back_inserter(dataL0));
 
  162   buildL2(timeSliceBuildL1, *
moduleRouter_, back_inserter(data));
 
  164   JDataL1_t::iterator __end = 
clusterizeWeight(data.begin(), data.end(), match3G);
 
  169     std::copy(data.begin(), data.end(), std::back_inserter(dataL1));
 
  170     JDataL1_t::iterator __end1 = dataL1.end();
 
  176       dataL1.erase(__end1, dataL1.end()); 
 
  177       dataL1.reserve(dataL1.size() + dataL0.size());
 
  178       __end1 = dataL1.end();
 
  180       for (JDataL0_t::const_iterator i = dataL0.begin(); i != dataL0.end(); ++i) {
 
  184         if (std::count_if(dataL1.begin(), __end1, 
JTRIGGER::JBind2nd(match3G,hit)) >= NUMBER_OF_L1HITS){
 
  185           dataL1.push_back(hit);            
 
  189       std::sort(__end1, dataL1.end(), compare);
 
  190       __end1 = 
clusterize(__end1, dataL1.end(), match3G);
 
  197     double   chi2 = std::numeric_limits<double>::max();
 
  203       double ymin = std::numeric_limits<double>::max();
 
  205       JDataL1_t::iterator __end2 = __end1;
 
  207       for (
int n = 0; 
n <= numberOfOutliers && 
std::distance(dataL1.begin(), __end2) > 
 
  210         std::sort(dataL1.begin(), __end1, compare);
 
  215             fit(dataL1.begin(), __end2);
 
  216             double y = 
JFIT::getChi2(fit, dataL1.begin(), __end2, sigma_ns);
 
  219               std::cout << 
"chi2(1) " << y << std::endl; 
 
  220             } 
else if (y < ymin) {
 
  232         ymin -= STANDARD_DEVIATIONS * STANDARD_DEVIATIONS;
 
  238         fit(dataL1.begin(), __end1);
 
  239         NDF  = 
std::distance(dataL1.begin(), __end1) - JEstimator<JFIT::JPoint4D>::NUMBER_OF_PARAMETERS;
 
  257               dataL0_selected.clear();
 
  262               for (JDataL0_t::const_iterator i = dataL0.begin(); i != dataL0.end(); ++i) {       
 
  264                 const JHitL0 hit(*i);
 
  267                   dataL0_selected.push_back(hit);
 
  271               double simplex_step = 2;  
 
  272               fit2_->step.resize(4);
 
  278               chi2 = (*fit2_)(point_shifted, dataL0_selected.begin(), dataL0_selected.end());
 
  283               const double energy(0);
 
  285                                                       fitResult, 
getQuality(chi2, (useL0 ? N : NDF)),
 
  288               OutFits.push_back(outFit);
 
  289               OutFits.rbegin()->setW(13, chi2);
 
  290               OutFits.rbegin()->setW(14, NDF);
 
  299     std::cout<<
"Too few hits " << std::endl;