18#define EVTCOLLECTION_WRITE_CPP
40 NTuplePtr nt( m_evtTupleSvc.get(),
"/NTUPLES/EvtColl/Dir1/Dir2/Dir3/Collection" );
42 nt = m_evtTupleSvc->book(
"/NTUPLES/EvtColl/Dir1/Dir2/Dir3/Collection", CLID_ColumnWiseTuple,
"Hello World" );
45 status = nt->addItem(
"Ntrack", m_ntrkColl, 0, 5000 );
46 status = nt->addItem(
"Energy", m_eneColl );
47 status = nt->addItem(
"Track", m_trackItem );
48 status = nt->addItem(
"Addr", m_evtAddrColl );
49 status = nt->addItem(
"TrkMom", m_ntrkColl, m_trkMom );
50 status = nt->addItem(
"TrkMomFix", 100, m_trkMomFixed );
51 status = nt->addItem(
"Address", m_evtAddrCollEx );
53 return StatusCode::FAILURE;
56 status = nt->item(
"Ntrack", m_ntrkColl );
57 status = nt->item(
"Energy", m_eneColl );
58 status = nt->item(
"TrkMom", m_trkMom );
59 status = nt->item(
"Track", m_trackItem );
60 status = nt->item(
"TrkMomFix", m_trkMomFixed );
61 status = nt->item(
"Addr", m_evtAddrColl );
62 status = nt->item(
"Address", m_evtAddrCollEx );
74 int evt_num = evt->event();
86 for (
const auto& i : *trkCont ) {
87 float p = sqrt( i->px() * i->px() + i->py() * i->py() + i->pz() * i->pz() );
94 if ( evt_num < 10 || evt_num % 500 == 0 ) {
96 log <<
MSG::INFO <<
"================ EVENT:" << evt->event() <<
" RUN:" << evt->run()
99 log <<
" FAILED selection (<" <<
m_nMCcut.value() <<
") ============" <<
endmsg;
101 log <<
" PASSED selection (>=" <<
m_nMCcut.value() <<
") ============" <<
endmsg;
102 return m_evtTupleSvc->writeRecord(
"/NTUPLES/EvtColl/Dir1/Dir2/Dir3/Collection" );
108 error() <<
"Unable to retrieve Event Header object" <<
endmsg;
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
#define DECLARE_COMPONENT(type)
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
MsgStream & msgStream() const
Return an uninitialized MsgStream.
User example objects: EvtCollectionWrite.
ServiceHandle< INTupleSvc > m_evtTupleSvc
StatusCode execute() override
Event callback.
NTuple::Item< IOpaqueAddress * > m_evtAddrCollEx
Gaudi::Property< int > m_nMCcut
StatusCode initialize() override
Initialize.
NTuple::Item< int > m_ntrkColl
NTuple::Array< float > m_trkMom
NTuple::Item< Gaudi::TestSuite::MyTrack * > m_trackItem
NTuple::Item< IOpaqueAddress * > m_evtAddrColl
NTuple::Array< float > m_trkMomFixed
NTuple::Item< float > m_eneColl
SmartIF< IDataProviderSvc > & eventSvc() const
The standard event data service.
A small class used to access easily (and efficiently) data items residing in data stores.
This class is used for returning status codes from appropriate routines.
constexpr static const auto SUCCESS
constexpr static const auto FAILURE