|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef EFLOWCELLSUBTRACTIONFACILITATOR_H
6 #define EFLOWCELLSUBTRACTIONFACILITATOR_H
46 bool& annFlag,
const bool&
addCPData)
const;
50 std::vector<std::pair<xAOD::CaloCluster*, bool>>& tracksClus,
52 bool& annFlag,
const bool&
addCPData)
const;
60 std::vector<std::pair<xAOD::CaloCluster*, bool>>& tracksClusters);
64 const std::vector<std::pair<xAOD::CaloCluster*, bool>>& tracksClusters);
67 std::vector<std::pair<xAOD::CaloCluster*, bool>>& tracksClusters,
72 std::vector<std::pair<xAOD::CaloCluster*, bool>>& tracksClusters,
75 double targetRingEnergy,
80 std::vector<std::pair<xAOD::CaloCluster*, bool>>& tracksClusters,
87 const std::pair<eflowCaloENUM, short>& ring,
91 std::vector<std::pair<xAOD::CaloCluster*, bool>>& tracksClusters,
103 std::vector<std::pair<xAOD::CaloCluster*, bool>>& tracksClusters,
bool& annFlag,
107 std::vector<std::pair<xAOD::CaloCluster*, bool>>& tracksClusters,
109 const double eExpect,
static double getTotalEnergy(const std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters)
bool subtractRings(eflowRingSubtractionManager &ringSubtractionManager, const std::pair< eflowCaloENUM, short > &ring, double &eSubtracted, const double eExpect, eflowCellList &orderedCells, std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters, bool &annFlag, eflowRecTrack &theTrack, const bool &addCPData) const
static bool subtractReorderedCells(std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters, double eSubtracted, const double eExpect, eflowCellList &orderedCells, eflowRecTrack &theTrack, const bool &addCPData)
static bool subtractCaloCell(double &eSubtracted, const double eExpect, xAOD::CaloCluster *cluster, const CaloCell *cell, eflowRecTrack &theTrack, const bool &addCPData)
void subtractPartialRings(std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters, CellIt beginRing, CellIt endRing, double targetRingEnergy, double eRing, eflowRecTrack &theTrack, const bool &addCPData) const
Concrete class derived class from pure virtual eflowAbstractCellList.
static void annihilateClusters(std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters, bool &annFlag, eflowRecTrack &theTrack, const bool &addCPData)
This class extends the information about a xAOD::Track.
eflowCellSubtractionFacilitator()
Description of a calorimeter cluster.
This class deals with the removal of calorimeter cells from calorimeter clusters.
static double getRingsEnergy(std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters, CellIt beginRing, CellIt endRing)
double subtractCells(eflowRingSubtractionManager &ringSubtractionManager, eflowRecTrack &theTrack, xAOD::CaloCluster *tracksClus, eflowCellList &orderedCells, bool &annFlag, const bool &addCPData) const
This stores information, a rank and ring thickness, about cell rings in an ordered way.
static void updateClusterKinematics(std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters)
Class mimicking the AthMessaging class from the offline software.
void subtractFullRings(std::vector< std::pair< xAOD::CaloCluster *, bool >> &tracksClusters, CellIt beginRing, CellIt endRing, eflowRecTrack &theTrack, const bool &addCPData) const
std::map< eflowCellPosition, std::vector< std::pair< const CaloCell *, int > > >::iterator CellIt
Data object for each calorimeter readout cell.
static CaloClusterCellLink::iterator getCellIterator(xAOD::CaloCluster *thisCluster, const CaloCell *thisCell)