ATLAS Offline Software
PUSplitPufitFex.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3  */
4 
5 /******************************************************************************
6  * @package Trigger/TrigAlgorithms/TrigEFMissingET
7  * @class PUSplitPufitFex
8  *
9  * @brief Fex class for the pufit algorithm, where inputs are split into
10  * pile-up categories
11  * @author Jon Burr
12  *****************************************************************************/
13 
14 #ifndef TRIGEFMISSINGET_PUSPLITPUFITFEX_H
15 #define TRIGEFMISSINGET_PUSPLITPUFITFEX_H
16 
17 #include "FexBase.h"
22 #include "Gaudi/Property.h"
23 
24 namespace HLT
25 {
26  namespace MET
27  {
28  /**************************************************************************
29  * @class PUSplitPufitFex
30  *
31  * Class to calculate pufit MET using pu-split inputs
32  *
33  * Uses a generalised pufit technique. The inputs are classified using the
34  * @see PUClassification enum and the algorithm is able to treat them
35  * differently
36  *************************************************************************/
37  class PUSplitPufitFex : public FexBase
38  {
39  public:
41  PUSplitPufitFex(const std::string &name, ISvcLocator *pSvcLocator);
42 
44  virtual StatusCode initialize() override;
45 
46  private:
47  /************************************************************************
48  * Properties
49  ***********************************************************************/
52  this, "InputName", "", "The input particle collection"};
54  this, "InputCategoryName", "PUCategory",
55  "The name of PU classification auxdata"};
57  Gaudi::Property<float> m_nSigma{
58  this, "NSigma", 5, "Set the threshold at mean + NSigma*variance"};
60  Gaudi::Property<float> m_maxEta{
61  this, "MaxEta", 5, "The maximum eta range"};
63  Gaudi::Property<std::size_t> m_nEtaBins{
64  this, "NEtaBins", 14, "The number of eta bins"};
65  Gaudi::Property<std::size_t> m_nPhiBins{
66  this, "NPhiBins", 8, "The number of phi bins"};
68  Gaudi::Property<float> m_trimFraction{
69  this, "TrimFraction", 0.9,
70  "The fraction of bins to use when calculating the mean and variance"};
72  Gaudi::Property<float> m_caloNoise{
73  this, "CaloNoise", 50,
74  "The coefficient of the noise term in the calorimeter resolution estimate [MeV]"};
76  Gaudi::Property<float> m_caloStoch{
77  this, "CaloStochastic", 15.81,
78  "The coefficient of the stochastic term in the calorimeter resolution estimate [MeV^1/2]"};
80  Gaudi::Property<float> m_constraintImportance{
81  this, "ConstraintImportance", 1,
82  "The relative importance of the two constraints to the fit"};
84  Gaudi::Property<std::size_t> m_neutralThresholdMode{
85  this, "NeutralThresholdMode", PUClassification::All,
86  "Which towers to use to calculate mean/variance and the masking threshold"};
88  Gaudi::Property<bool> m_subtractCPUFromMean{
89  this, "SubtractCPUFromMean", false,
90  "Whether to remove the cPU component from the expected pileup value"};
91  /************************************************************************
92  * Internal functions
93  ***********************************************************************/
100  virtual StatusCode fillMET(
102  const EventContext &context,
103  MonGroupBuilder &monitors) const override;
104 
109  double getSigma(const SignedKinematics &kin) const;
110  }; //> end class PUSplitPufixFex
111  } // namespace MET
112 } // namespace HLT
113 
114 #endif //> !TRIGEFMISSINGET_PUSPLITPUFITFEX_H
HLT::MET::PUSplitPufitFex::m_nPhiBins
Gaudi::Property< std::size_t > m_nPhiBins
Definition: PUSplitPufitFex.h:94
HLT::MET::PUSplitPufitFex::m_nEtaBins
Gaudi::Property< std::size_t > m_nEtaBins
The number of bins in eta.
Definition: PUSplitPufitFex.h:92
ReadDecorHandleKey.h
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
HLT::MET::PUSplitPufitFex::m_caloStoch
Gaudi::Property< float > m_caloStoch
The coefficient of the stochastic term in the calo resolution estimate.
Definition: PUSplitPufitFex.h:105
HLT::MET::PUSplitPufitFex::m_subtractCPUFromMean
Gaudi::Property< bool > m_subtractCPUFromMean
Whether to remove the cPU component from the tower expectations.
Definition: PUSplitPufitFex.h:117
HLT::MET::PUClassification::All
constexpr PUClassification All
Definition: PUClassification.h:25
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
SignedKinematics.h
HLT::MET::PUSplitPufitFex::getSigma
double getSigma(const SignedKinematics &kin) const
Calculate the estimate on the variance of a tower.
Definition: PUSplitPufitFex.cxx:35
HLT::MET::PUSplitPufitFex::m_trimFraction
Gaudi::Property< float > m_trimFraction
The trimming fraction.
Definition: PUSplitPufitFex.h:97
met
Definition: IMETSignificance.h:24
HLT::MET::SignedKinematics
Class to describe the kinematics of an object that can have negative energies.
Definition: SignedKinematics.h:42
HLT::MET::PUSplitPufitFex::m_constraintImportance
Gaudi::Property< float > m_constraintImportance
The relative constraint importance.
Definition: PUSplitPufitFex.h:109
FexBase.h
HLT
It used to be useful piece of code for replacing actual SG with other store of similar functionality ...
Definition: HLTResultReader.h:26
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
IParticleContainer.h
HLT::MET::PUSplitPufitFex::m_inputKey
SG::ReadHandleKey< xAOD::IParticleContainer > m_inputKey
Input objects.
Definition: PUSplitPufitFex.h:80
HLT::MET::PUSplitPufitFex::m_maxEta
Gaudi::Property< float > m_maxEta
The eta range of the grid.
Definition: PUSplitPufitFex.h:89
HLT::MET::PUSplitPufitFex::m_nSigma
Gaudi::Property< float > m_nSigma
The sigma threshold.
Definition: PUSplitPufitFex.h:86
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
MET
Definition: MET.py:1
HLT::MET::MonGroupBuilder
Definition: MonGroupBuilder.h:45
PUClassification.h
xAOD::TrigMissingET_v1
Class holding the Missing ET trigger fex results.
Definition: TrigMissingET_v1.h:32
HLT::MET::PUSplitPufitFex::m_inputCategoryKey
SG::ReadDecorHandleKey< xAOD::IParticleContainer > m_inputCategoryKey
Definition: PUSplitPufitFex.h:82
SG::ReadDecorHandleKey
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Definition: StoreGate/StoreGate/ReadDecorHandleKey.h:85
HLT::MET::PUSplitPufitFex::PUSplitPufitFex
PUSplitPufitFex(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition: PUSplitPufitFex.cxx:40
HLT::MET::PUSplitPufitFex::m_neutralThresholdMode
Gaudi::Property< std::size_t > m_neutralThresholdMode
The neutral threshold mode.
Definition: PUSplitPufitFex.h:113
HLT::MET::PUSplitPufitFex::fillMET
virtual StatusCode fillMET(xAOD::TrigMissingET &met, const EventContext &context, MonGroupBuilder &monitors) const override
Calculate and fill the output MET value.
Definition: PUSplitPufitFex.cxx:61
HLT::MET::PUSplitPufitFex::initialize
virtual StatusCode initialize() override
Initialize the fex.
Definition: PUSplitPufitFex.cxx:45
HLT::MET::PUSplitPufitFex::m_caloNoise
Gaudi::Property< float > m_caloNoise
The coefficient of the noise term in the calo resolution estimate.
Definition: PUSplitPufitFex.h:101