ATLAS Offline Software
BTaggingCnvAlg.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // Gaudi/Athena include(s):
7 
8 // EDM include(s):
10 
11 // Local include(s):
12 #include "BTaggingCnvAlg.h"
13 
14 namespace xAODMaker {
15 
16  BTaggingCnvAlg::BTaggingCnvAlg( const std::string& name,
17  ISvcLocator* svcLoc )
18  : AthAlgorithm( name, svcLoc ) {
19 
20  declareProperty( "AODContainerName", m_aodContainerName = "???" );
21  declareProperty( "xAODContainerName", m_xaodContainerName = "BTaggingCollection" );
22 
23  //declareProperty( "TrackMapName", m_trackMapName="GSFTrackAssociation", "Old new Track Map Name" );
24  //declareProperty("TrackParticleContainerName" , m_trackParticleContainerName = "TrackParticleCandidate");
25 
26  }
27 
29 
30  ATH_MSG_INFO( "Initializing" );
31  ATH_MSG_INFO( "AODContainerName = " << m_aodContainerName );
32  ATH_MSG_INFO( "xAODContainerName = " << m_xaodContainerName );
33 
34  // Return gracefully:
35  return StatusCode::SUCCESS;
36  }
37 
39 
41  //const BTaggingContainer* aod = evtStore()->tryConstRetrieve<BTaggingContainer>(m_aodContainerName);
42  //if (!aod) {
43  // ATH_MSG_WARNING("No BTaggingCollection with key " << m_aodContainerName << " found. Do nothing.");
44  // return StatusCode::SUCCESS;
45  //}
46  //ATH_MSG_DEBUG( "Retrieved particles with key: " << m_aodContainerName );
47 
48  //const Rec::TrackParticleContainer* m_trackTES = evtStore()->tryConstRetrieve<Rec::TrackParticleContainer>(m_trackParticleContainerName );
49  //if( !m_trackTES ) {
50  // ATH_MSG_WARNING("No AOD TrackParticle container found in TES: StoreGate Key = " <<m_trackParticleContainerName);
51  // return StatusCode::SUCCESS;
52  //}
53  //ATH_MSG_DEBUG( "Retrieved particles with key: " << m_trackParticleContainerName );
54 
56 
57  // Create the xAOD container and its auxiliary store:
59  CHECK( evtStore()->record( xaod, m_xaodContainerName ) );
61  CHECK( evtStore()->record( aux, m_xaodContainerName + "Aux." ) );
62  xaod->setStore( aux );
63  ATH_MSG_DEBUG( "Recorded BTaggings with key: " << m_xaodContainerName );
64 
65 // // Create the xAOD objects:
66 // BTaggingContainer::const_iterator itr = aod->begin();
67 // BTaggingContainer::const_iterator end = aod->end();
68 //
69 // for( ; itr != end; ++itr ) {
70 //
71 // xAOD::BTagging* btag = new xAOD::BTagging();
72 // // Create the xAOD object:
73 // xaod->push_back( btag );
74 // // author(s)
75 // btag->setAuthor( (*itr)->author() );
76 // //OQ
77 // btag->setOQ( (*itr)->isgoodoq() );
78 // // charge
79 // btag->setCharge( (*itr)->charge() );
80 //
87 //
88 // }
89 
90  // Return gracefully:
91  return StatusCode::SUCCESS;
92  }
93 
94  //void BTaggingCnvAlg::setParameters(const Analysis::BTagging& aodel, xAOD::BTagging& xaodel){
95  // // We're not doing all AOD parameters here because some are dropped, and some are moved elsewhere.
96  // checkAndSetParameter(egammaParameters::e011 , xAOD::EgammaParameters::e011 , aodel, xaodel);
97  // checkAndSetParameter(egammaParameters::e033 , xAOD::EgammaParameters::e033 , aodel, xaodel);
98  // checkAndSetParameter(egammaParameters::e132 , xAOD::EgammaParameters::e132 , aodel, xaodel);
99  // checkAndSetParameter(egammaParameters::e1152 , xAOD::EgammaParameters::e1152 , aodel, xaodel);
100  // checkAndSetParameter(egammaParameters::ethad1 , xAOD::EgammaParameters::ethad1 , aodel, xaodel);
101  // checkAndSetParameter(egammaParameters::ehad1 , xAOD::EgammaParameters::ehad1 , aodel, xaodel);
102  // checkAndSetParameter(egammaParameters::f1 , xAOD::EgammaParameters::f1 , aodel, xaodel);
103  // checkAndSetParameter(egammaParameters::f3 , xAOD::EgammaParameters::f3 , aodel, xaodel);
104  // checkAndSetParameter(egammaParameters::f1core , xAOD::EgammaParameters::f1core , aodel, xaodel);
105  // checkAndSetParameter(egammaParameters::f3core , xAOD::EgammaParameters::f3core , aodel, xaodel);
106  // checkAndSetParameter(egammaParameters::e233 , xAOD::EgammaParameters::e233 , aodel, xaodel);
107  // checkAndSetParameter(egammaParameters::e235 , xAOD::EgammaParameters::e235 , aodel, xaodel);
108  // checkAndSetParameter(egammaParameters::e255 , xAOD::EgammaParameters::e255 , aodel, xaodel);
109  // checkAndSetParameter(egammaParameters::e237 , xAOD::EgammaParameters::e237 , aodel, xaodel);
110  // checkAndSetParameter(egammaParameters::e277 , xAOD::EgammaParameters::e277 , aodel, xaodel);
111  // checkAndSetParameter(egammaParameters::e333 , xAOD::EgammaParameters::e333 , aodel, xaodel);
112  // checkAndSetParameter(egammaParameters::e335 , xAOD::EgammaParameters::e335 , aodel, xaodel);
113  // checkAndSetParameter(egammaParameters::e337 , xAOD::EgammaParameters::e337 , aodel, xaodel);
114  // checkAndSetParameter(egammaParameters::e377 , xAOD::EgammaParameters::e377 , aodel, xaodel);
115  // checkAndSetParameter(egammaParameters::weta1 , xAOD::EgammaParameters::weta1 , aodel, xaodel);
116  // checkAndSetParameter(egammaParameters::weta2 , xAOD::EgammaParameters::weta2 , aodel, xaodel);
117  // checkAndSetParameter(egammaParameters::e2ts1 , xAOD::EgammaParameters::e2ts1 , aodel, xaodel);
118  // checkAndSetParameter(egammaParameters::e2tsts1 , xAOD::EgammaParameters::e2tsts1 , aodel, xaodel);
119  // checkAndSetParameter(egammaParameters::fracs1 , xAOD::EgammaParameters::fracs1 , aodel, xaodel);
120  // checkAndSetParameter(egammaParameters::widths1 , xAOD::EgammaParameters::widths1 , aodel, xaodel);
121  // checkAndSetParameter(egammaParameters::widths2 , xAOD::EgammaParameters::widths2 , aodel, xaodel);
122  // checkAndSetParameter(egammaParameters::poscs1 , xAOD::EgammaParameters::poscs1 , aodel, xaodel);
123  // checkAndSetParameter(egammaParameters::poscs2 , xAOD::EgammaParameters::poscs2 , aodel, xaodel);
124  // checkAndSetParameter(egammaParameters::asy1 , xAOD::EgammaParameters::asy1 , aodel, xaodel);
125  // checkAndSetParameter(egammaParameters::pos , xAOD::EgammaParameters::pos , aodel, xaodel);
126  // checkAndSetParameter(egammaParameters::pos7 , xAOD::EgammaParameters::pos7 , aodel, xaodel);
127  // checkAndSetParameter(egammaParameters::barys1 , xAOD::EgammaParameters::barys1 , aodel, xaodel);
128  // checkAndSetParameter(egammaParameters::wtots1 , xAOD::EgammaParameters::wtots1 , aodel, xaodel);
129  // checkAndSetParameter(egammaParameters::emins1 , xAOD::EgammaParameters::emins1 , aodel, xaodel);
130  // checkAndSetParameter(egammaParameters::emaxs1 , xAOD::EgammaParameters::emaxs1 , aodel, xaodel);
131  // checkAndSetParameter(egammaParameters::r33over37allcalo , xAOD::EgammaParameters::r33over37allcalo, aodel, xaodel);
132  // checkAndSetParameter(egammaParameters::ecore , xAOD::EgammaParameters::ecore , aodel, xaodel);
133  // checkAndSetParameter(egammaParameters::zvertex , xAOD::EgammaParameters::zvertex , aodel, xaodel);
134  // checkAndSetParameter(egammaParameters::errz , xAOD::EgammaParameters::errz , aodel, xaodel);
135  // checkAndSetParameter(egammaParameters::etap , xAOD::EgammaParameters::etap , aodel, xaodel);
136  // checkAndSetParameter(egammaParameters::depth , xAOD::EgammaParameters::depth , aodel, xaodel);
137  //}
138 
139  //void BTaggingCnvAlg::checkAndSetParameter(egammaParameters::ParamDef aodParameter,
140  // xAOD::EgammaParameters::ShowerShapeType xaodParameter,
141  // const Analysis::BTagging& aodel, xAOD::BTagging& xaodel){
142  // double result = aodel.detailValue(aodParameter);
143  // float parameter = static_cast<float>(result);
144  // xaodel.setShowerShapeValue(parameter, xaodParameter);
145  //}
146 
147  //void BTaggingCnvAlg::setLinks(const Analysis::BTagging& aodel, xAOD::BTagging& xaodel) const {
148  // // Need to reset links from old CaloCluster to xAOD::CaloCluster
149  // ElementLink<xAOD::CaloClusterContainer> newclusterElementLink;
150  // if( aodel.author() & egammaParameters::AuthorBTagging ){
151  // newclusterElementLink.resetWithKeyAndIndex( m_caloClusters, aodel.clusterElementLink().index() );
152  //
153  // std::vector< ElementLink< xAOD::TrackParticleContainer > > linksToTracks;
154  // for(unsigned int i(0); i<aodel.nTrackParticles(); ++i){
155  // linksToTracks.push_back( getNewLink(aodel.trackParticleElementLink(i), m_inDetTrackParticlesGSF) );
156  // }
157  // xaodel.setTrackParticles( linksToTracks );
158  //
159  // }
160  // else if ( aodel.author() & egammaParameters::AuthorSofte ) {
161  // newclusterElementLink.resetWithKeyAndIndex( m_caloClustersSofte, aodel.clusterElementLink().index() );
162  //
163  // //softe do not use GSF Tracks
164  // std::vector< ElementLink< xAOD::TrackParticleContainer > > linksToTracks;
165  // for(unsigned int i(0); i<aodel.nTrackParticles(); ++i){
166  // linksToTracks.push_back( getNewLink(aodel.trackParticleElementLink(i), m_inDetTrackParticles) );
167  // }
168  // xaodel.setTrackParticles( linksToTracks );
169  //
170  // }
171  // else{
172  // newclusterElementLink.resetWithKeyAndIndex( m_caloClustersFrwd, aodel.clusterElementLink().index() );
173  // }
174  //
175  // std::vector< ElementLink< xAOD::CaloClusterContainer > > linksToClusters;
176  // linksToClusters.push_back(newclusterElementLink);
177  // xaodel.setCaloClusters(linksToClusters);
178  //}
179 
180  //ElementLink<xAOD::TrackParticleContainer> BTaggingCnvAlg::getNewLink(const ElementLink<Rec::TrackParticleContainer>& oldLink,
181  // const std::string& name) const{
182  // ElementLink<xAOD::TrackParticleContainer> newLink;
183  // newLink.resetWithKeyAndIndex( name, oldLink.index() );
184  // return newLink;
185  //}
186 
187 } // namespace xAODMaker
188 
xAOD::BTaggingAuxContainer
BTaggingAuxContainer_v2 BTaggingAuxContainer
Definition of the current BTagging auxiliary container.
Definition: BTaggingAuxContainer.h:22
xAOD::BTaggingAuxContainer_v2
Definition: BTaggingAuxContainer_v2.h:18
xAODMaker::BTaggingCnvAlg::m_xaodContainerName
std::string m_xaodContainerName
The key for the output xAOD::BTaggingContainer.
Definition: BTaggingCnvAlg.h:67
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
xAODMaker::BTaggingCnvAlg::m_aodContainerName
std::string m_aodContainerName
Fills in the SV0 information.
Definition: BTaggingCnvAlg.h:64
xAODMaker
Definition: StoreGateSvc.h:72
AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
BTaggingAuxContainer.h
xAOD::BTaggingContainer
BTaggingContainer_v1 BTaggingContainer
Definition of the current "BTagging container version".
Definition: BTaggingContainer.h:17
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
AthAlgorithm
Definition: AthAlgorithm.h:47
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
errorcheck.h
Helpers for checking error return status codes and reporting errors.
BTaggingCnvAlg.h
xAODMaker::BTaggingCnvAlg::execute
virtual StatusCode execute()
Function executing the algorithm.
Definition: BTaggingCnvAlg.cxx:38
xAODMaker::BTaggingCnvAlg::BTaggingCnvAlg
BTaggingCnvAlg(const std::string &name, ISvcLocator *svcLoc)
Regular algorithm constructor.
Definition: BTaggingCnvAlg.cxx:16
xAODMaker::BTaggingCnvAlg::initialize
virtual StatusCode initialize()
Function initialising the algorithm.
Definition: BTaggingCnvAlg.cxx:28