ATLAS Offline Software
Loading...
Searching...
No Matches
JiveXML::CaloMBTSRetriever Class Reference

Retrieves all Calo Cluster objects. More...

#include <CaloMBTSRetriever.h>

Inheritance diagram for JiveXML::CaloMBTSRetriever:
Collaboration diagram for JiveXML::CaloMBTSRetriever:

Public Member Functions

 CaloMBTSRetriever (const std::string &type, const std::string &name, const IInterface *parent)
 Standard Constructor.
virtual StatusCode retrieve (ToolHandle< IFormatTool > &FormatTool)
 Retrieve all the data.
const DataMap getMBTSData (const TileCellContainer *tileMBTSCellContainer)
 Retrieve MBTS cell location and details.
virtual std::string dataTypeName () const
 Return the name of the data type.
StatusCode initialize ()
 Default AthAlgTool methods.
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 ()
 Return the interface identifier.

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

ToolHandle< TileCondToolTimingm_tileToolTiming
ToolHandle< TileCondToolEmscalem_tileToolEmscale
const TileTBIDm_tileTBID
SG::ReadHandleKey< TileCellContainerm_sgKeyMBTS {this, "StoreGateKey", "MBTSContainer", "Name of the TileCellContainer"}
 properties:
SG::ReadHandleKey< TileDigitsContainerm_sgKeyTileDigits {this, "TileDigitsContainerKey", "", "Name of the TileDigitsContainer"}
SG::ReadHandleKey< TileRawChannelContainerm_sgKeyTileRawChannel {this, "TileRawChannelContainerKey", "", "Name of the TileRawChannelContainer"}
double m_mbtsThreshold
bool m_mbts
bool m_mbtsdigit
bool m_mbtsCellDetails
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

Retrieves all Calo Cluster objects.

  • Properties
    • StoreGateKeyMBTS: default is 'MBTSContainer'. Don't change.
    • MBTSThreshold: default is 0.05 (geV)
    • RetrieveMBTS: activate retriever, default is true
    • DoMBTSDigits: write MBTS digits (ADC), default is false
  • Retrieved Data
    • location in phi and eta
    • numCells: number of cells in each cluster
    • cells: identifier and adc counts of each cell

Definition at line 47 of file CaloMBTSRetriever.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ CaloMBTSRetriever()

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

Standard Constructor.

This is the standard AthAlgTool constructor.

Parameters
typeAlgTool type name
nameAlgTool instance name
parentAlgTools parent owning this tool

Definition at line 29 of file CaloMBTSRetriever.cxx.

29 :
30 AthAlgTool(type,name,parent),
31 m_tileTBID(nullptr)
32 {
33 //Only declare the interface
34 declareInterface<IDataRetriever>(this);
35
36 declareProperty("MBTSThreshold", m_mbtsThreshold = 0.05);
37 declareProperty("RetrieveMBTS" , m_mbts = true);
38 declareProperty("DoMBTSDigits", m_mbtsdigit=false);
39 declareProperty("DoMBTSCellDetails", m_mbtsCellDetails = false);
40
41 // TileDigitsContainer names: {"TileDigitsCnt","TileDigitsFlt"};
42 declareProperty("TileDigitsContainer" ,m_sgKeyTileDigits = "",
43 "Input collection to retrieve Tile digits, used when doTileDigit is True");
44
45 // TileRawChannelContainer names: {"TileRawChannelOpt2","TileRawChannelOpt","TileRawChannelFixed",
46 // "TileRawChannelFitCool","TileRawChannelFit",
47 // "TileRawChannelCnt","TileRawChannelFlt"};
48 declareProperty("TileRawChannelContainer" ,m_sgKeyTileRawChannel = "",
49 "Input collection to retrieve Tile raw channels, used when DoMBTSCellDetails is True.");
50 }
AthAlgTool()
Default constructor:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
SG::ReadHandleKey< TileRawChannelContainer > m_sgKeyTileRawChannel
SG::ReadHandleKey< TileDigitsContainer > m_sgKeyTileDigits

Member Function Documentation

◆ dataTypeName()

virtual std::string JiveXML::CaloMBTSRetriever::dataTypeName ( ) const
inlinevirtual

