44 return StatusCode::SUCCESS;
50 ATH_MSG_ERROR(
" No input text file supplied. Initialization done. ");
51 return StatusCode::FAILURE;
62 ATH_MSG_INFO(
" Initilization done with WriteKey Registraton ");
64 return StatusCode::SUCCESS;
81 return StatusCode::FAILURE;
87 return StatusCode::FAILURE;
94 return StatusCode::FAILURE;
97 return StatusCode::SUCCESS;
103 return StatusCode::SUCCESS;
109 StatusCode
sc = StatusCode::SUCCESS;
110 std::ifstream infile(filename.c_str());
113 sc = StatusCode::FAILURE;
120 infile.getline(line, 512);
121 std::string linestring(line);
122 size_t pos = linestring.find(
"Fileformat");
123 if (pos != std::string::npos)
125 sscanf(line,
"# Fileformat=%d", &format);
129 ATH_MSG_WARNING(
"Input file has no Fileformat identifier. Assuming format=0.");
133 infile.open(filename.c_str());
143 StatusCode
sc = StatusCode::SUCCESS;
144 std::ifstream infile(filename.c_str());
148 sc = StatusCode::FAILURE;
155 infile.getline(line, 512);
156 std::string linestring(line);
157 size_t pos = linestring.find(
"Fileformat");
158 if (pos != std::string::npos)
160 sscanf(line,
"# Fileformat=%d", &format);
164 ATH_MSG_WARNING(
"Input file has no Fileformat identifier. Assuming format=1");
168 infile.open(filename.c_str());
170 ATH_MSG_INFO(
"Reading calibration data from text file " << filename <<
" format " << format);
187 ReadMode readmode = ReadingGarbage;
190 std::unique_ptr<RtRelationContainer> rtCdo{std::make_unique<RtRelationContainer>()};
191 std::unique_ptr<StrawT0Container> t0Cdo{std::make_unique<StrawT0Container>()};
194 int nrtrelations(0), nstrawt0(0);
195 while (infile.getline(line, 512))
200 std::string linestring(line);
201 if (linestring.find(
"RtRelation") != std::string::npos)
203 readmode = ReadingRtRelation;
206 else if (linestring.find(
"StrawT0") != std::string::npos)
208 readmode = ReadingStrawT0;
212 readmode = ReadingGarbage;
214 else if (readmode != ReadingGarbage)
216 std::istringstream is(line);
225 if (readmode == ReadingRtRelation)
236 else if (readmode == ReadingStrawT0)
239 float t0(0), t0err(0);
246 t0Cdo->setT0(
id,
t0, t0err);
255 size_t t0footprint = t0Cdo->footprint();
256 size_t rtfootprint = rtCdo->footprint();
258 ATH_MSG_INFO(
"read " << nstrawt0 <<
" t0 and " << nrtrelations <<
" rt from file. "
259 <<
" t0/rt footprints " << t0footprint <<
" / " << rtfootprint <<
" t0 footprint after crunch " << t0Cdo->footprint());
267 return StatusCode::SUCCESS;
270 if (rtWriteHandle.
record(rangeW, std::move(rtCdo)).isFailure())
273 return StatusCode::FAILURE;
284 return StatusCode::SUCCESS;
287 if (t0Cdo->initialize().isFailure())
290 if (t0WriteHandle.
record(rangeW, std::move(t0Cdo)).isFailure())
293 return StatusCode::FAILURE;
300 return StatusCode::SUCCESS;
311 const EventIDBase start{1, EventIDBase::UNDEFEVT, EventIDBase::UNDEFNUM, EventIDBase::UNDEFNUM, 0};
312 const EventIDBase stop{EventIDBase::UNDEFNUM - 1, EventIDBase::UNDEFEVT, EventIDBase::UNDEFNUM, EventIDBase::UNDEFNUM, EventIDBase::UNDEFNUM - 1};
313 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.