42 declareInterface<IDataRetriever>(
this);
50 "Collection to be first in output, shown in Atlantis without switching");
52 "Collection to be first in output, shown in Atlantis without switching");
54 "Other collections to be retrieved. If list left empty, all available retrieved");
74 if (
sc.isFailure() ) {
94 std::string::size_type position =
iterator.key().find(
"HLT",0);
110 std::vector<std::string>::const_iterator keyIter;
112 if ( !
evtStore()->contains<xAOD::JetContainer>( (*keyIter) ) ){
continue; }
114 if (!
sc.isFailure()) {
117 if ( FormatTool->AddToEvent(
dataTypeName(), (*keyIter)+
"_xAOD", &
data).isFailure()){
126 return StatusCode::SUCCESS;
158 DataVect clusterKey; clusterKey.reserve(jetCont->
size());
160 DataVect trackContKey; trackContKey.reserve(jetCont->
size());
161 DataVect trackLinkCount; trackLinkCount.reserve(jetCont->
size());
176 for (; jetItr != jetItrE; ++jetItr) {
178 ATH_MSG_DEBUG(
" Jet #" <<
counter++ <<
" : eta = " << (*jetItr)->eta() <<
", phi = " << (*jetItr)->phi() <<
", pt = " << (*jetItr)->pt() );
182 std::vector<std::string> tempCellID;
183 std::vector<float> clusterKey;
184 std::vector<int> tempTrackKey;
185 std::vector<std::string> tempTrackContKey;
187 for(
size_t j = 0; j < ( *jetItr )->numConstituents(); ++j ) {
190 ( *jetItr )->rawConstituent( j ) );
201 if (
std::find(tempCellID.begin(), tempCellID.end(),
std::to_string(
cc->caloDDE()->identify().get_compact()))!=tempCellID.end()){
204 cellID.push_back(
DataType(
cc->caloDDE()->identify().get_compact()));
205 tempCellID.push_back(
std::to_string(
cc->caloDDE()->identify().get_compact()));}
221 if( ghosttracks.empty() ) {
223 trackLinkCount.push_back(
DataType(0.));
226 for (
size_t i=0;
i< ghosttracks.size();
i++) {
235 << ghosttracks[
i]->
d0() <<
", pt = "
236 << ghosttracks[
i]->
pt() );
238 trackLinkCount.push_back(
DataType(ghosttracks.size()));
245 for(
size_t j = 0; j < ( *jetItr )->numConstituents(); ++j ) {
260 if(!isCalo){trackLinkCount.push_back(
DataType(trackcounter));}
278 bTagName.push_back(
DataType(
"default" ));
286 bTagValue.push_back( btag1 );
287 bTagName.push_back(
DataType(
"MV2c10"));
288 bTagValue.push_back(btag1);
289 bTagName.push_back(
DataType(
"IP3D" ));
291 bTagValue.push_back( btag2 );
292 bTagName.push_back(
DataType(
"SV1" ));
294 bTagValue.push_back( btag3 );
296 ATH_MSG_VERBOSE(
" Jet #" <<
counter <<
"; BTagging: MV2c10: " << btag1 <<
", IP3D: " << btag2 <<
", SV1: " << btag3 );
317 std::vector<float> jvfread;
324 jvf.push_back(
DataType( jvfread[0] ));
327 isGood.push_back(
DataType( -1111. ));
331 isBad.push_back(
DataType( -1111. ));
332 isUgly.push_back(
DataType( -1111. ));
334 float emfracread = 0;
339 emfrac.push_back(
DataType( emfracread ));
342 else { emfrac.push_back(
DataType( 0. ));
353 DataMap[
"bTagName multiple=\"4\""] = bTagName;
354 DataMap[
"bTagValue multiple=\"4\""] = bTagValue;
367 if ((trackKey.size()) != 0){
368 double NTracksPerVertex = trackKey.size()*1./jetCont->
size();
369 std::string
tag =
"trackIndex multiple=\"" +
DataType(NTracksPerVertex).toString()+
"\"";
371 tag =
"trackKey multiple=\"" +
DataType(NTracksPerVertex).toString()+
"\"";
375 if ((clusterID.size())!=0){
376 std::string
tag =
"clusterIndex multiple=\"" +
DataType(clusterID.size()).toString()+
"\"";
377 double NCellsPerJet = cellID.size()*1./jetCont->
size();
378 tag =
"cells multiple=\"" +
DataType(NCellsPerJet).toString()+
"\"";
382 DataMap[
"trackLinkCount"] = trackLinkCount;