#include <CaloClusterKineHelper.h>
Definition at line 13 of file CaloClusterKineHelper.h.
◆ calculateKine()
void CaloClusterKineHelper::calculateKine |
( |
xAOD::CaloCluster * |
clu, |
|
|
const bool |
useweight = true , |
|
|
const bool |
updateLayers = true , |
|
|
const bool |
useGPUCriteria = false |
|
) |
| |
|
static |
Helper class to calculate cluster kinematics based on cells.
- Author
- Walter Lampl Walte.nosp@m.r.La.nosp@m.mpl@c.nosp@m.ern..nosp@m.ch Calculate cluster kinematics from contained cells
Definition at line 223 of file CaloClusterKineHelper.cxx.
238 if (!cccl || cccl->
size()==0)
return;
243 double timeNorm = 0.;
245 std::array<double,CaloSampling::Unknown> posSamNorm{};
247 CellAccum accum (posNorm, posSamNorm, nBarrel, nEndcap, timeNorm, useGPUCriteria);
250 accumCells (cccl, accum, AccumWeight(), useGPUCriteria);
252 accumCells (cccl, accum, AccumNoWeight(), useGPUCriteria);
254 if ( posNorm != 0. ) {
255 double inorm = 1 / posNorm;
256 clu->
setEta(accum.theNewEta * inorm);
264 clu->
setE(accum.theNewEnergy);
267 if ( timeNorm != 0. ) {
268 clu->
setTime(accum.theNewTime/timeNorm);
283 if (accum.PresenceInSample[
i])
284 samplingPattern |= (0x1U<<
i);
296 if ( !updateLayers )
return;
300 if ( !accum.PresenceInSample[
i] )
continue;
301 if ( posSamNorm[
i] != 0 ) {
302 const double inorm = 1 / posSamNorm[
i];
303 accum.EtaInSample[
i] *= inorm;
311 if ( !accum.PresenceInSample[
i] )
continue;
316 clu->
setEta(sam,accum.EtaInSample[
i]);
317 clu->
setPhi(sam,accum.PhiInSample[
i]);
319 clu->
setEmax(sam,accum.MaxEnergyInSample[
i]);
320 clu->
setEtamax(sam,accum.EtaMaxEnergyInSample[
i]);
321 clu->
setPhimax(sam,accum.PhiMaxEnergyInSample[
i]);
The documentation for this class was generated from the following files: