12 #include "GaudiKernel/INTupleSvc.h"
13 #include "GaudiKernel/ISvcLocator.h"
14 #include "GaudiKernel/SmartDataPtr.h"
21 m_outputNtuplePath(
"/NTUPLES/FILE1/EnergyLossMonitor/SingleTrackEnergyLoss"),
22 m_outputNtupleDescription(
"Output of the Trk::EnergyLossMonitor AlgTool"),
25 declareInterface<IEnergyLossMonitor>(
this);
38 return StatusCode::FAILURE;
40 NTuplePtr ntr(m_ntupleSvc, m_outputNtuplePath);
42 ntr = m_ntupleSvc->book(m_outputNtuplePath, CLID_ColumnWiseTuple, m_outputNtupleDescription);
44 sc = ntr->addItem(
"Steps", m_steps, 0, 5000);
46 sc = ntr->addItem(
"InitialP", m_initialP, 0., 1000000.);
47 sc = ntr->addItem(
"InitialE", m_initialE, 0., 1000000.);
48 sc = ntr->addItem(
"InitialEta", m_initialEta, -4., 4.);
49 sc = ntr->addItem(
"InitialPhi", m_initialPhi, -4., 4.);
51 sc = ntr->addItem(
"Eta", m_steps, m_eta);
52 sc = ntr->addItem(
"Phi", m_steps, m_phi);
54 sc = ntr->addItem(
"Energy", m_steps, m_E);
55 sc = ntr->addItem(
"Momentum", m_steps, m_p);
56 sc = ntr->addItem(
"Eta", m_steps, m_eta);
57 sc = ntr->addItem(
"Phi", m_steps, m_phi);
58 sc = ntr->addItem(
"MaterialHitX", m_steps, m_hitX);
59 sc = ntr->addItem(
"MaterialHitY", m_steps, m_hitY);
60 sc = ntr->addItem(
"MaterialHitZ", m_steps, m_hitZ);
61 sc = ntr->addItem(
"MaterialHitR", m_steps, m_hitR);
65 return StatusCode::FAILURE;
76 return StatusCode::SUCCESS;
98 if (
pos.mag() > 0.01 && m_currentStep < 5000){
101 m_p[m_currentStep] =
p;
102 m_eta[m_currentStep] =
mom.eta();
103 m_phi[m_currentStep] =
mom.phi();
104 m_hitX[m_currentStep] =
pos.x();
105 m_hitY[m_currentStep] =
pos.y();
106 m_hitZ[m_currentStep] =
pos.z();
107 m_hitR[m_currentStep] =
pos.perp();
114 m_steps = m_currentStep;
115 StatusCode sc = m_ntupleSvc->writeRecord(m_outputNtuplePath);