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
static struct JTRIGGER::clusterizeWeight clusterizeWeight
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
JFit getFit(const JHistory &history, const JTrack3D &track, const double Q, const int NDF, const double energy=0.0, const int status=SINGLE_STAGE)
Get fit.
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 struct JTRIGGER::JHitR1::compare compare
static const int JSHOWERPREFIT
const JModuleRouter & router
double ctMin
minimal cosine space angle between PMT axes
Data structure for L2 parameters.
do JPlot2D f $WORKDIR detector root
then if[[!-f $DETECTOR]] then JDetector sh $DETECTOR fi cat $WORKDIR trigger_parameters txt<< EOFtrigger3DMuon.enabled=1;trigger3DMuon.numberOfHits=5;trigger3DMuon.gridAngle_deg=1;ctMin=0.0;TMaxLocal_ns=15.0;EOF set_variable TRIGGEREFFICIENCY_TRIGGERED_EVENTS_ONLY INPUT_FILES=() for((i=1;$i<=$NUMBER_OF_RUNS;++i));do JSirene.sh $DETECTOR $JPP_DATA/genhen.km3net_wpd_V2_0.evt.gz $WORKDIR/sirene_ ${i}.root JTriggerEfficiency.sh $DETECTOR $DETECTOR $WORKDIR/sirene_ ${i}.root $WORKDIR/trigger_efficiency_ ${i}.root $WORKDIR/trigger_parameters.txt $JPP_DATA/PMT_parameters.txt INPUT_FILES+=($WORKDIR/trigger_efficiency_ ${i}.root) done for ANGLE_DEG in $ANGLES_DEG[*];do set_variable SIGMA_NS 3.0 set_variable OUTLIERS 3 set_variable OUTPUT_FILE $WORKDIR/matrix\[${ANGLE_DEG}\deg\].root $JPP_DIR/examples/JReconstruction-f"$INPUT_FILES[*]"-o $OUTPUT_FILE-S ${SIGMA_NS}-A ${ANGLE_DEG}-O ${OUTLIERS}-d ${DEBUG}--!fiif[[$OPTION=="plot"]];then if((0));then for H1 in h0 h1;do JPlot1D-f"$WORKDIR/matrix["${^ANGLES_DEG}" deg].root:${H1}"-y"1 2e3"-Y-L TR-T""-\^"number of events [a.u.]"-> o chi2
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]
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]