Declaration of the member function that actually performs the reconstruction.
123 {
126
129
131
133
134 JDataL0_t dataL0;
136
137 for (JEvt::const_iterator shower = in.begin(); shower != in.end(); ++shower) {
138
140 shower->getE(), 0.0);
141
143
145
146 for (JDataL0_t::const_iterator i = dataL0.begin(); i != dataL0.end(); ++i) {
147
148 if (match(*i)) {
149 top.insert(i->getPMTIdentifier());
150 }
151 }
152
154
157
159
160 for (JDetectorSubset_t::iterator module = subdetector.begin();
161 module != subdetector.end(); ++module) {
162
164
166
167 dom.rotate(R);
168
169 for (unsigned int i = 0; i != dom.size(); ++i) {
170
175
177
179 const size_t count = top.count(id);
180
181 buffer.push_back(
JPMTW0(dom.getPMT(i), rate_Hz, count));
182 }
183 }
184 }
185
186 this->step.resize(2);
189
190 double f_h = 1 - 0.681 * (std::pow(shower->getE()/0.863, -0.207));
191
193 log10(sh.getE()), log10(f_h*sh.getE()), sh.getBjY()),
194 buffer.begin(), buffer.end());
195
196 double NDF =
getCount(buffer.begin(), buffer.end()) - this->step.size();
197
198 JShower3EY sh_fit(this->value.getPosition(), this->value.getDirection(),
199 this->value.getT(),
correct(this->value.getEem() + this->value.getEh()), this->value.getBy());
200
201 double y =
getFinalBjY(this->value.getEem(), this->value.getEh());
202
203 sh_fit.rotate_back(R);
204
205 sh_fit.add(sh.getPosition());
206
208 NDF, sh_fit.getE()));
209
210 out.rbegin()->setW(5, y);
211 out.rbegin()->setW(6, this->value.getEem());
212 out.rbegin()->setW(7, this->value.getEh());
213
214 }
215
216 return out;
217 }
Detector subset without binary search functionality.
Data structure for a composite optical module.
Data structure for vertex fit.
Data structure for fit of straight line in positive z-direction with energy.
Data structure for direction in three dimensions.
3D track with energy and Bjorken Y.
Data structure for vector in three dimensions.
Data structure for normalised vector in positive z-direction.
const JClass_t & getReference() const
Get reference to object.
double getFinalBjY(double E_em, double E_h)
double getRate(const JDAQPMTIdentifier &id, const double rate_Hz) const
Get rate.
const JDAQSummaryFrame & getSummaryFrame(const JDAQModuleIdentifier &module) const
Get summary frame.
Data storage class for rate measurements of all PMTs in one module.
static const int JSHOWER_BJORKEN_Y
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.
JPosition3D getPosition(const JFit &fit)
Get position.
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.
JDirection3D getDirection(const JFit &fit)
Get direction.
bool is_valid(const json &js)
Check validity of JSon data.
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
KM3NeT Data Definitions v3.6.0 https://git.km3net.de/common/km3net-dataformat.
Model for fit to acoustics data.
JHistory & add(const int type)
Add event to history.
Auxiliary class for handling PMT geometry, rate and response.
double fit_step
simplex initial step
double roadWidth_m
road width [m]
double R_Hz
default rate [Hz]