|
ATLAS Offline Software
|
#include <TrigT1RPC.h>
|
| TrigT1RPC (const std::string &name, ISvcLocator *pSvcLocator) |
|
StatusCode | initialize () |
|
StatusCode | execute () |
|
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 |
|
|
IntegerProperty | m_fast_debug {this,"FastDebug",0} |
|
IntegerProperty | m_cma_debug {this,"CMAdebug",0} |
|
IntegerProperty | m_pad_debug {this,"PADdebug",0} |
|
IntegerProperty | m_sl_debug {this,"SLdebug",0} |
|
IntegerProperty | m_cma_ro_debug {this,"CMArodebug",0} |
|
IntegerProperty | m_pad_ro_debug {this,"PADrodebug",0} |
|
IntegerProperty | m_rx_ro_debug {this,"RXrodebug",0} |
|
IntegerProperty | m_sl_ro_debug {this,"SLrodebug",0} |
|
IntegerProperty | m_cma_rostruct_debug {this,"CMArostructdebug",0} |
|
IntegerProperty | m_pad_rostruct_debug {this,"PADrostructdebug",0} |
|
IntegerProperty | m_rx_rostruct_debug {this,"RXrostructdebug",0} |
|
IntegerProperty | m_sl_rostruct_debug {this,"SLrostructdebug",0} |
|
BooleanProperty | m_geometric_algo {this,"Geometric",false} |
|
BooleanProperty | m_logic_emulation {this,"Logic",false} |
|
BooleanProperty | m_hardware_emulation {this,"Hardware",true} |
|
BooleanProperty | m_bytestream_production {this,"RPCbytestream",false} |
|
StringProperty | m_bytestream_file {this,"RPCbytestreamFile",""} |
|
BooleanProperty | m_data_detail {this,"DataDetail",false} |
|
IntegerProperty | m_firstBC_to_MUCTPI {this,"firstBC_to_MUCTPI",-1} |
|
IntegerProperty | m_lastBC_to_MUCTPI {this,"lastBC_to_MUCTPI",1} |
|
BooleanProperty | m_useRun3Config {this,"useRun3Config",false} |
|
BIS78_triggerSimulation | m_BIS78TrigSim |
|
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > | m_muDetMgrKey {this, "DetectorManagerKey", "MuonDetectorManager", "Key of input MuonDetectorManager condition data"} |
|
ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
|
SG::ReadCondHandleKey< RpcCablingCondData > | m_readKey {this, "ReadKey", "RpcCablingCondData", "Key of RpcCablingCondData"} |
|
SG::ReadHandleKey< RpcDigitContainer > | m_rpcDigitKey {this, "RPCDigitContainer", "RPC_DIGITS", "RPC Digit Input Container"} |
|
SG::WriteHandleKey< LVL1MUONIF::Lvl1MuCTPIInput > | m_muctpiKey {this, "MuctpiLocationRPC", "L1MuctpiStoreRPC", "Location of muctpi for Rpc"} |
|
SG::WriteHandleKey< LVL1MUONIF::Lvl1MuCTPIInputPhase1 > | m_muctpiPhase1Key {this, "MuctpiPhase1LocationRPC", "L1MuctpiStoreRPC", "Location of muctpiPhase1 for Rpc"} |
|
SG::WriteHandleKey< Muon::RpcBis78_TrigRawDataContainer > | m_bis78TrigKey {this, "BIS78TrigContainerLocation", "BIS78TrigContainer", "Location of BIS78 Rpc"} |
|
Gaudi::Property< int > | m_nobxs { this, "NOBXS", 8, "Number of bunch crossings in readout"} |
|
Gaudi::Property< int > | m_bczero { this, "BCZERO", 3, "Nominal bunch crossing"} |
|
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 |
|
Definition at line 35 of file TrigT1RPC.h.
◆ StoreGateSvc_t
◆ TrigT1RPC()
TrigT1RPC::TrigT1RPC |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ 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 TrigT1RPC::execute |
( |
| ) |
|
Definition at line 58 of file TrigT1RPC.cxx.
61 const EventContext& ctx = Gaudi::Hive::currentContext();
71 "RPC data loaded from G3:" << std::endl
73 <<
"RPC digits into station 1 ==> "
74 <<
data.how_many(-1,-1,1,-1,-1,-1) << std::endl
75 <<
"RPC digits into station 2 ==> "
76 <<
data.how_many(-1,-1,2,-1,-1,-1) << std::endl
77 <<
"RPC digits into station 3 ==> "
78 <<
data.how_many(-1,-1,3,-1,-1,-1)
81 unsigned long int debug;
87 ATH_MSG_DEBUG (
"CMApatterns created from RPC digits:" << std::endl
96 ATH_MSG_DEBUG (
"PADs created from CMA patterns:" << std::endl
115 ATH_CHECK(wh_muctpiRpc.record(std::make_unique<LVL1MUONIF::Lvl1MuCTPIInputPhase1>()));
116 ctpiPhase1InRPC = wh_muctpiRpc.ptr();
119 ATH_CHECK(wh_muctpiRpc.record(std::make_unique<LVL1MUONIF::Lvl1MuCTPIInput>()));
120 ctpiInRPC = wh_muctpiRpc.ptr();
127 while(SLit != sectors_patterns.end())
130 int sector = (*SLit)->sector();
132 int logic_sector = sector%32;
136 unsigned int data_word = 0;
140 catch (
const std::out_of_range& ex) {
145 <<
", SL= " << logic_sector
149 <<
", data word " << MSG::hex << data_word
158 for(
int icand = 0 ; icand < 2 ; icand++){
159 sldata2.
pt(icand, sldata.
pt(icand) );
160 sldata2.
roi(icand, sldata.
roi(icand) );
161 sldata2.
ovl(icand, sldata.
ovl(icand) );
209 ATH_MSG_DEBUG(
"Start retrieving data from the RPC bytestream class");
213 while (
it != PADmap.end())
218 (*it).second.give_pad_readout()->bytestream(
PADdata);
221 ATH_MSG_DEBUG (
"Start dumping the PAD " << (*it).second.PAD()
222 <<
" bytestream structure" << std::endl
226 for (
int i=0;
i<8;++
i)
229 <<
" into the PAD n. " << (*it).second.PAD());
259 ATH_CHECK(wh_bis78RpcTrigData.record(std::make_unique<Muon::RpcBis78_TrigRawDataContainer>()));
260 bis78RpcTrigData = wh_bis78RpcTrigData.ptr();
268 return StatusCode::SUCCESS;
◆ 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();
◆ fill_RPCdata()
Definition at line 271 of file TrigT1RPC.cxx.
273 std::string space =
" ";
278 if (!rh_rpcDigits.isValid())
281 return StatusCode::SUCCESS;
288 int bisStationIndex =
m_idHelperSvc->rpcIdHelper().stationNameIndex(
"BIS");
293 Identifier moduleId = rpcCollection->identify();
300 for (
const RpcDigit *rpcDigit : *rpcCollection) {
304 std::string StationName =
m_idHelperSvc->rpcIdHelper().stationNameString(stationType);
321 unsigned long int strip_code_cab = readCdo->
strip_code_fromOffId(StationName, StationEta, StationPhi,
322 DoubletR, DoubletZ, DoubletP, GasGap, MeasuresPhi, Strip);
331 xyz[0] = rpcDigit->time();
333 int param[3] = {0, 0, 0};
340 << space <<
"StationName = " << StationName << std::endl
341 << space <<
"StationEta = " << StationEta << std::endl
342 << space <<
"StationPhi = " << StationPhi << std::endl
343 << space <<
"DoubletR = " << DoubletR << std::endl
344 << space <<
"DoubletZ = " << DoubletZ << std::endl
345 << space <<
"DoubletP = " << DoubletP << std::endl
346 << space <<
"GasGap = " << GasGap << std::endl
347 << space <<
"MeasuresPhi = " << MeasuresPhi << std::endl
348 << space <<
"Strip = " << Strip);
351 << space << std::hex <<
channelId << std::dec << std::endl
352 << space <<
"GlobalPosition (cm) = "
353 << setiosflags(std::ios::fixed) << std::setprecision(3)
354 << std::setw(11) <<
pos.x()
355 << setiosflags(std::ios::fixed) << std::setprecision(3)
356 << std::setw(11) <<
pos.y()
357 << setiosflags(std::ios::fixed) << std::setprecision(3)
358 << std::setw(11) <<
pos.z());
362 if (stationType == bisStationIndex) {
363 ATH_MSG_DEBUG(
"Filling BIS strip data: StationName=" << StationName <<
" StationEta=" << StationEta
364 <<
" StationPhi=" << StationPhi <<
" MeasuresPhi=" << MeasuresPhi
365 <<
" Strip=" << Strip <<
" GasGap=" << GasGap
366 <<
" Time=" << rpcDigit->time());
371 std::string
id =
m_idHelperSvc->rpcIdHelper().show_to_string(moduleId);
374 return StatusCode::SUCCESS;
◆ initialize()
StatusCode TrigT1RPC::initialize |
( |
| ) |
|
Definition at line 34 of file TrigT1RPC.cxx.
46 ATH_MSG_ERROR(
"Readout of more than 8 BCs is not supported by the simulation");
47 return StatusCode::FAILURE;
49 return StatusCode::SUCCESS;
◆ 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.
◆ renounce()
◆ renounceArray()
◆ 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_bczero
Gaudi::Property<int> TrigT1RPC::m_bczero { this, "BCZERO", 3, "Nominal bunch crossing"} |
|
private |
◆ m_bis78TrigKey
◆ m_BIS78TrigSim
◆ m_bytestream_file
StringProperty TrigT1RPC::m_bytestream_file {this,"RPCbytestreamFile",""} |
|
private |
◆ m_bytestream_production
BooleanProperty TrigT1RPC::m_bytestream_production {this,"RPCbytestream",false} |
|
private |
◆ m_cma_debug
IntegerProperty TrigT1RPC::m_cma_debug {this,"CMAdebug",0} |
|
private |
◆ m_cma_ro_debug
IntegerProperty TrigT1RPC::m_cma_ro_debug {this,"CMArodebug",0} |
|
private |
◆ m_cma_rostruct_debug
IntegerProperty TrigT1RPC::m_cma_rostruct_debug {this,"CMArostructdebug",0} |
|
private |
◆ m_data_detail
BooleanProperty TrigT1RPC::m_data_detail {this,"DataDetail",false} |
|
private |
◆ m_detStore
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_fast_debug
IntegerProperty TrigT1RPC::m_fast_debug {this,"FastDebug",0} |
|
private |
◆ m_firstBC_to_MUCTPI
IntegerProperty TrigT1RPC::m_firstBC_to_MUCTPI {this,"firstBC_to_MUCTPI",-1} |
|
private |
◆ m_geometric_algo
BooleanProperty TrigT1RPC::m_geometric_algo {this,"Geometric",false} |
|
private |
◆ m_hardware_emulation
BooleanProperty TrigT1RPC::m_hardware_emulation {this,"Hardware",true} |
|
private |
◆ m_idHelperSvc
◆ m_lastBC_to_MUCTPI
IntegerProperty TrigT1RPC::m_lastBC_to_MUCTPI {this,"lastBC_to_MUCTPI",1} |
|
private |
◆ m_logic_emulation
BooleanProperty TrigT1RPC::m_logic_emulation {this,"Logic",false} |
|
private |
◆ m_muctpiKey
◆ m_muctpiPhase1Key
◆ m_muDetMgrKey
◆ m_nobxs
Gaudi::Property<int> TrigT1RPC::m_nobxs { this, "NOBXS", 8, "Number of bunch crossings in readout"} |
|
private |
◆ m_pad_debug
IntegerProperty TrigT1RPC::m_pad_debug {this,"PADdebug",0} |
|
private |
◆ m_pad_ro_debug
IntegerProperty TrigT1RPC::m_pad_ro_debug {this,"PADrodebug",0} |
|
private |
◆ m_pad_rostruct_debug
IntegerProperty TrigT1RPC::m_pad_rostruct_debug {this,"PADrostructdebug",0} |
|
private |
◆ m_readKey
◆ m_rpcDigitKey
◆ m_rx_ro_debug
IntegerProperty TrigT1RPC::m_rx_ro_debug {this,"RXrodebug",0} |
|
private |
◆ m_rx_rostruct_debug
IntegerProperty TrigT1RPC::m_rx_rostruct_debug {this,"RXrostructdebug",0} |
|
private |
◆ m_sl_debug
IntegerProperty TrigT1RPC::m_sl_debug {this,"SLdebug",0} |
|
private |
◆ m_sl_ro_debug
IntegerProperty TrigT1RPC::m_sl_ro_debug {this,"SLrodebug",0} |
|
private |
◆ m_sl_rostruct_debug
IntegerProperty TrigT1RPC::m_sl_rostruct_debug {this,"SLrostructdebug",0} |
|
private |
◆ m_useRun3Config
BooleanProperty TrigT1RPC::m_useRun3Config {this,"useRun3Config",false} |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
const RpcReadoutElement * getRpcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
char data[hepevt_bytes_allocation_ATLAS]
StatusCode fill_RPCdata(RPCsimuData &, const RpcCablingCondData *readCdo, const MuonGM::MuonDetectorManager *muDetMgr)
IntegerProperty m_cma_debug
IntegerProperty m_fast_debug
unsigned short int ROI1(unsigned long int slword)
SG::ReadCondHandleKey< RpcCablingCondData > m_readKey
std::list< SLpatterns * > PatternsList
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
std::vector< std::string > patterns
Use IdentifiableContainer with RpcDigitCollection.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
IntegerProperty m_rx_ro_debug
An RpcReadoutElement corresponds to a single RPC module; therefore typicaly a barrel muon station con...
SG::WriteHandleKey< LVL1MUONIF::Lvl1MuCTPIInputPhase1 > m_muctpiPhase1Key
Gaudi::Property< int > m_nobxs
IntegerProperty m_sl_rostruct_debug
virtual void setOwner(IDataHandleHolder *o)=0
IntegerProperty m_pad_rostruct_debug
void set2candidatesInSector()
const Lvl1MuSectorLogicData & convertFromWordFormat(const SectorLogicWord &)
Convert SectorLogicData from 32 bit word data.
BooleanProperty m_data_detail
Gaudi::Property< int > m_bczero
IntegerProperty m_lastBC_to_MUCTPI
virtual StatusCode sysInitialize() override
Override sysInitialize.
unsigned short int PT1(unsigned long int slword)
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
StringProperty m_bytestream_file
::StatusCode StatusCode
StatusCode definition for legacy code.
IntegerProperty m_sl_ro_debug
void clear2candidates(size_t id)
Class representing data from a barrel SL board.
Class representing data from a barrel SL board.
IntegerProperty m_cma_ro_debug
#define CHECK(...)
Evaluate an expression and check for errors.
int charge(size_t id) const
BooleanProperty m_bytestream_production
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
unsigned int AddStrip(int sectoreta, int sectorphi, int igap, int mphi, int strip)
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_muDetMgrKey
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
SG::WriteHandleKey< LVL1MUONIF::Lvl1MuCTPIInput > m_muctpiKey
void set2candidates(size_t id)
IntegerProperty m_cma_rostruct_debug
void build_trigRawData(Muon::RpcBis78_TrigRawDataContainer *trgContainer, uint8_t dstrip_phi, uint8_t dstrip_eta, uint16_t bcid)
Amg::Vector3D stripPos(const Identifier &id) const
StatusCode initialize(bool used=true)
setEventNumber setTimeStamp bcid
Eigen::Matrix< double, 3, 1 > Vector3D
IntegerProperty m_rx_rostruct_debug
unsigned long int strip_code_fromOffId(const std::string &stationName, int stationEta, int stationPhi, int doubletR, int doubletZ, int doubletPhi, int gasGap, int measuresPhi, int strip) const
DataObjIDColl m_extendedExtraObjects
int charge(size_t id) const
IntegerProperty m_pad_debug
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
#define ATH_MSG_WARNING(x)
bool is2candidates(size_t id) const
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
AthAlgorithm()
Default constructor:
IntegerProperty m_pad_ro_debug
void clear2candidatesInSector()
SG::WriteHandleKey< Muon::RpcBis78_TrigRawDataContainer > m_bis78TrigKey
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
bool is2candidatesInSector() const
SG::ReadHandleKey< RpcDigitContainer > m_rpcDigitKey
std::map< int, PADreadout, std::less< int > > PAD_Readout
IntegerProperty m_firstBC_to_MUCTPI
BooleanProperty m_hardware_emulation
CMAword outputToMuCTPI(int deltaBC=0)
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
BIS78_triggerSimulation m_BIS78TrigSim
IntegerProperty m_sl_debug
BooleanProperty m_useRun3Config