ATLAS Offline Software
Loading...
Searching...
No Matches
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
14namespace 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
Base class for cluster processing tools called from CaloClusterMaker.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
virtual StatusCode execute(const EventContext &ctx, xAOD::CaloClusterContainer *collection) const =0
Execute on an entire collection of clusters.
std::unique_ptr< Trk::Surface > m_discSurface_atCaloEntrance_positiveZ
std::unique_ptr< Trk::Surface > m_cylinderSurface_atCaloEntrance
ToolHandle< Trk::IExtrapolator > m_extrapolator
std::unique_ptr< Trk::Surface > m_discSurface_atCaloEntrance_negativeZ
static double calculateDPhi(double phi1, double phi2)
CaloClusterVertexFractionMaker(const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode execute(const EventContext &ctx, xAOD::CaloClusterContainer *theClusColl) const override
Execute on an entire collection of clusters.
Interface class for the extrapolation AlgTool, it inherits from IAlgTool Detailed information about p...
Abstract Base Class for tracking surfaces.
Ensure that the ATLAS eigen extensions are properly loaded.
CaloClusterContainer_v1 CaloClusterContainer
Define the latest version of the calorimeter cluster container.