Return the name of the data type.

Implements JiveXML::IDataRetriever.

Definition at line 60 of file CaloMBTSRetriever.h.

60{ return "MBTS"; };

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

◆ 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

◆ getMBTSData()

const DataMap JiveXML::CaloMBTSRetriever::getMBTSData ( const TileCellContainer * tileMBTSCellContainer)

Retrieve MBTS cell location and details.

Parameters
FormatToolthe tool that will create formated output from the DataMap

< Unit for TileRawChannels (ADC, pCb, etc.)

Definition at line 103 of file CaloMBTSRetriever.cxx.

103 {
104
105 ATH_MSG_DEBUG( "getMBTSData()" );
106
108
109 DataVect energy; energy.reserve(tileMBTSCellContainer->size());
110 DataVect label; label.reserve(tileMBTSCellContainer->size());
111 DataVect phi; phi.reserve(tileMBTSCellContainer->size());
112 DataVect eta; eta.reserve(tileMBTSCellContainer->size());
113 DataVect sampling; sampling.reserve(tileMBTSCellContainer->size());
114 DataVect timeVec; timeVec.reserve(tileMBTSCellContainer->size());
115 DataVect quality; quality.reserve(tileMBTSCellContainer->size());
116 DataVect type; type.reserve(tileMBTSCellContainer->size());
117 DataVect channel; channel.reserve(tileMBTSCellContainer->size());
118 DataVect module; module.reserve(tileMBTSCellContainer->size());
119 DataVect cellPedestal; cellPedestal.reserve(tileMBTSCellContainer->size());
120 DataVect cellRawAmplitude; cellRawAmplitude.reserve(tileMBTSCellContainer->size());
121 DataVect cellRawTime; cellRawTime.reserve(tileMBTSCellContainer->size());
122 DataVect adcCounts; adcCounts.reserve(tileMBTSCellContainer->size() * 10);
123
124 std::string adcCountsStr="adcCounts multiple=\"0\"";
125 const TileHWID* tileHWID = nullptr;
126 const TileInfo* tileInfo = nullptr;
127 const TileCablingService* cabling=nullptr;
130 bool offlineRch = false;
131
132 if ( detStore()->retrieve(m_tileTBID).isFailure() ) {
133 ATH_MSG_ERROR( "in getMBTSData(), Could not retrieve m_tileTBID" );
134 }
135
136 if ( detStore()->retrieve(tileHWID).isFailure() ) {
137 ATH_MSG_ERROR( "in getMBTSData(), Could not retrieve TileHWID" );
138 }
139
140 if ( detStore()->retrieve(tileInfo, "TileInfo").isFailure() ) {
141 ATH_MSG_ERROR( "in getMBTSData(), Could not retrieve TileInfo" );
142 }
143
144 SG::ReadHandle<TileRawChannelContainer> RawChannelCnt;
145 if (m_mbtsCellDetails) {
146 RawChannelCnt = SG::makeHandle(m_sgKeyTileRawChannel);
147 if (!RawChannelCnt.isValid()){
148 ATH_MSG_WARNING( "Could not retrieve TileRawChannel " );
149 }
150 else{
151 RChUnit = RawChannelCnt->get_unit();
152 offlineRch = (RChUnit<TileRawChannelUnit::OnlineADCcounts &&
153 RawChannelCnt->get_type() != TileFragHash::OptFilterDsp);
154 }
155 }
156
157 SG::ReadHandle<TileDigitsContainer> tileDigits;
158 if (m_mbtsdigit) {
159 tileDigits = SG::makeHandle(m_sgKeyTileDigits);
160 if (!tileDigits.isValid()){
161 ATH_MSG_WARNING( "Could not retrieve TileDigits " );
162 }
163 }
164
165 // from: TileCalorimeter/TileRec/src/TileCellToNtuple.cxx
166
167 std::string MBTS_ID;
168 int nchan =0;
169 int nTileSamples=0;
170 const int max_chan=5216;
171 double energyMeV = 0.;
172 double phiMBTS = 0.;
173 double amplitude = 0.;
174 unsigned long int cellid;
175 std::map<unsigned long int,double> theMbtspedestal;
176 std::map<unsigned long int,double> theMbtsrawamp;
177 std::map<unsigned long int,double> theMbtsrawtime;
178 std::map<unsigned long int,std::vector<float> > theMbtsdigit;
179 std::string myCellRawTimeStr = "0.";
180
181 //Loop over TileRawChannel to get Pedestal and raw amplitude and time
182
183 if (m_mbtsCellDetails && RawChannelCnt.isValid()) {
184 if (offlineRch) {
185
186 for (const auto rawChannel : *RawChannelCnt) {
187 for (const auto cell : *rawChannel) {
188 Identifier pmt_id = cell->pmt_ID();
189 if (!m_tileTBID->is_tiletb(pmt_id)) continue;
190 Identifier id = cell->cell_ID();
191 cellid = id.get_identifier32().get_compact();
192 HWIdentifier hwid=cell->adc_HWID();
193 int adc = tileHWID->adc(hwid);
194 int channel = tileHWID->channel(hwid);
195 int drawer = tileHWID->drawer(hwid);
196 int ros = tileHWID->ros(hwid);
197 int drawerIdx = TileCalibUtils::getDrawerIdx(ros,drawer);
198
199 amplitude = cell->amplitude();
200 //Change amplitude units to ADC counts
202 amplitude /= m_tileToolEmscale->channelCalib(drawerIdx, channel, adc, 1.0, TileRawChannelUnit::ADCcounts, RChUnit);
203 } else if (RChUnit > TileRawChannelUnit::OnlineADCcounts) {
204 amplitude = m_tileToolEmscale->undoOnlCalib(drawerIdx, channel, adc, amplitude, RChUnit);
205 }
206 theMbtspedestal.insert(std::make_pair( cellid, cell->pedestal() ) );
207 theMbtsrawamp.insert(std::make_pair( cellid, amplitude ));
208 theMbtsrawtime.insert(std::make_pair( cellid, cell->time(cell->uncorrTime()) ));
209 break;
210
211 }
212 }
213 }
214 }
215
216 //Loop over TileDigits to retrieve MBTS digits
217
218 if (m_mbtsdigit && tileDigits.isValid()) {
219
220 //----- get tile digits--------------------------
221
222 // tile digits loop
223 for (const auto digitChannel : *tileDigits) {
224
225 for (const auto cell : *digitChannel) {
226
227 Identifier pmt_id = cell->pmt_ID();
228 if (!m_tileTBID->is_tiletb(pmt_id)) continue;
229
230 Identifier id = cell->cell_ID();
231 cellid = id.get_identifier32().get_compact();
232
233 nTileSamples = cell->NtimeSamples();
234 std::vector<float> tileSamples = cell->samples();
235 theMbtsdigit.insert(std::make_pair( cellid, tileSamples));
236 break;
237
238 }
239 }//for TileDigitContainer loop
240 } //if (m_mbtsdigit)
241
242 //Loop Over TileCellContainer to retrieve MBTSCell information
243
244 for (const auto cell : *tileMBTSCellContainer) {
245
246 int qual = cell->quality();
247 if (cell->badcell()) qual = -qual;
248
249 timeVec.push_back(DataType( cell->time() ));
250 quality.push_back(DataType( qual ));
251
252 if ( cell->energy() >= m_mbtsThreshold ) {
253 energyMeV = cell->energy(); // roughly correct: energy unit is pC, which is 95% MeV
254 }else{
255 energyMeV = 0.;
256 }
257 energy.push_back(DataType( energyMeV )); // write in MeV
258
259 Identifier id=cell->ID();
260
261 //TileCell/type is "side" +/- 1
262 //TileCell/module is "phi" 0-7
263 //TileCell/channel is "eta" 0-1 zero is closer to beam pipe
264
265 type.push_back(DataType( m_tileTBID->type(id) ));
266 channel.push_back(DataType( m_tileTBID->channel(id) ));
267 module.push_back(DataType( m_tileTBID->module(id) ));
268
269 MBTS_ID = "type_" + DataType( m_tileTBID->type(id) ).toString() + "_ch_" +
270 DataType( m_tileTBID->channel(id) ).toString() + "_mod_" +
271 DataType( m_tileTBID->module(id) ).toString();
272
273 label.push_back(DataType( MBTS_ID ));
274
275 eta.push_back(DataType( 5.0*m_tileTBID->type(id) ));
276
277 phiMBTS = (M_PI/8)+(2*M_PI/8)*int(m_tileTBID->module(id));
278 phi.push_back(DataType( phiMBTS ));
279 sampling.push_back(DataType( m_tileTBID->channel(id) ));
280
281 if (m_mbtsCellDetails && RawChannelCnt.isValid()) {
282
283 cellPedestal.push_back(DataType( theMbtspedestal[id.get_identifier32().get_compact()] ));
284 cellRawAmplitude.push_back(DataType( theMbtsrawamp[id.get_identifier32().get_compact()] ));
285 myCellRawTimeStr = DataType(theMbtsrawtime[id.get_identifier32().get_compact()]).toString();
286
287 if ( myCellRawTimeStr.find('n') == 1 ) myCellRawTimeStr="0.";
288 cellRawTime.push_back( myCellRawTimeStr );
289
290 // this can rarely be '-nan', but checking this each time may make code slow ?
291 }
292 else { // don't have TileRawChannel container (for DPF input)
293
294 float maxTime = (tileInfo->NdigitSamples()/2) * 25;
295 int gain = cell->gain();
296
297 if (gain<0 || gain>1) { //invalid gain - channel missing
298 cellRawAmplitude.push_back(DataType(0));
299 cellRawTime.push_back(DataType(0));
300 cellPedestal.push_back(DataType(0)); //There is no pedestal in DPD .
301 }
302 else {
303
304 HWIdentifier hwid = tileHWID->adc_id(cabling->s2h_channel_id(id),gain);
305 int adc = tileHWID->adc(hwid);
306 int channel = tileHWID->channel(hwid);
307 int drawer = tileHWID->drawer(hwid);
308 int ros = tileHWID->ros(hwid);
309 int drawerIdx = TileCalibUtils::getDrawerIdx(ros,drawer);
310 float scale = m_tileToolEmscale->channelCalib(drawerIdx, channel, adc, 1.0,
312 float amp;
313
314 if ( cell->energy() >= m_mbtsThreshold ) amp = cell->energy()/scale;
315 else amp = 0.0;
316 float time = cell->time();
317
318 if ((qual != 0 || amp != 0.0) && (fabs(time) < maxTime && time != 0.0)) {
319 time += m_tileToolTiming->getSignalPhase(drawerIdx, channel, adc);
320 }
321
322 cellRawAmplitude.push_back(DataType(amp));
323 cellRawTime.push_back(DataType(time));
324 cellPedestal.push_back(DataType(0)); //There is no pedestal in DPD . This line is temporary.
325 }
326 }
327
328
329 if (m_mbtsdigit && tileDigits.isValid()) {
330
331 if ( !theMbtsdigit[id.get_identifier32().get_compact()].empty() ) {
332 for (int i=0; i<nTileSamples; i++) {
333 adcCountsStr="adcCounts multiple=\""+DataType(nTileSamples).toString()+"\"";
334 adcCounts.push_back(DataType( int(theMbtsdigit[id.get_identifier32().get_compact()][i]) ));
335 }
336 }
337 else {
338 for (int i=0; i<nTileSamples; i++) {
339 adcCountsStr="adcCounts multiple=\""+DataType(nTileSamples).toString()+"\"";
340 adcCounts.push_back(DataType(0));
341 }
342 }
343 }
344
345
346 ATH_MSG_DEBUG( "MBTS no: " << nchan << ", type_chan_mod: " << MBTS_ID
347 << ", energy MeV pC: " << energyMeV );
348
349 nchan++;
350
351 if (nchan >= max_chan) break;
352
353 }//TileCell Loop
354
355 if (!theMbtspedestal.empty()) theMbtspedestal.clear();
356 if (!theMbtsrawamp.empty() ) theMbtsrawamp.clear();
357 if (!theMbtsrawtime.empty()) theMbtsrawtime.clear();
358
359 // write values into DataMap
360 const auto nentries = phi.size();
361 DataMap["energy"] = std::move(energy);
362 DataMap["label"] = std::move(label);
363 DataMap["phi"] = std::move(phi);
364 DataMap["eta"] = std::move(eta);
365 DataMap["sampling"] = std::move(sampling);
366 DataMap["time"] = std::move(timeVec);
367 DataMap["quality"] = std::move(quality);
368 DataMap["type"] = std::move(type);
369 DataMap["channel"] = std::move(channel);
370 DataMap["module"] = std::move(module);
371 DataMap["cellPedestal"] = std::move(cellPedestal);
372 DataMap["cellRawAmplitude"] = std::move(cellRawAmplitude);
373 DataMap["cellRawTime"] = std::move(cellRawTime);
374 DataMap[adcCountsStr] = std::move(adcCounts);
375
376 //Be verbose
377 ATH_MSG_DEBUG( dataTypeName() << " retrieved with " << nentries << " entries" );
378
379 //All collections retrieved okay
380 return DataMap;
381
382 } // getMBTSData
#define M_PI
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
#define ATH_MSG_ERROR(x)
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
OFFLINE_FRAGMENTS_NAMESPACE::PointerType DataType
const int max_chan
static const Attributes_t empty
const ServiceHandle< StoreGateSvc > & detStore() const
size_type size() const noexcept
ToolHandle< TileCondToolEmscale > m_tileToolEmscale
ToolHandle< TileCondToolTiming > m_tileToolTiming
virtual StatusCode retrieve(ToolHandle< IFormatTool > &FormatTool)
Retrieve all the data.
virtual std::string dataTypeName() const
Return the name of the data type.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
static const TileCablingService * getInstance()
get pointer to service instance
static unsigned int getDrawerIdx(unsigned int ros, unsigned int drawer)
Returns a drawer hash.
int channel(const HWIdentifier &id) const
extract channel field from HW identifier
Definition TileHWID.h:189
int adc(const HWIdentifier &id) const
extract adc field from HW identifier
Definition TileHWID.h:193
int drawer(const HWIdentifier &id) const
extract drawer field from HW identifier
Definition TileHWID.h:171
HWIdentifier adc_id(int ros, int drawer, int channel, int adc) const
adc HWIdentifer
Definition TileHWID.cxx:229
int ros(const HWIdentifier &id) const
extract ros field from HW identifier
Definition TileHWID.h:167
int NdigitSamples() const
Returns the number of sammples (digits) per event.
Definition TileInfo.h:75
std::string label(const std::string &format, int i)
Definition label.h:19
time(flags, cells_name, *args, **kw)
std::map< std::string, DataVect > DataMap
Definition DataType.h:59
std::vector< DataType > DataVect
Defines a map with a key and a vector of DataType objects e.g.
Definition DataType.h:58
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())

