Declaration of the operator that performs the reconstruction.
85 const double STANDARD_DEVIATIONS = 3.0;
104 copy(dataL1.begin(), dataL1.end(), back_inserter(dataL0));
106 for (buffer_type::const_iterator i = buffer.begin(); i != buffer.end(); ++i) {
108 if (find_if(dataL1.begin(), dataL1.end(), match_t(*i,
TMaxLocal_ns)) == dataL1.end()) {
109 dataL0.push_back(*i);
113 for (buffer_type::const_iterator
root = dataL1.begin();
root != dataL1.end(); ++
root) {
119 for (buffer_type::const_iterator i = dataL0.begin(); i != dataL0.end(); ++i) {
121 if((
root->getModuleIdentifier() != i->getModuleIdentifier() ) && matching(*i)){
126 buffer_type::iterator __end1 =
clusterizeWeight(data.begin() + 1, data.end(), match3G);
131 double chi2 = numeric_limits<double>::max();
132 int NDF =
distance(data.begin(), __end1) - JEstimator_t::NUMBER_OF_PARAMETERS;
137 double ymin = numeric_limits<double>::max();
139 buffer_type::iterator __end2 = __end1;
142 JEstimator_t::NUMBER_OF_PARAMETERS; ++
n, --__end2) {
149 fit(data.begin(), __end2);
157 NDF =
distance(data.begin(), __end2) - JEstimator_t::NUMBER_OF_PARAMETERS;
165 ymin -= STANDARD_DEVIATIONS * STANDARD_DEVIATIONS;
170 const int number_of_outliers =
distance(data.begin(), __end1) - JEstimator_t::NUMBER_OF_PARAMETERS - 1;
172 buffer_type::iterator __end2 = __end1;
174 for (
int n = 0; n <= number_of_outliers; ++
n) {
178 fit(data.begin(), __end2);
181 NDF =
distance(data.begin(), __end2) - JEstimator_t::NUMBER_OF_PARAMETERS;
188 buffer_type::iterator imax = __end2;
190 for (buffer_type::iterator i = data.begin() + 1; i != __end2; ++i) {
200 if (ymax > STANDARD_DEVIATIONS * STANDARD_DEVIATIONS) {
202 swap(*imax, *__end2);
209 if (NDF >= 0 && chi2 > numeric_limits<double>::lowest()) {
215 out.rbegin()->setW(13, chi2);
216 out.rbegin()->setW(14, N);
int factoryLimit
factory limit for combinatorics
int numberOfOutliers
maximum number of outliers
double sigma_ns
time resolution [ns]
JBinder2nd< JHit_t > JBind2nd(const JMatch< JHit_t > &match, const JHit_t &second)
Auxiliary method to create JBinder2nd object.
Linear fit of bright point (position and time) between hits (objects with position and time)...
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
Data structure for vertex fit.
then JShowerPostfit f $INPUT_FILE o $OUTPUT_FILE N
Auxiliary class to convert binary JMatch operator and given hit to unary match operator.
double getQuality(const double chi2, const int N, const int NDF)
Get quality of fit.
std::vector< hit_type > buffer_type
static const int JSHOWERPREFIT
const JModuleRouter & router
double ctMin
minimal cosine space angle between PMT axes
Data structure for L2 parameters.
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.
do JPlot2D f $WORKDIR detector root
int getCount(const T &hit)
Get hit count.
void copy(const Head &from, JHead &to)
Copy header from from to to.
double roadWidth_m
road width [m]
static struct JTRIGGER::JHitR1::@82 compare
Auxiliary data structure for sorting of hits.
static struct JTRIGGER::@78 clusterizeWeight
Anonymous struct for weighed clustering of hits.
double getChi2(const double P)
Get chi2 corresponding to given probability.
Data structure for normalised vector in positive z-direction.
double TMaxLocal_ns
time window for local coincidences [ns]