69 DataVect cotTheta; cotTheta.reserve(TrackParticleCont->
size());
71 DataVect nBLayerHits; nBLayerHits.reserve(TrackParticleCont->
size());
72 DataVect nPixHits; nPixHits.reserve(TrackParticleCont->
size());
73 DataVect nSCTHits; nSCTHits.reserve(TrackParticleCont->
size());
74 DataVect nTRTHits; nTRTHits.reserve(TrackParticleCont->
size());
82 double countHits = 0.;
83 std::string labelStr =
"unknownHits";
85 for (; TrackParticleItr != TrackParticleItrE; ++TrackParticleItr) {
87 ATH_MSG_VERBOSE(
" TrackParticle #" << counter++ <<
" : d0 = " << (*TrackParticleItr)->d0() <<
", z0 = "
88 << (*TrackParticleItr)->z0() <<
", pt[GeV] = " << (*TrackParticleItr)->pt()*(1./CLHEP::GeV)
89 <<
", phi = " << (*TrackParticleItr)->phi()
90 <<
", qOverP = " << (*TrackParticleItr)->qOverP()
91 <<
", abs(qOverP) = " << fabs((*TrackParticleItr)->qOverP()));
95 uint8_t numberOfBLayerHits=0;
96 uint8_t numberOfBLayerHits_tmp=0;
98 numberOfBLayerHits += numberOfBLayerHits_tmp;
100 uint8_t numberOfPixelHits = 0;
101 uint8_t numberOfPixelHits_tmp = 0;
103 numberOfPixelHits += numberOfPixelHits_tmp;
105 uint8_t numberOfTRTHits = 0;
106 uint8_t numberOfTRTHits_tmp = 0;
108 numberOfTRTHits += numberOfTRTHits_tmp;
110 uint8_t numberOfSCTHits = 0;
111 uint8_t numberOfSCTHits_tmp = 0;
113 numberOfSCTHits += numberOfSCTHits_tmp;
115 labelStr =
"_PixelHits"+
DataType( (
double)numberOfPixelHits ).toString()
116 +
"_SCTHits"+
DataType( (
double)numberOfSCTHits ).toString()
117 +
"_BLayerHits"+
DataType( (
double)numberOfBLayerHits ).toString()
118 +
"_TRTHits"+
DataType( (
double)numberOfTRTHits ).toString() ;
120 countHits = (double)numberOfBLayerHits + (
double)numberOfPixelHits
121 + (double)numberOfSCTHits + (
double)numberOfTRTHits;
124 <<
" BLayer hits: " << (
double)numberOfBLayerHits
125 <<
", Pixel hits: " << (
double)numberOfPixelHits
126 <<
", SCT hits: " << (
double)numberOfSCTHits
127 <<
", TRT hits: " << (
double)numberOfTRTHits
128 <<
", Total hits: " << countHits
129 <<
"; Label: " << labelStr);
131 nBLayerHits.emplace_back(
DataType( (
double)numberOfBLayerHits ));
132 nPixHits.emplace_back(
DataType( (
double)numberOfPixelHits ));
133 nSCTHits.emplace_back(
DataType( (
double)numberOfSCTHits ));
134 nTRTHits.emplace_back(
DataType( (
double)numberOfTRTHits ));
137 d0.emplace_back(
DataType((*TrackParticleItr)->d0()/CLHEP::cm));
138 z0.emplace_back(
DataType((*TrackParticleItr)->z0()/CLHEP::cm));
139 phi0.emplace_back(
DataType((*TrackParticleItr)->phi()));
142 myQOverP = (*TrackParticleItr)->qOverP() ;
143 if (fabs(myQOverP) != myQOverP){
148 pt.emplace_back(
DataType((
charge*(*TrackParticleItr)->pt() )/CLHEP::GeV));
150 if ( (*TrackParticleItr)->theta() == 0.) {
151 cotTheta.emplace_back(
DataType(9999.));
153 cotTheta.emplace_back(
DataType(1./tan((*TrackParticleItr)->theta())));
162 DataMap[
"cotTheta"] = cotTheta;
164 DataMap[
"nBLayerHits"] = nBLayerHits;
165 DataMap[
"nPixHits"] = nPixHits;
166 DataMap[
"nSCTHits"] = nSCTHits;
167 DataMap[
"nTRTHits"] = nTRTHits;
SG::ReadHandleKeyArray< xAOD::TrackParticleContainer > m_keys
const DataMap getData(const xAOD::TrackParticleContainer *)
Puts the variables into a DataMap.
virtual std::string dataTypeName() const
Return the name of the data type that is generated by this retriever.
xAODTrackParticleRetriever(const std::string &type, const std::string &name, const IInterface *parent)
Standard Constructor.
virtual StatusCode retrieve(ToolHandle< IFormatTool > &FormatTool)
For each TrackParticle collections retrieve basic parameters.