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

AlgTool class to provide conversion from TileRawChannelContainer to ByteStream, and fill it in RawEvent. More...

#include <TileRawChannelContByteStreamTool.h>

Inheritance diagram for TileRawChannelContByteStreamTool:
Collaboration diagram for TileRawChannelContByteStreamTool:

Public Types

typedef TileRawChannelContainer CONTAINER

Public Member Functions

 TileRawChannelContByteStreamTool (const std::string &type, const std::string &name, const IInterface *parent)
 constructor
virtual ~TileRawChannelContByteStreamTool ()
 destructor
virtual StatusCode initialize () override
virtual StatusCode finalize () override
StatusCode convert (CONTAINER *cont, FullEventAssembler< TileHid2RESrcID > *fea) const
 Provides conversion from TileRawChannelContainer to BS.
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 sysInitialize () override
 Perform system initialization for an algorithm.
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

Static Public Member Functions

static const InterfaceID & interfaceID ()
 AlgTool InterfaceID.

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

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

Gaudi::Property< bool > m_doFragType4 {this, "DoFragType4", true, "Do frag type 4"}
Gaudi::Property< bool > m_doFragType5 {this, "DoFragType5", false, "Do frag type 5"}
Gaudi::Property< bool > m_initializeForWriting {this, "InitializeForWriting", false, "Initialize for writing"}
SG::ReadCondHandleKey< TileHid2RESrcIDm_hid2RESrcIDKey
const TileHWIDm_tileHWID
bool m_verbose
ToolHandle< TileCondToolEmscalem_tileToolEmscale
 Handle to Tile calibration tool.
ToolHandle< ITileBadChanToolm_tileBadChanTool
 Handle to Tile bad channel tool.
int m_maxChannels
 maximum number of channels in a drawer
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

AlgTool class to provide conversion from TileRawChannelContainer to ByteStream, and fill it in RawEvent.

Author
Hong Ma
Version
Created, Sept 25, 2002

requirements: typedef for CONTAINER class method:

StatusCode convert(CONTAINER* cont, RawEvent* re);

Definition at line 33 of file TileRawChannelContByteStreamTool.h.

Member Typedef Documentation

◆ CONTAINER

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ TileRawChannelContByteStreamTool()

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

constructor

Definition at line 35 of file TileRawChannelContByteStreamTool.cxx.

37 : AthAlgTool(type, name, parent)
38 , m_tileHWID(0)
39 , m_verbose(false)
41{
42 declareInterface<TileRawChannelContByteStreamTool>(this);
43}
AthAlgTool()
Default constructor:
static const unsigned int MAX_CHAN
Number of channels in drawer.
int m_maxChannels
maximum number of channels in a drawer

◆ ~TileRawChannelContByteStreamTool()

TileRawChannelContByteStreamTool::~TileRawChannelContByteStreamTool ( )
virtual

destructor

Definition at line 47 of file TileRawChannelContByteStreamTool.cxx.

47 {
48}

Member Function Documentation

◆ convert()

StatusCode TileRawChannelContByteStreamTool::convert ( CONTAINER * cont,
FullEventAssembler< TileHid2RESrcID > * fea ) const

Provides conversion from TileRawChannelContainer to BS.

Definition at line 77 of file TileRawChannelContByteStreamTool.cxx.

