17 const IInterface*
p) :
23 ATH_MSG_WARNING(
"No decoration prefix name provided for the output of TrackParticleCaloCellDecorator!");
24 return StatusCode::SUCCESS;
27 ATH_MSG_WARNING(
"No TrackParticle collection provided for TrackParticleCaloCellDecorator!");
28 return StatusCode::SUCCESS;
78 return StatusCode::SUCCESS;
83 const EventContext& ctx = Gaudi::Hive::currentContext();
109 for(
const auto clusterAssociation : *clusterAssociations) {
110 std::vector<float> trackCellEta(0, 0.);
111 std::vector<float> trackCellPhi(0, 0.);
112 std::vector<float> trackCellR(0, 0.);
113 std::vector<float> trackCelldEta(0, 0.);
114 std::vector<float> trackCelldPhi(0, 0.);
115 std::vector<float> trackCelldR(0, 0.);
116 std::vector<float> trackCellX(0, 0.);
117 std::vector<float> trackCellY(0, 0.);
118 std::vector<float> trackCellZ(0, 0.);
119 std::vector<float> trackCelldX(0, 0.);
120 std::vector<float> trackCelldY(0, 0.);
121 std::vector<float> trackCelldZ(0, 0.);
122 std::vector<float> trackCellT(0, 0.);
123 std::vector<float> trackCellE(0, 0.);
124 std::vector<unsigned int> trackCellID(0, 0);
125 std::vector<int> trackCellSampling(0, 0);
126 std::vector<int> trackCellQuality(0, 0);
127 std::vector<int> trackCellProvenance(0, 0);
128 std::vector<int> trackCellGain(0, 0);
129 std::vector<float> trackCellEneDiff(0, 0);
130 std::vector<float> trackCellTimeDiff(0, 0);
133 if (clusterAssociation->trackParticleLink().isValid()) {
134 track = *(clusterAssociation->trackParticleLink());
140 for (
const auto& cluster : clusterAssociation->caloClusterLinks()) {
143 trackCellEta.clear();
144 trackCellPhi.clear();
146 trackCelldEta.clear();
147 trackCelldPhi.clear();
158 trackCellSampling.clear();
159 trackCellQuality.clear();
160 trackCellProvenance.clear();
161 trackCellGain.clear();
162 trackCellEneDiff.clear();
163 trackCellTimeDiff.clear();
170 for(
const auto cell : *cellLinks) {
175 trackCellEta.emplace_back(caloDDE->
eta());
176 trackCellPhi.emplace_back(caloDDE->
phi());
177 trackCellR.emplace_back(caloDDE->
r());
178 trackCelldEta.emplace_back(caloDDE->
deta());
179 trackCelldPhi.emplace_back(caloDDE->
dphi());
180 trackCelldR.emplace_back(caloDDE->
dr());
181 trackCellX.emplace_back(caloDDE->
x());
182 trackCellY.emplace_back(caloDDE->
y());
183 trackCellZ.emplace_back(caloDDE->
z());
184 trackCelldX.emplace_back(caloDDE->
dx());
185 trackCelldY.emplace_back(caloDDE->
dy());
186 trackCelldZ.emplace_back(caloDDE->
dz());
187 trackCellT.emplace_back(
cell->time());
188 trackCellE.emplace_back(
cell->e());
191 trackCellSampling.emplace_back(sampling);
192 trackCellQuality.emplace_back(
cell->quality());
193 trackCellProvenance.emplace_back(
cell->provenance());
194 trackCellGain.emplace_back(
cell->gain());
195 trackCellEneDiff.emplace_back(
static_cast<const TileCell*
>(
cell)->eneDiff());
196 trackCellTimeDiff.emplace_back(
static_cast<const TileCell*
>(
cell)->timeDiff());
201 decCellEta(*
track) = trackCellEta;
202 decCellPhi(*
track) = trackCellPhi;
203 decCellR(*
track) = trackCellR;
204 decCelldEta(*
track) = trackCelldEta;
205 decCelldPhi(*
track) = trackCelldPhi;
206 decCelldR(*
track) = trackCelldR;
207 decCellX(*
track) = trackCellX;
208 decCellY(*
track) = trackCellY;
209 decCellZ(*
track) = trackCellZ;
210 decCelldX(*
track) = trackCelldX;
211 decCelldY(*
track) = trackCelldY;
212 decCelldZ(*
track) = trackCelldZ;
213 decCellT(*
track) = trackCellT;
214 decCellE(*
track) = trackCellE;
215 decCellID(*
track) = trackCellID;
216 decCellSampling(*
track) = trackCellSampling;
217 decCellQuality(*
track) = trackCellQuality;
218 decCellProvenance(*
track) = trackCellProvenance;
219 decCellGain(*
track) = trackCellGain;
220 decCellEneDiff(*
track) = trackCellEneDiff;
221 decCellTimeDiff(*
track) = trackCellTimeDiff;
225 return StatusCode::SUCCESS;