Declaration of the operator that performs the reconstruction.
87 const double STANDARD_DEVIATIONS = 3.0;
107 copy(dataL1.begin(), dataL1.end(), back_inserter(dataL0));
110 for (buffer_type::const_iterator
i = buffer.begin();
i != buffer.end(); ++
i) {
111 if (find_if(dataL1.begin(), dataL1.end(), match_t(*
i,
TMaxExtra_ns)) == dataL1.end()) {
112 dataL0.push_back(*
i);
116 for (buffer_type::const_iterator
root = dataL1.begin();
root != dataL1.end(); ++
root) {
122 for (buffer_type::const_iterator
i = dataL0.begin();
i != dataL0.end(); ++
i) {
124 if((
root->getModuleIdentifier() !=
i->getModuleIdentifier() ) && matching(*
i)){
134 double chi2 = numeric_limits<double>::max();
135 int NDF =
distance(
data.begin(), __end1) - JEstimator_t::NUMBER_OF_PARAMETERS;
141 double ymin = numeric_limits<double>::max();
143 buffer_type::iterator __end2 = __end1;
146 JEstimator_t::NUMBER_OF_PARAMETERS; ++
n, --__end2) {
153 fit(
data.begin(), __end2);
161 NDF =
distance(
data.begin(), __end2) - JEstimator_t::NUMBER_OF_PARAMETERS;
169 ymin -= STANDARD_DEVIATIONS * STANDARD_DEVIATIONS;
174 const int number_of_outliers =
distance(
data.begin(), __end1) - JEstimator_t::NUMBER_OF_PARAMETERS - 1;
176 buffer_type::iterator __end2 = __end1;
178 for (
int n = 0; n <= number_of_outliers; ++
n) {
182 fit(
data.begin(), __end2);
185 NDF =
distance(
data.begin(), __end2) - JEstimator_t::NUMBER_OF_PARAMETERS;
192 buffer_type::iterator imax = __end2;
194 for (buffer_type::iterator
i =
data.begin() + 1;
i != __end2; ++
i) {
204 if (ymax > STANDARD_DEVIATIONS * STANDARD_DEVIATIONS) {
206 swap(*imax, *__end2);
220 size_t solutions = out.size();
222 for(
size_t i=0;
i < solutions;
i++){
227 if (
x != 0 || y != 0 ||
z != 0 || t != 0) {
int factoryLimit
factory limit for combinatorics
int numberOfOutliers
maximum number of outliers
size_t numberOfGrids
number of prefits to be used to build a grid around
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.
size_t getCount(const array_type< T > &buffer, const JCompare_t &compare)
Count number of unique values.
Data structure for vertex fit.
int time_grid_ns
edge [ns] of the time grid
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.
int pos_step_m
step in [m] of position grid
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.
do JPlot2D f $WORKDIR canberra[${EMITTER}\] root
bool qualitySorter(const JFit &first, const JFit &second)
Comparison of fit results.
static struct JTRIGGER::JHitR1::compare compare
static const int JSHOWERPREFIT
int time_step_ns
step in [ns] of time grid
const JModuleRouter & router
double ctMin
minimal cosine space angle between PMT axes
size_t numberOfL1
minimal number of L1
Data structure for L2 parameters.
then usage $script[energy[distance[z of PMT]]] fi case set_variable z
then usage $script< input file >[option[primary[working directory]]] nWhere option can be N
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
void copy(const Head &from, JHead &to)
Copy header from from to to.
double DMax_m
maximal distance to optical module [m]
JPosition3D getPosition(const JFit &fit)
Get position.
Data structure for position in three dimensions.
int pos_grid_m
edge [m] of the position grid
double getChi2(const double P)
Get chi2 corresponding to given probability.
Data structure for normalised vector in positive z-direction.
double TMaxExtra_ns
time window for extra coincidences [ns]
double TMaxLocal_ns
time window for local coincidences [ns]