◆ initialize()

StatusCode JiveXML::CaloMBTSRetriever::initialize ( )

Default AthAlgTool methods.

Initialise the ToolSvc.

Definition at line 56 of file CaloMBTSRetriever.cxx.

56 {
57
58 ATH_MSG_DEBUG( "Initialising Tool" );
59
60 ATH_CHECK(m_sgKeyMBTS.initialize());
61
62 //=== get TileCondToolTiming
63 ATH_CHECK( m_tileToolTiming.retrieve() );
64
65 //=== get TileCondToolEmscale
66 ATH_CHECK( m_tileToolEmscale.retrieve() );
67
69
71
72 return StatusCode::SUCCESS;
73 }
#define ATH_CHECK
Evaluate an expression and check for errors.
SG::ReadHandleKey< TileCellContainer > m_sgKeyMBTS
properties:

◆ 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 & JiveXML::IDataRetriever::interfaceID ( )
inlinestaticinherited

Return the interface identifier.

Definition at line 40 of file IDataRetriever.h.

40{ return IID_IDataRetriever; }
static const InterfaceID IID_IDataRetriever("JiveXML::IDataRetriever", 3, 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 }

◆ retrieve()

StatusCode JiveXML::CaloMBTSRetriever::retrieve ( ToolHandle< IFormatTool > & FormatTool)
virtual

