60 return StatusCode::SUCCESS;
65 EventIDRange infinite_range(infiniteIOVBegin(),infiniteIOVEend());
70 auto bccd=std::make_unique<BunchCrossingIntensityCondData>();
87 if (attrList.size() == 0 || attrList[
"Valid"].isNull()) {
89 return StatusCode::SUCCESS;
95 if (attrList_fBCT.size() == 0 || attrList_fBCT[
"Valid"].isNull()) {
97 return StatusCode::SUCCESS;
104 ATH_MSG_INFO(
"Got AttributeList with size " << attrList.size());
105 ATH_MSG_INFO(
"Got AttributeList fBCT with size " << attrList_fBCT.size());
110 float nb1 = attrList[
"B1BunchAverage"].data<cool::Float>();
111 float nb2 = attrList[
"B2BunchAverage"].data<cool::Float>();
112 float nb1_fBCT = attrList_fBCT[
"B1BunchAverage"].data<cool::Float>();
113 float nb2_fBCT = attrList_fBCT[
"B2BunchAverage"].data<cool::Float>();
115 unsigned long long RunLB = attrList[
"RunLB"].data<
unsigned long long >();
118 int lb = RunLB & 0xffffffff;
124 const coral::Blob& blob1 = attrList[
"B1BunchIntensities"].data<coral::Blob>();
125 const coral::Blob& blob2 = attrList[
"B2BunchIntensities"].data<coral::Blob>();
126 const coral::Blob& blob1_fBCT = attrList_fBCT[
"B1BunchIntensities"].data<coral::Blob>();
127 const coral::Blob& blob2_fBCT = attrList_fBCT[
"B2BunchIntensities"].data<coral::Blob>();
136 bccd->SetBeam1IntensityAll(nb1,0);
137 bccd->SetBeam2IntensityAll(nb2,0);
138 bccd->SetBeam1IntensityAll(nb1_fBCT,1);
139 bccd->SetBeam2IntensityAll(nb2_fBCT,1);
140 bccd->SetRunLB(RunLB);
145 const uint8_t*
ATH_RESTRICT pchar1 =
static_cast<const uint8_t*
>(blob1.startingAddress());
149 std::vector<float> instBeam1 (nbcids);
150 for (
unsigned int i=0; i<nbcids; i++) {
158 const uint8_t*
ATH_RESTRICT pchar2 =
static_cast<const uint8_t*
>(blob2.startingAddress());
160 std::vector<float> instBeam2 (nbcids);
161 for (
unsigned int i=0; i<nbcids; i++) {
167 bccd->setBeam1IntensityPerBCIDVector(std::move(instBeam1),0);
168 bccd->setBeam2IntensityPerBCIDVector(std::move(instBeam2),0);
175 const uint8_t*
ATH_RESTRICT pchar1_fBCT =
static_cast<const uint8_t*
>(blob1_fBCT.startingAddress());
179 std::vector<float> instBeam1_fBCT (nbcids_fBCT);
180 for (
unsigned int i=0; i<nbcids_fBCT; i++) {
188 const uint8_t*
ATH_RESTRICT pchar2_fBCT =
static_cast<const uint8_t*
>(blob2_fBCT.startingAddress());
190 std::vector<float> instBeam2_fBCT (nbcids_fBCT);
191 for (
unsigned int i=0; i<nbcids_fBCT; i++) {
197 bccd->setBeam1IntensityPerBCIDVector(std::move(instBeam1_fBCT),1);
198 bccd->setBeam2IntensityPerBCIDVector(std::move(instBeam2_fBCT),1);
208 return StatusCode::SUCCESS;