ATLAS Offline Software
Loading...
Searching...
No Matches
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
24namespace 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"};
56
57 Gaudi::Property<float> m_nSigma{
58 this, "NSigma", 5, "Set the threshold at mean + NSigma*variance"};
59
60 Gaudi::Property<float> m_maxEta{
61 this, "MaxEta", 5, "The maximum eta range"};
62
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"};
67
68 Gaudi::Property<float> m_trimFraction{
69 this, "TrimFraction", 0.9,
70 "The fraction of bins to use when calculating the mean and variance"};
71
72 Gaudi::Property<float> m_caloNoise{
73 this, "CaloNoise", 50,
74 "The coefficient of the noise term in the calorimeter resolution estimate [MeV]"};
75
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]"};
79
80 Gaudi::Property<float> m_constraintImportance{
81 this, "ConstraintImportance", 1,
82 "The relative importance of the two constraints to the fit"};
83
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"};
87
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
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
FexBase(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition FexBase.cxx:43
virtual StatusCode initialize() override
Initialize the fex.
Gaudi::Property< std::size_t > m_nEtaBins
The number of bins in eta.
double getSigma(const SignedKinematics &kin) const
Calculate the estimate on the variance of a tower.
Gaudi::Property< float > m_maxEta
The eta range of the grid.
Gaudi::Property< float > m_caloStoch
The coefficient of the stochastic term in the calo resolution estimate.
SG::ReadDecorHandleKey< xAOD::IParticleContainer > m_inputCategoryKey
Gaudi::Property< std::size_t > m_neutralThresholdMode
The neutral threshold mode.
PUSplitPufitFex(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Gaudi::Property< bool > m_subtractCPUFromMean
Whether to remove the cPU component from the tower expectations.
Gaudi::Property< float > m_trimFraction
The trimming fraction.
Gaudi::Property< float > m_nSigma
The sigma threshold.
Gaudi::Property< std::size_t > m_nPhiBins
Gaudi::Property< float > m_caloNoise
The coefficient of the noise term in the calo resolution estimate.
Gaudi::Property< float > m_constraintImportance
The relative constraint importance.
virtual StatusCode fillMET(xAOD::TrigMissingET &met, const EventContext &context, MonGroupBuilder &monitors) const override
Calculate and fill the output MET value.
SG::ReadHandleKey< xAOD::IParticleContainer > m_inputKey
Input objects.
Class to describe the kinematics of an object that can have negative energies.
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Property holding a SG store/key/clid from which a ReadHandle is made.
constexpr PUClassification All
It used to be useful piece of code for replacing actual SG with other store of similar functionality ...
TrigMissingET_v1 TrigMissingET
Define the most recent version of the TrigMissingET class.