ATLAS Offline Software
Loading...
Searching...
No Matches
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
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}
std::vector< SG::ReadHandle< LArHitContainer > > m_hitcoll

◆ ~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}
#define ATH_MSG_DEBUG(x)

◆ 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}
#define ATH_MSG_FATAL(x)

◆ 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}
#define ATH_MSG_INFO(x)

◆ 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}
Gaudi::Property< double > m_time
Gaudi::Property< bool > m_fixed

◆ 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.

38{this, "isFixed", true};

◆ 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.

39{true};

◆ m_time

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

Definition at line 37 of file LArTBH6TriggerTimeTool.h.

37{this, "FixedTime", 0.};

The documentation for this class was generated from the following files: