ATLAS Offline Software
Loading...
Searching...
No Matches
eflowLayerIntegrator.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef EFLOWREC_EFLOWLAYERINTEGRATOR_H
6#define EFLOWREC_EFLOWLAYERINTEGRATOR_H
7
8/********************************************************************
9
10NAME: eflowLayerIntegrator.h
11PACKAGE: offline/Reconstruction/eflowRec
12
13AUTHORS: M.Hodgkinson, R Duxfield (based on R.Duxfields Root package)
14CREATED: 18th Aug, 2005
15
16********************************************************************/
17
18#include <vector>
19#include "eflowCaloRegions.h"
21#include "eflowUtil.h"
23
24class EventContext;
25class CaloCell;
26class eflowRecCluster;
27class eflowRecTrack;
30
31template <int expType> class eflowCellIntegrator;
32
37
38 public:
39
40 eflowLayerIntegrator(double stdDev, double error, double rMaxOverStdDev, bool isHLLHC = false);
41 eflowLayerIntegrator(const eflowLayerIntegrator& originalEflowLayerIntegrator);
42 eflowLayerIntegrator& operator=(const eflowLayerIntegrator& originalEflowLayerIntegrator);
43
45
46 void measureNewClus(const xAOD::CaloCluster* clus, const eflowTrackCaloPoints& trackCalo);
47 void measureNewClus(eflowTrackClusterLink* trackClusterLink);
48 void measureNewClus(const EventContext& ctx, const std::vector<eflowRecCluster*>& efRecClusters, eflowRecTrack* track);
49 void measureNewClus(const std::vector<xAOD::CaloCluster*>& clusVec, const eflowTrackCaloPoints& trackCalo);
50
52
53 private:
55 void addToAllClustersIntegral(const std::vector<double>& clusterIntegral);
56
57 void measureCluster(eflowTrackClusterLink* trackClusterLink);
58 void measureCluster(const xAOD::CaloCluster* clus, const eflowTrackCaloPoints& trackCalo);
59 void measureCell(const CaloCell* cell, const eflowTrackCaloPoints& trackCalo);
60
61 double m_rMax;
62
63 /* Defines whether we are in HLLHC (Run4) setup or not (Runs 1,2 or 3) */
65
66 std::vector<double> m_allClustersIntegral;
67 std::vector<double> m_singleClusterIntegral;
68
70
72
74
75 std::unique_ptr<eflowCellIntegrator<0> > m_integrator;
76 std::unique_ptr<eflowCellIntegrator<1> > m_integratorLookup;
77};
78
79#endif
Data object for each calorimeter readout cell.
Definition CaloCell.h:57
static const int nRegions
Class that controls the 2D integration.
The class calculates the depth of each layer, in interaction lengths, for a given EM2 eta.
std::vector< double > m_allClustersIntegral
void resetAllClustersIntegralForNewTrack(const eflowTrackCaloPoints &trackCalo)
std::unique_ptr< eflowCellIntegrator< 1 > > m_integratorLookup
void measureCluster(eflowTrackClusterLink *trackClusterLink)
eflowLayerIntegrator & operator=(const eflowLayerIntegrator &originalEflowLayerIntegrator)
eflowDepthCalculator m_caloModel
void addToAllClustersIntegral(const std::vector< double > &clusterIntegral)
void measureCell(const CaloCell *cell, const eflowTrackCaloPoints &trackCalo)
void measureNewClus(const xAOD::CaloCluster *clus, const eflowTrackCaloPoints &trackCalo)
eflowLayerIntegrator(double stdDev, double error, double rMaxOverStdDev, bool isHLLHC=false)
double m_densityConversion[eflowCalo::nRegions]
std::vector< double > m_singleClusterIntegral
std::vector< double > m_nUnitCellPerWindowOverCellEtaPhiArea
eflowFirstIntENUM getFirstIntLayer() const
std::unique_ptr< eflowCellIntegrator< 0 > > m_integrator
This class extends the information about a xAOD::CaloCluster.
This class extends the information about a xAOD::Track.
This class stores a map of calorimeter layers and track parameters (the result of the track extrapola...
eflowFirstIntRegions::J1STLAYER eflowFirstIntENUM
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.