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;
108 for(
const auto clusterAssociation : *clusterAssociations) {
109 std::vector<float> trackCellEta(0, 0.);
110 std::vector<float> trackCellPhi(0, 0.);
111 std::vector<float> trackCellR(0, 0.);
112 std::vector<float> trackCelldEta(0, 0.);
113 std::vector<float> trackCelldPhi(0, 0.);
114 std::vector<float> trackCelldR(0, 0.);
115 std::vector<float> trackCellX(0, 0.);
116 std::vector<float> trackCellY(0, 0.);
117 std::vector<float> trackCellZ(0, 0.);
118 std::vector<float> trackCelldX(0, 0.);
119 std::vector<float> trackCelldY(0, 0.);
120 std::vector<float> trackCelldZ(0, 0.);
121 std::vector<float> trackCellT(0, 0.);
122 std::vector<float> trackCellE(0, 0.);
123 std::vector<unsigned int> trackCellID(0, 0);
124 std::vector<int> trackCellSampling(0, 0);
125 std::vector<int> trackCellQuality(0, 0);
126 std::vector<int> trackCellProvenance(0, 0);
127 std::vector<int> trackCellGain(0, 0);
128 std::vector<float> trackCellEneDiff(0, 0);
129 std::vector<float> trackCellTimeDiff(0, 0);
132 if (clusterAssociation->trackParticleLink().isValid()) {
133 track = *(clusterAssociation->trackParticleLink());
139 for (
const auto& cluster : clusterAssociation->caloClusterLinks()) {
142 trackCellEta.clear();
143 trackCellPhi.clear();
145 trackCelldEta.clear();
146 trackCelldPhi.clear();
157 trackCellSampling.clear();
158 trackCellQuality.clear();
159 trackCellProvenance.clear();
160 trackCellGain.clear();
161 trackCellEneDiff.clear();
162 trackCellTimeDiff.clear();
169 for(
const auto cell : *cellLinks) {
174 trackCellEta.emplace_back(caloDDE->
eta());
175 trackCellPhi.emplace_back(caloDDE->
phi());
176 trackCellR.emplace_back(caloDDE->
r());
177 trackCelldEta.emplace_back(caloDDE->
deta());
178 trackCelldPhi.emplace_back(caloDDE->
dphi());
179 trackCelldR.emplace_back(caloDDE->
dr());
180 trackCellX.emplace_back(caloDDE->
x());
181 trackCellY.emplace_back(caloDDE->
y());
182 trackCellZ.emplace_back(caloDDE->
z());
183 trackCelldX.emplace_back(caloDDE->
dx());
184 trackCelldY.emplace_back(caloDDE->
dy());
185 trackCelldZ.emplace_back(caloDDE->
dz());
186 trackCellT.emplace_back(
cell->time());
187 trackCellE.emplace_back(
cell->e());
190 trackCellSampling.emplace_back(sampling);
191 trackCellQuality.emplace_back(
cell->quality());
192 trackCellProvenance.emplace_back(
cell->provenance());
193 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());
199 trackCellEneDiff.emplace_back(0);
200 trackCellTimeDiff.emplace_back(0);
206 decCellEta(*
track) = trackCellEta;
207 decCellPhi(*
track) = trackCellPhi;
208 decCellR(*
track) = trackCellR;
209 decCelldEta(*
track) = trackCelldEta;
210 decCelldPhi(*
track) = trackCelldPhi;
211 decCelldR(*
track) = trackCelldR;
212 decCellX(*
track) = trackCellX;
213 decCellY(*
track) = trackCellY;
214 decCellZ(*
track) = trackCellZ;
215 decCelldX(*
track) = trackCelldX;
216 decCelldY(*
track) = trackCelldY;
217 decCelldZ(*
track) = trackCelldZ;
218 decCellT(*
track) = trackCellT;
219 decCellE(*
track) = trackCellE;
220 decCellID(*
track) = trackCellID;
221 decCellSampling(*
track) = trackCellSampling;
222 decCellQuality(*
track) = trackCellQuality;
223 decCellProvenance(*
track) = trackCellProvenance;
224 decCellGain(*
track) = trackCellGain;
225 decCellEneDiff(*
track) = trackCellEneDiff;
226 decCellTimeDiff(*
track) = trackCellTimeDiff;
230 return StatusCode::SUCCESS;