|
ATLAS Offline Software
|
Go to the documentation of this file.
10 #ifndef ISOLATIONALGS_ISOLATIONBUILDER_H
11 #define ISOLATIONALGS_ISOLATIONBUILDER_H 1
22 #include "GaudiKernel/ToolHandle.h"
74 "ElectronCollectionContainerName",
80 "FwdElectronCollectionContainerName",
86 "PhotonCollectionContainerName",
92 "MuonCollectionContainerName",
99 "CaloCellIsolationTool",
101 "Handle of the calo cell IsolationTool"
107 "CellCollectionName",
109 "Name of container which contain calo cells"
115 "CaloTopoIsolationTool",
117 "Handle of the calo topo IsolationTool"
123 "PFlowIsolationTool",
125 "Handle of the pflow IsolationTool"
131 "TrackIsolationTool",
133 "Handle of the track IsolationTool"
143 "use track to track assoc after brem" };
154 "The isolation types to do for electrons: vector of vector of enum type "
162 "The correction types to do for electron iso: vector of vector of enum "
163 "type Iso::IsolationCalo/TrackCorrection"
170 "The extra correction types to store but not apply for electrons"
179 "The isolation types to do for photons: vector of vector of enum type "
187 "The correction types to do for photons iso: vector of vector of enum type "
188 "Iso::IsolationCalo/TrackCorrection"
195 "The extra correction types to store but not apply for photons"
202 "The isolation types to do for Muons : vector of vector of enum type "
210 "The correction types to do for Muon iso: vector of vector of enum type "
211 "Iso::IsolationCalo/TrackCorrection"
218 "The extra correction types to store but not apply for muons"
225 "The isolation types to do for forward electron: vector of vector of enum "
226 "type Iso::IsolationType"
233 "The correction types to do for forward electron iso: vector of vector of "
234 "enum type Iso::IsolationCalo/TrackCorrection"
241 "The extra correction types to store but not apply for forward electrons"
251 void declare(IDataHandleHolder* owningAlg);
276 std::vector<std::pair<xAOD::Iso::IsolationFlavour, CaloIsoHelpKey>>
278 std::vector<std::pair<xAOD::Iso::IsolationFlavour, CaloIsoHelpKey>>
280 std::vector<std::pair<xAOD::Iso::IsolationFlavour, CaloIsoHelpKey>>
282 std::vector<std::pair<xAOD::Iso::IsolationFlavour, CaloIsoHelpKey>>
292 void declare(IDataHandleHolder* owningAlg);
313 std::vector<std::pair<xAOD::Iso::IsolationFlavour, TrackIsoHelpKey>>
315 std::vector<std::pair<xAOD::Iso::IsolationFlavour, TrackIsoHelpKey>>
317 std::vector<std::pair<xAOD::Iso::IsolationFlavour, TrackIsoHelpKey>>
325 std::vector<SG::WriteDecorHandle<xAOD::IParticleContainer, float>>
isoDeco;
330 std::vector<SG::WriteDecorHandle<xAOD::IParticleContainer, float>>>
340 std::vector<SG::WriteDecorHandle<xAOD::IParticleContainer, float>>
isoDeco;
341 std::vector<SG::WriteDecorHandle<xAOD::IParticleContainer, float>>
isoDecoV;
351 "CustomConfigurationNameEl",
353 "use a custom configuration for electron"
358 "CustomConfigurationNamePh",
360 "use a custom configuration for photon"
365 "CustomConfigurationNameFwd",
367 "use a custom configuration for forward electron"
372 "CustomConfigurationNameMu",
374 "use a custom configuration for muon"
382 std::set<xAOD::Iso::IsolationFlavour>& runIsoType,
383 std::vector<std::pair<xAOD::Iso::IsolationFlavour, CaloIsoHelpKey>>*
385 std::vector<std::pair<xAOD::Iso::IsolationFlavour, TrackIsoHelpKey>>*
387 const std::string& containerName,
388 const std::vector<std::vector<int>>& isoInts,
389 const std::vector<std::vector<int>>& corInts,
390 const std::vector<std::vector<int>>& corIntsExtra,
391 const std::string& customConfig);
396 CaloIsoHelpKey& cisoH,
397 const std::vector<std::vector<int>>& corInts,
399 const std::string&
prefix,
400 const std::string& customConfig);
406 TrackIsoHelpKey& tisoH,
407 const std::vector<std::vector<int>>& corInts,
409 const std::string&
prefix,
410 const std::string& customConfig);
413 const std::vector<std::pair<xAOD::Iso::IsolationFlavour, CaloIsoHelpKey>>&
418 const std::vector<std::pair<xAOD::Iso::IsolationFlavour, TrackIsoHelpKey>>&
422 std::vector<std::pair<xAOD::Iso::IsolationFlavour, CaloIsoHelpKey>>&
425 std::vector<std::pair<xAOD::Iso::IsolationFlavour, TrackIsoHelpKey>>&
429 #endif //> !ISOLATIONALGS_ISOLATIONBUILDER_H
Gaudi::Property< bool > m_allTrackRemoval
SG::WriteDecorHandleKeyArray< xAOD::IParticleContainer > isoDeco
The actual isolations.
Property holding a SG store/key/clid from which a ReadHandle is made.
Gaudi::Property< std::vector< std::vector< int > > > m_elisoInts
Isolation types.
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
virtual StatusCode initialize() override final
virtual StatusCode execute(const EventContext &ctx) const override final
Gaudi::Property< std::string > m_customConfigFwd
Gaudi::Property< bool > m_storepileupCorrection
void declareIso(std::vector< std::pair< xAOD::Iso::IsolationFlavour, CaloIsoHelpKey >> &caloIso)
std::vector< std::pair< xAOD::Iso::IsolationFlavour, CaloIsoHelpKey > > m_phCaloIso
Gaudi::Property< std::string > m_customConfigMu
Gaudi::Property< std::vector< std::vector< int > > > m_elcorIntsExtra
CaloIsoHelpKey(IDataHandleHolder *owningAlg)
constructor
IsolationFlavour
Enumeration for different ways of calculating isolation in xAOD files.
Gaudi::Property< std::vector< std::vector< int > > > m_mucorInts
TrackIsoHelpHandles(const TrackIsoHelpKey &keys)
Gaudi::Property< std::string > m_ElectronContainerName
Containers (Is it best to make them as strings? Used by multiple handles)
std::map< xAOD::Iso::IsolationTrackCorrection, SG::WriteDecorHandleKey< xAOD::IParticleContainer > > coreCorDeco
The corrections.
std::vector< SG::WriteDecorHandle< xAOD::IParticleContainer, float > > isoDeco
Gaudi::Property< std::vector< std::vector< int > > > m_phisoInts
Isolation types (for the alg.
void declare(IDataHandleHolder *owningAlg)
only to be called after placed in the final location, to propagate dependencies
Gaudi::Property< std::string > m_MuonContainerName
std::vector< SG::WriteDecorHandle< xAOD::IParticleContainer, float > > isoDecoV
Gaudi::Property< std::string > m_FwdElectronContainerName
Gaudi::Property< bool > m_isTrigger
is the alg run at trigger level
bool const RAWDATA *ch2 const
Support class for PropertyMgr.
xAOD::TrackCorrection CorrList
to keep track of the corrections
std::vector< std::pair< xAOD::Iso::IsolationFlavour, TrackIsoHelpKey > > m_elTrackIso
An algorithm that can be simultaneously executed in multiple threads.
Gaudi::Property< std::vector< std::vector< int > > > m_fecorInts
StatusCode addCaloIsoCorrections(size_t flavor, xAOD::Iso::IsolationFlavour isoFlav, CaloIsoHelpKey &cisoH, const std::vector< std::vector< int >> &corInts, bool corrsAreExtra, const std::string &prefix, const std::string &customConfig)
called by initializeIso
std::vector< xAOD::Iso::IsolationType > isoTypes
the types of isolations to calculate
StatusCode addTrackIsoCorrections(size_t flavor, xAOD::Iso::IsolationFlavour isoFlav, TrackIsoHelpKey &tisoH, const std::vector< std::vector< int >> &corInts, bool corrsAreExtra, const std::string &prefix, const std::string &customConfig)
called by initializeIso
Gaudi::Property< std::vector< std::vector< int > > > m_phcorIntsExtra
virtual ~IsolationBuilder()
Destructor:
SG::WriteDecorHandle< xAOD::IParticleContainer, uint32_t > corrBitsetDeco
SG::WriteDecorHandleKey< xAOD::IParticleContainer > corrBitsetDeco
xAOD::CaloCorrection CorrList
to keep track of the corrections
Gaudi::Property< std::string > m_customConfigPh
SG::ReadHandleKey< CaloCellContainer > m_cellsKey
Cell container.
StatusCode initializeIso(std::set< xAOD::Iso::IsolationFlavour > &runIsoType, std::vector< std::pair< xAOD::Iso::IsolationFlavour, CaloIsoHelpKey >> *caloIsoMap, std::vector< std::pair< xAOD::Iso::IsolationFlavour, TrackIsoHelpKey >> *trackIsoMap, const std::string &containerName, const std::vector< std::vector< int >> &isoInts, const std::vector< std::vector< int >> &corInts, const std::vector< std::vector< int >> &corIntsExtra, const std::string &customConfig)
called by algorithm initialize per object (electron, photon, forward electron, muon)
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
@ caloIso
Get sum of transvers energy of clusters around jet seed within 0.2 < dR < 0.4
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Property< std::vector< std::vector< int > > > m_feisoInts
SG::WriteDecorHandleKeyArray< xAOD::IParticleContainer > isoDecoV
Handle class for adding a decoration to an object.
Gaudi::Property< std::vector< std::vector< int > > > m_phcorInts
std::vector< SG::WriteDecorHandle< xAOD::IParticleContainer, float > > isoDeco
StatusCode executeTrackIso(const std::vector< std::pair< xAOD::Iso::IsolationFlavour, TrackIsoHelpKey >> &trackIsoMap) const
SG::WriteDecorHandleKey< xAOD::IParticleContainer > corrBitsetDeco
Handle class for adding a decoration to an object.
std::vector< std::pair< xAOD::Iso::IsolationFlavour, TrackIsoHelpKey > > m_muTrackIso
ToolHandle< xAOD::INeutralEFlowIsolationTool > m_pflowIsolationTool
Tool for neutral pflow isolation calculation.
TrackIsoHelpKey(IDataHandleHolder *owningAlg)
constructor
std::map< xAOD::Iso::IsolationTrackCorrection, SG::WriteDecorHandle< xAOD::IParticleContainer, float > > coreCorDeco
std::map< xAOD::Iso::IsolationCaloCorrection, std::vector< SG::WriteDecorHandle< xAOD::IParticleContainer, float > > > noncoreCorDeco
IsolationBuilder()
Default constructor:
std::vector< xAOD::Iso::IsolationType > isoTypes
the types of isolations to calculate
std::map< xAOD::Iso::IsolationCaloCorrection, SG::WriteDecorHandleKey< xAOD::IParticleContainer > > coreCorDeco
The corrections (one per flavor)
Gaudi::Property< bool > m_useBremAssoc
Gaudi::Property< std::vector< std::vector< int > > > m_muisoInts
SG::WriteDecorHandleKeyArray< xAOD::IParticleContainer > isoDeco
The actual isolations.
Gaudi::Property< std::vector< std::vector< int > > > m_fecorIntsExtra
StatusCode executeCaloIso(const std::vector< std::pair< xAOD::Iso::IsolationFlavour, CaloIsoHelpKey >> &caloIsoMap, const CaloCellContainer *cellColl) const
void declare(IDataHandleHolder *owningAlg)
only to be called after placed in the final location, to propagate dependencies
ToolHandle< xAOD::ITrackIsolationTool > m_trackIsolationTool
Tool for neutral pflow isolation calculation.
ToolHandle< xAOD::ICaloCellIsolationTool > m_cellIsolationTool
Tool for cell isolation calculation.
Gaudi::Property< std::string > m_customConfigEl
Container class for CaloCell.
std::map< xAOD::Iso::IsolationCaloCorrection, SG::WriteDecorHandleKeyArray< xAOD::IParticleContainer > > noncoreCorDeco
The corrections (one per flavor/type combination)
Gaudi::Property< std::string > m_PhotonContainerName
CaloIsoHelpHandles(const CaloIsoHelpKey &keys)
IsolationCaloCorrection
Enumeration for different ways of correcting isolation in xAOD files.
std::vector< std::pair< xAOD::Iso::IsolationFlavour, TrackIsoHelpKey > > m_phTrackIso
std::vector< std::pair< xAOD::Iso::IsolationFlavour, CaloIsoHelpKey > > m_feCaloIso
=============================================================================
static bool isCoreCor(xAOD::Iso::IsolationCaloCorrection corr)
Gaudi::Property< std::vector< std::vector< int > > > m_mucorIntsExtra
virtual StatusCode finalize() override final
std::map< xAOD::Iso::IsolationCaloCorrection, SG::WriteDecorHandle< xAOD::IParticleContainer, float > > coreCorDeco
ToolHandle< xAOD::ICaloTopoClusterIsolationTool > m_topoIsolationTool
Tool for topo isolation calculation.
SG::WriteDecorHandle< xAOD::IParticleContainer, uint32_t > corrBitsetDeco
std::vector< std::pair< xAOD::Iso::IsolationFlavour, CaloIsoHelpKey > > m_elCaloIso
std::vector< std::pair< xAOD::Iso::IsolationFlavour, CaloIsoHelpKey > > m_muCaloIso
Base class for elements of a container that can have aux data.
Gaudi::Property< std::vector< std::vector< int > > > m_elcorInts