ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
LArTBH6TriggerTimeTool Class Reference

#include <LArTBH6TriggerTimeTool.h>

Inheritance diagram for LArTBH6TriggerTimeTool:
Collaboration diagram for LArTBH6TriggerTimeTool:

Public Member Functions

 LArTBH6TriggerTimeTool (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual StatusCode initialize () override
 
virtual ~LArTBH6TriggerTimeTool ()=default
 
virtual double time () override
 returns the time offset of the current trigger More...
 
virtual void handle (const Incident &incident) override
 
double larTime ()
 
double trackRecordTime ()
 

Private Attributes

Gaudi::Property< double > m_time {this, "FixedTime", 0.}
 
Gaudi::Property< bool > m_fixed {this, "isFixed", true}
 
bool m_newEvent {true}
 
std::vector< SG::ReadHandle< LArHitContainer > > m_hitcoll
 

Detailed Description

Definition at line 15 of file LArTBH6TriggerTimeTool.h.

Constructor & Destructor Documentation

◆ LArTBH6TriggerTimeTool()

LArTBH6TriggerTimeTool::LArTBH6TriggerTimeTool ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 10 of file LArTBH6TriggerTimeTool.cxx.

12  :
13  base_class(type,name,parent)
14 {
15  m_hitcoll.push_back( SG::ReadHandle< LArHitContainer >("LArHitEMEC") );
16  m_hitcoll.push_back( SG::ReadHandle< LArHitContainer >("LArHitHEC") );
17  m_hitcoll.push_back( SG::ReadHandle< LArHitContainer >("LArHitFCAL") );
18 }

◆ ~LArTBH6TriggerTimeTool()

virtual LArTBH6TriggerTimeTool::~LArTBH6TriggerTimeTool ( )
virtualdefault

Member Function Documentation

◆ handle()

void LArTBH6TriggerTimeTool::handle ( const Incident &  incident)
overridevirtual

Definition at line 40 of file LArTBH6TriggerTimeTool.cxx.

40  {
41 
42  ATH_MSG_DEBUG ( " handle called " << "for incident "<< incident. type() );
43 
44  m_newEvent = true ;
45  return ;
46 }

◆ initialize()

StatusCode LArTBH6TriggerTimeTool::initialize ( )
overridevirtual

Definition at line 21 of file LArTBH6TriggerTimeTool.cxx.

22 {
23 
24  SmartIF<IIncidentSvc> incsvc{Gaudi::svcLocator()->service("IncidentSvc")};
25  if (!incsvc) {
26  ATH_MSG_FATAL ( "Incident service not found" );
27  return StatusCode::FAILURE ;
28  }
29 
30  long int pri=100;
31  incsvc->addListener(this,"BeginEvent",pri);
32 
33  ATH_MSG_DEBUG ( " LArTBH6TriggerTimeTool initialized " );
34 
35  return StatusCode::SUCCESS;
36 
37 }

◆ larTime()

double LArTBH6TriggerTimeTool::larTime ( )

Definition at line 61 of file LArTBH6TriggerTimeTool.cxx.

61  {
62 
63  double te = 0;
64  double e = 0;
65  int n=0;
66 
67  for(auto &it : m_hitcoll){
68 
69  for(const LArHit* hit : *it){
70  e += hit->energy();
71  te += hit->energy() * hit->time() ;
72  ++n;
73  }
74  }
75 
76  if(n==0){
77  ATH_MSG_INFO ( " no LArHit in this event" );
78  return 0 ;
79  }
80  if(e==0){
81  ATH_MSG_INFO ( " no LArHit energy in this event" );
82  return 0;
83  }
84 
85  double t = te/e;
86  ATH_MSG_DEBUG ( " average time from LArHit = " <<t );
87 
88  return t;
89 
90 
91 }

◆ time()

double LArTBH6TriggerTimeTool::time ( )
overridevirtual

returns the time offset of the current trigger

Definition at line 48 of file LArTBH6TriggerTimeTool.cxx.

48  {
49 
50  if(m_fixed || !m_newEvent) return m_time;
51 
52  // new event, try to get it from FrontHit
53  // double t1 = trackRecordTime();
54  m_time = larTime() ;
55 
56  m_newEvent= false;
57  return m_time;
58 }

◆ trackRecordTime()

double LArTBH6TriggerTimeTool::trackRecordTime ( )

Member Data Documentation

◆ m_fixed

Gaudi::Property<bool> LArTBH6TriggerTimeTool::m_fixed {this, "isFixed", true}
private

Definition at line 38 of file LArTBH6TriggerTimeTool.h.

◆ m_hitcoll

std::vector< SG::ReadHandle< LArHitContainer > > LArTBH6TriggerTimeTool::m_hitcoll
private

Definition at line 40 of file LArTBH6TriggerTimeTool.h.

◆ m_newEvent

bool LArTBH6TriggerTimeTool::m_newEvent {true}
private

Definition at line 39 of file LArTBH6TriggerTimeTool.h.

◆ m_time

Gaudi::Property<double> LArTBH6TriggerTimeTool::m_time {this, "FixedTime", 0.}
private

Definition at line 37 of file LArTBH6TriggerTimeTool.h.


The documentation for this class was generated from the following files:
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
SG::ReadHandle< LArHitContainer >
skel.it
it
Definition: skel.GENtoEVGEN.py:407
LArTBH6TriggerTimeTool::larTime
double larTime()
Definition: LArTBH6TriggerTimeTool.cxx:61
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
beamspotman.n
n
Definition: beamspotman.py:727
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
test_pyathena.parent
parent
Definition: test_pyathena.py:15
LArTBH6TriggerTimeTool::m_newEvent
bool m_newEvent
Definition: LArTBH6TriggerTimeTool.h:39
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
LArHit
Class to store hit energy and time in LAr cell from G4 simulation.
Definition: LArHit.h:25
LArTBH6TriggerTimeTool::m_fixed
Gaudi::Property< bool > m_fixed
Definition: LArTBH6TriggerTimeTool.h:38
LArTBH6TriggerTimeTool::m_time
Gaudi::Property< double > m_time
Definition: LArTBH6TriggerTimeTool.h:37
LArTBH6TriggerTimeTool::m_hitcoll
std::vector< SG::ReadHandle< LArHitContainer > > m_hitcoll
Definition: LArTBH6TriggerTimeTool.h:40