1 #ifndef __JRECONSTRUCTION__JMUONGANDALF__
2 #define __JRECONSTRUCTION__JMUONGANDALF__
48 namespace JRECONSTRUCTION {}
49 namespace JPP {
using namespace JRECONSTRUCTION; }
51 namespace JRECONSTRUCTION {
80 using JRegressor_t::operator();
95 const int debug = 0) :
101 using namespace JFIT;
112 this->parameters.resize(5);
132 using namespace JFIT;
133 using namespace JTRIGGER;
139 buildL0(event,
router,
true, back_inserter(dataL0));
141 return (*
this)(dataL0,
in);
155 using namespace JFIT;
156 using namespace JGEOMETRY3D;
160 for (JEvt::const_iterator track = in.begin(); track != in.end(); ++track) {
177 for (buffer_type::const_iterator
i = data.begin();
i != data.end(); ++
i) {
184 buffer.push_back(hit);
201 if (track->getE() > 0.1)
206 const double chi2 = (*this)(
JLine3Z(tz), buffer.begin(), __end);
216 out.rbegin()->setV(this->
V.size(), this->
V);
218 out.rbegin()->setW(track->getW());
219 out.rbegin()->setW(
JGANDALF_BETA0_RAD, sqrt(this->error.getDX() * this->error.getDX() +
220 this->error.getDY() * this->error.getDY()));
221 out.rbegin()->setW(
JGANDALF_BETA1_RAD, sqrt(this->error.getDX() * this->error.getDY()));
static int debug
debug level (default is off).
Data regression method for JFIT::JLine3Z.
Template definition of a data regressor of given model.
double ZMin_m
minimal z-positon [m]
double TTS_ns
transition-time spread [ns]
const JModuleRouter & router
double getQuality(const double chi2, const int NDF)
Get quality of fit.
double TMin_ns
minimal time w.r.t. Cherenkov hypothesis [ns]
double ZMax_m
maximal z-positon [m]
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
double roadWidth_m
road width [m]
Router for direct addressing of module data in detector data structure.
double getRate() const
Get default rate.
static const int JGANDALF_BETA1_RAD
angular resolution [rad] from JGandalf.cc
JMuonGandalf(const JMuonGandalfParameters_t ¶meters, const JModuleRouter &router, const JSummaryRouter &summary, const std::string &pdf_file, const int debug=0)
Constructor.
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
Template specialisation of class JModel to match hit with muon trajectory along z-axis.
Data structure for fit of straight line in positive z-direction.
JRegressor< JLine3Z, JGandalf > JRegressor_t
static parameter_type pT()
double VMax_npe
maximum number of of photo-electrons
V(JDAQEvent-JTriggerReprocessor)*1.0/(JDAQEvent+1.0e-10)
JTRIGGER::JHitL0 hit_type
Wrapper class to make final fit of muon trajectory.
static struct JTRIGGER::JHitL0::compare compare
std::vector< hit_type > buffer_type
const JSummaryRouter & summary
static JTimeRange T_ns
Time window with respect to Cherenkov hypothesis [ns].
Basic data structure for L0 hit.
static const int JGANDALF_NUMBER_OF_HITS
number of hits from JGandalf.cc
static parameter_type pDX()
static const int JGANDALF_LAMBDA
control parameter from JGandalf.cc
JAxis3D & rotate(const JRotation3D &R)
Rotate axis.
JDirection3D getDirection(const Vec &dir)
Get direction.
double TMax_ns
maximal time w.r.t. Cherenkov hypothesis [ns]
static const int JMUONGANDALF
double E_GeV
Energy of muon at vertex [GeV].
JPosition3D getPosition(const Vec &pos)
Get position.
static const int JGANDALF_BETA0_RAD
KM3NeT Data Definitions v3.2.0-2-gaaf0dd0 https://git.km3net.de/common/km3net-dataformat.
Router for fast addressing of summary data in KM3NETDAQ::JDAQSummaryslice data structure as a functio...
static parameter_type pY()
Data structure for fit parameters.
General purpose messaging.
static parameter_type pDY()
Direct access to module in detector data structure.
Fit method based on the Levenberg-Marquardt method.
static parameter_type pX()
then JCookie sh JDataQuality D $DETECTOR_ID R
Auxiliary class for a hit with background rate value.
static const int JSTART_LENGTH_METRES
distance between first and last hits in metres from JStart.cc
Data structure for set of track fit results.
JFit getFit(const int id, const JMODEL::JString &string)
Get fit parameters of string.
int NMax
maximum number of iterations
Regressor function object for JLine3Z fit using JGandalf minimiser.
Auxiliary class to define a range between two values.
static double Vmax_npe
Maximal integral of PDF [npe].
Data structure for L0 hit.
JEvt operator()(const buffer_type &data, const JEvt &in)
Fit function.
static const int JGANDALF_NUMBER_OF_ITERATIONS
number of iterations from JGandalf.cc
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
Data structure for fit of straight line paralel to z-axis.
static int MAXIMUM_ITERATIONS
maximal number of iterations
static const int JGANDALF_CHI2
chi2 from JGandalf.cc
JEvt operator()(const KM3NETDAQ::JDAQEvent &event, const JEvt &in)
Fit function.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
JPosition3D & rotate(const JRotation3D &R)
Rotate.
JTOOLS::JRange< double > JZRange