Retrieve all the data.

MBTS data retrieval from chosen collection.

Implements JiveXML::IDataRetriever.

Definition at line 78 of file CaloMBTSRetriever.cxx.

78 {
79
80 ATH_MSG_DEBUG( "in retrieve()" );
81
82 SG::ReadHandle<TileCellContainer> cellContainerMBTS(m_sgKeyMBTS);
83 if (!cellContainerMBTS.isValid()){
84 ATH_MSG_WARNING( "Could not retrieve MBTS Cells " );
85 }
86 else{
87 if (m_mbts) {
88 DataMap data = getMBTSData(&(*cellContainerMBTS));
89 ATH_CHECK( FormatTool->AddToEvent(dataTypeName(), m_sgKeyMBTS.key(), &data) );
90 ATH_MSG_DEBUG( "MBTS retrieved" );
91 }
92 }
93
94 //MBTS cells retrieved okay
95 return StatusCode::SUCCESS;
96 }
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
const DataMap getMBTSData(const TileCellContainer *tileMBTSCellContainer)
Retrieve MBTS cell location and details.

◆ 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_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_mbts

bool JiveXML::CaloMBTSRetriever::m_mbts
private

Definition at line 79 of file CaloMBTSRetriever.h.

◆ m_mbtsCellDetails

