Jpp 21.0.0-rc.3
the software that should make you happy
Loading...
Searching...
No Matches
JRECONSTRUCTION::JShowerBjorkenY Class Reference

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

#include <JShowerBjorkenY.hh>

Inheritance diagram for JRECONSTRUCTION::JShowerBjorkenY:
JRECONSTRUCTION::JShowerBjorkenYParameters_t JFIT::JRegressor< JModel_t, JMinimiser_t > TObject

Public Member Functions

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

Static Public Member Functions

static double getFinalBjY (double E_em, double E_h)
 

Public Attributes

const JModuleRouterrouter
 
const JSummaryRoutersummary
 
const JEnergyCorrectioncorrect
 
size_t numberOfPrefits
 number of prefits

 
double TMax_ns
 maximum time for local coincidences [ns]

 
double TMin_ns
 minimum time for local coincidences [ns]

 
double roadWidth_m
 road width [m]

 
double R_Hz
 default rate [Hz]

 
int mestimator
 M-estimator (see JFIT::JMEstimator_t)
 
double fit_step
 simplex initial step

 
double VMax_npe
 maximum number of of photo-electrons

 
int NMax
 maximum number of iterations

 

Private Types

typedef JRegressor< JShowerEH, JSimplexJRegressor_t
 

Detailed Description

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

Definition at line 71 of file JShowerBjorkenY.hh.

Member Typedef Documentation

◆ JRegressor_t

Constructor & Destructor Documentation

◆ JShowerBjorkenY()

