|
ATLAS Offline Software
|
Go to the documentation of this file.
13 #endif // XAOD_ANALYSIS
21 declareInterface<IIsolationHelper>(
this);
22 #endif // XAOD_ANALYSIS
29 return StatusCode::SUCCESS;
33 return StatusCode::SUCCESS;
75 std::vector<xAOD::Iso::IsolationCaloCorrection>
results;
103 if(origMask == corrMask) {
111 value = origValue+origCorr-newCorr;
121 copy = shallowcopy.first;
122 copyaux = shallowcopy.second;
125 for(
auto type: types){
130 (*acc)(*par) =
value;
135 acc2(*
par) = corrMask.to_ulong();
141 ATH_CHECK(
evtStore()->record(shallowcopy.second,
"IsoFixed_"+muonkey+
"Aux."),
false );
154 areacore = 5*0.025*7*
M_PI/128;
166 bool isCentral = fabs(
par.eta())<1.5;
167 std::string esName = isCentral ?
"TopoClusterIsoCentralEventShape" :
"TopoClusterIsoForwardEventShape";
169 esName = isCentral ?
"ParticleFlowIsoCentralEventShape" :
"ParticleFlowIsoForwardEventShape";
175 ATH_MSG_ERROR(
"Cannot retrieve density container " + esName +
" for isolation correction. No ED correction");
182 ATH_MSG_ERROR(
"Cannot retrieve density " + esName +
" for isolation correction. No ED correction");
def retrieve(aClass, aKey=None)
bool getDensity(EventDensityID id, double &v) const
Get a density variable from the object.
@ coreEnergy
energy stored for this correction
std::bitset< 32 > IsolationCaloCorrectionBitset
typedef of the bit word used to encode the corrections used to calculate the isolation
@ ptCorrection
egamma ptcorrection
IsolationFlavour
Enumeration for different ways of calculating isolation in xAOD files.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
bool correctionBitset(xAOD::Iso::IsolationCaloCorrectionBitset &mask, const xAOD::IParticle &par, xAOD::Iso::IsolationType type) const
virtual StatusCode initialize()
initialize
bool isolation(float &value, const xAOD::IParticle &par, xAOD::Iso::IsolationType type) const
Class creating a shallow copy of an existing auxiliary container.
@ neflowisol
neutral eflow
Class providing the definition of the 4-vector interface.
Select isolated Photons, Electrons and Muons.
@ coreArea
area used to calculate this correction
const SG::AuxElement::Accessor< float > getIsolationCorrectionAccessor(Iso::IsolationFlavour type, Iso::IsolationCaloCorrection corr, Iso::IsolationCorrectionParameter param)
bool correction(float &value, const xAOD::IParticle &par, xAOD::Iso::IsolationType type, const xAOD::Iso::IsolationCaloCorrectionBitset &corrMask) const
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
@ core57cells
core 5x7 cells
::StatusCode StatusCode
StatusCode definition for legacy code.
IsolationType
Overall enumeration for isolation types in xAOD files.
bool updateIsolation(xAOD::MuonContainer *©, xAOD::ShallowAuxContainer *©aux, std::vector< xAOD::Iso::IsolationType > &types, xAOD::Iso::IsolationCaloCorrectionBitset corrMask, std::string muonkey, bool recordSG) const
const SG::AuxElement::Accessor< float > * getIsolationAccessor(Iso::IsolationType type)
Get the Accessor object for a given isolation type.
Data class for event shapes.
IsolationFlavour isolationFlavour(IsolationType type)
convert Isolation Type into Isolation Flavour
@ coreCone
core energy (in dR<0.1).
bool getPileupCorrection(float &value, const xAOD::IParticle &par, xAOD::Iso::IsolationType type, xAOD::Iso::IsolationCaloCorrectionBitset corrMask) const
std::pair< std::unique_ptr< T >, std::unique_ptr< ShallowAuxContainer > > shallowCopyContainer(const T &cont, [[maybe_unused]] const EventContext &ctx)
Function making a shallow copy of a constant container.
IsolationCaloCorrection
Enumeration for different ways of correcting isolation in xAOD files.
const SG::AuxElement::Accessor< uint32_t > getIsolationCorrectionBitsetAccessor(Iso::IsolationFlavour type)
Returns an accessor for the correction bitset corresponding to this IsolationType.
static void encode(const std::vector< IsolationCaloCorrection > &values, IsolationCaloCorrectionBitset &bitset)
encode the bitset given a vector of corrections
virtual StatusCode finalize()
finalize
IsolationHelper(const std::string &name)
Create a constructor for Athena.
float coneSize(IsolationConeSize type)
convert Isolation Size into cone size
@ pileupCorrection
fully corrected
static void decode(const IsolationCaloCorrectionBitset &bitset, std::vector< IsolationCaloCorrection > &results)
decode the bitset into the individual corrections