bool JiveXML::CaloMBTSRetriever::m_mbtsCellDetails
private

Definition at line 81 of file CaloMBTSRetriever.h.

◆ m_mbtsdigit

bool JiveXML::CaloMBTSRetriever::m_mbtsdigit
private

Definition at line 80 of file CaloMBTSRetriever.h.

◆ m_mbtsThreshold

double JiveXML::CaloMBTSRetriever::m_mbtsThreshold
private

Definition at line 78 of file CaloMBTSRetriever.h.

◆ m_sgKeyMBTS

SG::ReadHandleKey<TileCellContainer> JiveXML::CaloMBTSRetriever::m_sgKeyMBTS {this, "StoreGateKey", "MBTSContainer", "Name of the TileCellContainer"}
private

properties:

Definition at line 75 of file CaloMBTSRetriever.h.

75{this, "StoreGateKey", "MBTSContainer", "Name of the TileCellContainer"};

◆ m_sgKeyTileDigits

SG::ReadHandleKey<TileDigitsContainer> JiveXML::CaloMBTSRetriever::m_sgKeyTileDigits {this, "TileDigitsContainerKey", "", "Name of the TileDigitsContainer"}
private

Definition at line 76 of file CaloMBTSRetriever.h.

76{this, "TileDigitsContainerKey", "", "Name of the TileDigitsContainer"};

