Retrieve all the data.
32 {
33
34
36 const TriggerInfo* trigger_info = nullptr;
37
39 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
"No EventInfo found in SG" <<
endmsg;
40 return StatusCode::SUCCESS;
41 }
43 if (trigger_info == 0){
44 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
"No TriggerInfo in EventInfo" <<
endmsg;
45 return StatusCode::SUCCESS;
46 }
47 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
" Retrieved EventInfo and TriggerInfo" <<
endmsg;
48
49 std::string triggerInfoStrL1="0";
50 std::string triggerInfoStrL2="0";
51 std::string triggerInfoStrEF="0";
52 std::string triggerInfoStreamTag="0";
53
54
59
60
68
69
70
75 triggerInfoStrL1 = "-";
76 }
79 }
80
83 triggerInfoStrL2 = "-";
84 }
87 }
88
89 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
"EventFilterInfo " <<
endmsg;
91 triggerInfoStrEF = "-";
92 }
95 }
96
98 triggerInfoStreamTag = "-";
99 }
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";
109 }else{
110 triggerInfoStreamTag += "notObeysLumi";
111 }
112 if ( eventInfo->
event_ID()->lumi_block() ){
113 triggerInfoStreamTag += "_lumiBlock";
114 triggerInfoStreamTag +=
DataType(eventInfo->
event_ID()->lumi_block()).toString();
115 }else{
116 triggerInfoStreamTag += "_lumiBlockUnknown";
117 }
118 triggerInfoStreamTag += "-";
119 }
120
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;
125
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 ));
130
131
132
133
134
135
136 const LVL1_ROI * roi;
138 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
"No LVL1_ROI for Trigger-MissingET found in SG, setting placeholders." <<
endmsg;
139
140 energySumEtVec.push_back(
DataType( -1. ) );
141 energyExVec.push_back(
DataType( -1. ) );
142 energyEyVec.push_back(
DataType( -1. ) );
143 energyEtMissVec.push_back(
DataType( -1. ) );
144 }else{
146 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
"TriggerInfo: LVL1_ROI for EnergySum retrieved" <<
endmsg;
147
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 ) );
159
160 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
"EnergySum from LVL1_ROI: X:" << Ex <<
", Y:"
161 << Ey <<
", T:" << Et <<
", ETMiss:" << EtMiss <<
endmsg;
162 }
163 }else{
164 if (
msgLvl(MSG::DEBUG))
msg(MSG::DEBUG) <<
"TriggerInfo: LVL1_ROI for EnergySum empty !" <<
endmsg;
165
166 energySumEtVec.push_back(
DataType(
"-1" ) );
167 energyExVec.push_back(
DataType(
"-1" ) );
168 energyEyVec.push_back(
DataType(
"-1" ) );
169 energyEtMissVec.push_back(
DataType(
"-1" ) );
170 }
171 }
172
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);
186
188
189
190 std::string emptyStr="";
191 return FormatTool->AddToEvent(
dataTypeName(), emptyStr, &myDataMap);
192 }
ServiceHandle< StoreGateSvc > & evtStore()
bool msgLvl(const MSG::Level lvl) const
EventID * event_ID()
the unique identification of the event.
TriggerInfo * trigger_info()
trigger information (ptr may be NULL)
virtual std::string dataTypeName() const
Return the name of the data type.
virtual StatusCode retrieve(ToolHandle< IFormatTool > &FormatTool)
Retrieve all the data.
const energysums_type & getEnergySumROIs() const
Get all the energy sum RoIs in the event.
number_type level1TriggerType() const
get level1 trigger type
const std::vector< number_type > & eventFilterInfo() const
get event filter trigger info
number_type extendedLevel1ID() const
get extended level1 ID
number_type statusElement() const
get status element
const std::vector< number_type > & level1TriggerInfo() const
get level1 trigger info
const std::vector< StreamTag > & streamTags() const
get stream tags
const std::vector< number_type > & level2TriggerInfo() const
get level2 trigger info
std::map< std::string, DataVect > DataMap
std::vector< DataType > DataVect
Defines a map with a key and a vector of DataType objects e.g.
EventInfo_v1 EventInfo
Definition of the latest event info version.