34 declareInterface<IDataRetriever>(
this);
37 "Collection to be first in output, shown in Atlantis without switching");
39 "Other collections to be retrieved. If list left empty, all available retrieved");
56 if (
sc.isFailure() ) {
70 if (
msgLvl(MSG::WARNING))
msg(MSG::WARNING) <<
71 "Unable to retrieve iterator for xAOD Electron collection" <<
endmsg;
80 if (
msgLvl(MSG::WARNING))
msg(MSG::WARNING) <<
"Collection " <<
iterator.key() <<
" not found in SG " <<
endmsg;
88 std::vector<std::string>::const_iterator keyIter;
91 if (!
sc.isFailure()) {
95 if (
msgLvl(MSG::WARNING))
msg(MSG::WARNING) <<
"Collection " << (*keyIter) <<
" not found in SG " <<
endmsg;
104 return StatusCode::SUCCESS;
125 DataVect isEMString; isEMString.reserve(elCont->
size());
134 for (; elItr != elItrE; ++elItr) {
136 std::string electronAuthor =
"";
137 std::string electronIsEMString =
"none";
138 std::string electronLabel =
"";
139 phi.push_back(
DataType((*elItr)->phi()));
140 eta.push_back(
DataType((*elItr)->eta()));
145 if ((*elItr)->trackParticle()){
146 pdgId.push_back(
DataType( -11.*(*elItr)->trackParticle()->charge() ));
158 <<
", author = " << (*elItr)->author()
167 bool passesTight(
false);
168 bool passesMedium(
false);
169 bool passesLoose(
false);
170 const bool tightSelectionExists = (*elItr)->passSelection(passesTight,
"Tight");
172 <<
" and passes? " << passesTight <<
endmsg;
173 const bool mediumSelectionExists = (*elItr)->passSelection(passesMedium,
"Medium");
175 <<
" and passes? " << passesMedium <<
endmsg;
176 const bool looseSelectionExists = (*elItr)->passSelection(passesLoose,
"Loose");
178 <<
" and passes? " << passesLoose <<
endmsg;
180 electronAuthor =
"author"+
DataType( (*elItr)->author() ).toString();
181 electronLabel = electronAuthor;
182 if (( (*elItr)->author()) == 0){ electronAuthor =
"unknown"; electronLabel +=
"_unknown"; }
183 if (( (*elItr)->author()) == 8){ electronAuthor =
"forward"; electronLabel +=
"_forward"; }
184 if (( (*elItr)->author()) == 2){ electronAuthor =
"softe"; electronLabel +=
"_softe"; }
185 if (( (*elItr)->author()) == 1){ electronAuthor =
"egamma"; electronLabel +=
"_egamma"; }
188 electronLabel +=
"_Loose";
189 electronIsEMString =
"Loose";
192 electronLabel +=
"_Medium";
193 electronIsEMString =
"Medium";
196 electronLabel +=
"_Tight";
197 electronIsEMString =
"Tight";
201 isEMString.push_back(
DataType( electronIsEMString ) );
212 DataMap[
"isEMString"] = isEMString;