78{
79 bool isTMDB = evtStore()->proxy(rawChannelContainer)->name() == "MuRcvRawChCnt";
80
81 TileFragHash::TYPE contType = rawChannelContainer->get_type();
82 TileRawChannelUnit::UNIT inputUnit = rawChannelContainer->get_unit();
83 TileRawChannelUnit::UNIT outputUnit = inputUnit;
84
85 bool oflCont = (inputUnit < TileRawChannelUnit::OnlineOffset);
86
88 SG::ReadCondHandle<TileHid2RESrcID> hid2re{m_hid2RESrcIDKey};
89
90 ATH_MSG_DEBUG( " Number of raw channel collections... " << rawChannelContainer->size() << " " << evtStore()->proxy(rawChannelContainer)->name());
91
92 std::map<uint32_t, TileROD_Encoder> mapEncoder;
93 std::vector<TileFastRawChannel> channels;
94 channels.reserve (m_tileHWID->channel_hash_max());
95
96 uint32_t reid = 0x0;
97
98 for (const TileRawChannelCollection* rawChannelCollection : *rawChannelContainer) {
99
100 TileRawChannelCollection::ID frag_id = rawChannelCollection->identify();
101
102 if (isTMDB) reid = hid2re->getRodTileMuRcvID(frag_id);
103 else reid = hid2re->getRodID(frag_id);
104
105 TileROD_Encoder& encoder = mapEncoder[reid];
106
107 encoder.setTileHWID(m_tileHWID, m_verbose, 4);
108 encoder.setTypeAndUnit(contType, outputUnit);
110
111 HWIdentifier drawer_id = m_tileHWID->drawer_id(frag_id);
112
113 int ros = m_tileHWID->ros(drawer_id);
114 int drawer = m_tileHWID->drawer(drawer_id);
115 int drawerIdx = TileCalibUtils::getDrawerIdx(ros, drawer);
116
117 int nChannels = 0;
118
119 for (const TileRawChannel* rawChannel : *rawChannelCollection) {
120
121 HWIdentifier adc_id = rawChannel->adc_HWID();
122 int channel = m_tileHWID->channel(adc_id);
123 int adc = m_tileHWID->adc(adc_id);
124 float amplitude = rawChannel->amplitude();
125 float time = rawChannel->time();
126 float quality = rawChannel->quality();
127 if (isTMDB) {
128 channels.emplace_back (frag_id, channel, adc, amplitude, 0., 0.);
129 } else {
130 if (oflCont) {
131 if (quality > 15.0) quality = 15.0;
132 if (m_tileBadChanTool->getAdcStatus(drawerIdx, channel, adc).isBad()) quality += 16.;
133 }
134 //amplitude = m_tileToolEmscale->channelCalib(drawerIdx, channel, adc, amplitude, inputUnit, outputUnit);
135 channels.emplace_back (frag_id, channel, adc, amplitude, time, quality);
136 }
137
138 // Don't need to worry about these moving due to the reserve() above.
139 encoder.add(&channels.back());
140 ++nChannels;
141 }
142
143 ATH_MSG_DEBUG( " Collection " << MSG::hex << "0x" << frag_id
144 << " ROD " << "0x" << reid
145 << " number of channels " << MSG::dec << nChannels );
146 }
147
148 // TileROD_Encoder has collected all the channels, now can fill the
149 // ROD block data.
150
151 for (std::pair<const uint32_t, TileROD_Encoder>& reidAndEncoder: mapEncoder) {
152
153 theROD = fea->getRodData(reidAndEncoder.first);
154 TileROD_Encoder& theEncoder = reidAndEncoder.second;
155
156 if ((reidAndEncoder.first & 0xf00)) {
157 theEncoder.fillRODTileMuRcvRawChannel(*theROD);
158 } else {
159 if (m_doFragType4) theEncoder.fillROD4(*theROD);
160 if (m_doFragType5) theEncoder.fillROD5(*theROD);
161 }
162 ATH_MSG_DEBUG( " Number of TileRawChannel words in ROD " << MSG::hex << " 0x" << reidAndEncoder.first << MSG::dec << " : " << theROD->size() );
163 }
164
165 return StatusCode::SUCCESS;
166}
#define ATH_MSG_DEBUG(x)
ServiceHandle< StoreGateSvc > & evtStore()
std::vector< uint32_t > RODDATA
ROD data as a vector of unsigned int.
RODDATA * getRodData(uint32_t id)
get a block of ROD data
static unsigned int getDrawerIdx(unsigned int ros, unsigned int drawer)
Returns a drawer hash.
TYPE
initialize
void setMaxChannels(int maxChannels)
set maximum number of channels in a drawer
void fillROD5(std::vector< uint32_t > &v)
void setTypeAndUnit(TileFragHash::TYPE type, TileRawChannelUnit::UNIT unit)
set OF algorigtm type and amplitude units for a drawer
void fillRODTileMuRcvRawChannel(std::vector< uint32_t > &v)
void setTileHWID(const TileHWID *tileHWID, bool verbose, unsigned int type=4)
set all necessary parameters for the encoder
void fillROD4(std::vector< uint32_t > &v)
void add(const TileFastRawChannel *rc)
add TileRawChannels to the current list
ToolHandle< ITileBadChanTool > m_tileBadChanTool
Handle to Tile bad channel tool.
SG::ReadCondHandleKey< TileHid2RESrcID > m_hid2RESrcIDKey
time(flags, cells_name, *args, **kw)
unsigned int constexpr nChannels
Definition RPDUtils.h:23
setEventNumber uint32_t

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::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 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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< AlgTool > >::evtStore ( )
inlineinherited

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

Definition at line 85 of file AthCommonDataStore.h.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::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

◆ finalize()

StatusCode TileRawChannelContByteStreamTool::finalize ( )
overridevirtual

Definition at line 72 of file TileRawChannelContByteStreamTool.cxx.

72 {
73 ATH_MSG_INFO ("Finalizing TileRawChannelContByteStreamTool successfuly");
74 return StatusCode::SUCCESS;
75}
#define ATH_MSG_INFO(x)

◆ initialize()

