39 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
"No EventInfo found in SG" <<
endmsg;
40 return StatusCode::SUCCESS;
43 if (trigger_info == 0){
44 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
"No TriggerInfo in EventInfo" <<
endmsg;
45 return StatusCode::SUCCESS;
47 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
" Retrieved EventInfo and TriggerInfo" <<
endmsg;
49 std::string triggerInfoStrL1=
"0";
50 std::string triggerInfoStrL2=
"0";
51 std::string triggerInfoStrEF=
"0";
52 std::string triggerInfoStreamTag=
"0";
75 triggerInfoStrL1 =
"-";
83 triggerInfoStrL2 =
"-";
89 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
"EventFilterInfo " <<
endmsg;
91 triggerInfoStrEF =
"-";
93 for (
unsigned int i = 0; i < trigger_info->
eventFilterInfo().size(); ++i) {
98 triggerInfoStreamTag =
"-";
100 for (
unsigned int i = 0; i < trigger_info->
streamTags().size(); ++i) {
101 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
" i " << i <<
" name " << trigger_info->
streamTags()[i].name()
102 <<
" type " << trigger_info->
streamTags()[i].type()
103 <<
" ObeysLumi " << trigger_info->
streamTags()[i].obeysLumiblock();
105 triggerInfoStreamTag += trigger_info->
streamTags()[i].name() +
"_" +
107 if ( trigger_info->
streamTags()[i].obeysLumiblock() ){
108 triggerInfoStreamTag +=
"ObeysLumi";
110 triggerInfoStreamTag +=
"notObeysLumi";
112 if ( eventInfo->
event_ID()->lumi_block() ){
113 triggerInfoStreamTag +=
"_lumiBlock";
114 triggerInfoStreamTag +=
DataType(eventInfo->
event_ID()->lumi_block()).toString();
116 triggerInfoStreamTag +=
"_lumiBlockUnknown";
118 triggerInfoStreamTag +=
"-";
121 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
"trigInfoL1: " << triggerInfoStrL1 <<
endmsg;
122 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
"trigInfoL2: " << triggerInfoStrL2 <<
endmsg;
123 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
"trigInfoEF: " << triggerInfoStrEF <<
endmsg;
124 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
"triggerInfoStreamTag: " << triggerInfoStreamTag <<
endmsg;
126 trigInfoL1Vec.emplace_back(std::move(triggerInfoStrL1));
127 trigInfoL2Vec.emplace_back(std::move(triggerInfoStrL2 ));
128 trigInfoEFVec.emplace_back(std::move( triggerInfoStrEF ));
129 trigInfoStreamTagVec.emplace_back(std::move( triggerInfoStreamTag ));
138 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
"No LVL1_ROI for Trigger-MissingET found in SG, setting placeholders." <<
endmsg;
140 energySumEtVec.push_back(
DataType( -1. ) );
141 energyExVec.push_back(
DataType( -1. ) );
142 energyEyVec.push_back(
DataType( -1. ) );
143 energyEtMissVec.push_back(
DataType( -1. ) );
146 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
"TriggerInfo: LVL1_ROI for EnergySum retrieved" <<
endmsg;
148 LVL1_ROI::energysums_type::const_iterator itES = (roi->
getEnergySumROIs()).begin();
149 LVL1_ROI::energysums_type::const_iterator itESe = (roi->
getEnergySumROIs()).end();
150 for (; itES != itESe; ++itES){
151 float Et = itES->getEnergyT()/CLHEP::GeV;
152 float Ex = itES->getEnergyX()/CLHEP::GeV;
153 float Ey = itES->getEnergyY()/CLHEP::GeV;
154 energySumEtVec.push_back(
DataType( Et ) );
155 energyExVec.push_back(
DataType( Ex ) );
156 energyEyVec.push_back(
DataType( Ey ) );
157 float EtMiss =
static_cast<long>(sqrt(
static_cast<double>(Ex*Ex + Ey*Ey)));
158 energyEtMissVec.push_back(
DataType( EtMiss ) );
160 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
"EnergySum from LVL1_ROI: X:" << Ex <<
", Y:"
161 << Ey <<
", T:" << Et <<
", ETMiss:" << EtMiss <<
endmsg;
164 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
"TriggerInfo: LVL1_ROI for EnergySum empty !" <<
endmsg;
166 energySumEtVec.push_back(
DataType(
"-1" ) );
167 energyExVec.push_back(
DataType(
"-1" ) );
168 energyEyVec.push_back(
DataType(
"-1" ) );
169 energyEtMissVec.push_back(
DataType(
"-1" ) );
174 const int nEntries = trigInfoStatusVec.size();
175 myDataMap[
"energySumEt"] = std::move(energySumEtVec);
176 myDataMap[
"energyEx"] = std::move(energyExVec);
177 myDataMap[
"energyEy"] = std::move(energyEyVec);
178 myDataMap[
"energyEtMiss"] = std::move(energyEtMissVec);
179 myDataMap[
"trigInfoStatus"] = std::move(trigInfoStatusVec);
180 myDataMap[
"trigInfoExtL1ID"] = std::move(trigInfoExtL1IDVec);
181 myDataMap[
"trigInfoLvl1Type"] = std::move(trigInfoLvl1TypeVec);
182 myDataMap[
"trigInfoL1"] = std::move(trigInfoL1Vec);
183 myDataMap[
"trigInfoL2"] = std::move(trigInfoL2Vec);
184 myDataMap[
"trigInfoEF"] = std::move(trigInfoEFVec);
185 myDataMap[
"trigInfoStreamTag"] = std::move(trigInfoStreamTagVec);
190 std::string emptyStr=
"";
191 return FormatTool->AddToEvent(
dataTypeName(), emptyStr, &myDataMap);