44 return StatusCode::SUCCESS;
50 ATH_MSG_ERROR(
" No input text file supplied. Initialization done. ");
51 return StatusCode::FAILURE;
69 ATH_MSG_INFO(
" Initilization done with WriteKey Registraton ");
71 return StatusCode::SUCCESS;
88 return StatusCode::FAILURE;
94 return StatusCode::FAILURE;
101 return StatusCode::FAILURE;
104 return StatusCode::SUCCESS;
110 return StatusCode::SUCCESS;
116 StatusCode
sc = StatusCode::SUCCESS;
117 std::ifstream infile(filename.c_str());
120 sc = StatusCode::FAILURE;
127 infile.getline(line, 512);
128 std::string linestring(line);
129 size_t pos = linestring.find(
"Fileformat");
130 if (pos != std::string::npos)
132 sscanf(line,
"# Fileformat=%d", &format);
136 ATH_MSG_WARNING(
"Input file has no Fileformat identifier. Assuming format=0.");
140 infile.open(filename.c_str());
150 StatusCode
sc = StatusCode::SUCCESS;
151 std::ifstream infile(filename.c_str());
155 sc = StatusCode::FAILURE;
162 infile.getline(line, 512);
163 std::string linestring(line);
164 size_t pos = linestring.find(
"Fileformat");
165 if (pos != std::string::npos)
167 sscanf(line,
"# Fileformat=%d", &format);
171 ATH_MSG_WARNING(
"Input file has no Fileformat identifier. Assuming format=1");
175 infile.open(filename.c_str());
177 ATH_MSG_INFO(
"Reading calibration data from text file " << filename <<
" format " << format);
194 ReadMode readmode = ReadingGarbage;
197 std::unique_ptr<RtRelationContainer> rtCdo{std::make_unique<RtRelationContainer>()};
198 std::unique_ptr<StrawT0Container> t0Cdo{std::make_unique<StrawT0Container>()};
201 int nrtrelations(0), nstrawt0(0);
202 while (infile.getline(line, 512))
207 std::string linestring(line);
208 if (linestring.find(
"RtRelation") != std::string::npos)
210 readmode = ReadingRtRelation;
213 else if (linestring.find(
"StrawT0") != std::string::npos)
215 readmode = ReadingStrawT0;
219 readmode = ReadingGarbage;
221 else if (readmode != ReadingGarbage)
223 std::istringstream is(line);
232 if (readmode == ReadingRtRelation)
243 else if (readmode == ReadingStrawT0)
246 float t0(0), t0err(0);
253 t0Cdo->setT0(
id,
t0, t0err);
262 size_t t0footprint = t0Cdo->footprint();
263 size_t rtfootprint = rtCdo->footprint();
265 ATH_MSG_INFO(
"read " << nstrawt0 <<
" t0 and " << nrtrelations <<
" rt from file. "
266 <<
" t0/rt footprints " << t0footprint <<
" / " << rtfootprint <<
" t0 footprint after crunch " << t0Cdo->footprint());
274 return StatusCode::SUCCESS;
277 if (rtWriteHandle.
record(rangeW, std::move(rtCdo)).isFailure())
280 return StatusCode::FAILURE;
291 return StatusCode::SUCCESS;
294 if (t0Cdo->initialize().isFailure())
297 if (t0WriteHandle.
record(rangeW, std::move(t0Cdo)).isFailure())
300 return StatusCode::FAILURE;
307 return StatusCode::SUCCESS;
318 const EventIDBase start{1, EventIDBase::UNDEFEVT, EventIDBase::UNDEFNUM, EventIDBase::UNDEFNUM, 0};
319 const EventIDBase stop{EventIDBase::UNDEFNUM - 1, EventIDBase::UNDEFEVT, EventIDBase::UNDEFNUM, EventIDBase::UNDEFNUM, EventIDBase::UNDEFNUM - 1};
320 return EventIDRange{start, stop};
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
CondAlg to read TRT calibration constants in from text file and load them in ConditionsStore.
const ServiceHandle< StoreGateSvc > & detStore() const
Base class for conditions algorithms.
const EventIDRange & getRange() const
StatusCode record(const EventIDRange &range, T *t)
record handle, with explicit range DEPRECATED
TRTCondWrite(const std::string &name, ISvcLocator *pSvcLocator)
constructor
virtual TRTCond::ExpandedIdentifier trtcondid(const Identifier &id, int level=TRTCond::ExpandedIdentifier::STRAW) const
create an TRTCond::ExpandedIdentifier from a TRTID identifier
virtual StatusCode execute(const EventContext &ctx) const override
virtual StatusCode checkTextFile(const std::string &file, int &format)
read calibration from text file into TDS
Gaudi::Property< std::string > m_par_caltextfile
SG::WriteCondHandleKey< StrawT0Container > m_t0WriteKey
virtual StatusCode initialize(void) override
const TRT_ID * m_trtid
trt id helper
ServiceHandle< ICondSvc > m_condSvc
virtual EventIDRange IOVInfRange() const
virtual StatusCode readTextFile_Format1(const EventContext &, std::istream &) const
SG::WriteCondHandleKey< RtRelationContainer > m_rtWriteKey
virtual StatusCode finalize(void) override
virtual StatusCode readTextFile(const EventContext &ctx, const std::string &file, int &format) const
Identifier for TRT detector elements in the conditions code.
static RtRelation * readFromFile(std::istream &is)
read method
Base class for rt-relations in the TRT.