30 likes | 168 Views
Example: athena Common Services. One copy per threadByteStreamCnvSvcBaseByteStreamAddressProviderSvcTriggerROBDataProviderSvcProxyProviderSvcStoreGateSvc/StoreGateSvcToolSvc Single copy for all threadsDetDescrCnvSvcStoreGateSvc/DetectorStore. Offline Tools Used by T2Calo. Single copy for al
E N D
1. T2Calo with AthenaMT Keep in mind : T2Calo has to run online
Program crash = hardware failure = lost of data
Long execution time = dead time/trigger timeout = lost of data
athenaMT allows to test L2 code in online environment
Input from ByteStream and limited available services
force jobOption scripts cleanup
Multithread mode ? implications on offline code
one instance for all threads vs one copy per thread
Build-on-command should be avoided
Avoid long execution time for first events
Compatibility with multithread mode for objects of single copy
But we want to use offline tools ? possible solution :
T2CaloInitSvc: touches all objects of single copy
Algorithms: initialize() method should touch all objects of one copy per thread
2. Example: athena Common Services One copy per thread
ByteStreamCnvSvcBase
ByteStreamAddressProviderSvc
TriggerROBDataProviderSvc
ProxyProviderSvc
StoreGateSvc/StoreGateSvc
ToolSvc
Single copy for all threads
DetDescrCnvSvc
StoreGateSvc/DetectorStore
3. Offline Tools Used by T2Calo Single copy for all threads ? can be initialized by T2CaloInitSvc
TileDetDescrManager : GeoModelSvc(TileDetectorTool)
TileID : TileIDIDDetDescrCnv
LArEM/HEC/FCAL_ID : LArEM/HEC/FCAL_IDDetDescrCnv
CaloCell_ID : CaloCell_IDDetDescrCnv
CaloDetDescrManager : CaloMgrDetDescrCnv
CaloIdManager : CaloIdMgrDetDescrCnv
LArDetDescrManager : LArDetMgrDetDescrCnv
CaloTTDescrManager : CaloTTMgrDetDescrCnv
LArOnlineID : LArOnlineIDDetDescrCnv
CaloLVL1_ID : CaloLVL1_IDDetDescrCnv
…
One copy per thread
RegionSelector
LArCablingService (LArFebRodMap, LArOnOffIdMap)
LArRoIMap
LArRodDecoder
LArCellIDC/TileCellIDC : ByteStreamAddressProviderSvc : LAr/TileCellIDC_ByteStreamCnv : Collection_ByteStreamCnv
4. Current Status and Next Steps T2Calo works with athenaMT under 10.0.6, with 3 mods
TrigT2Calo/T2CaloInitSvc (now only CaloDetDescrManager)
LArCalorimeter/LArCnv/LArByteStream/Hid2RESrcID.cxx
Gaudi::svcLocator()->service("ToolSvc"+threadGaudi->getThreadID(), toolSvc);
Already modified by Hong in main branch (10.5.0)
LArCnv/ LArCondCnv/LArCondCnv_IOVDbSvc_jobOptions.py
Set IOVDbSvc properties before it is instantiated
Will find a permanent solution for 11.0.x
Integration of T2Calo on P1 pre-series with 10.0.6
Aim to achieve integration before Mainz TDAQ week (mid-Oct.) as a major mile stone.
Finalize initialization scheme
Keep and add to T2CaloInitSvc (or make a LArDetectorTool for GeoModel as Tile for all LAr detector description services)
Algorithm specific initializations