19 m_cells2tt(
"LVL1::L1CaloCells2TriggerTowers/L1CaloCells2TriggerTowers", this),
20 m_ttSvc(
"CaloTriggerTowerService"),
25 m_rxMapTool(
"LVL1::L1CaloFcal23Cells2RxMappingTool/L1CaloFcal23Cells2RxMappingTool")
79 std::vector<int> location;
87 location.push_back(coolId.
id());
95 std::vector<L1CaloRxCoolChannelId> rx =
m_ttSvc->cnvCoolChannelIdToRxId(coolId);
97 std::vector<L1CaloRxCoolChannelId> output;
109 typedef std::vector<L1CaloRxCoolChannelId>::const_iterator Itr_Id;
110 std::vector<L1CaloRxCoolChannelId> rx2;
111 for(Itr_Id
a=rx.begin();
a!=rx.end();++
a){
112 if((*a).crate() == 2 || (*a).crate() == 3){
119 unsigned int inputA = rx2.at(0).inputConn();
120 unsigned int inputB = rx2.at(1).inputConn();
123 if(inputA == 2 && inputB == 0){
124 output.push_back(rx2.at(1));
125 output.push_back(rx2.at(0));
127 if(inputA == 0 && inputB == 2){
128 output.push_back(rx2.at(0));
129 output.push_back(rx2.at(1));
136 output.push_back(rx.at(0));
143 typedef std::vector<L1CaloRxCoolChannelId>::const_iterator Itr;
144 std::vector<L1CaloRxCoolChannelId> rx = this->
emReceivers(tt);
145 std::vector<unsigned int> output;
146 for(Itr i=rx.begin();i!=rx.end();++i){
147 output.push_back( (*i).id() );
186 std::vector<int> location;
194 location.push_back(coolId.
id());
210 std::vector<L1CaloRxCoolChannelId> rx =
m_ttSvc->cnvCoolChannelIdToRxId(coolId);
212 std::vector<L1CaloRxCoolChannelId> output;
218 unsigned int inputPairA = rx.at(0).inputPair();
219 unsigned int inputPairB = rx.at(1).inputPair();
221 bool oddA(
false),oddB(
false);
222 if(inputPairA % 2 != 0){oddA =
true;}
223 if(inputPairB % 2 != 0){oddB =
true;}
225 if(oddA ==
true && oddB ==
false){
226 output.push_back(rx.at(0));
227 output.push_back(rx.at(1));
229 if(oddA ==
false && oddB ==
true){
230 output.push_back(rx.at(1));
231 output.push_back(rx.at(0));
236 output.push_back(rx.at(0));
244 typedef std::vector<L1CaloRxCoolChannelId>::const_iterator Itr;
245 std::vector<L1CaloRxCoolChannelId> rx = this->
hadReceivers(tt);
246 std::vector<unsigned int> output;
247 for(Itr i=rx.begin();i!=rx.end();++i){
248 output.push_back( (*i).id() );
267 std::vector<const CaloCell*> cells =
m_cells2tt->caloCells(Id);
274 std::vector<std::vector<const CaloCell*> > cells =
m_cells2tt->caloCellsByLayer(Id);
276 v.push_back((*i).size());
286 v.push_back((*i).size());
293 std::vector<L1CaloRxCoolChannelId> rx = this->
emReceivers(tt);
296 std::vector<std::vector<int> > v;
297 std::vector<std::vector<const CaloCell*> > cells =
m_cells2tt->caloCellsByLayer(Id);
299 if ((*i).empty())
continue;
300 if (rx.size() == 2) {
301 std::vector<std::vector<const CaloCell*> > cellsRx = this->
sortEMCrackCells((*i));
303 if ((*j).empty())
continue;
304 if (j == cellsRx.begin()) v1.push_back((*j).size());
305 else v2.push_back((*j).size());
307 }
else if (rx.size() == 1) v1.push_back((*i).size());
309 v.push_back(std::move(v1));
310 if (rx.size() == 2) v.push_back(std::move(v2));
321 std::vector<L1CaloRxCoolChannelId> rx = this->
emReceivers(tt);
324 std::vector<std::vector<int> > v;
325 std::vector<std::vector<const CaloCell*> > cells =
m_cells2tt->caloCellsByLayer(Id);
327 if ((*i).empty())
continue;
328 if (rx.size() == 2) {
329 std::vector<std::vector<const CaloCell*> > cellsRx = this->
sortEMCrackCells((*i));
331 if ((*j).empty())
continue;
332 if (j == cellsRx.begin()) v1.push_back(
m_cells2tt->layerNames((*j)[0]));
333 else v2.push_back(
m_cells2tt->layerNames((*j)[0]));
335 }
else if (rx.size() == 1) v1.push_back(
m_cells2tt->layerNames((*i)[0]));
337 v.push_back(std::move(v1));
338 if (rx.size() == 2) v.push_back(std::move(v2));
349 std::vector<std::vector<const CaloCell*> > cells =
m_cells2tt->caloCellsByLayer(Id);
350 std::vector<float> eByLayer;
352 eByLayer.push_back(
m_cells2tt->energy( *i ) );
360 std::vector<float> output;
361 std::vector<L1CaloRxCoolChannelId> rx = this->
emReceivers(tt);
363 std::vector<const CaloCell*> cells =
m_cells2tt->caloCells(Id);
366 std::vector<std::vector<const CaloCell*> > vvcells = this->
sortEMCrackCells(cells);
368 output.push_back(
m_cells2tt->energy( (*i) ) );
372 if(rx.size() == 1 && mode == 0){
373 output.push_back(
m_cells2tt->energy( cells ) );
386 std::vector<std::vector<const CaloCell*> > cells =
m_cells2tt->caloCellsByLayer(Id);
387 std::vector<float> eByLayer;
397 std::vector<float> output;
398 std::vector<L1CaloRxCoolChannelId> rx = this->
emReceivers(tt);
400 std::vector<const CaloCell*> cells =
m_cells2tt->caloCells(Id);
403 std::vector<std::vector<const CaloCell*> > vvcells = this->
sortEMCrackCells(cells);
409 if(rx.size() == 1 && mode == 0){
418 std::vector<std::vector<const CaloCell*> > output;
419 std::vector<const CaloCell*> emb;
420 std::vector<const CaloCell*> emec;
428 emb.push_back( (*i) );
431 emec.push_back( (*i) );
435 output.push_back(std::move(emec));
436 output.push_back(std::move(emb));
449 std::vector<const CaloCell*> cells =
m_cells2tt->caloCells(Id);
456 std::vector<std::vector<const CaloCell*> > cells =
m_cells2tt->caloCellsByLayer(Id);
458 v.push_back((*i).size());
464 std::vector<unsigned int> rx = this->
hadRxId(tt);
470 v.push_back((*i).size());
477 std::vector<unsigned int> rx = this->
hadRxId(tt);
480 std::vector<std::vector<int> > v;
481 std::vector<std::vector<const CaloCell*> > cells =
m_cells2tt->caloCellsByLayer(Id);
483 if ((*i).empty())
continue;
484 if (rx.size() == 2) {
485 std::vector<std::vector<const CaloCell*> > cellsRx = this->
sortFCAL23Cells((*i),rx);
487 if ((*j).empty())
continue;
488 if (j == cellsRx.begin()) v1.push_back((*j).size());
489 else v2.push_back((*j).size());
491 }
else if (rx.size() == 1) v1.push_back((*i).size());
493 v.push_back(std::move(v1));
494 if (rx.size() == 2) v.push_back(std::move(v2));
505 std::vector<unsigned int> rx = this->
hadRxId(tt);
508 std::vector<std::vector<int> > v;
509 std::vector<std::vector<const CaloCell*> > cells =
m_cells2tt->caloCellsByLayer(Id);
511 if ((*i).empty())
continue;
512 if (rx.size() == 2) {
513 std::vector<std::vector<const CaloCell*> > cellsRx = this->
sortFCAL23Cells((*i),rx);
515 if ((*j).empty())
continue;
516 if (j == cellsRx.begin()) v1.push_back(
m_cells2tt->layerNames((*j)[0]));
517 else v2.push_back(
m_cells2tt->layerNames((*j)[0]));
519 }
else if (rx.size() == 1) v1.push_back(
m_cells2tt->layerNames((*i)[0]));
521 v.push_back(std::move(v1));
522 if (rx.size() == 2) v.push_back(std::move(v2));
533 std::vector<std::vector<const CaloCell*> > cells =
m_cells2tt->caloCellsByLayer(Id);
534 std::vector<float> eByLayer;
536 eByLayer.push_back(
m_cells2tt->energy( *i ) );
544 std::vector<float> output;
545 std::vector<unsigned int> rx = this->
hadRxId(tt);
547 std::vector<const CaloCell*> cells =
m_cells2tt->caloCells(Id);
550 std::vector<std::vector<const CaloCell*> > vvcells = this->
sortFCAL23Cells(cells,rx);
552 output.push_back(
m_cells2tt->energy( (*i) ) );
556 if(rx.size() == 1 && mode == 0){
557 output.push_back(
m_cells2tt->energy( cells ) );
570 std::vector<std::vector<const CaloCell*> > cells =
m_cells2tt->caloCellsByLayer(Id);
571 std::vector<float> eByLayer;
582 std::vector<float> output;
583 std::vector<unsigned int> rx = this->
hadRxId(tt);
585 std::vector<const CaloCell*> cells =
m_cells2tt->caloCells(Id);
588 std::vector<std::vector<const CaloCell*> > vvcells = this->
sortFCAL23Cells(cells,rx);
594 if(rx.size() == 1 && mode == 0){
605 IdTTL1CellMapType::const_iterator ttL1Cell(
map.find(Id));
606 IdTTL1CellMapType::const_iterator ttL1Cell_E(
map.end());
607 if(ttL1Cell != ttL1Cell_E){
608 return ((ttL1Cell->second)->eneTower()) * 1e-3;
615 const double eta)
const{
616 std::vector<std::vector<const CaloCell*> > output;
618 std::vector<const CaloCell*> fcal2A;
619 std::vector<const CaloCell*> fcal2B;
620 std::vector<const CaloCell*> fcal3A;
621 std::vector<const CaloCell*> fcal3B;
622 double absEta = fabs(
eta);
628 double cellEta = fabs(caloDDE->
eta_raw());
629 double x = fabs(caloDDE->
x_raw());
630 double y = fabs(caloDDE->
y_raw());
635 bool lowEta = (absEta < 4.05 && cellEta < 3.3) || (absEta > 4.05 && cellEta < 3.97);
644 if (lowEta) fcal2A.push_back(*i);
645 else fcal2B.push_back(*i);
649 bool lowEta = (absEta < 4.05 && cellEta < 3.43) || (absEta > 4.05 && cellEta < 3.9);
651 double xs = caloDDE->
x_raw();
652 double ys = caloDDE->
y_raw();
655 (xs > 120. && xs < 160. && ys > -140. && ys < -100.) ||
656 (xs > -160. && xs < -100. && ys > 100. && ys < 140.)) lowEta =
true;
658 (xs > 320. && xs < 370. && ys > 140. && ys < 190.) ||
659 (xs > -360. && xs < -320. && ys > -180. && ys < -140.)) lowEta =
false;
660 if (lowEta) fcal3A.push_back(*i);
661 else fcal3B.push_back(*i);
665 unsigned int size2A = fcal2A.size();
666 unsigned int size2B = fcal2B.size();
667 unsigned int size3A = fcal3A.size();
668 unsigned int size3B = fcal3B.size();
671 if(size2A > 0 && size2B > 0 && size3A == 0 && size3B == 0){
672 output.push_back(std::move(fcal2A));
673 output.push_back(std::move(fcal2B));
675 if(size2A == 0 && size2B == 0 && size3A > 0 && size3B > 0){
676 output.push_back(std::move(fcal3A));
677 output.push_back(std::move(fcal3B));
684 const std::vector<unsigned int>& rxId)
const{
687 std::vector<const CaloCell*> cellsA;
688 std::vector<const CaloCell*> cellsB;
690 std::vector<std::vector<const CaloCell*> > output;
693 unsigned int rxidA = rxId.at(0);
694 unsigned int rxidB = rxId.at(1);
698 unsigned int someRxId =
m_rxMapTool->offlineCell2RxId( (*i)->ID().get_identifier32().get_compact() );
699 if(someRxId == rxidA){cellsA.push_back(*i);}
700 if(someRxId == rxidB){cellsB.push_back(*i);}
702 output.push_back(std::move(cellsA));
703 output.push_back(std::move(cellsB));
714 const EventContext& ctx = Gaudi::Hive::currentContext();
718 float nonNominal(0.0);
729 float nonNominal(0.0);
730 HWIdentifier hwid=cabling->createSignalChannelID(cell->ID());
739 const EventContext& ctx = Gaudi::Hive::currentContext();
744 float scale(0.0),
count(0.0);
746 scale += this->
LArHVScale( (*i), scaleCorr.
cptr(), onlineScaleCorr.
cptr(), cabling.cptr() );
749 if(
count < 1.0){
return 0.0;}
750 return scale /
count;
758 HWIdentifier hwid=cabling->createSignalChannelID(cell->ID());
764 float nom(0.), denom(0.);
766 if((*i)->provenance() & 0x2000) {
767 nom += ((*i)->e() * (*i)->quality());
784 float nonNominal(0.0);
807 const EventContext& ctx = Gaudi::Hive::currentContext();
811 if (!tileCell)
return 0.0;
819 int gain1(-9),gain2(-9);
820 float score(0.0),multiplier(1.0);
821 bool adc1_noGainL1(
false),adc1_halfGainL1(
false);
822 bool pmt2Valid(
false),adc2_noGainL1(
false),adc2_halfGainL1(
false);
825 gain1 = tileCell->
gain1();
835 gain2 = tileCell->
gain2();
846 if(adc1_noGainL1 ==
true && adc1_halfGainL1 ==
true){adc1_halfGainL1 =
false;}
847 if(adc2_noGainL1 ==
true && adc2_halfGainL1 ==
true){adc2_halfGainL1 =
false;}
849 if(pmt2Valid ==
false){multiplier = 2.0;}
850 if(adc1_halfGainL1 ==
true){score += 0.25;}
851 if(adc1_noGainL1 ==
true){score += 0.5;}
852 if(adc2_halfGainL1 ==
true){score += 0.25;}
853 if(adc2_noGainL1 ==
true){score += 0.5;}
855 return score * multiplier;
859 float nom(0.), denom(0.);
863 if(tileCell && tileCell->
provenance() & 0x8080) {
864 nom += tileCell->
e() * std::max(tileCell->
qual1(), tileCell->
qual2());
865 denom += tileCell->
e();
882 std::vector<const CaloCell*> cells =
m_cells2tt->caloCells(Id);
889 std::vector<const CaloCell*> cells =
m_cells2tt->caloCells(Id);
894 std::vector<float> nNonNomHV;
898 std::vector<std::vector<const CaloCell*> > cells =
m_cells2tt->caloCellsByLayer(Id);
906 std::vector<std::vector<float> > nNonNomHV;
909 std::vector<L1CaloRxCoolChannelId> rx = this->
emReceivers(tt);
910 std::vector<float> v1;
911 std::vector<float> v2;
912 std::vector<std::vector<const CaloCell*> > cells =
m_cells2tt->caloCellsByLayer(Id);
914 if ((*i).empty())
continue;
915 if (rx.size() == 2) {
916 std::vector<std::vector<const CaloCell*> > cellsRx = this->
sortEMCrackCells((*i));
918 if ((*j).empty())
continue;
924 nNonNomHV.push_back(std::move(v1));
925 if (rx.size() == 2) nNonNomHV.push_back(std::move(v2));
932 std::vector<const CaloCell*> cells =
m_cells2tt->caloCells(Id);
937 std::vector<float> NonNomHV;
940 std::vector<std::vector<const CaloCell*> > cells =
m_cells2tt->caloCellsByLayer(Id);
942 NonNomHV.push_back( this->
LArHVScale( (*i ) ) );
950 std::vector<float> output;
952 std::vector<L1CaloRxCoolChannelId> rx = this->
emReceivers(tt);
954 std::vector<const CaloCell*> cells =
m_cells2tt->caloCells(Id);
957 std::vector<std::vector<const CaloCell*> > vvcells = this->
sortEMCrackCells(cells);
964 output.push_back( this->
LArHVScale( cells ) );
971 std::vector<std::vector<float> > output;
974 std::vector<L1CaloRxCoolChannelId> rx = this->
emReceivers(tt);
975 std::vector<float> v1;
976 std::vector<float> v2;
977 std::vector<std::vector<const CaloCell*> > cells =
m_cells2tt->caloCellsByLayer(Id);
979 if ((*i).empty())
continue;
980 if (rx.size() == 2) {
981 std::vector<std::vector<const CaloCell*> > cellsRx = this->
sortEMCrackCells((*i));
983 if ((*j).empty())
continue;
984 if (j == cellsRx.begin()) v1.push_back(this->
LArHVScale((*j)));
987 }
else if (rx.size() == 1) v1.push_back(this->
LArHVScale((*i)));
989 output.push_back(std::move(v1));
990 if (rx.size() == 2) output.push_back(std::move(v2));
999 std::vector<const CaloCell*> cells =
m_cells2tt->caloCells(Id);
1011 std::vector<const CaloCell*> cells =
m_cells2tt->caloCells(Id);
1027 std::vector<float> nNonNomHV;
1030 std::vector<std::vector<const CaloCell*> > cells =
m_cells2tt->caloCellsByLayer(Id);
1049 std::vector<std::vector<float> > nNonNomHV;
1053 std::vector<unsigned int> rx = this->
hadRxId(tt);
1054 std::vector<float> v1;
1055 std::vector<float> v2;
1056 std::vector<std::vector<const CaloCell*> > cells =
m_cells2tt->caloCellsByLayer(Id);
1058 if ((*i).empty())
continue;
1059 if (rx.size() == 2) {
1060 std::vector<std::vector<const CaloCell*> > cellsRx = this->
sortFCAL23Cells((*i),rx);
1062 if ((*j).empty())
continue;
1063 if (j == cellsRx.begin()) v1.push_back( (isTile ==
false) ? this->
LArNonNominalHV((*j))
1068 }
else if (rx.size() == 1) v1.push_back( (isTile ==
false) ? this->
LArNonNominalHV((*i))
1071 nNonNomHV.push_back(std::move(v1));
1072 if (rx.size() == 2) nNonNomHV.push_back(std::move(v2));
1080 if(isTile ==
true){
return -9.9;}
1083 std::vector<const CaloCell*> cells =
m_cells2tt->caloCells(Id);
1089 std::vector<float> NonNomHV;
1092 if(isTile ==
true){
return NonNomHV;}
1095 std::vector<std::vector<const CaloCell*> > cells =
m_cells2tt->caloCellsByLayer(Id);
1098 NonNomHV.push_back( this->
LArHVScale( (*i ) ) );
1105 std::vector<float> output;
1107 std::vector<unsigned int> rx = this->
hadRxId(tt);
1111 if(isTile ==
true){
return output;}
1113 std::vector<const CaloCell*> cells =
m_cells2tt->caloCells(Id);
1116 std::vector<std::vector<const CaloCell*> > vvcells = this->
sortFCAL23Cells(cells,rx);
1118 output.push_back( this->
LArHVScale( (*i) ) );
1123 output.push_back( this->
LArHVScale( cells ) );
1131 std::vector<std::vector<float> > output;
1135 std::vector<unsigned int> rx = this->
hadRxId(tt);
1136 std::vector<float> v1;
1137 std::vector<float> v2;
1138 std::vector<std::vector<const CaloCell*> > cells =
m_cells2tt->caloCellsByLayer(Id);
1140 if ((*i).empty())
continue;
1141 if (rx.size() == 2) {
1142 std::vector<std::vector<const CaloCell*> > cellsRx = this->
sortFCAL23Cells((*i),rx);
1144 if ((*j).empty())
continue;
1145 if (j == cellsRx.begin()) v1.push_back(this->
LArHVScale((*j)));
1148 }
else if (rx.size() == 1) v1.push_back(this->
LArHVScale((*i)));
1150 output.push_back(std::move(v1));
1151 if (rx.size() == 2) output.push_back(std::move(v2));
1163 std::vector<const CaloCell*> cells =
m_cells2tt->caloCells(Id);
1169 std::vector<const CaloCell*> cells =
m_cells2tt->caloCells(Id);
1174 std::vector<int> output;
1175 std::map<int, std::vector<const CaloCell*> > sc_ids;
1181 for(std::map<
int, std::vector<const CaloCell*> >
::const_iterator i=sc_ids.begin();i!=sc_ids.end();++i){
1182 output.push_back( (*i).first );
1196 const coral::AttributeList* attrList = 0;
1197 for(Itr_db i=dbAttrList->
begin();i!=dbAttrList->
end();++i){
1198 if(i->first == coolId){
1199 attrList = &(i->second);
1209 std::vector<L1CaloRxCoolChannelId> rx = this->
emReceivers(tt);
1210 std::vector<const coral::AttributeList*> v_attr;
1212 typedef std::vector<L1CaloRxCoolChannelId>::const_iterator Itr_Id;
1214 for(Itr_Id
a=rx.begin();
a!=rx.end();++
a){
1215 for(Itr_db i=dbAttrList->
begin();i!=dbAttrList->
end();++i){
1216 if(i->first == (*a).id()){
1217 v_attr.push_back( &(i->second) );
1229 const coral::AttributeList* attrList = 0;
1230 for(Itr_db i=dbAttrList->
begin();i!=dbAttrList->
end();++i){
1231 if(i->first == coolId){
1232 attrList = &(i->second);
1241 std::vector<L1CaloRxCoolChannelId> rx = this->
hadReceivers(tt);
1242 std::vector<const coral::AttributeList*> v_attr;
1244 typedef std::vector<L1CaloRxCoolChannelId>::const_iterator Itr_Id;
1246 for(Itr_Id
a=rx.begin();
a!=rx.end();++
a){
1247 for(Itr_db i=dbAttrList->
begin();i!=dbAttrList->
end();++i){
1248 if(i->first == (*a).id()){
1249 v_attr.push_back( &(i->second) );
1265 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1266 if((*attrList)[attrNum].specification().
name() ==
"gain"){
1267 value = (float) (*attrList)[attrNum].data<
float>();
1275 unsigned int value = 0;
1276 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1277 if((*attrList)[attrNum].specification().
name() ==
"status"){
1278 value = (
unsigned int) (*attrList)[attrNum].data<
unsigned int>();
1287 unsigned int value = 0;
1288 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1289 if((*attrList)[attrNum].specification().
name() ==
"ModuleId"){
1290 value = (
unsigned int) (*attrList)[attrNum].data<
unsigned int>();
1298 unsigned int value = 0;
1299 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1300 if((*attrList)[attrNum].specification().
name() ==
"ErrorCode"){
1301 value = (
unsigned int) (*attrList)[attrNum].data<
unsigned int>();
1309 unsigned long long value = 0;
1310 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1311 if((*attrList)[attrNum].specification().
name() ==
"PprDacScanResultsTimeStamp"){
1312 value = (
unsigned long long) (*attrList)[attrNum].data<
unsigned long long>();
1320 unsigned long long value = 0;
1321 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1322 if((*attrList)[attrNum].specification().
name() ==
"PprPedestalRunResultsTimeStamp"){
1323 value = (
unsigned long long) (*attrList)[attrNum].data<
unsigned long long>();
1331 unsigned long long value = 0;
1332 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1333 if((*attrList)[attrNum].specification().
name() ==
"PprNoiseRunResultsTimeStamp"){
1334 value = (
unsigned long long) (*attrList)[attrNum].data<
unsigned long long>();
1342 unsigned long long value = 0;
1343 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1344 if((*attrList)[attrNum].specification().
name() ==
"PprTimingResultsTimeStamp"){
1345 value = (
unsigned long long) (*attrList)[attrNum].data<
unsigned long long>();
1353 unsigned long long value = 0;
1354 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1355 if((*attrList)[attrNum].specification().
name() ==
"PprSatBcidResultsTimeStamp"){
1356 value = (
unsigned long long) (*attrList)[attrNum].data<
unsigned long long>();
1364 unsigned long long value = 0;
1365 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1366 if((*attrList)[attrNum].specification().
name() ==
"PprFirFilterResultsTimeStamp"){
1367 value = (
unsigned long long) (*attrList)[attrNum].data<
unsigned long long>();
1375 unsigned long long value = 0;
1376 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1377 if((*attrList)[attrNum].specification().
name() ==
"PprLutValuesResultsTimeStamp"){
1378 value = (
unsigned long long) (*attrList)[attrNum].data<
unsigned long long>();
1387 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1388 if((*attrList)[attrNum].specification().
name() ==
"DacOffset"){
1389 value = (double) (*attrList)[attrNum].data<
double>();
1398 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1399 if((*attrList)[attrNum].specification().
name() ==
"DacSlope"){
1400 value = (double) (*attrList)[attrNum].data<
double>();
1409 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1410 if((*attrList)[attrNum].specification().
name() ==
"PedMean"){
1411 value = (double) (*attrList)[attrNum].data<
double>();
1419 unsigned int value = 0;
1420 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1421 if((*attrList)[attrNum].specification().
name() ==
"PedValue"){
1422 value = (
unsigned int) (*attrList)[attrNum].data<
unsigned int>();
1430 unsigned int value = 0;
1431 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1432 if((*attrList)[attrNum].specification().
name() ==
"FullDelayData"){
1433 value = (
unsigned int) (*attrList)[attrNum].data<
unsigned int>();
1441 unsigned short int value = 0;
1442 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1443 if((*attrList)[attrNum].specification().
name() ==
"SyncDelayBcid"){
1444 value = (
unsigned short int) (*attrList)[attrNum].data<
unsigned short int>();
1453 unsigned short int value = 0;
1454 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1455 if((*attrList)[attrNum].specification().
name() ==
"InBcidNegedge"){
1456 value = (
unsigned short int) (*attrList)[attrNum].data<
unsigned short int>();
1465 unsigned short int value = 0;
1466 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1467 if((*attrList)[attrNum].specification().
name() ==
"ExtBcidThreshold"){
1468 value = (
unsigned short int) (*attrList)[attrNum].data<
unsigned short int>();
1476 unsigned short int value = 0;
1477 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1478 if((*attrList)[attrNum].specification().
name() ==
"SatBcidThreshLow"){
1479 value = (
unsigned short int) (*attrList)[attrNum].data<
unsigned short int>();
1487 unsigned short int value = 0;
1488 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1489 if((*attrList)[attrNum].specification().
name() ==
"SatBcidThreshHigh"){
1490 value = (
unsigned short int) (*attrList)[attrNum].data<
unsigned short int>();
1498 unsigned short int value = 0;
1499 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1500 if((*attrList)[attrNum].specification().
name() ==
"SatBcidLevel"){
1501 value = (
unsigned short int) (*attrList)[attrNum].data<
unsigned short int>();
1509 unsigned short int value = 0;
1510 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1511 if((*attrList)[attrNum].specification().
name() ==
"BcidEnergyRangeLow"){
1512 value = (
unsigned short int) (*attrList)[attrNum].data<
unsigned short int>();
1520 unsigned short int value = 0;
1521 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1522 if((*attrList)[attrNum].specification().
name() ==
"BcidEnergyRangeHigh"){
1523 value = (
unsigned short int) (*attrList)[attrNum].data<
unsigned short int>();
1531 unsigned short int value = 0;
1532 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1533 if((*attrList)[attrNum].specification().
name() ==
"FirStartBit"){
1534 value = (
unsigned short int) (*attrList)[attrNum].data<
unsigned short int>();
1543 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1544 if((*attrList)[attrNum].specification().
name() ==
"FirCoeff1"){
1545 value = (short) (*attrList)[attrNum].data<
short>();
1554 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1555 if((*attrList)[attrNum].specification().
name() ==
"FirCoeff2"){
1556 value = (short) (*attrList)[attrNum].data<
short>();
1565 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1566 if((*attrList)[attrNum].specification().
name() ==
"FirCoeff3"){
1567 value = (short) (*attrList)[attrNum].data<
short>();
1576 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1577 if((*attrList)[attrNum].specification().
name() ==
"FirCoeff4"){
1578 value = (short) (*attrList)[attrNum].data<
short>();
1587 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1588 if((*attrList)[attrNum].specification().
name() ==
"FirCoeff5"){
1589 value = (short) (*attrList)[attrNum].data<
short>();
1597 unsigned short value = 0;
1598 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1599 if((*attrList)[attrNum].specification().
name() ==
"LutStrategy"){
1600 value = (
unsigned short) (*attrList)[attrNum].data<
unsigned short>();
1608 unsigned short value = 0;
1609 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1610 if((*attrList)[attrNum].specification().
name() ==
"LutOffset"){
1611 value = (
unsigned short) (*attrList)[attrNum].data<
unsigned short>();
1619 unsigned short value = 0;
1620 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1621 if((*attrList)[attrNum].specification().
name() ==
"LutSlope"){
1622 value = (
unsigned short) (*attrList)[attrNum].data<
unsigned short >();
1630 unsigned short value = 0;
1631 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1632 if((*attrList)[attrNum].specification().
name() ==
"LutNoiseCut"){
1633 value = (
unsigned short) (*attrList)[attrNum].data<
unsigned short>();
1643 unsigned int value = 0;
1644 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1645 if((*attrList)[attrNum].specification().
name() ==
"disabledBits"){
1646 value = (
unsigned int) (*attrList)[attrNum].data<
unsigned int>();
1656 unsigned int value = 0;
1657 for(
unsigned int attrNum=0;attrNum<attrList->size();attrNum++){
1658 if((*attrList)[attrNum].specification().
name() ==
"ErrorCode"){
1659 value = (
unsigned int) (*attrList)[attrNum].data<
unsigned int>();
1697 ATH_MSG_INFO(
"L1Calo L1CaloOfflineTriggerTowerTools initialize() success!");
1698 return StatusCode::SUCCESS;
1702 return StatusCode::SUCCESS;
1742 m_cells2tt->initCaloCellsTriggerTowers(*cells);
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
#define ATH_CHECK
Evaluate an expression and check for errors.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
const ServiceHandle< StoreGateSvc > & detStore() const
Container class for CaloCell.
Data object for each calorimeter readout cell.
virtual double e() const override final
get energy (data member) (synonym to method energy()
const CaloDetDescrElement * caloDDE() const
get pointer to CaloDetDescrElement (data member)
uint16_t provenance() const
get provenance (data member)
This class groups all DetDescr information related to a CaloCell.
float y_raw() const
cell y_raw
float eta_raw() const
cell eta_raw
float x_raw() const
cell x_raw
IdentifierHash onl2() const
cell online identifier 2
IdentifierHash onl1() const
cell online identifier 1
This class is a collection of AttributeLists where each one is associated with a channel number.
const_iterator end() const
const_iterator begin() const
Access to Chan/AttributeList pairs via iterators.
ChanAttrListMap::const_iterator const_iterator
virtual const float & HVScaleCorr(const HWIdentifier &id) const =0
value_type get_compact() const
Get the compact id.
This is a "hash" representation of an Identifier.
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
Encapsulates the ID of one channel of conditions data in COOL, ie the ID of a row in a table.
Trigger towers are the inputs to all other parts of the calorimeter trigger.
double eta() const
returns eta coord
const_pointer_type cptr()
Class holding bad channel problems.
bool isHalfGainL1() const
uint8_t qual1(void) const
get quality of first PMT (data member)
int gain2(void) const
get gain of second PMT
int gain1(void) const
get gain of first PMT
uint8_t qual2(void) const
get quality of second PMT (data member)
int count(std::string s, const std::string ®x)
count how many occurances of a regx are in a string
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...