 |
ATLAS Offline Software
|
fix electronic calibration constants for SC
More...
#include <FixLArElecSCCalib.h>
|
| FixLArElecSCCalib (const std::string &name, ISvcLocator *pSvcLocator) |
|
virtual | ~FixLArElecSCCalib () |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | execute () override |
|
virtual StatusCode | finalize () override |
|
virtual StatusCode | stop () override |
|
void | print (const HWIdentifier &hwid, const LArOnlineID_Base *onlineID, const CaloCell_Base_ID *caloCellID, const Identifier *id=nullptr, std::vector< HWIdentifier > *calibIDs=nullptr, std::ostream &out=std::cout) |
|
StatusCode | fix1 () |
|
StatusCode | fix2 (const LArOnOffIdMapping *cabling, const LArCalibLineMapping *cl) |
|
StatusCode | fix3 (const LArOnOffIdMapping *cabling, const LArMCSym *sym) |
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
SG::ReadCondHandleKey< LArOnOffIdMapping > | m_cablingKeySC {this,"SCCablingKey","LArOnOffIdMapSC","SG Key of SC LArOnOffIdMapping object"} |
|
SG::ReadCondHandleKey< LArCalibLineMapping > | m_CLKeySC {this, "SCCalibLineKey", "LArCalibLineMapSC", "SG calib line key"} |
|
SG::ReadCondHandleKey< LArMCSym > | m_mcSymKey { this, "MCSymKey", "LArMCSym", "SG Key of LArMCSym object" } |
|
DoubleProperty | m_fixFactor {this, "FixFactor", 0.0, "which factor to apply"} |
|
IntegerProperty | m_fixFlag {this, "FixFlag", 1, "which fix to run"} |
|
StringProperty | m_infile {this, "InputFile", "", "which file to read"} |
|
const LArEM_SuperCell_ID * | m_sem_idhelper {} |
|
const LArHEC_SuperCell_ID * | m_shec_idhelper {} |
|
const LArFCAL_SuperCell_ID * | m_sfcal_idhelper {} |
|
const LArOnline_SuperCellID * | m_sonline_idhelper {} |
|
const CaloCell_SuperCell_ID * | m_scell_idhelper {} |
|
DataObjIDColl | m_extendedExtraObjects |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
fix electronic calibration constants for SC
@based on FixLArElecCalib from Hong Ma hma@b.nosp@m.nl.g.nosp@m.ov This should be used with FixLArElecSCCalib_jobOptions.py to write a new POOL file.
Implemented fixes:
- Flag = 1 scale values for Pedestals and Ramps by factor
- Flag = 2 create calib. line mapping for SC
Definition at line 26 of file FixLArElecSCCalib.h.
◆ StoreGateSvc_t
◆ FixLArElecSCCalib()
FixLArElecSCCalib::FixLArElecSCCalib |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~FixLArElecSCCalib()
FixLArElecSCCalib::~FixLArElecSCCalib |
( |
| ) |
|
|
virtual |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode FixLArElecSCCalib::execute |
( |
| ) |
|
|
overridevirtual |
◆ extraDeps_update_handler()
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.
57 return Algorithm::extraOutputDeps();
◆ finalize()
virtual StatusCode FixLArElecSCCalib::finalize |
( |
| ) |
|
|
inlineoverridevirtual |
◆ fix1()
StatusCode FixLArElecSCCalib::fix1 |
( |
| ) |
|
Definition at line 117 of file FixLArElecSCCalib.cxx.
127 coral::AttributeListSpecification*
spec =
new coral::AttributeListSpecification();
128 spec->extend(
"Pedestal",
"blob");
129 spec->extend(
"PedestalRMS",
"blob");
130 spec->extend<
unsigned>(
"version");
137 (*attrList)[
"version"].setValue(0U);
140 blobPed.resize(hashMax*
sizeof(
float));
141 blobRMS.resize(hashMax*
sizeof(
float));
142 float* pblobPed=
static_cast<float*
>(blobPed.startingAddress());
143 float* pblobRMS=
static_cast<float*
>(blobRMS.startingAddress());
145 for (
unsigned hs=0;
hs<hashMax;++
hs) {
154 collPed->add(
gain,*attrList);
157 if (
sc.isFailure()) {
158 ATH_MSG_ERROR(
"Failed to record CondAttrListCollection for pedestal " );
169 spec =
new coral::AttributeListSpecification();
170 spec->extend(
"RampVec",
"blob");
171 spec->extend<
unsigned>(
"nPoints");
172 spec->extend<
unsigned>(
"version");
176 std::vector<float> defaultRamp={0.0,1.0};
182 for (
unsigned hs=0;
hs<hashMax && nPoints==0;++
hs) {
185 nPoints=rampref.size();
189 return StatusCode::FAILURE;
192 defaultRamp.resize(nPoints,0.0);
193 ATH_MSG_DEBUG(
"Gain " <<
gain <<
": Found a ramp polynom of degree " << nPoints <<
" in input data" );
195 (*attrList)[
"version"].setValue(0U);
197 (*attrList)[
"nPoints"].setValue(nPoints);
198 blobRamp.resize(hashMax*
sizeof(
float)*nPoints);
199 float* pblobRamp=
static_cast<float*
>(blobRamp.startingAddress());
201 for (
unsigned hs=0;
hs<hashMax;++
hs) {
205 if (rampVec.size()>=nPoints) {
206 for (
size_t i=0;
i<nPoints;++
i) {
212 message <<
"Polynom degree doesn't match. Expect " << nPoints <<
", got " << rampVec.size() <<
".";
213 for (
size_t i=0;
i<nPoints;++
i) {
214 pblobRamp[nPoints*
hs+
i]=defaultRamp[
i];
220 coll->add(
gain,*attrList);
222 sc=
detStore()->record(coll,
"/LAR/ElecCalibMCSC/Ramp");
223 if (
sc.isFailure()) {
224 ATH_MSG_ERROR(
"Failed to record CondAttrListCollection for ramp " );
225 return StatusCode::FAILURE;
228 ATH_MSG_INFO(
"Converted Ramps to inline storage. Total number of channels " <<
n );
229 ATH_MSG_INFO(
"Number of channels filled with default ramp {0,1} " << nDefault <<
" (including disconnected)" );
231 return StatusCode::SUCCESS;
◆ fix2()
Definition at line 234 of file FixLArElecSCCalib.cxx.
240 coral::AttributeListSpecification* spec_calib =
new coral::AttributeListSpecification();
241 spec_calib->extend(
"OnlineHashToCalibIds",
"blob");
242 spec_calib->extend<
unsigned>(
"version");
243 auto al_calib = std::make_unique<AthenaAttributeList>(*spec_calib);
245 (*al_calib)[
"version"].setValue(0U);
246 blobCalib.resize(onlHashMax*
sizeof(
uint32_t)*5);
249 spec_calib->release();
250 spec_calib =
nullptr;
256 std::vector<unsigned> calibHist(17,0);
257 unsigned calibHistMax=0;
259 std::ofstream
outfile(
"SCIdentifiers.txt");
261 outfile <<
"hash id bec pn FT SL chan id calo pn sampl reg eta phi calib" << std::endl;
263 for (
uint32_t onlHash=0;onlHash<onlHashMax;++onlHash) {
265 const std::vector<HWIdentifier>& calibIDs_tmp=
cl->calibSlotLine(hwid);
266 std::vector<HWIdentifier> calibIDs;
267 for (
unsigned i=0;
i<calibIDs_tmp.size(); ++
i) {
268 if(
std::find(calibIDs.begin(), calibIDs.end(), calibIDs_tmp[
i]) == calibIDs.end()) calibIDs.push_back(calibIDs_tmp[
i]);
274 if ((pLArIdBase ==
nullptr) or (pCaloCellBase==
nullptr)){
275 ATH_MSG_ERROR(
"dynamic_cast failed in FixLArElecSCCalib::fix2");
276 return StatusCode::FAILURE;
278 if (
cabling->isOnlineConnected(hwid)) {
279 id=
cabling->cnvToIdentifier(hwid);
280 print(hwid,pLArIdBase, pCaloCellBase,&
id,&calibIDs,
outfile);
282 print(hwid,pLArIdBase, pCaloCellBase,
nullptr,&calibIDs,
outfile);
284 const size_t nCalibLines=calibIDs.size();
285 if (nCalibLines > calibHistMax ) calibHistMax=nCalibLines;
286 if(calibHistMax > 17) {
287 ATH_MSG_ERROR(
"Too much calib lines, adjust please !!!" << calibHistMax);
288 return StatusCode::FAILURE;
290 (calibHist[nCalibLines])++;
291 pBlobCalib[calibIndex++]=nCalibLines;
292 for(
uint32_t iCalib=0;iCalib<nCalibLines;++iCalib)
293 pBlobCalib[calibIndex++]=calibIDs[iCalib].get_identifier32().get_compact();
295 blobCalib.resize(calibIndex*
sizeof(
uint32_t));
299 msg(MSG::INFO) <<
"nCalib[i] ";
300 for (
unsigned j=0;j<17;++j)
301 msg() << calibHist[j] <<
"/";
303 ATH_CHECK(
detStore()->record(std::move(al_calib),
"/LAR/IdentifierOfl/CalibIdMap_SC"));
304 return StatusCode::SUCCESS;
◆ fix3()
Definition at line 338 of file FixLArElecSCCalib.cxx.
344 auto spec =
new coral::AttributeListSpecification();
345 spec->extend(
"MinBias",
"blob");
346 spec->extend<
unsigned>(
"version");
347 auto coll=std::make_unique<CondAttrListCollection>(
true);
351 attrList[
"version"].setValue(0U);
353 blob.resize(hashMax*
sizeof(
float));
354 float* pblob=
static_cast<float*
>(
blob.startingAddress());
356 std::unique_ptr<TFile>
fin= std::make_unique<TFile>(
m_infile.value().c_str());
357 TTree *tin=
dynamic_cast<TTree*
>(
fin->Get(
"m_tree"));
358 if (not tin)
return StatusCode::FAILURE;
361 int *
layer =
new int[2862];
362 int * region =
new int[2862];
363 int * ieta =
new int[2862];
364 float *
eta =
new float[2862];
365 double *
average =
new double[2862];
366 double *
rms =
new double[2862];
368 TBranch *b_identifier{};
373 TBranch *b_average{};
375 tin->SetMakeClass(1);
376 tin->SetBranchAddress(
"ncell", &
ncell, &b_ncell);
377 tin->SetBranchAddress(
"identifier",
identifier, &b_identifier);
378 tin->SetBranchAddress(
"layer",
layer, &b_layer);
379 tin->SetBranchAddress(
"region", region, &b_region);
380 tin->SetBranchAddress(
"ieta", ieta, &b_ieta);
381 tin->SetBranchAddress(
"eta",
eta, &b_eta);
382 tin->SetBranchAddress(
"average",
average, &b_average);
383 tin->SetBranchAddress(
"rms",
rms, &b_rms);
388 std::map<Identifier, float> vmap;
397 for (
unsigned onlHash=0;onlHash<hashMax;++onlHash) {
401 pblob[onlHash] = vmap[idsym];
404 coll->add(0,attrList);
405 auto sz = coll->size();
407 ATH_MSG_DEBUG(
"Stored coll with size "<<
sz<<
" into /LAR/ElecCalibMCSC/MinBias");
409 return StatusCode::SUCCESS;
◆ initialize()
StatusCode FixLArElecSCCalib::initialize |
( |
| ) |
|
|
overridevirtual |
◆ inputHandles()
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() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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.
◆ print()
Definition at line 307 of file FixLArElecSCCalib.cxx.
312 << onlineID->
pos_neg(hwid) <<
" "
314 << onlineID->
slot(hwid) <<
" "
315 << onlineID->
channel(hwid) <<
" : ";
317 out << std::hex <<
"0x" <<
id->get_identifier32().get_compact() << std::dec <<
" "
319 << caloCellID->
pos_neg(*
id) <<
" "
321 << caloCellID->
region(*
id) <<
" "
322 << caloCellID->
eta(*
id) <<
" "
323 << caloCellID->
phi(*
id) <<
" ";
326 out <<
" disconnected ";
329 for (
size_t i=0;
i<calibIDs->size();++
i) {
330 out << std::hex <<
"0x" << calibIDs->at(
i).get_identifier32().get_compact() <<
" ";
335 out << std::dec << std::endl;
◆ renounce()
◆ renounceArray()
◆ stop()
StatusCode FixLArElecSCCalib::stop |
( |
| ) |
|
|
overridevirtual |
Definition at line 77 of file FixLArElecSCCalib.cxx.
82 case 1:
return fix1();
88 return StatusCode::FAILURE;
94 return StatusCode::FAILURE;
103 return StatusCode::FAILURE;
109 return StatusCode::FAILURE;
113 default:
return StatusCode::SUCCESS;
◆ sysInitialize()
StatusCode AthAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_cablingKeySC
◆ m_CLKeySC
◆ m_detStore
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_fixFactor
DoubleProperty FixLArElecSCCalib::m_fixFactor {this, "FixFactor", 0.0, "which factor to apply"} |
|
private |
◆ m_fixFlag
IntegerProperty FixLArElecSCCalib::m_fixFlag {this, "FixFlag", 1, "which fix to run"} |
|
private |
◆ m_infile
StringProperty FixLArElecSCCalib::m_infile {this, "InputFile", "", "which file to read"} |
|
private |
◆ m_mcSymKey
◆ m_scell_idhelper
◆ m_sem_idhelper
◆ m_sfcal_idhelper
◆ m_shec_idhelper
◆ m_sonline_idhelper
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
IdentifierHash channel_Hash(HWIdentifier channelId) const
Create channel_hash from channel_Id.
int region(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
SG::ReadCondHandleKey< LArMCSym > m_mcSymKey
std::string find(const std::string &s)
return a remapped string
Scalar eta() const
pseudorapidity method
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
int pos_neg(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
const CaloCell_SuperCell_ID * m_scell_idhelper
int slot(const HWIdentifier id) const
Return the slot number of a hardware cell identifier: slot = [1,15] Slot-ID in top part of the crat...
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
IntegerProperty m_fixFlag
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
std::vector< SG::VarHandleKeyArray * > m_vhka
const std::string & key() const
Return the StoreGate ID for the referenced object.
int barrel_ec(const HWIdentifier id) const
Return the position barrel or endcap of a hardware cell identifier: barrel_ec = [0,...
This class is a collection of AttributeLists where each one is associated with a channel number....
value_type get_compact() const
Get the compact id.
StatusCode fix2(const LArOnOffIdMapping *cabling, const LArCalibLineMapping *cl)
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual void setOwner(IDataHandleHolder *o)=0
HWIdentifier ZPhiSymOfl(const Identifier notSymOffId) const
Find the symmetric HWID for an offline cell identifier.
int channel(const HWIdentifier id) const
Return the channel number of a hardware cell identifier channel = [0,127] in all FEB.
Helper class to handle z-phi symmetry of calibration constants in MC.
virtual StatusCode sysInitialize() override
Override sysInitialize.
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
const LArHEC_SuperCell_ID * m_shec_idhelper
int sampling(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
StatusCode fix3(const LArOnOffIdMapping *cabling, const LArMCSym *sym)
::StatusCode StatusCode
StatusCode definition for legacy code.
DoubleProperty m_fixFactor
const LArEM_SuperCell_ID * m_sem_idhelper
HWIdentifier channel_Id(int barrel_ec, int pos_neg, int feedthrough, int slot, int channel) const
create channel identifier from fields
int pos_neg(const HWIdentifier id) const
Return the side of a hardware cell identifier pos_neg = [0,1] positive-side or negative-side Barrel...
int eta(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
int sub_calo(const Identifier id) const
returns an int taken from SUBCALO enum and describing the subCalo to which the Id belongs.
#define CHECK(...)
Evaluate an expression and check for errors.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Helper for the Liquid Argon Calorimeter cell identifiers.
void print(const HWIdentifier &hwid, const LArOnlineID_Base *onlineID, const CaloCell_Base_ID *caloCellID, const Identifier *id=nullptr, std::vector< HWIdentifier > *calibIDs=nullptr, std::ostream &out=std::cout)
size_type channelHashMax(void) const
Define channel hash tables max size.
SG::ReadCondHandleKey< LArCalibLineMapping > m_CLKeySC
StatusCode initialize(bool used=true)
int phi(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
virtual RampRef_t ADC2DAC(const HWIdentifier &CellID, int gain) const
const LArFCAL_SuperCell_ID * m_sfcal_idhelper
DataObjIDColl m_extendedExtraObjects
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKeySC
int feedthrough(const HWIdentifier id) const
Return the feedthrough of a hardware cell identifier : feedthrough = [0,31] Barrel - A/C side or H/...
#define ATH_MSG_WARNING(x)
std::vector< value_type > asVector() const
Convert back to a vector.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
AthAlgorithm()
Default constructor:
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Helper base class for offline cell identifiers.
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Proxy for accessing a range of float values like a vector.
const LArOnline_SuperCellID * m_sonline_idhelper