ATLAS Offline Software
Loading...
Searching...
No Matches
eflowLayerIntegrator.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef EFLOWLAYERINTEGRATOR_H
6#define 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 "eflowRec/eflowUtil.h"
23
24class CaloCell;
25class eflowRecCluster;
26class eflowRecTrack;
29
30template <int expType> class eflowCellIntegrator;
31
36
37 public:
38
39 eflowLayerIntegrator(double stdDev, double error, double rMaxOverStdDev, bool isHLLHC = false);
40 eflowLayerIntegrator(const eflowLayerIntegrator& originalEflowLayerIntegrator);
41 eflowLayerIntegrator& operator=(const eflowLayerIntegrator& originalEflowLayerIntegrator);
42
44
45 void measureNewClus(const xAOD::CaloCluster* clus, const eflowTrackCaloPoints& trackCalo);
46 void measureNewClus(eflowTrackClusterLink* trackClusterLink);
47 void measureNewClus(const std::vector<eflowRecCluster*>& efRecClusters, eflowRecTrack* track);
48 void measureNewClus(const std::vector<xAOD::CaloCluster*>& clusVec, const eflowTrackCaloPoints& trackCalo);
49
51
52 private:
54 void addToAllClustersIntegral(const std::vector<double>& clusterIntegral);
55
56 void measureCluster(eflowTrackClusterLink* trackClusterLink);
57 void measureCluster(const xAOD::CaloCluster* clus, const eflowTrackCaloPoints& trackCalo);
58 void measureCell(const CaloCell* cell, const eflowTrackCaloPoints& trackCalo);
59
60 double m_rMax;
61
62 /* Defines whether we are in HLLHC (Run4) setup or not (Runs 1,2 or 3) */
64
65 std::vector<double> m_allClustersIntegral;
66 std::vector<double> m_singleClusterIntegral;
67
69
71
73
74 std::unique_ptr<eflowCellIntegrator<0> > m_integrator;
75 std::unique_ptr<eflowCellIntegrator<1> > m_integratorLookup;
76};
77
78#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.