39 return StatusCode::FAILURE;
48 Tile::MAX_ROS - 1, nL1Triggers);
51 Tile::MAX_ROS - 1, nL1Triggers);
54 Tile::MAX_ROS - 1, nL1Triggers);
57 Tile::MAX_ROS - 1, nL1Triggers);
60 Tile::MAX_ROS - 1, nL1Triggers);
63 Tile::MAX_ROS - 1, nL1Triggers);
66 Tile::MAX_ROS - 1, nL1Triggers);
78 for (
unsigned int rodId : {0x510000, 0x520000, 0x530000, 0x540000}) {
79 for (
unsigned int fragment = 0; fragment <
m_nROBs; ++fragment) {
88 return StatusCode::SUCCESS;
114 float referenceTimes[Tile::MAX_ROS - 1][Tile::MAX_DRAWER][Tile::MAX_CHAN] = {{{0}}};
115 float referenceEnergies[Tile::MAX_ROS - 1][Tile::MAX_DRAWER][Tile::MAX_CHAN] = {{{0}}};
118 if (rawChannelCollection->empty() )
continue;
120 HWIdentifier adc_id = rawChannelCollection->front()->adc_HWID();
128 int fragId = rawChannelCollection->identify();
135 adc_id = rawChannel->adc_HWID();
169 float amplitude = rawChannel->amplitude();
174 float time = rawChannel->uncorrTime();
182 std::vector<float> timeDiffs[Tile::MAX_ROS - 1];
183 std::vector<float> energyDiffs[Tile::MAX_ROS - 1];
184 std::vector<float> offlineEnergies[Tile::MAX_ROS - 1];
185 std::vector<float> offlineTimes[Tile::MAX_ROS - 1];
187 std::vector<float> dspTimes[Tile::MAX_ROS - 1];
188 std::vector<float> dspTimesChannels[Tile::MAX_ROS - 1];
189 std::vector<float> dspTimesDrawers[Tile::MAX_ROS - 1];
196 if (rawChannelCollection->empty() )
continue;
198 HWIdentifier adc_id = rawChannelCollection->front()->adc_HWID();
205 adc_id = rawChannel->adc_HWID();
211 offlineEnergies[
partition].push_back(offlineEnergy);
214 offlineTimes[
partition].push_back(offlineTime);
216 float dspEnergy = rawChannel->amplitude();
217 float dspTime = rawChannel->uncorrTime();
226 float energyDiff = (dspEnergy - offlineEnergy) / offlineEnergy;
227 energyDiffs[
partition].push_back(energyDiff);
229 float timeDiff = dspTime - offlineTime;
230 timeDiffs[
partition].push_back(timeDiff);
233 <<
", energy " << dspEnergy <<
"/" << offlineEnergy
234 <<
", time " << dspTime <<
"/" << offlineTime);
247 for (
int l1TriggerIdx : l1TriggersIndices) {
258 for (
int l1TriggerIdx : l1TriggersIndices) {
268 for (
int l1TriggerIdx : l1TriggersIndices) {
279 for (
int l1TriggerIdx : l1TriggersIndices) {
288 int allTileRodFragsSize = 0;
289 std::vector<int> roses;
290 std::vector<int> fragments;
291 std::vector<int> fragmentSizes;
293 std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*> robFragments;
297 uint32_t rodSourceId = robFragment->rod_source_id();
298 unsigned int ros = (rodSourceId & 0x0F0000) >> 16;
299 unsigned int fragment = rodSourceId & 0x0000FF;
300 int rodFragmentSize = robFragment->rod_fragment_size_word();
302 allTileRodFragsSize += rodFragmentSize;
304 roses.push_back(
ros);
305 fragments.push_back(fragment);
306 fragmentSizes.push_back(rodFragmentSize);
307 ATH_MSG_VERBOSE(
"ROS = " <<
ros <<
", ROD fragment = " << fragment <<
", size = " << rodFragmentSize);
311 ATH_MSG_DEBUG(
"All Tile ROD fragemsts size: " << allTileRodFragsSize <<
" in LB " << eventInfo->
lumiBlock());
315 for (
int l1TriggerIdx : l1TriggersIndices) {
319 if (!fragmentSizes.empty()) {
323 for (
int l1TriggerIdx : l1TriggersIndices) {
332 return StatusCode::SUCCESS;