◆ m_sgKeyTileRawChannel

SG::ReadHandleKey<TileRawChannelContainer> JiveXML::CaloMBTSRetriever::m_sgKeyTileRawChannel {this, "TileRawChannelContainerKey", "", "Name of the TileRawChannelContainer"}
private

Definition at line 77 of file CaloMBTSRetriever.h.

77{this, "TileRawChannelContainerKey", "", "Name of the TileRawChannelContainer"};

◆ m_tileTBID

const TileTBID* JiveXML::CaloMBTSRetriever::m_tileTBID
private

Definition at line 72 of file CaloMBTSRetriever.h.

◆ m_tileToolEmscale

ToolHandle<TileCondToolEmscale> JiveXML::CaloMBTSRetriever::m_tileToolEmscale
private
Initial value:
{this,
"TileCondToolEmscale", "TileCondToolEmscale", "Tile EM scale calibration tool"}

Definition at line 69 of file CaloMBTSRetriever.h.

69 {this,
70 "TileCondToolEmscale", "TileCondToolEmscale", "Tile EM scale calibration tool"};

◆ m_tileToolTiming

ToolHandle<TileCondToolTiming> JiveXML::CaloMBTSRetriever::m_tileToolTiming
private
Initial value:
{this,
"TileCondToolTiming", "TileCondToolTiming", "Tile timing tool"}

Definition at line 66 of file CaloMBTSRetriever.h.

66 {this,
67 "TileCondToolTiming", "TileCondToolTiming", "Tile timing tool"};

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.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: