Jpp  test_elongated_shower_pde
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Public Attributes | Private Types | List of all members
JRECONSTRUCTION::JShowerDirectionPrefit Class Reference

class to handle the direction fit of the shower reconstruction, mainly dedicated for ORCA More...

#include <JShowerDirectionPrefit.hh>

Inheritance diagram for JRECONSTRUCTION::JShowerDirectionPrefit:
JRECONSTRUCTION::JShowerDirectionPrefitParameters_t JFIT::JRegressor< JModel_t, JMinimiser_t > TObject

Public Member Functions

 JShowerDirectionPrefit (const JShowerDirectionPrefitParameters_t &parameters, const JModuleRouter &router, const JSummaryRouter &summary, const std::string pdfFile, const int debug=0)
 Parameterized constructor. More...
 
JEvt operator() (const KM3NETDAQ::JDAQEvent &event, const JFIT::JEvt &in)
 Declaration of the member function that actually performs the reconstruction. More...
 
void reset ()
 Reset fit parameters. More...
 
bool equals (const JShowerDirectionPrefitParameters_t &parameters) const
 Equality. More...
 
 ClassDef (JShowerDirectionPrefitParameters_t, 1)
 

Public Attributes

const JModuleRouterrouter
 
const JSummaryRoutersummary
 
size_t numberOfPrefits
 number of prefits More...
 
size_t numberOfOutfits
 number of fits to be saved in output More...
 
double TMax_ns
 maximum time for local coincidences [ns] More...
 
double TMin_ns
 minimum time for local coincidences [ns] More...
 
double roadWidth_m
 road width [m] More...
 
double ctMin
 minimal cosine space angle between PMT axes More...
 
double DMin_m
 radius of the hit selection for high energy events (used to speedup the code) More...
 
double E_GeV
 energy [GeV] More...
 
double R_Hz
 default rate [Hz] More...
 
int mestimator
 M-estimator. More...
 
double VMax_npe
 maximum number of of photo-electrons More...
 
int NMax
 maximum number of iterations More...
 
double MaxAngle_deg_lowE
 maximum scanning angle in [deg] for low energy events More...
 
double scanAngle_deg_lowE
 scanning angle step in [deg] for low energy events More...
 
double MaxAngle_deg_highE
 maximum scanning angle in [deg] for high energy events More...
 
double scanAngle_deg_highE
 scanning angle step in [deg] for high energy events More...
 

Private Types

typedef JRegressor< JShower3EZ,
JGandalf
JRegressor_t
 

Detailed Description

class to handle the direction fit of the shower reconstruction, mainly dedicated for ORCA

Definition at line 71 of file JShowerDirectionPrefit.hh.

Member Typedef Documentation

Definition at line 76 of file JShowerDirectionPrefit.hh.

Constructor & Destructor Documentation

JRECONSTRUCTION::JShowerDirectionPrefit::JShowerDirectionPrefit ( const JShowerDirectionPrefitParameters_t parameters,
const JModuleRouter router,
const JSummaryRouter summary,
const std::string  pdfFile,
const int  debug = 0 
)
inline

Parameterized constructor.

Parameters
parametersstruct that holds default-optimized parameters for the reconstruction, available in $JPP_DATA.
routermodule router, this is built via detector file.
summarysummary router
pdfFilePDF file
debugdebug

Definition at line 90 of file JShowerDirectionPrefit.hh.

94  :
96  JRegressor_t(pdfFile),
97  router(router),
98  summary(summary)
99  {
100  using namespace JPP;
101 
103  JRegressor_t::T_ns.setRange(parameters.TMin_ns, parameters.TMax_ns);
106 
107  this->parameters.resize(2);
108 
109  this->parameters[0] = JShower3EZ::pDX();
110  this->parameters[1] = JShower3EZ::pDY();
111 
112  this->estimator.reset(getMEstimator(parameters.mestimator));
113  }
static int debug
debug level (default is off).
Definition: JMessage.hh:45
double TMax_ns
maximum time for local coincidences [ns]
static parameter_type pDX()
Definition: JShower3Z.hh:171
JRegressor< JShower3EZ, JGandalf > JRegressor_t
static parameter_type pDY()
Definition: JShower3Z.hh:172
static double Vmax_npe
Maximal integral of PDF [npe].
static JTimeRange T_ns
Time window with respect to Cherenkov hypothesis [ns].
static int MAXIMUM_ITERATIONS
maximal number of iterations
Definition: JGandalf.hh:280
JMEstimator * getMEstimator(const int type)
Get M-Estimator.
Definition: JMEstimator.hh:166
double TMin_ns
minimum time for local coincidences [ns]

