Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
12 #include "GaudiKernel/MsgStream.h"
40 #include <sys/types.h>
50 AthAlgTool(
t,
n,
p), m_db_ConnectionString(
""), m_db_WorkingSchema(
""), m_sitename(
"") {
51 declareInterface<ICalibrationIOTool>(
this);
71 SmartIF<RegionSelectionSvc> reg_sel_svc{service(
"RegionSelectionSvc")};
82 return StatusCode::FAILURE;
90 return StatusCode::FAILURE;
93 return StatusCode::SUCCESS;
100 return StatusCode::FAILURE;
105 std::vector<int>
val(0);
108 return StatusCode::FAILURE;
111 return StatusCode::SUCCESS;
117 return StatusCode::FAILURE;
129 if (t0 !=
nullptr)
t0s[*
it] = t0;
132 return StatusCode::SUCCESS;
138 std::vector<SamplePoint>
points;
144 if (rt_relation->
rt()->hasTmaxDiff()) {
145 SamplePoint point(rt_relation->
rt()->GetTmaxDiff(), -99.9, 0.0);
150 return StatusCode::FAILURE;
157 return StatusCode::FAILURE;
160 return StatusCode::SUCCESS;
167 return StatusCode::FAILURE;
176 std::vector<SamplePoint> in_points;
180 std::vector<SamplePoint> outpoints;
181 float tmax_diff(-9e9);
182 for (
auto & in_point : in_points) {
183 if (in_point.x2() < -99) {
184 tmax_diff = in_point.x1();
187 SamplePoint outpoint(in_point.x1(), in_point.x2(), 1.0);
188 outpoints.push_back(outpoint);
191 if (tmax_diff > -8e8) {
rts[*
it]->SetTmaxDiff(tmax_diff); }
193 for (
auto & in_point : in_points) {
194 if (in_point.x2() < -99) {
continue; }
195 SamplePoint outpoint(in_point.x1(), in_point.error(), 1.0);
196 outpoints.push_back(outpoint);
201 return StatusCode::SUCCESS;
207 std::shared_ptr<const RtRelationLookUp> rt_lookup = std::dynamic_pointer_cast<const RtRelationLookUp>(rt);
209 if (rt_lookup &&
static_cast<int>(rt_lookup->nPar() - 2) <=
m_max_rt_points) {
210 double t_min(rt_param[0]);
211 double bin_size = rt_param[1];
212 unsigned int nb_points(rt_lookup->nPar() - 2);
213 for (
unsigned int k = 0;
k < nb_points;
k++) {
214 double radius(rt_param[
k + 2]);
219 SamplePoint point(t_min + bin_size *
k, rt_param[
k + 2], -1);
224 std::shared_ptr<const RtSpline> rt_spline = std::dynamic_pointer_cast<const RtSpline>(rt);
225 if (rt_spline &&
static_cast<int>(rt_param.size() / 2) <=
m_max_rt_points) {
226 for (
unsigned int i = 0;
i < rt_param.size();
i += 2) {
234 double t = rt->tLower() +
i * ((rt->tUpper() - rt->tLower()) / (
m_max_rt_points - 1));
240 for (
auto & point :
points) { point.set_error(rt_resolution->resolution(point.x1())); }
JetConstituentVector::iterator iterator
static std::unique_ptr< IRtRelation > getRtRelationLookUp(const std::vector< SamplePoint > &sample_points)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
double resolution[nGasTypes][nParametersResolution]
bool LoadRt(const NtupleStationId &id, int head_id, bool validated, const std::string &, std::vector< SamplePoint > &points, RtFullInfo *full_info)
::StatusCode StatusCode
StatusCode definition for legacy code.
std::pair< std::vector< unsigned int >, bool > res
bool WriteUpdateRt(const NtupleStationId &id, int head_id, const std::string &, const std::vector< SamplePoint > &points, int validflag, const RtFullInfo *full_info)
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.
std::vector< double > ParVec
addiitonal information used in validation of a rt-relation
static RtResolutionLookUp getRtResolutionLookUp(const std::vector< SamplePoint > &sample_points)
std::shared_ptr< const IRtRelation > rt() const
access to private attributes
#define ATH_MSG_WARNING(x)
Holds single-tube full calibration information of one chamber.
bool WriteT0Chamber(const NtupleStationId &id, const MdtTubeFitContainer *t0, std::vector< int > &validation_flag, int head_id, const std::string &site_name)
std::shared_ptr< const RtFullInfo > fullInfo() const
Equidistant look up table for resolution tables with the time as key.
MdtStationT0Container * LoadT0Calibration(const NtupleStationId &id, int head_id, std::string &site_name)