ATLAS Offline Software
Loading...
Searching...
No Matches
TBXCryYTableRead Class Reference

#include <TBXCryYTableRead.h>

Inheritance diagram for TBXCryYTableRead:
Collaboration diagram for TBXCryYTableRead:

Public Member Functions

 TBXCryYTableRead (const std::string &name, ISvcLocator *pSvcLocator)
virtual ~TBXCryYTableRead ()
virtual StatusCode initialize () override
virtual StatusCode execute () override
virtual StatusCode finalize () override
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

void clear ()
StatusCode getXcryoYtable (float &x, float &y, float &eBeam)
 Get Xcryo and Ytable from a text file.
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

int m_nEvent
int m_nEventRandomTrigger
bool m_first
int m_nRun
float m_beamMom
 Run number.
float m_xCryo
 Beam momentum.
float m_yTable
 CryoX.
std::string m_txtFileWithXY
 TableY.
TBEventInfom_eventinfo
DataObjIDColl m_extendedExtraObjects
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 16 of file TBXCryYTableRead.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ TBXCryYTableRead()

TBXCryYTableRead::TBXCryYTableRead ( const std::string & name,
ISvcLocator * pSvcLocator )

Definition at line 13 of file TBXCryYTableRead.cxx.

14 :
15 AthAlgorithm(name, pSvcLocator),
16 m_nEvent(0),
18 m_first(true),
19 m_nRun(0),
20 m_beamMom(0),
21 m_xCryo(0),
22 m_yTable(0),
23 m_txtFileWithXY("xcryo_ytable.txt"),
25{
27}
AthAlgorithm()
Default constructor:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
float m_xCryo
Beam momentum.
float m_beamMom
Run number.
TBEventInfo * m_eventinfo
std::string m_txtFileWithXY
TableY.

◆ ~TBXCryYTableRead()

TBXCryYTableRead::~TBXCryYTableRead ( )
virtual

Definition at line 29 of file TBXCryYTableRead.cxx.

30{ }

Member Function Documentation

◆ clear()

void TBXCryYTableRead::clear ( )
private

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode TBXCryYTableRead::execute ( )
overridevirtual

Definition at line 43 of file TBXCryYTableRead.cxx.

44{
45 m_nEvent++;
46 ATH_MSG_DEBUG ( "Executing TBXCryYTableRead " );
47
49 // Retrieve Event Info from file
50 const TBEventInfo* theEventInfo = nullptr;
51 sc = evtStore()->retrieve(theEventInfo,"TBEventInfo");
52 if ( sc.isFailure() ) {
54 ( "Cannot retrieve TBEventInfo from StoreGate" );
55 setFilterPassed(false);
56 return StatusCode::SUCCESS;
57 }
58
59 // Do first event initialization (run header filling)
60 if (m_first) {
61 m_first = false;
62 // Fill run header
63 m_nRun = theEventInfo->getRunNum();
64 m_beamMom = theEventInfo->getBeamMomentum();
65 ATH_MSG_DEBUG ( "Run, mom. from EventInfo: "<<m_nRun<<","<<m_beamMom);
66 // Get xcryo and ytable from a file
67 float xFile, yFile, eFile;
68 ATH_CHECK(getXcryoYtable(xFile, yFile, eFile));
69 if(m_beamMom != eFile) {
70 ATH_MSG_WARNING ( "Energy from file: "<<eFile<<" is different than from bytestream: "<<m_beamMom<<" !!!");
71 ATH_MSG_WARNING ( "Using value from file !!!");
72 m_beamMom = eFile;
73 }
74 m_xCryo = xFile;
75 m_yTable = yFile;
76 }
77
78 // Now change the TBEventInfo
79 // unfortunatelly no copy constructor....
80// m_eventinfo = new TBEventInfo(theEventInfo->getEventNum(), theEventInfo->getEventClock(),
81// theEventInfo->getEventType(), m_nRun, m_beamMom,
82// theEventInfo->getBeamParticle(), m_xCryo, theEventInfo->getCryoAngle(),
83// m_yTable);
84 ATH_MSG_DEBUG ( "Filling TBEvent info with cryoX,tableY: "<<m_xCryo<<","<<m_yTable);
85 // FIXME: const violation!
86 TBEventInfo* ei_nc ATLAS_THREAD_SAFE = const_cast<TBEventInfo*>(theEventInfo);
87 *ei_nc =
88 TBEventInfo (theEventInfo->getEventNum(),
89 theEventInfo->getEventClock(),
90 theEventInfo->getEventType(),
91 theEventInfo->getRunNum(),
93 theEventInfo->getBeamParticle(),
94 m_xCryo,
95 theEventInfo->getCryoAngle(),
96 m_yTable);
97
98 //sc = m_eventStore->record(m_eventinfo,"TBEventInfo");
99 //if ( sc.isFailure( ) ) {
100 // ATH_MSG_FATAL( "Cannot record new TBEventInfo " );
101 // setFilterPassed(false);
102 // return StatusCode::SUCCESS;
103 //}
104 setFilterPassed(true);
105 return StatusCode::SUCCESS;
106
107}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
static Double_t sc
#define ATLAS_THREAD_SAFE
float getBeamMomentum() const
Definition TBEventInfo.h:73
float getCryoAngle() const
Definition TBEventInfo.h:76
int getEventNum() const
Definition TBEventInfo.h:69
const std::string & getBeamParticle() const
Definition TBEventInfo.h:74
int getEventClock() const
Definition TBEventInfo.h:70
int getEventType() const
Definition TBEventInfo.h:71
unsigned int getRunNum() const
Definition TBEventInfo.h:72
StatusCode getXcryoYtable(float &x, float &y, float &eBeam)
Get Xcryo and Ytable from a text file.
::StatusCode StatusCode
StatusCode definition for legacy code.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51{
52 // If we didn't find any symlinks to add, just return the collection
53 // from the base class. Otherwise, return the extended collection.
54 if (!m_extendedExtraObjects.empty()) {
56 }
57 return Algorithm::extraOutputDeps();
58}
DataObjIDColl m_extendedExtraObjects