Member Function Documentation

JEvt JRECONSTRUCTION::JShowerDirectionPrefit::operator() ( const KM3NETDAQ::JDAQEvent event,
const JFIT::JEvt in 
)
inline

Declaration of the member function that actually performs the reconstruction.

Parameters
event= JDAQEvent
in= input fits

Definition at line 121 of file JShowerDirectionPrefit.hh.

122  {
123  using namespace std;
124  using namespace JPP;
125 
126  typedef vector<JHitL0> JDataL0_t;
127  JBuildL0<JHitL0> buildL0;
128 
129  JEvt out;
130 
132 
133  JDataL0_t dataL0;
134  buildL0(JDAQTimeslice(event, true), router, back_inserter(dataL0));
135 
136  for (JEvt::const_iterator shower = in.begin(); shower != in.end(); ++shower) {
137 
138  JShower3E sh(getPosition(*shower), getDirection(*shower), shower->getT(), shower->getE());
139 
141 
142  double distance = roadWidth_m;
143  double max_angle = MaxAngle_deg_lowE;
144  double scan_angle = scanAngle_deg_lowE;
145 
146  if(sh.getE() > E_GeV) {
147  distance = DMin_m; // to speed up the code
148  max_angle = MaxAngle_deg_highE;
149  scan_angle = scanAngle_deg_highE;
150  }
151 
152  const JFIT::JModel<JPoint4D> match(JPoint4D(sh.getPosition(), sh.getT()), distance, JRegressor_t::T_ns);
153 
154  JVector3D start_dir(0,0,0);
155 
156  for (JDataL0_t::const_iterator i = dataL0.begin(); i != dataL0.end(); ++i) {
157 
158  if (match(*i)) {
159 
160  top.insert(i->getPMTIdentifier());
161 
162  start_dir.add(JDirection3D(i->getPosition() - sh.getPosition()));
163 
164  }
165  }
166 
167  sh.setDirection(JDirection3D(start_dir));
168 
169  JDetectorSubset_t subdetector(detector, sh.getPosition(), distance);
170 
171  JOmega3D scan_directions(sh.getDirection(),
172  JOmega3D::range_type(0, max_angle * PI/180.0),
173  scan_angle * PI/180.0);
174 
175  for (JOmega3D_t::const_iterator dir = scan_directions.begin(); dir != scan_directions.end(); ++dir) {
176 
177  const JDirection3D conversion(*dir);
178  const JRotation3D R(conversion);
179 
180  vector<JPMTW0> buffer;
181 
182  for (JDetectorSubset_t::iterator module = subdetector.begin();
183  module != subdetector.end(); ++module) {
184 
185  JModule dom(*module);
186  dom.rotate(R);
187 
188  for (unsigned int i = 0; i != dom.size(); ++i) {
189 
190  const JDAQPMTIdentifier id(dom.getID(), i);
191 
192  const double rate_Hz = summary.getRate(id);
193 
194  buffer.push_back(JPMTW0(dom.getPMT(i), rate_Hz, top.count(id)));
195  }
196  }
197 
198  double chi2 = (*this)(JShower3EZ(JVertex3D(JVector3D(0,0,0), sh.getT()), JVersor3Z(),
199  JEnergy(log10(sh.getE()))), buffer.begin(), buffer.end());
200 
201  double NDF = getCount(buffer.begin(), buffer.end()) - this->parameters.size();
202 
203  JShower3E sh_fit(this->value.getPosition(), this->value.getDirection(),
204  this->value.getT(), this->value.getE());
205 
206  sh_fit.rotate_back(R);
207 
208  sh_fit.add(sh.getPosition());
209 
210  out.push_back(getFit(JHistory(shower->getHistory()).add(JSHOWERDIRECTIONPREFIT), sh_fit, getQuality(chi2),
211  NDF, sh_fit.getE()));
212 
213  }
214  }
215 
216  return out;
217 
218  }
Data structure for direction in three dimensions.
Definition: JDirection3D.hh:33
Data structure for a composite optical module.
Definition: JModule.hh:68
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
Template specialisation of L0 builder for JHitL0 data type.
Definition: JBuildL0.hh:102
Auxiliary class for handling PMT geometry, rate and response.
Definition: JPMTW0.hh:22
Data structure for vertex fit.
Definition: JPoint4D.hh:22
Detector data structure.
Definition: JDetector.hh:89
Rotation matrix.
Definition: JRotation3D.hh:111
double getRate() const
Get default rate.
*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
Definition: diff-Tuna.sh:38
Direction set covering (part of) solid angle.
Definition: JOmega3D.hh:66
double MaxAngle_deg_lowE
maximum scanning angle in [deg] for low energy events
std::pair< double, double > range_type
Definition: JOmega3D.hh:32
3D track with energy.
Definition: JTrack3E.hh:30
double getQuality(const double chi2, const int N, const int NDF)
Get quality of fit.
double scanAngle_deg_highE
scanning angle step in [deg] for high energy events
double scanAngle_deg_lowE
scanning angle step in [deg] for low energy events
double DMin_m
radius of the hit selection for high energy events (used to speedup the code)
Data structure for fit of straight line in positive z-direction with energy.
Definition: JShower3EZ.hh:28
Detector file.
Definition: JHead.hh:224
Data structure for vector in three dimensions.
Definition: JVector3D.hh:34
Acoustic event fit.
double MaxAngle_deg_highE
maximum scanning angle in [deg] for high energy events
set_variable E_E log10(E_{fit}/E_{#mu})"
static const int JSHOWERDIRECTIONPREFIT
JDirection3D getDirection(const JFit &fit)
Get direction.
Data time slice.
JAxis3D & rotate_back(const JRotation3D &R)
Rotate back axis.
Definition: JAxis3D.hh:240
static const double PI
Mathematical constants.
then usage $script[distance] fi case set_variable R
Definition: JDrawLED.sh:43
Detector subset without binary search functionality.
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.
JFIT::JHistory JHistory
Definition: JHistory.hh:301
const JClass_t & getReference() const
Get reference to object.
Definition: JReference.hh:38
int getCount(const T &hit)
Get hit count.
Data structure for fit of energy.
Definition: JEnergy.hh:28
JPosition3D getPosition(const JFit &fit)
Get position.
static JTimeRange T_ns
Time window with respect to Cherenkov hypothesis [ns].
Template specialisation of class JModel to match hit with bright point.
Definition: JFit/JModel.hh:121
Data structure for normalised vector in positive z-direction.
Definition: JVersor3Z.hh:39
JVector3D & add(const JVector3D &vector)
Add vector.
Definition: JVector3D.hh:142
void JRECONSTRUCTION::JShowerDirectionPrefitParameters_t::reset ( )
inlineinherited

Reset fit parameters.

Definition at line 35 of file JShowerDirectionPrefitParameters_t.hh.

36  {
37  numberOfPrefits = 0;
38  numberOfOutfits = 4;
39  TMax_ns = 30;
40  TMin_ns = -30;
41  roadWidth_m = 80;
42  DMin_m = 80;
43  E_GeV = 13;
44  MaxAngle_deg_lowE = 40;
45  scanAngle_deg_lowE = 10;
46  MaxAngle_deg_highE = 20;
48  R_Hz = 10.0e3;
50  VMax_npe = 20.0;
51  NMax = 1000;
52  }
double TMax_ns
maximum time for local coincidences [ns]
double MaxAngle_deg_lowE
maximum scanning angle in [deg] for low energy events
double scanAngle_deg_highE
scanning angle step in [deg] for high energy events
double scanAngle_deg_lowE
scanning angle step in [deg] for low energy events
double DMin_m
radius of the hit selection for high energy events (used to speedup the code)
double MaxAngle_deg_highE
maximum scanning angle in [deg] for high energy events
double TMin_ns
minimum time for local coincidences [ns]
bool JRECONSTRUCTION::JShowerDirectionPrefitParameters_t::equals ( const JShowerDirectionPrefitParameters_t parameters) const
inlineinherited

Equality.

Parameters
parametersfit parameters
Returns
true if equals; else false

Definition at line 60 of file JShowerDirectionPrefitParameters_t.hh.

61  {
62  return (this->TMax_ns == parameters.TMax_ns &&
63  this->TMin_ns == parameters.TMin_ns &&
64  this->numberOfPrefits == parameters.numberOfPrefits &&
65  this->numberOfOutfits == parameters.numberOfOutfits &&
66  this->roadWidth_m == parameters.roadWidth_m &&
67  this->DMin_m == parameters.DMin_m &&
68  this->E_GeV == parameters.E_GeV &&
69  this->R_Hz == parameters.R_Hz &&
70  this->mestimator == parameters.mestimator &&
71  this->MaxAngle_deg_lowE == parameters.MaxAngle_deg_lowE &&
72  this->scanAngle_deg_lowE == parameters.scanAngle_deg_lowE &&
73  this->MaxAngle_deg_highE == parameters.MaxAngle_deg_highE &&
74  this->scanAngle_deg_highE == parameters.scanAngle_deg_highE &&
75  this->VMax_npe == parameters.VMax_npe &&
76  this->NMax == parameters.NMax);
77  }
double TMax_ns
maximum time for local coincidences [ns]
*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
Definition: diff-Tuna.sh:38
then usage $script< detector file >< detectorfile > nIf the range of floors is the first detector file is aligned to the second before the comparison nIn this
JRECONSTRUCTION::JShowerDirectionPrefitParameters_t::ClassDef ( JShowerDirectionPrefitParameters_t  ,
 
)
inherited

Member Data Documentation

const JModuleRouter& JRECONSTRUCTION::JShowerDirectionPrefit::router

Definition at line 220 of file JShowerDirectionPrefit.hh.

const JSummaryRouter& JRECONSTRUCTION::JShowerDirectionPrefit::summary

Definition at line 221 of file JShowerDirectionPrefit.hh.

size_t JRECONSTRUCTION::JShowerDirectionPrefitParameters_t::numberOfPrefits
inherited

number of prefits

Definition at line 81 of file JShowerDirectionPrefitParameters_t.hh.

size_t JRECONSTRUCTION::JShowerDirectionPrefitParameters_t::numberOfOutfits
inherited

number of fits to be saved in output

Definition at line 82 of file JShowerDirectionPrefitParameters_t.hh.

double JRECONSTRUCTION::JShowerDirectionPrefitParameters_t::TMax_ns
inherited

maximum time for local coincidences [ns]

Definition at line 83 of file JShowerDirectionPrefitParameters_t.hh.

double JRECONSTRUCTION::JShowerDirectionPrefitParameters_t::TMin_ns
inherited

minimum time for local coincidences [ns]

Definition at line 84 of file JShowerDirectionPrefitParameters_t.hh.

double JRECONSTRUCTION::JShowerDirectionPrefitParameters_t::roadWidth_m
inherited

road width [m]

Definition at line 85 of file JShowerDirectionPrefitParameters_t.hh.

double JRECONSTRUCTION::JShowerDirectionPrefitParameters_t::ctMin
inherited

minimal cosine space angle between PMT axes

Definition at line 86 of file JShowerDirectionPrefitParameters_t.hh.

double JRECONSTRUCTION::JShowerDirectionPrefitParameters_t::DMin_m
inherited

radius of the hit selection for high energy events (used to speedup the code)

Definition at line 87 of file JShowerDirectionPrefitParameters_t.hh.

double JRECONSTRUCTION::JShowerDirectionPrefitParameters_t::E_GeV
inherited

energy [GeV]

Definition at line 88 of file JShowerDirectionPrefitParameters_t.hh.

double JRECONSTRUCTION::JShowerDirectionPrefitParameters_t::R_Hz
inherited

default rate [Hz]

Definition at line 89 of file JShowerDirectionPrefitParameters_t.hh.

int JRECONSTRUCTION::JShowerDirectionPrefitParameters_t::mestimator
inherited

M-estimator.

Definition at line 90 of file JShowerDirectionPrefitParameters_t.hh.

double JRECONSTRUCTION::JShowerDirectionPrefitParameters_t::VMax_npe
inherited

maximum number of of photo-electrons

Definition at line 91 of file JShowerDirectionPrefitParameters_t.hh.

int JRECONSTRUCTION::JShowerDirectionPrefitParameters_t::NMax
inherited

maximum number of iterations

Definition at line 92 of file JShowerDirectionPrefitParameters_t.hh.

double JRECONSTRUCTION::JShowerDirectionPrefitParameters_t::MaxAngle_deg_lowE
inherited

maximum scanning angle in [deg] for low energy events

Definition at line 93 of file JShowerDirectionPrefitParameters_t.hh.

double JRECONSTRUCTION::JShowerDirectionPrefitParameters_t::scanAngle_deg_lowE
inherited

scanning angle step in [deg] for low energy events

Definition at line 94 of file JShowerDirectionPrefitParameters_t.hh.

double JRECONSTRUCTION::JShowerDirectionPrefitParameters_t::MaxAngle_deg_highE
inherited

maximum scanning angle in [deg] for high energy events

Definition at line 95 of file JShowerDirectionPrefitParameters_t.hh.

double JRECONSTRUCTION::JShowerDirectionPrefitParameters_t::scanAngle_deg_highE
inherited

scanning angle step in [deg] for high energy events

Definition at line 96 of file JShowerDirectionPrefitParameters_t.hh.


The documentation for this class was generated from the following file: