ATLAS Offline Software
CaloTimeFilterTool.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 // This class's header
7 #include <float.h>
8 
9 CaloTimeFilterTool::CaloTimeFilterTool( const std::string& tool_type) :
10  asg::AsgTool( tool_type ){
11 }
12 
14  const EventContext& ctx) const {
15  ATH_MSG_DEBUG("CaloTimeFilterTool::getTimeDifference()");
16 
17  SG::ReadHandle<LArCollisionTime> readHandle{read_key,ctx};
18  if (!readHandle.isValid()){
19  ATH_MSG_FATAL("Failed to retrieve "<<read_key);
20  return StatusCode::FAILURE;
21  }
22 
23  fillTimeDifference(time_info, readHandle.cptr());
24  return StatusCode::SUCCESS;
25 }
26 
28  const LArCollisionTime* larCollisionTime = nullptr;
29  ATH_CHECK(evtStore()->retrieve(larCollisionTime, m_containerName));
30  fillTimeDifference(time_info, larCollisionTime);
31  return StatusCode::SUCCESS;
32 }
33 void CaloTimeFilterTool::fillTimeDifference(TimingFilterInformation& time_info, const LArCollisionTime* larCollisionTime ) const{
34 
35  time_info.ncellA = larCollisionTime->ncellA();
36  time_info.ncellC = larCollisionTime->ncellC();
37  time_info.timeA = larCollisionTime->timeA();
38  time_info.timeC = larCollisionTime->timeC();
39 
40 
41  time_info.timeDiff = FLT_MAX;
42  if ( time_info.ncellA > m_mincellsperside && time_info.ncellC > m_mincellsperside ) { time_info.timeDiff = (time_info.timeA-time_info.timeC); }
43 
44  time_info.passCut = ( std::abs(time_info.timeDiff) < m_timeCut );
45 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
TimingFilterInformation
Simple helper struct used to obtain the timing information by the IMBTSTimeFilter and ICaloTimerFilte...
Definition: TimingFilterInformation.h:10
TimingFilterInformation::ncellA
int ncellA
Definition: TimingFilterInformation.h:20
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
CaloTimeFilterTool::m_mincellsperside
Gaudi::Property< int > m_mincellsperside
Definition: CaloTimeFilterTool.h:33
LArCollisionTime
Holds information about collisions timing from end-cap LAr calorimeters.
Definition: LArCollisionTime.h:19
CaloTimeFilterTool::fillTimeDifference
void fillTimeDifference(TimingFilterInformation &time_info, const LArCollisionTime *larCollisionTime) const
Definition: CaloTimeFilterTool.cxx:33
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
TimingFilterInformation::passCut
bool passCut
Definition: TimingFilterInformation.h:12
asg
Definition: DataHandleTestTool.h:28
SG::ReadHandleKey< LArCollisionTime >
CaloTimeFilterTool::getTimeDifference
virtual StatusCode getTimeDifference(TimingFilterInformation &time_info, const SG::ReadHandleKey< LArCollisionTime > &read_key, const EventContext &ctx) const override
Definition: CaloTimeFilterTool.cxx:13
LArCollisionTime::ncellC
int ncellC() const
get number of cells for time C side
Definition: LArCollisionTime.h:33
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
TimingFilterInformation::ncellC
int ncellC
Definition: TimingFilterInformation.h:21
TimingFilterInformation::timeDiff
double timeDiff
Definition: TimingFilterInformation.h:14
CaloTimeFilterTool::m_timeCut
Gaudi::Property< float > m_timeCut
Definition: CaloTimeFilterTool.h:32
CaloTimeFilterTool::m_containerName
Gaudi::Property< std::string > m_containerName
Definition: CaloTimeFilterTool.h:34
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
LArCollisionTime::timeC
double timeC() const
time C side
Definition: LArCollisionTime.h:45
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
CaloTimeFilterTool::CaloTimeFilterTool
CaloTimeFilterTool(const std::string &tool_name)
Definition: CaloTimeFilterTool.cxx:9
LArCollisionTime::ncellA
int ncellA() const
get number of cells for time A side
Definition: LArCollisionTime.h:30
TimingFilterInformation::timeA
double timeA
Definition: TimingFilterInformation.h:16
LArCollisionTime::timeA
double timeA() const
time A side
Definition: LArCollisionTime.h:42
TimingFilterInformation::timeC
double timeC
Definition: TimingFilterInformation.h:18
CaloTimeFilterTool.h