ATLAS Offline Software
Loading...
Searching...
No Matches
TileCalibHitNtuple.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7// Atlas includes
8#include "GaudiKernel/MsgStream.h"
9#include "Gaudi/Property.h"
11
12// ROOT includes
13#include "TTree.h"
14
15static const InterfaceID IID_ITileCalibHitNtuple("TileCalibHitNtuple", 1, 0);
16
17const InterfaceID&
21
25TileCalibHitNtuple::TileCalibHitNtuple(const std::string& type, const std::string& name, const IInterface* parent)
26 : AthAlgTool(type, name, parent),
27 m_thistSvc("THistSvc", name),
28 m_streamName("AANT"),
29 m_ntupleID("TileCalibHit"),
30 m_treeSize(16000000000LL),
31 m_ntuplePtr(0),
32 m_level(0),
33 m_det(0),
34 m_mod(0),
35 m_tow(0),
36 m_samp(0),
37 m_reg(0),
38 m_calc(0),
39 m_evt(0),
40 m_xPos(0.0),
41 m_yPos(0.0),
42 m_zPos(0.0),
43 m_ener(0.0),
44 m_volume{0},
45 m_pid(0),
46 m_ekine(0.0),
47 m_xLocal(0.0),
48 m_yLocal(0.0),
49 m_zLocal(0.0),
50 m_phiLocal(0.0)
51
52{
53
54 declareInterface<TileCalibHitNtuple>(this);
55
56 declareProperty("THistSvc", m_thistSvc);
57 declareProperty("StreamName", m_streamName);
58 declareProperty("NTupleID", m_ntupleID);
59 declareProperty("TreeSize", m_treeSize);
60 declareProperty("InfoLevel", m_level);
61
62}
63
69
74
75 ATH_MSG_INFO("in initialize()");
76
77 CHECK(m_thistSvc.retrieve());
78
79 m_ntuplePtr = new TTree(m_ntupleID.c_str(), "TileCalibHit-Ntuple");
80 m_ntuplePtr->SetMaxTreeSize(m_treeSize);
81
82 m_ntuplePtr->Branch("detector", &m_det, "detector/S");
83 m_ntuplePtr->Branch("module", &m_mod, "module/S");
84 m_ntuplePtr->Branch("tower", &m_tow, "tower/S");
85 m_ntuplePtr->Branch("sample", &m_samp, "sample/S");
86 m_ntuplePtr->Branch("region", &m_reg, "region/S");
87 m_ntuplePtr->Branch("IDcalc", &m_calc, "IDcalc/S");
88 m_ntuplePtr->Branch("event", &m_evt, "event/S");
89 m_ntuplePtr->Branch("xPos", &m_xPos, "xPos/F");
90 m_ntuplePtr->Branch("yPos", &m_yPos, "yPos/F");
91 m_ntuplePtr->Branch("zPos", &m_zPos, "zPos/F");
92 m_ntuplePtr->Branch("energy", &m_ener, "energy/F");
93 if (m_level != 0) {
94 m_ntuplePtr->Branch("volume", &m_volume, "volume/C");
95 m_ntuplePtr->Branch("pid", &m_pid, "pid/S");
96 m_ntuplePtr->Branch("ekine", &m_ekine, "ekine/F");
97 m_ntuplePtr->Branch("xLocal", &m_xLocal, "xLocal/F");
98 m_ntuplePtr->Branch("yLocal", &m_yLocal, "yLocal/F");
99 m_ntuplePtr->Branch("zLocal", &m_zLocal, "zLocal/F");
100 m_ntuplePtr->Branch("phiLocal", &m_phiLocal, "phiLocal/F");
101 }
102
103 StatusCode sc = m_thistSvc->regTree("/" + m_streamName + "/" + m_ntupleID, m_ntuplePtr);
104
105 if (sc.isFailure()) {
106 ATH_MSG_ERROR("Problem registering TileCalibHit Tree");
107 }
108
109 return sc;
110}
111
116
117 ATH_MSG_INFO("Finalizing");
118
119 return StatusCode::SUCCESS;
120}
121
122void TileCalibHitNtuple::storeHit(int det, int mod, int tow, int samp, int reg, int calc, int evt, float x, float y,
123 float z, float e, const char *volume, int pid, float ekine, float xLocal,
124 float yLocal, float zLocal, float phiLocal) {
125 m_det = det;
126 m_mod = mod;
127 m_tow = tow;
128 m_samp = samp;
129 m_reg = reg;
130 m_calc = calc;
131 m_evt = evt;
132 m_xPos = x;
133 m_yPos = y;
134 m_zPos = z;
135 m_ener = e;
136 if (m_level != 0) {
137 if (volume) strncpy(m_volume, volume, 99);
138 else m_volume[0] = 0;
139 m_pid = pid;
140 m_ekine = ekine;
141 m_xLocal = xLocal;
142 m_yLocal = yLocal;
143 m_zLocal = zLocal;
144 m_phiLocal = phiLocal;
145 }
146
147 m_ntuplePtr->Fill();
148}
#define ATH_MSG_ERROR(x)
#define ATH_MSG_INFO(x)
Helpers for checking error return status codes and reporting errors.
#define CHECK(...)
Evaluate an expression and check for errors.
static Double_t sc
static const InterfaceID IID_ITileCalibHitNtuple("TileCalibHitNtuple", 1, 0)
#define y
#define x
#define z
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
ServiceHandle< ITHistSvc > m_thistSvc
TileCalibHitNtuple(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
virtual ~TileCalibHitNtuple()
Destructor.
virtual StatusCode finalize()
finalize method
void storeHit(int det, int mod, int tow, int samp, int reg, int calc, int evt, float x, float y, float z, float e, const char *volume=0, int pid=0, float ekine=0., float xLocal=0., float yLocal=0., float zLocal=0., float phiLocal=0.)
virtual StatusCode initialize()
intialize method
static const InterfaceID & interfaceID()
AlgTool InterfaceID.