ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Event
xAOD
xAODTriggerAthenaPool
src
xAODTrigNavigationAuxInfoCnv.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
// $Id: xAODTrigNavigationAuxInfoCnv.cxx 710840 2015-11-26 08:45:42Z will $
6
7
// System include(s):
8
#include <stdexcept>
9
10
#ifndef XAOD_ANALYSIS
11
#include "
AthenaKernel/ITrigNavigationThinningSvc.h
"
//thinning only possible in full athena
12
#include "
AthenaKernel/getThinningCache.h
"
13
#include "
AthenaKernel/ThinningCache.h
"
14
#include "GaudiKernel/ThreadLocalContext.h"
15
#endif
16
17
// EDM include(s):
18
#include "
AthContainers/tools/copyAuxStoreThinned.h
"
19
20
21
22
// Local include(s):
23
#include "
xAODTrigNavigationAuxInfoCnv.h
"
24
#include "
xAODTrigger/TrigNavigation.h
"
25
26
xAODTrigNavigationAuxInfoCnv::
27
xAODTrigNavigationAuxInfoCnv
( ISvcLocator* svcLoc )
28
:
xAODTrigNavigationAuxInfoCnvBase
( svcLoc ) {
29
30
}
31
32
xAOD::TrigNavigationAuxInfo
*
33
xAODTrigNavigationAuxInfoCnv::
34
createPersistentWithKey
(
xAOD::TrigNavigationAuxInfo
* trans,
35
const
std::string&
/*key*/
) {
36
37
xAOD::TrigNavigationAuxInfo
* result =
new
xAOD::TrigNavigationAuxInfo
();
38
#ifndef XAOD_ANALYSIS
39
const
ITrigNavigationThinningSvc
* thinningSvc =
nullptr
;
40
// Try to find the thinning service.
41
if
(
const
SG::ThinningCache
* cache =
SG::getThinningCache
()) {
42
thinningSvc = cache->trigNavigationThinningSvc();
43
}
44
if
( thinningSvc ) {
45
ATH_MSG_DEBUG
(
"Doing TrigNavigation slimming"
);
46
xAOD::TrigNavigation
wrapper;
47
wrapper.setStore(result);
48
std::vector< unsigned int > temp;
49
const
EventContext& ctx = Gaudi::Hive::currentContext();
50
if
( thinningSvc->
doSlimming
(ctx, temp).isFailure() ) {
51
ATH_MSG_WARNING
(
"Failed to slim and store Trigger Navigation data in the output xAODTrigNavigation object"
);
52
}
53
wrapper.
setSerialized
(temp);
54
wrapper.setStore((
const
SG::IConstAuxStore*)
nullptr
);
55
}
else
{
56
ATH_MSG_DEBUG
(
"No TrigNavigation slimming"
);
57
*result = *trans;
58
}
59
#else
60
//no navigation thinning in analysis releases
61
*result = *trans;
62
#endif
63
64
return
result;
65
}
66
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition
AthMsgStreamMacros.h:32
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
ITrigNavigationThinningSvc.h
Define interface for doing TrigNavigation thinning.
ThinningCache.h
TrigNavigation.h
ITrigNavigationThinningSvc
Define interface for doing TrigNavigation thinning.
Definition
ITrigNavigationThinningSvc.h:31
ITrigNavigationThinningSvc::doSlimming
virtual StatusCode doSlimming(const EventContext &ctx, std::vector< uint32_t > &slimmed_and_serialized) const =0
Return slimmed data for TrigNavigation.
SG::ThinningCache
Cache thinning decisions for converters.
Definition
ThinningCache.h:48
xAODTrigNavigationAuxInfoCnv::xAODTrigNavigationAuxInfoCnv
xAODTrigNavigationAuxInfoCnv(ISvcLocator *svcLoc)
Converter constructor.
Definition
xAODTrigNavigationAuxInfoCnv.cxx:27
xAODTrigNavigationAuxInfoCnv::createPersistentWithKey
virtual xAOD::TrigNavigationAuxInfo * createPersistentWithKey(xAOD::TrigNavigationAuxInfo *trans, const std::string &key) override
Function preparing the container to be written out.
Definition
xAODTrigNavigationAuxInfoCnv.cxx:34
xAOD::TrigNavigation_v1::setSerialized
void setSerialized(const std::vector< unsigned int > &value)
sets the serialized form of the navigation from the argument
copyAuxStoreThinned.h
Helper to copy an aux store while applying thinning.
getThinningCache.h
Helpers to retrieve the current thinning cache from the event context.
SG::getThinningCache
const SG::ThinningCache * getThinningCache(const EventContext &ctx)
Retrieve the current thinning cache from the event context.
Definition
getThinningCache.cxx:28
xAOD::TrigNavigationAuxInfo
TrigNavigationAuxInfo_v1 TrigNavigationAuxInfo
Define the latest version of the trigger navigation auxiliary information class.
Definition
TrigNavigationAuxInfo.h:17
xAOD::TrigNavigation
TrigNavigation_v1 TrigNavigation
Define the latest version of the trigger navigation class.
Definition
TrigNavigation.h:16
xAODTrigNavigationAuxInfoCnv.h
xAODTrigNavigationAuxInfoCnvBase
T_AthenaPoolAuxContainerCnv< xAOD::TrigNavigationAuxInfo > xAODTrigNavigationAuxInfoCnvBase
Base class for the converter.
Definition
xAODTrigNavigationAuxInfoCnv.h:19
Generated on
for ATLAS Offline Software by
1.17.0