ATLAS Offline Software
CaloClusterVertexFractionMaker.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef CALOCLUSTERVERTEXFRACTIONMAKER_H
6 #define CALOCLUSTERVERTEXFRACTIONMAKER_H
7 
8 #include "GaudiKernel/ToolHandle.h"
10 #include <string>
11 #include <vector>
12 
14 namespace Trk { class IExtrapolator; class Surface; }
15 
17 {
18  public:
19  CaloClusterVertexFractionMaker(const std::string& type, const std::string& name, const IInterface* parent);
21 
23  virtual StatusCode initialize() override;
24  virtual StatusCode execute(const EventContext& ctx,
25  xAOD::CaloClusterContainer* theClusColl) const override;
26 
27  private:
28  static double calculateDPhi(double phi1, double phi2) ;
29 
30  const double m_CALO_INNER_R; // inner radius of the EM barrel envelope in mm
31  const double m_CALO_INNER_Z;
32 // const double INV_CALO_INNER_R; // the inverse for error calculation
33  double m_dRMatchMax; // maximum value in dR for the track to be matched to the cluster, can be set by jobOptions
34  double m_dR2MatchMax; // m_dRMatchMax * m_dRMatchMax, this is used to avoid taking the square root all the time for each track and cluster
35  double m_maxClusterEta; // maximum |eta| of clusters for which a CVF is calculated
36 
37  // Pre-configured extrapolator
38  ToolHandle< Trk::IExtrapolator > m_extrapolator;
39 
40  // name of VxContainer
41  std::string m_vxContainerName;
42 
43  std::unique_ptr<Trk::Surface> m_cylinderSurface_atCaloEntrance; // to extrapolate to clusters in barrel
44  std::unique_ptr<Trk::Surface> m_discSurface_atCaloEntrance_positiveZ; // to extrapolate to clusters in endcap, this surface has to be created new for each cluster ...
45  std::unique_ptr<Trk::Surface> m_discSurface_atCaloEntrance_negativeZ; // to extrapolate to clusters in endcap, this surface has to be created new for each cluster ...
46 };
47 
48 #endif // CALOCLUSTERVERTEXFRACTIONMAKER_H
49 
50 
51 
52 
53 
54 
CaloClusterVertexFractionMaker::calculateDPhi
static double calculateDPhi(double phi1, double phi2)
Definition: CaloClusterVertexFractionMaker.cxx:230
CaloClusterVertexFractionMaker::execute
virtual StatusCode execute(const EventContext &ctx, xAOD::CaloClusterContainer *theClusColl) const override
Execute on an entire collection of clusters.
Definition: CaloClusterVertexFractionMaker.cxx:73
CaloClusterContainer
Storable container for CaloCluster.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloClusterContainer.h:37
CaloClusterCollectionProcessor::execute
virtual StatusCode execute(const EventContext &ctx, xAOD::CaloClusterContainer *collection) const =0
Execute on an entire collection of clusters.
Surface
Definition: Trigger/TrigAccel/TrigCudaFitter/src/Surface.h:7
CaloClusterCollectionProcessor
Definition: CaloClusterCollectionProcessor.h:32
CaloClusterVertexFractionMaker::m_dR2MatchMax
double m_dR2MatchMax
Definition: CaloClusterVertexFractionMaker.h:34
CaloClusterVertexFractionMaker::m_dRMatchMax
double m_dRMatchMax
Definition: CaloClusterVertexFractionMaker.h:33
CaloClusterVertexFractionMaker::m_maxClusterEta
double m_maxClusterEta
Definition: CaloClusterVertexFractionMaker.h:35
CaloClusterVertexFractionMaker::m_CALO_INNER_Z
const double m_CALO_INNER_Z
Definition: CaloClusterVertexFractionMaker.h:31
CaloClusterVertexFractionMaker::m_discSurface_atCaloEntrance_positiveZ
std::unique_ptr< Trk::Surface > m_discSurface_atCaloEntrance_positiveZ
Definition: CaloClusterVertexFractionMaker.h:44
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CaloClusterVertexFractionMaker::m_cylinderSurface_atCaloEntrance
std::unique_ptr< Trk::Surface > m_cylinderSurface_atCaloEntrance
Definition: CaloClusterVertexFractionMaker.h:43
test_pyathena.parent
parent
Definition: test_pyathena.py:15
CaloClusterVertexFractionMaker::initialize
virtual StatusCode initialize() override
Definition: CaloClusterVertexFractionMaker.cxx:48
CaloClusterVertexFractionMaker
Definition: CaloClusterVertexFractionMaker.h:17
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
CaloClusterVertexFractionMaker::CaloClusterVertexFractionMaker
CaloClusterVertexFractionMaker(const std::string &type, const std::string &name, const IInterface *parent)
Definition: CaloClusterVertexFractionMaker.cxx:27
CaloClusterVertexFractionMaker::~CaloClusterVertexFractionMaker
~CaloClusterVertexFractionMaker()
Definition: CaloClusterVertexFractionMaker.cxx:43
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
CaloClusterVertexFractionMaker::m_discSurface_atCaloEntrance_negativeZ
std::unique_ptr< Trk::Surface > m_discSurface_atCaloEntrance_negativeZ
Definition: CaloClusterVertexFractionMaker.h:45
CaloClusterCollectionProcessor.h
Base class for cluster processing tools called from CaloClusterMaker.
CaloClusterVertexFractionMaker::m_CALO_INNER_R
const double m_CALO_INNER_R
Definition: CaloClusterVertexFractionMaker.h:30
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
CaloClusterVertexFractionMaker::m_vxContainerName
std::string m_vxContainerName
Definition: CaloClusterVertexFractionMaker.h:41
AthAlgTool
Definition: AthAlgTool.h:26
CaloClusterVertexFractionMaker::m_extrapolator
ToolHandle< Trk::IExtrapolator > m_extrapolator
Definition: CaloClusterVertexFractionMaker.h:38