6 #include "AthLinks/ElementLink.h"
8 #include "GaudiKernel/MsgStream.h"
9 #include "GaudiKernel/DataSvc.h"
10 #include "GaudiKernel/PhysicalConstants.h"
30 xAODTruthReader::xAODTruthReader(
const string&
name, ISvcLocator* svcLoc)
42 return StatusCode::SUCCESS;
51 if (xTruthEventContainer.
isValid()) {
56 return StatusCode::FAILURE;
59 ATH_MSG_INFO(
"Number of signal events in this Athena event: " << xTruthEventContainer->
size());
69 if (vtx)
ATH_MSG_INFO(
"Poistion = (" << vtx->
x() <<
", " << vtx->
y() <<
", " << vtx->
z() <<
")");
97 return StatusCode::SUCCESS;
104 cout <<
"--------------------------------------------------------------------------------\n";
105 cout <<
"GenEvent: #" <<
"NNN" <<
"\n";
106 cout <<
" Entries this event: " <<
event->nTruthVertices() <<
" vertices, " <<
event->nTruthParticles() <<
" particles.\n";
107 cout <<
" GenParticle Legend\n";
108 if (do4momPtEtaPhi) cout <<
" Barcode PDG ID ( pt, eta, phi, E ) Stat DecayVtx\n";
109 else cout <<
" Barcode PDG ID ( Px, Py, Pz, E ) Stat DecayVtx\n";
110 cout <<
"--------------------------------------------------------------------------------\n";
111 for (
unsigned int iv = 0; iv <
event->nTruthVertices(); ++iv) {
114 cout <<
"--------------------------------------------------------------------------------\n";
120 std::ios::fmtflags
f( cout.flags() );
122 cout <<
"TruthVertex:";
133 cout.setf(ios::scientific, ios::floatfield);
134 cout.setf(ios_base::showpos);
135 cout <<
vertex->x() <<
",";
138 cout <<
vertex->y() <<
",";
141 cout <<
vertex->z() <<
",";
145 cout.setf(ios::fmtflags(0), ios::floatfield);
146 cout.unsetf(ios_base::showpos);
154 cout <<
" (X,cT): 0";
170 cout.setf(ios::scientific, ios::floatfield);
171 cout.setf(ios_base::showpos);
182 cout.setf(ios::fmtflags(0), ios::floatfield);
183 cout.unsetf(ios_base::showpos);
196 for (
unsigned int iPIn = 0; iPIn<
vertex->nIncomingParticles(); ++iPIn) {
200 cout <<
vertex->nIncomingParticles();
204 for (
unsigned int iPOut = 0; iPOut<
vertex->nOutgoingParticles(); ++iPOut) {
208 cout <<
vertex->nOutgoingParticles();
219 std::ios::fmtflags
f( cout.flags() );
228 cout.setf(ios::scientific, ios::floatfield);
229 cout.setf(ios_base::showpos);
230 if (do4momPtEtaPhi) cout <<
particle->pt() <<
",";
234 if (do4momPtEtaPhi) cout <<
particle->eta() <<
",";
238 if (do4momPtEtaPhi) cout <<
particle->phi() <<
",";
243 cout.setf(ios::fmtflags(0), ios::floatfield);
244 cout.unsetf(ios_base::showpos);