JRECONSTRUCTION::JShowerBjorkenY::JShowerBjorkenY ( const JShowerBjorkenYParameters_t & parameters,
const JModuleRouter & router,
const JSummaryRouter & summary,
const std::string pdfFile,
const JEnergyCorrection & correct,
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
correctenergy correction
debugdebug

Definition at line 91 of file JShowerBjorkenY.hh.

96 :
98 JRegressor_t(pdfFile),
102 {
103 using namespace JPP;
104
105 JRegressor_t::debug = debug;
106 JRegressor_t::T_ns.setRange(parameters.TMin_ns, parameters.TMax_ns);
107 JRegressor_t::Vmax_npe = VMax_npe;
108 JRegressor_t::MAXIMUM_ITERATIONS = NMax;
109
110 this->estimator.reset(getMEstimator(parameters.mestimator));
111 }
int debug
debug level
Definition JSirene.cc:74
const JEnergyCorrection & correct
JRegressor< JShowerEH, JSimplex > JRegressor_t
JMEstimator * getMEstimator(const int type)
Get M-Estimator.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
double TMax_ns
maximum time for local coincidences [ns]
double VMax_npe
maximum number of of photo-electrons
int mestimator
M-estimator (see JFIT::JMEstimator_t)
double TMin_ns
minimum time for local coincidences [ns]

Member Function Documentation

◆ operator()()

JEvt JRECONSTRUCTION::JShowerBjorkenY::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 119 of file JShowerBjorkenY.hh.

120 {
121 using namespace std;
122 using namespace JPP;
123
124 typedef vector<JHitL0> JDataL0_t;
125 JBuildL0<JHitL0> buildL0;
126
127 JEvt out;
128
130
131 JDataL0_t dataL0;
132
133 buildL0(JDAQTimeslice(event, true), router, back_inserter(dataL0));
134
135 for (JEvt::const_iterator shower = in.begin(); shower != in.end(); ++shower) {
136
137 JShower3EY sh(getShower(*shower), 0.0);
138
140
141 const JModel<JPoint4D> match(JPoint4D(sh.getPosition(), sh.getT()), roadWidth_m, JRegressor_t::T_ns);
142
143 for (JDataL0_t::const_iterator i = dataL0.begin(); i != dataL0.end(); ++i) {
144
145 if (match(*i)) {
146 top.insert(i->getPMTIdentifier());
147 }
148 }
149
150 JDetectorSubset_t subdetector(detector, sh.getPosition(), roadWidth_m);
151
152 const JDirection3D conversion(sh.getDirection());
153 const JRotation3D R(conversion);
154
155 vector<JPMTW0> buffer;
156
157 for (JDetectorSubset_t::iterator module = subdetector.begin();
158 module != subdetector.end(); ++module) {
159
160 const JDAQSummaryFrame& frame = summary.getSummaryFrame(module->getID(), R_Hz);
161
162 JModule dom(*module);
163
164 dom.rotate(R);
165
166 for (unsigned int i = 0; i != dom.size(); ++i) {
167
168 if (getDAQStatus(frame, *module, i) &&
169 getPMTStatus(frame, *module, i) &&
170 frame[i].is_valid() &&
171 !module->getPMT(i).has(PMT_DISABLE)) {
172
173 const JDAQPMTIdentifier id(module->getID(), i);
174
175 const double QE = 1.0;
176 const double rate_Hz = summary.getRate(id, this->R_Hz);
177 const size_t count = top.count(id);
178
179 buffer.push_back(JPMTW0(dom.getPMT(i), QE, rate_Hz, count));
180 }
181 }
182 }
183
184 this->step.resize(2);
185 this->step[0] = JShowerEH(JPoint4D(JVector3D(), 0.0), JVersor3Z(), fit_step, 0.0, 0.0);
186 this->step[1] = JShowerEH(JPoint4D(JVector3D(), 0.0), JVersor3Z(), 0.0, fit_step, 0.0);
187
188 double f_h = 1 - 0.681 * (std::pow(shower->getE()/0.863, -0.207));
189
190 double chi2 = (*this)(JShowerEH(JVertex3D(JVector3D(0,0,0), sh.getT()),
191 JVersor3Z(),
192 log10(sh.getE()),
193 log10(f_h*sh.getE()),
194 sh.getBjY()),
195 buffer.begin(), buffer.end());
196
197 double NDF = getCount(buffer.begin(), buffer.end()) - this->step.size();
198
199 JShower3EY result(JShower3E(JShower3D(this->value.getVertex(),
200 this->value.getDirection()),
201 correct(this->value.getEem() + this->value.getEh())),
202 this->value.getBy());
203
204 double y = getFinalBjY(this->value.getEem(), this->value.getEh());
205
206 result.rotate_back(R);
207
208 result.add(sh.getPosition());
209
210 out.push_back(getFit(JHistory(shower->getHistory()).add(JSHOWER_BJORKEN_Y), result, getQuality(chi2), NDF, result.getE()));
211
212 out.rbegin()->setW(5, y);
213 out.rbegin()->setW(6, this->value.getEem());
214 out.rbegin()->setW(7, this->value.getEh());
215
216 }
217
218 return out;
219 }
Detector subset without binary search functionality.
Detector data structure.
Definition JDetector.hh:96
Data structure for a composite optical module.
Definition JModule.hh:76
Data structure for vertex fit.
Definition JPoint4D.hh:24
Data structure for fit of straight line in positive z-direction with energy.
Definition JShowerEH.hh:32
Data structure for direction in three dimensions.
3D shower with energy and Bjorken-y.
Definition JShower3EY.hh:31
3D shower with energy.
Definition JShower3E.hh:31
Data structure for vector in three dimensions.
Definition JVector3D.hh:36
Data structure for normalised vector in positive z-direction.
Definition JVersor3Z.hh:41
const JClass_t & getReference() const
Get reference to object.
Definition JReference.hh:38
static double getFinalBjY(double E_em, double E_h)
double getRate(const JDAQPMTIdentifier &id) const
Get rate.
const JDAQSummaryFrame & getSummaryFrame(const JDAQModuleIdentifier &module) const
Get summary frame.
Template L0 hit builder.
Definition JBuildL0.hh:38
Data storage class for rate measurements of all PMTs in one module.
size_t getCount(const array_type< T > &buffer, const JCompare_t &compare)
Count number of unique values.
double getQuality(const double chi2, const int N, const int NDF)
Get quality of fit.
JFIT::JHistory JHistory
Definition JHistory.hh:455
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.
JShower3E getShower(const JFit &fit)
Get shower.
bool is_valid(const json &js)
Check validity of JSon data.
return result
Definition JPolint.hh:862
bool getDAQStatus(const JDAQFrameStatus &frame, const JStatus &status)
Test status of DAQ.
bool getPMTStatus(const JStatus &status)
Test status of PMT.
static const int PMT_DISABLE
ile KM3NeT Data Definitions v3.6.3-10-g854d59a https://git.km3net.de/common/km3net-dataformat
Definition pmt_status.hh:13
Detector file.
Definition JHead.hh:227
Acoustic event fit.
Model for fit to acoustics data.
JHistory & add(const int type)
Add event to history.
Definition JHistory.hh:396
Auxiliary class for handling PMT geometry, rate and response.
Definition JPMTW0.hh:24

◆ getFinalBjY()

static double JRECONSTRUCTION::JShowerBjorkenY::getFinalBjY ( double E_em,
double E_h )
inlinestatic

Definition at line 231 of file JShowerBjorkenY.hh.

231 {
232 return E_h / (E_em + E_h);
233 }

◆ reset()

void JRECONSTRUCTION::JShowerBjorkenYParameters_t::reset ( )
inlineinherited

Reset fit parameters.

Definition at line 35 of file JShowerBjorkenYParameters_t.hh.

36 {
38 TMax_ns = 30;
39 TMin_ns = -30;
40 roadWidth_m = 80;
41 R_Hz = 10.0e3;
43 fit_step = 0.5;
44 VMax_npe = 20.0;
45 NMax = 1000;
46 }

◆ equals()

bool JRECONSTRUCTION::JShowerBjorkenYParameters_t::equals ( const JShowerBjorkenYParameters_t & parameters) const
inlineinherited

Equality.

Parameters
parametersfit parameters
Returns
true if equals; else false

Definition at line 54 of file JShowerBjorkenYParameters_t.hh.

55 {
56 return (this->TMax_ns == parameters.TMax_ns &&
57 this->TMin_ns == parameters.TMin_ns &&
58 this->numberOfPrefits == parameters.numberOfPrefits &&
59 this->roadWidth_m == parameters.roadWidth_m &&
60 this->R_Hz == parameters.R_Hz &&
61 this->mestimator == parameters.mestimator &&
62 this->fit_step == parameters.fit_step &&
63 this->VMax_npe == parameters.VMax_npe &&
64 this->NMax == parameters.NMax);
65 }

◆ ClassDef()

JRECONSTRUCTION::JShowerBjorkenYParameters_t::ClassDef ( JShowerBjorkenYParameters_t ,
1  )
inherited

Member Data Documentation

◆ router

const JModuleRouter& JRECONSTRUCTION::JShowerBjorkenY::router

Definition at line 221 of file JShowerBjorkenY.hh.

◆ summary

const JSummaryRouter& JRECONSTRUCTION::JShowerBjorkenY::summary

Definition at line 222 of file JShowerBjorkenY.hh.

◆ correct

const JEnergyCorrection& JRECONSTRUCTION::JShowerBjorkenY::correct

Definition at line 223 of file JShowerBjorkenY.hh.

◆ numberOfPrefits

size_t JRECONSTRUCTION::JShowerBjorkenYParameters_t::numberOfPrefits
inherited

number of prefits

Definition at line 69 of file JShowerBjorkenYParameters_t.hh.

◆ TMax_ns

double JRECONSTRUCTION::JShowerBjorkenYParameters_t::TMax_ns
inherited

maximum time for local coincidences [ns]

Definition at line 70 of file JShowerBjorkenYParameters_t.hh.

◆ TMin_ns

double JRECONSTRUCTION::JShowerBjorkenYParameters_t::TMin_ns
inherited

minimum time for local coincidences [ns]

Definition at line 71 of file JShowerBjorkenYParameters_t.hh.

◆ roadWidth_m

double JRECONSTRUCTION::JShowerBjorkenYParameters_t::roadWidth_m
inherited

road width [m]

Definition at line 72 of file JShowerBjorkenYParameters_t.hh.

◆ R_Hz

double JRECONSTRUCTION::JShowerBjorkenYParameters_t::R_Hz
inherited

default rate [Hz]

Definition at line 73 of file JShowerBjorkenYParameters_t.hh.

◆ mestimator

int JRECONSTRUCTION::JShowerBjorkenYParameters_t::mestimator
inherited

M-estimator (see JFIT::JMEstimator_t)

Definition at line 74 of file JShowerBjorkenYParameters_t.hh.

◆ fit_step

double JRECONSTRUCTION::JShowerBjorkenYParameters_t::fit_step
inherited

simplex initial step

Definition at line 75 of file JShowerBjorkenYParameters_t.hh.

◆ VMax_npe

double JRECONSTRUCTION::JShowerBjorkenYParameters_t::VMax_npe
inherited

maximum number of of photo-electrons

Definition at line 76 of file JShowerBjorkenYParameters_t.hh.

◆ NMax

int JRECONSTRUCTION::JShowerBjorkenYParameters_t::NMax
inherited

maximum number of iterations

Definition at line 77 of file JShowerBjorkenYParameters_t.hh.


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