◆ finalize()

StatusCode TBXCryYTableRead::finalize ( )
overridevirtual

Definition at line 38 of file TBXCryYTableRead.cxx.

39{
40 return StatusCode::SUCCESS;
41}

◆ getXcryoYtable()

StatusCode TBXCryYTableRead::getXcryoYtable ( float & x,
float & y,
float & eBeam )
private

Get Xcryo and Ytable from a text file.

Definition at line 109 of file TBXCryYTableRead.cxx.

109 {
110
111 ATH_MSG_DEBUG ( "in getXcryoYtable(float x, float y)" );
112
113 std::ifstream xyFile;
114 std::string line;
115 std::string filename = PathResolver::find_file(m_txtFileWithXY, "DATAPATH");
116 xyFile.open(filename.c_str());
117 if (!xyFile.is_open()) {
118 ATH_MSG_ERROR ( "File " << m_txtFileWithXY << " fail to open in $DATAPATH");
119 return StatusCode::FAILURE;
120 }
121
122 ATH_MSG_DEBUG ( "Asking for run: "<<m_nRun);
123 while ( getline(xyFile, line, '\n') ) {
124 int run;
125 std::istringstream buf(line);
126 e = 0;
127 buf >> run >> x >> y >> e;
128 ATH_MSG_DEBUG ( "run,x,y,e= "<<run<<" "<<x<<" "<<y<<" "<<e);
129 if (run == m_nRun && xyFile.good()) return StatusCode::SUCCESS;
130 }
131
132 return StatusCode::FAILURE;
133}
#define y
#define x
static std::string find_file(const std::string &logical_file_name, const std::string &search_path)

◆ initialize()

StatusCode TBXCryYTableRead::initialize ( )
overridevirtual

Definition at line 32 of file TBXCryYTableRead.cxx.

33{
34 return StatusCode::SUCCESS;
35}

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ msg()

MsgStream & AthCommonMsg< Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< Algorithm >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< Algorithm > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, AthHistogramAlgorithm, and PyAthena::Alg.

Definition at line 66 of file AthAlgorithm.cxx.

66 {
68
69 if (sc.isFailure()) {
70 return sc;
71 }
72 ServiceHandle<ICondSvc> cs("CondSvc",name());
73 for (auto h : outputHandles()) {
74 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75 // do this inside the loop so we don't create the CondSvc until needed
76 if ( cs.retrieve().isFailure() ) {
77 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78 return StatusCode::SUCCESS;
79 }
80 if (cs->regHandle(this,*h).isFailure()) {
81 sc = StatusCode::FAILURE;
82 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83 << " with CondSvc");
84 }
85 }
86 }
87 return sc;
88}
virtual StatusCode sysInitialize() override
Override sysInitialize.
AthCommonDataStore(const std::string &name, T... args)
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_beamMom

float TBXCryYTableRead::m_beamMom
private

Run number.

Definition at line 35 of file TBXCryYTableRead.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_eventinfo

TBEventInfo* TBXCryYTableRead::m_eventinfo
private

Definition at line 41 of file TBXCryYTableRead.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_first

bool TBXCryYTableRead::m_first
private

Definition at line 32 of file TBXCryYTableRead.h.

◆ m_nEvent

int TBXCryYTableRead::m_nEvent
private

Definition at line 30 of file TBXCryYTableRead.h.

◆ m_nEventRandomTrigger

int TBXCryYTableRead::m_nEventRandomTrigger
private

Definition at line 31 of file TBXCryYTableRead.h.

◆ m_nRun

int TBXCryYTableRead::m_nRun
private

Definition at line 34 of file TBXCryYTableRead.h.

◆ m_txtFileWithXY

std::string TBXCryYTableRead::m_txtFileWithXY
private

TableY.

Definition at line 39 of file TBXCryYTableRead.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ m_xCryo

float TBXCryYTableRead::m_xCryo
private

Beam momentum.

Definition at line 36 of file TBXCryYTableRead.h.

◆ m_yTable

float TBXCryYTableRead::m_yTable
private

CryoX.

Definition at line 37 of file TBXCryYTableRead.h.


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