ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
TestBeam
TBRec
src
TBDMContainerSplitter.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TBDMContainerSplitter.h
"
6
7
#include "
CaloDmDetDescr/CaloDmDescrManager.h
"
8
#include "
CaloSimEvent/CaloCalibrationHitContainer.h
"
9
10
TBDMContainerSplitter::TBDMContainerSplitter
(
const
std::string& name,
11
ISvcLocator* pSvcLocator) :
12
AthAlgorithm
(name, pSvcLocator),
13
m_DMHitsKey
(
"LArCalibrationHitDeadMaterial"
),
14
m_DMHitsCaloKey
(
"LArCalibrationHitDeadMaterial_Calo"
),
15
m_DMHitsLeakKey
(
"LArCalibrationHitDeadMaterial_Leakage"
),
16
m_caloDmDescrManager
(0)
17
{
18
declareProperty
(
"InputDMContainer"
,
m_DMHitsKey
);
19
declareProperty
(
"OutputDM_Calo"
,
m_DMHitsCaloKey
);
20
declareProperty
(
"OutputDM_Leak"
,
m_DMHitsLeakKey
);
21
}
22
23
TBDMContainerSplitter::~TBDMContainerSplitter
()
24
{ }
25
26
StatusCode
TBDMContainerSplitter::initialize
()
27
{
28
ATH_MSG_INFO
(
"in initialize()"
);
29
30
m_caloDmDescrManager
=
CaloDmDescrManager::instance
();
31
if
(!
m_caloDmDescrManager
) {
32
ATH_MSG_FATAL
(
" Could not get the CaloDmDescrManager !! "
);
33
return
StatusCode::FAILURE ;
34
}
35
36
ATH_MSG_INFO
(
"end of initialize()"
);
37
return
StatusCode::SUCCESS;
38
}
39
40
41
StatusCode
TBDMContainerSplitter::finalize
()
42
{
43
return
StatusCode::SUCCESS;
44
}
45
46
StatusCode
TBDMContainerSplitter::execute
(
const
EventContext& ctx)
47
{
48
ATH_MSG_DEBUG
(
"Executing TBDMContainerSplitter "
);
49
50
// Retrieve Original DM container
51
const
CaloCalibrationHitContainer
* inDMCont;
52
StatusCode
sc
=
evtStore
()->retrieve(inDMCont,
m_DMHitsKey
);
53
if
(
sc
.isFailure() ) {
54
ATH_MSG_ERROR
55
(
"Cannot retrieve CaloCalibrationHitContainer "
<<
m_DMHitsKey
<<
" from StoreGate"
);
56
setFilterPassed
(
false
, ctx);
57
return
StatusCode::SUCCESS;
58
}
59
// Create two new DMCont
60
CaloCalibrationHitContainer
* outDMContCalo =
new
CaloCalibrationHitContainer
();
61
CaloCalibrationHitContainer
* outDMContLeak =
new
CaloCalibrationHitContainer
();
62
63
// Loop over original, and fill two new ones
64
for
(
const
CaloCalibrationHit
*
hit
: *inDMCont) {
65
Identifier
myId =
hit
->cellID();
66
CaloDmDescrElement
* myCDDE(0);
67
myCDDE =
m_caloDmDescrManager
->get_element(myId);
68
CaloCalibrationHit
*chit =
new
CaloCalibrationHit
(myId,
hit
->energyEM(),
hit
->energyNonEM(),
hit
->energyInvisible(),
hit
->energyEscaped());
69
if
( myCDDE ) {
70
if
(myCDDE->
eta
()>2.5 && myCDDE->
phi
() >
M_PI
/2 && myCDDE->
phi
() <
M_PI
){
// Calo hit
71
outDMContCalo->
push_back
(chit);
72
}
else
{
//Leak hit
73
outDMContLeak->
push_back
(chit);
74
}
75
}
else
{
// No CDDE, assume leak hit
76
outDMContLeak->
push_back
(chit);
77
}
78
}
79
80
// Store new containers
81
sc
=
evtStore
()->record(outDMContCalo,
m_DMHitsCaloKey
);
82
if
(
sc
.isFailure() ) {
83
ATH_MSG_ERROR
(
"Could not store: "
<<
m_DMHitsCaloKey
<<
" to StoreGate"
);
84
setFilterPassed
(
false
, ctx);
85
return
StatusCode::SUCCESS;
86
}
87
sc
=
evtStore
()->record(outDMContLeak,
m_DMHitsLeakKey
);
88
if
(
sc
.isFailure() ) {
89
ATH_MSG_ERROR
(
"Could not store: "
<<
m_DMHitsLeakKey
<<
" to StoreGate"
);
90
setFilterPassed
(
false
, ctx);
91
return
StatusCode::SUCCESS;
92
}
93
94
95
setFilterPassed
(
true
, ctx);
96
return
StatusCode::SUCCESS;
97
98
}
99
M_PI
#define M_PI
Definition
ActiveFraction.h:14
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition
AthMsgStreamMacros.h:33
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition
AthMsgStreamMacros.h:34
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition
AthMsgStreamMacros.h:31
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
CaloCalibrationHitContainer.h
CaloDmDescrManager.h
CaloCalibrationHitContainer
CaloCalibrationHitContainer
Definition
CaloSimEventTPCnv.cxx:17
hit
bool hit(const Container &ids, int pdgId)
Definition
JetIRCSafeLabelTool.cxx:64
sc
static Double_t sc
Definition
LArPhysWaveHECTool.cxx:37
TBDMContainerSplitter.h
AthAlgorithm::AthAlgorithm
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition
AthAlgorithm.cxx:10
AthCommonAlgorithm< Gaudi::Algorithm >::setFilterPassed
virtual void setFilterPassed(bool state, const EventContext &ctx) const
Definition
AthCommonAlgorithm.h:99
AthCommonAlgorithm< Gaudi::Algorithm >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Definition
AthCommonDataStore.h:145
AthCommonAlgorithm< Gaudi::Algorithm >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
Definition
AthCommonDataStore.h:85
AthenaHitsVector::push_back
void push_back(T *t)
Definition
AthenaHitsVector.h:201
CaloCalibrationHitContainer
Definition
CaloCalibrationHitContainer.h:25
CaloCalibrationHit
Class to store calorimeter calibration hit.
Definition
CaloCalibrationHit.h:24
CaloDmDescrElement
Definition
CaloDmDescrManager.h:33
CaloDmDescrElement::eta
float eta() const
Definition
CaloDmDescrManager.h:57
CaloDmDescrElement::phi
float phi() const
Definition
CaloDmDescrManager.h:59
CaloDmDescrManager::instance
static const CaloDmDescrManager * instance()
Definition
CaloDmDescrManager.cxx:67
TBDMContainerSplitter::finalize
virtual StatusCode finalize() override
Definition
TBDMContainerSplitter.cxx:41
TBDMContainerSplitter::execute
virtual StatusCode execute(const EventContext &ctx) override
Execute method.
Definition
TBDMContainerSplitter.cxx:46
TBDMContainerSplitter::m_DMHitsCaloKey
std::string m_DMHitsCaloKey
Definition
TBDMContainerSplitter.h:29
TBDMContainerSplitter::TBDMContainerSplitter
TBDMContainerSplitter(const std::string &name, ISvcLocator *pSvcLocator)
Definition
TBDMContainerSplitter.cxx:10
TBDMContainerSplitter::~TBDMContainerSplitter
virtual ~TBDMContainerSplitter()
Definition
TBDMContainerSplitter.cxx:23
TBDMContainerSplitter::m_DMHitsLeakKey
std::string m_DMHitsLeakKey
Definition
TBDMContainerSplitter.h:30
TBDMContainerSplitter::m_DMHitsKey
std::string m_DMHitsKey
Definition
TBDMContainerSplitter.h:28
TBDMContainerSplitter::initialize
virtual StatusCode initialize() override
Definition
TBDMContainerSplitter.cxx:26
TBDMContainerSplitter::m_caloDmDescrManager
const CaloDmDescrManager * m_caloDmDescrManager
Definition
TBDMContainerSplitter.h:32
Identifier
Definition
IdentifierFieldParser.cxx:14
Generated on
for ATLAS Offline Software by
1.17.0