StatusCode TileRawChannelContByteStreamTool::initialize ( )
overridevirtual

Definition at line 50 of file TileRawChannelContByteStreamTool.cxx.

50 {
51
52 ATH_MSG_INFO ("Initializing TileRawChannelContByteStreamTool");
53
54 ATH_CHECK( detStore()->retrieve(m_tileHWID, "TileHWID") );
55
56 ToolHandle<TileROD_Decoder> dec("TileROD_Decoder");
57 ATH_CHECK( dec.retrieve() );
58
59 // get TileCondToolEmscale
60 ATH_CHECK( m_tileToolEmscale.retrieve() );
61
62 // get TileBadChanTool
63 ATH_CHECK( m_tileBadChanTool.retrieve() );
64
66
68
69 return StatusCode::SUCCESS;
70}
#define ATH_CHECK
Evaluate an expression and check for errors.
const ServiceHandle< StoreGateSvc > & detStore() const
static const TileCablingService * getInstance()
get pointer to service instance
int getMaxChannels(void) const
ToolHandle< TileCondToolEmscale > m_tileToolEmscale
Handle to Tile calibration tool.
retrieve(aClass, aKey=None)
Definition PyKernel.py:110

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::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.

◆ interfaceID()

const InterfaceID & TileRawChannelContByteStreamTool::interfaceID ( )
static

AlgTool InterfaceID.

Definition at line 29 of file TileRawChannelContByteStreamTool.cxx.

29 {
31}
static const InterfaceID IID_ITileRawChannelContByteStreamTool("TileRawChannelContByteStreamTool", 1, 0)

◆ msg()

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msgLvl()

bool AthCommonMsg< AlgTool >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_doFragType4

Gaudi::Property<bool> TileRawChannelContByteStreamTool::m_doFragType4 {this, "DoFragType4", true, "Do frag type 4"}
private

Definition at line 60 of file TileRawChannelContByteStreamTool.h.

60{this, "DoFragType4", true, "Do frag type 4"};

◆ m_doFragType5

Gaudi::Property<bool> TileRawChannelContByteStreamTool::m_doFragType5 {this, "DoFragType5", false, "Do frag type 5"}
private

Definition at line 61 of file TileRawChannelContByteStreamTool.h.

61{this, "DoFragType5", false, "Do frag type 5"};

◆ m_evtStore

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

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_hid2RESrcIDKey

SG::ReadCondHandleKey<TileHid2RESrcID> TileRawChannelContByteStreamTool::m_hid2RESrcIDKey
private
Initial value:
{this,
"TileHid2RESrcID", "TileHid2RESrcIDHLT", "TileHid2RESrcID key"}

Definition at line 64 of file TileRawChannelContByteStreamTool.h.

64 {this,
65 "TileHid2RESrcID", "TileHid2RESrcIDHLT", "TileHid2RESrcID key"};

◆ m_initializeForWriting

Gaudi::Property<bool> TileRawChannelContByteStreamTool::m_initializeForWriting {this, "InitializeForWriting", false, "Initialize for writing"}
private

Definition at line 62 of file TileRawChannelContByteStreamTool.h.

62{this, "InitializeForWriting", false, "Initialize for writing"};

◆ m_maxChannels

int TileRawChannelContByteStreamTool::m_maxChannels
private

maximum number of channels in a drawer

Definition at line 79 of file TileRawChannelContByteStreamTool.h.

◆ m_tileBadChanTool

ToolHandle<ITileBadChanTool> TileRawChannelContByteStreamTool::m_tileBadChanTool
private
Initial value:
{this,
"TileBadChanTool", "TileBadChanTool", "Tile bad channel tool"}

Handle to Tile bad channel tool.

Definition at line 75 of file TileRawChannelContByteStreamTool.h.

75 {this,
76 "TileBadChanTool", "TileBadChanTool", "Tile bad channel tool"};

◆ m_tileHWID

const TileHWID* TileRawChannelContByteStreamTool::m_tileHWID
private

Definition at line 67 of file TileRawChannelContByteStreamTool.h.

◆ m_tileToolEmscale

ToolHandle<TileCondToolEmscale> TileRawChannelContByteStreamTool::m_tileToolEmscale
private
Initial value:
{this,
"TileCondToolEmscale", "TileCondToolEmscale", "Tile EM scale conditions tool"}

Handle to Tile calibration tool.

Definition at line 71 of file TileRawChannelContByteStreamTool.h.

71 {this,
72 "TileCondToolEmscale", "TileCondToolEmscale", "Tile EM scale conditions tool"};

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_verbose

bool TileRawChannelContByteStreamTool::m_verbose
private

Definition at line 68 of file TileRawChannelContByteStreamTool.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


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