![]() |
ATLAS Offline Software
|
Custom converter for reading xAOD::TrigPassBitsContainer correctly. More...
#include <xAODTrigPassBitsContainerCnv.h>
Public Types | |
| typedef T_AthenaPoolCustomCnvWithKey< xAOD::TrigPassBitsContainer, xAOD::TrigPassBitsContainer > | Base |
| typedef T_AthenaPoolCustCnv< xAOD::TrigPassBitsContainer, xAOD::TrigPassBitsContainer > | BaseType |
Public Member Functions | |
| xAODTrigPassBitsContainerCnv (ISvcLocator *svcLoc) | |
| Converter constructor. | |
| virtual xAOD::TrigPassBitsContainer * | createTransientWithKey (const std::string &key) override final |
| Function reading in the persistent object from disk. | |
| virtual xAOD::TrigPassBitsContainer * | createPersistentWithKey (xAOD::TrigPassBitsContainer *trans, const std::string &key) override |
| Convert a transient object to persistent form. | |
| virtual StatusCode | finalize () override |
| virtual long | repSvcType () const override |
| virtual StatusCode | createObj (IOpaqueAddress *pAddr, DataObject *&pObj) override |
| Create a transient object from a POOL persistent representation. | |
| virtual StatusCode | createRep (DataObject *pObj, IOpaqueAddress *&pAddr) override |
| Create a POOL persistent representation for a transient object. | |
| virtual StatusCode | fillRepRefs (IOpaqueAddress *pAddr, DataObject *pObj) override |
| Create a POOL persistent representation for a transient object. | |
| const ServiceHandle< StoreGateSvc > & | detStore () const |
| Handle to DetectorStore. | |
| void | addTrack (TIDA::Track *t) |
| const std::vector< TIDA::Track * > & | tracks () const |
| void | clear () |
| void | selectTracks (const TrigInDetTrackCollection *trigtracks) |
| void | selectTracks (const Rec::TrackParticleContainer *trigtracks) |
| void | selectTracks (const Analysis::MuonContainer *muontracks) |
| bool | msgLvl (const MSG::Level lvl) const |
| Test the output level. | |
| MsgStream & | msg () const |
| The standard message stream. | |
| MsgStream & | msg (const MSG::Level lvl) const |
| The standard message stream. | |
| void | setLevel (MSG::Level lvl) |
| Change the current logging level. | |
Static Public Member Functions | |
| static const CLID & | classID () |
| static long | storageType () |
Protected Types | |
| typedef std::map< std::string, RootType > | ClassMap |
| typedef ClassMap::const_iterator | ClassMapIt |
| typedef std::mutex | CallMutex |
Protected Member Functions | |
| virtual PERS * | createPersistentWithKey (TRANS *obj, const std::string &key)=0 |
| method to be implemented by the developer. | |
| P * | poolReadObject () |
| Read object of type P. | |
| void | poolReadObject (TopLevelTPCnvBase &tlp_converter) |
| Read object of type P (plus all extending objects) using the indicated top-level TP converter. | |
| void | keepPoolObj (xAOD::TrigPassBitsContainer *obj, const std::string &output) |
| Remember the POOL object to be written out (will be deleted after commit) | |
| void | keepPoolObj (PERS *obj, const std::string &output) |
| Remember the POOL object to be written out (will be deleted after commit) | |
| virtual StatusCode | transToPers (xAOD::TrigPassBitsContainer *, xAOD::TrigPassBitsContainer *&) override |
| Obsolete methods replaced by createPersistent() and createTransient() obsolete. | |
| virtual StatusCode | transToPers (TRANS *obj, PERS *&persObj)=0 |
| virtual StatusCode | persToTrans (xAOD::TrigPassBitsContainer *&, xAOD::TrigPassBitsContainer *) override |
| obsolete | |
| virtual StatusCode | persToTrans (TRANS *&transObj, PERS *obj)=0 |
| virtual StatusCode | DataObjectToPers (DataObject *pObj, IOpaqueAddress *&pAddr) override |
| Convert an object into Persistent. | |
| virtual StatusCode | DataObjectToPool (IOpaqueAddress *pAddr, DataObject *pObj) override |
| Write an object into POOL. | |
| virtual StatusCode | PoolToDataObject (DataObject *&pObj, const Token *token, const std::string &key) override |
| Read an object from POOL. | |
| virtual StatusCode | cleanUp (const std::string &output) override |
| Callback from the CleanupSvc to delete persistent object in the local list. | |
| virtual StatusCode | initialize () |
| Gaudi Service Interface method implementations: | |
| Placement | setPlacementForP (P &p, const std::string &key, const std::string &output) |
| Set POOL placement for type P. | |
| StatusCode | objectToPool (P *pObj, std::unique_ptr< Token > &token, const std::string &key, const std::string &output) |
| Write an object into POOL returning its token. | |
| StatusCode | poolToObject (const Token *&token, P *&pObj) |
| Read an object from POOL. | |
| virtual bool | compareClassGuid (const Guid &clid) const |
| Compare POOL class GUID with the one of the object being read. | |
| virtual void | setToken (const std::string &token) |
| Set the token (in std::string representation) and classID for the object that will be read next. | |
| virtual Placement | setPlacement (const std::string &key, const std::string &output) |
| Set POOL placement. | |
| virtual Placement | setPlacementWithType (const std::string &tname, const std::string &key, const std::string &output) |
| Set POOL placement hint for a given type. | |
| virtual const DataObject * | getDataObject () const |
| double | phiCorr (double phi) |
| void | ipCorr (double d0, double z0, double &d0c, double &z0c, double phi0, double eta, double pt) |
Protected Attributes | |
| std::map< std::string, std::vector< std::unique_ptr< xAOD::TrigPassBitsContainer > > > | m_persObjLists |
| Local cache for persistent objects created by this converter, grouped by processing slot These objects are deleted after a commit. | |
| std::mutex | m_pListMutex |
| protection mutex for m_persObjLists | |
| Guid | m_classID |
| ServiceHandle< StoreGateSvc > | m_detStore |
| ServiceHandle< IAthenaPoolCnvSvc > | m_athenaPoolCnvSvc |
| RootType | m_classDesc |
| std::string | m_className |
| ClassMap | m_classDescs |
| std::string | m_containerPrefix |
| std::string | m_containerNameHint |
| std::string | m_branchNameHint |
| const DataObject * | m_dataObject |
| const Token * | m_i_poolToken |
| CallMutex | m_conv_mut |
| double | m_beamX |
| double | m_beamY |
| double | m_beamZ |
| std::vector< TIDA::Track * > | m_tracks |
Private Member Functions | |
| void | initMessaging () const |
| Initialize our message level and MessageSvc. | |
Private Attributes | |
| const Guid | m_guid |
| GUID of the object being read. | |
| AthenaPoolCnvSvc::TPCnvList< T_AthenaPoolxAODCnv, xAOD::TrigPassBitsContainer, TPCNVS... > | m_tpcnvs |
| List of TP converters. | |
| std::string | m_nm |
| Message source name. | |
| boost::thread_specific_ptr< MsgStream > | m_msg_tls |
| MsgStream instance (a std::cout like with print-out levels) | |
| std::atomic< IMessageSvc * > | m_imsg |
| MessageSvc pointer. | |
| std::atomic< MSG::Level > | m_lvl |
| Current logging level. | |
| std::atomic_flag m_initialized | ATLAS_THREAD_SAFE |
| Messaging initialized (initMessaging) | |
Custom converter for reading xAOD::TrigPassBitsContainer correctly.
Unfortunately we managed to write quite a lot of AOD files with incorrect xAOD::TrigPassBitsContainer payload in them. (Forgot to declare a container proxy for the type.)
To overcome this, this converter explicitly creates a new container from scratch. Which has the same size as the one on disk. Connects the new container to the auxiliary store of the original one, and then returns this freshly made container instead of the original one.
Once incorrectly written files will not be an issue anymore (possibly this will never be the case, as we also wrote some BS files like this...), this hack could be removed.
Definition at line 41 of file xAODTrigPassBitsContainerCnv.h.
|
inherited |
Definition at line 48 of file T_AthenaPoolxAODCnv.h.
|
inherited |
Definition at line 41 of file T_AthenaPoolCustomCnv.h.
|
protectedinherited |
Definition at line 132 of file AthenaPoolConverter.h.
|
protectedinherited |
Definition at line 120 of file AthenaPoolConverter.h.
|
protectedinherited |
Definition at line 121 of file AthenaPoolConverter.h.
| xAODTrigPassBitsContainerCnv::xAODTrigPassBitsContainerCnv | ( | ISvcLocator * | svcLoc | ) |
Converter constructor.
Definition at line 13 of file xAODTrigPassBitsContainerCnv.cxx.
|
inlineinherited |
Definition at line 45 of file Converter.h.
|
staticinherited |
|
overrideprotectedvirtualinherited |
Callback from the CleanupSvc to delete persistent object in the local list.
|
inlineinherited |
Definition at line 53 of file Converter.h.
|
protectedvirtualinherited |
Compare POOL class GUID with the one of the object being read.
| clid | [IN] GUID to compare |
|
overridevirtualinherited |
Create a transient object from a POOL persistent representation.
| pAddr | [IN] IOpaqueAddress of POOL persistent representation. |
| pObj | [OUT] pointer to the transient object. |
Definition at line 56 of file AthenaPoolConverter.cxx.
|
protectedpure virtualinherited |
method to be implemented by the developer.
It should create the persistent representation of the object, using the default top-level TP converter.
| obj | [IN] transient object |
Implemented in ElementTableCnv, LayerMaterialMapCnv, MaterialStepCollectionCnv, T_AthenaPoolAuxContainerCnv< AUXSTORE, TPCNVS >, T_AthenaPoolCustomCnv< TRANS, PERS >, T_AthenaPoolCustomCnv< AFP_SiDigiCollection, AFP_SiDigiCollection_PERS >, T_AthenaPoolCustomCnv< AFP_SIDLocRecoEvCollection, AFP_SIDLocRecoEvCollection_PERS >, T_AthenaPoolCustomCnv< AFP_SIDSimHitCollection, AFP_SIDSimHitCollection_PERS >, T_AthenaPoolCustomCnv< AFP_TDDigiCollection, AFP_TDDigiCollection_PERS >, T_AthenaPoolCustomCnv< AFP_TDLocRecoEvCollection, AFP_TDLocRecoEvCollection_PERS >, T_AthenaPoolCustomCnv< AFP_TDSimHitCollection, AFP_TDSimHitCollection_PERS >, T_AthenaPoolCustomCnv< ALFA_CLinkEvent, ALFA_CLinkEvent_PERS >, T_AthenaPoolCustomCnv< ALFA_DigitCollection, ALFA_DigitCollection_PERS >, T_AthenaPoolCustomCnv< ALFA_GloRecEvCollection, ALFA_GloRecEvCollection_PERS >, T_AthenaPoolCustomCnv< ALFA_HitCollection, ALFA_HitCollection_PERS >, T_AthenaPoolCustomCnv< ALFA_LocRecCorrEvCollection, ALFA_LocRecCorrEvCollection_PERS >, T_AthenaPoolCustomCnv< ALFA_LocRecCorrODEvCollection, ALFA_LocRecCorrODEvCollection_PERS >, T_AthenaPoolCustomCnv< ALFA_LocRecEvCollection, ALFA_LocRecEvCollection_PERS >, T_AthenaPoolCustomCnv< ALFA_LocRecODEvCollection, ALFA_LocRecODEvCollection_PERS >, T_AthenaPoolCustomCnv< ALFA_ODDigitCollection, ALFA_ODDigitCollection_PERS >, T_AthenaPoolCustomCnv< ALFA_ODHitCollection, ALFA_ODHitCollection_PERS >, T_AthenaPoolCustomCnv< Analysis ::TauDetailsContainer, TauDetailsContainer_PERS >, T_AthenaPoolCustomCnv< Analysis ::TauJetContainer, TauJetContainer_PERS >, T_AthenaPoolCustomCnv< Analysis::MuonContainer, MuonContainer_PERS >, T_AthenaPoolCustomCnv< AthExDecay, AthExDecay_PERS >, T_AthenaPoolCustomCnv< AthExElephantino, AthExElephantino_PERS >, T_AthenaPoolCustomCnv< AthExFatObject, AthExFatObject_PERS >, T_AthenaPoolCustomCnv< BCM_RDO_Container, BCM_RDO_Container_p0 >, T_AthenaPoolCustomCnv< CaloCalibrationHitContainer, CaloCalibrationHitContainer_PERS >, T_AthenaPoolCustomCnv< CaloRingsContainer, CaloRingsContainer_PERS >, T_AthenaPoolCustomCnv< eflowObjectContainer, eflowObjectContainer_p5 >, T_AthenaPoolCustomCnv< egammaContainer, egammaContainer_PERS >, T_AthenaPoolCustomCnv< egDetailContainer, egDetailContainer_PERS >, T_AthenaPoolCustomCnv< ElectronContainer, ElectronContainer_PERS >, T_AthenaPoolCustomCnv< INav4MomAssocs, INav4MomAssocs_PERS >, T_AthenaPoolCustomCnv< INav4MomLinkContainer, INav4MomLinkContainer_PERS >, T_AthenaPoolCustomCnv< InDet::InDetLowBetaCandidate, InDetLowBetaCandidate_PERS >, T_AthenaPoolCustomCnv< IParticleLinkContainer, IParticleLinkContainer_PERS >, T_AthenaPoolCustomCnv< LArHitContainer, LArHitContainer_PERS >, T_AthenaPoolCustomCnv< LArHitFloatContainer, LArHitContainer_PERS >, T_AthenaPoolCustomCnv< LArTTL1Container, LArTTL1Container_PERS >, T_AthenaPoolCustomCnv< McEventCollection, McEventCollection_PERS >, T_AthenaPoolCustomCnv< MissingET, MissingET_PERS >, T_AthenaPoolCustomCnv< MissingEtCalo, MissingEtCalo_PERS >, T_AthenaPoolCustomCnv< MissingEtTruth, MissingEtTruth_PERS >, T_AthenaPoolCustomCnv< MuonCaloEnergyContainer, MuonCaloEnergyContainer_PERS >, T_AthenaPoolCustomCnv< PhotonContainer, PhotonContainer_PERS >, T_AthenaPoolCustomCnv< Rec::MuonSpShowerContainer, MuonSpShowerContainer_PERS >, T_AthenaPoolCustomCnv< RecoTimingObj, RecoTimingObj_PERS >, T_AthenaPoolCustomCnv< RingerRings, RingerRings_PERS >, T_AthenaPoolCustomCnv< SiHitCollection, SiHitCollection_PERS >, T_AthenaPoolCustomCnv< SimulationHitCollection, SimulationHitCollection_PERS >, T_AthenaPoolCustomCnv< T, P >, T_AthenaPoolCustomCnv< TileBeamElemContainer, TileBeamElemContainer_PERS >, T_AthenaPoolCustomCnv< TileCosmicMuonContainer, TileCosmicMuonContainer_PERS >, T_AthenaPoolCustomCnv< TileDigitsContainer, TileDigitsContainer_PERS >, T_AthenaPoolCustomCnv< TileHitContainer, TileHitContainer_PERS >, T_AthenaPoolCustomCnv< TileHitVector, TileHitVector_PERS >, T_AthenaPoolCustomCnv< TileL2Container, TileL2Container_PERS >, T_AthenaPoolCustomCnv< TileMuContainer, TileMuContainer_PERS >, T_AthenaPoolCustomCnv< TileMuonReceiverContainer, TileMuonReceiverContainer_PERS >, T_AthenaPoolCustomCnv< TileRawChannelContainer, TileRawChannelContainer_PERS >, T_AthenaPoolCustomCnv< TileTTL1Container, TileTTL1Container_PERS >, T_AthenaPoolCustomCnv< TrackRecordCollection, TrackRecordCollection_PERS >, T_AthenaPoolCustomCnv< TRANS, LEGACY >, T_AthenaPoolCustomCnv< TrigComposite, TrigComposite_PERS >, T_AthenaPoolCustomCnv< TrigEMCluster, TrigEMCluster_PERS >, T_AthenaPoolCustomCnv< TrigMonConfig, TrigMonConfig_PERS >, T_AthenaPoolCustomCnv< TrigMonConfigCollection, TrigMonConfigCollection_PERS >, T_AthenaPoolCustomCnv< TrigMonEvent, TrigMonEvent_PERS >, T_AthenaPoolCustomCnv< TrigMonEventCollection, TrigMonEventCollection_PERS >, T_AthenaPoolCustomCnv< TrigOperationalInfo, TrigOperationalInfo_PERS >, T_AthenaPoolCustomCnv< TrigOperationalInfoCollection, TrigOperationalInfoCollection_PERS >, T_AthenaPoolCustomCnv< TrigRNNOutput, TrigRNNOutput_PERS >, T_AthenaPoolCustomCnv< TrigRoiDescriptor, TrigRoiDescriptor_PERS >, T_AthenaPoolCustomCnv< TrigRoiDescriptorCollection, TrigRoiDescriptorCollection_PERS >, T_AthenaPoolCustomCnv< TrigTau, TrigTau_PERS >, T_AthenaPoolCustomCnv< TrigTauCluster, TrigTauCluster_PERS >, T_AthenaPoolCustomCnv< TrigTauClusterDetails, TrigTauClusterDetails_PERS >, T_AthenaPoolCustomCnv< TrigTauTracksInfo, TrigTauTracksInfo_PERS >, T_AthenaPoolCustomCnv< TRTUncompressedHitCollection, TRT_HitCollection_PERS >, T_AthenaPoolCustomCnv< TruthEtIsolationsContainer, TruthEtIsolationsContainer_PERS >, T_AthenaPoolCustomCnv< TruthParticleContainer, TruthParticleContainer_PERS >, T_AthenaPoolCustomCnv< ViewVector< DV >, ViewVector< DV > >, T_AthenaPoolCustomCnv< ZdcRawChannelCollection, ZdcRawChannelCollection_PERS >, T_AthenaPoolTPCnvCnv< TRANS, TPCNV_CUR, TPCNVS >, T_AthenaPoolxAODCnv< XAOD, TPCNVS >, TrackCollectionCnv, and xAODShallowAuxContainerCnv.
|
overridevirtualinherited |
Convert a transient object to persistent form.
| trans | The transient object to convert. |
| key | The SG key of the object being written. |
Returns a newly-allocated persistent object.
|
overridevirtualinherited |
Create a POOL persistent representation for a transient object.
| pObj | [IN] pointer to the transient object. |
| pAddr | [OUT] IOpaqueAddress of POOL persistent representation. |
Definition at line 61 of file AthenaPoolConverter.cxx.
|
finaloverridevirtual |
Function reading in the persistent object from disk.
Reimplemented from T_AthenaPoolxAODCnv< xAOD::TrigPassBitsContainer >.
Definition at line 20 of file xAODTrigPassBitsContainerCnv.cxx.
|
overrideprotectedvirtualinherited |
Convert an object into Persistent.
| pObj | [IN] pointer to the transient object. |
| key | [IN] StoreGate key (string) - placement hint to generate POOL container name |
|
overrideprotectedvirtualinherited |
|
inlineinherited |
Handle to DetectorStore.
Definition at line 69 of file AthenaPoolConverter.h.
|
overridevirtualinherited |
Create a POOL persistent representation for a transient object.
| pAddr | [IN] IOpaqueAddress of POOL persistent representation. |
| pObj | [IN] pointer to the transient object. |
Definition at line 66 of file AthenaPoolConverter.cxx.
|
overridevirtualinherited |
Definition at line 49 of file AthenaPoolConverter.cxx.
|
protectedvirtualinherited |
Definition at line 111 of file AthenaPoolConverter.cxx.
|
protectedvirtualinherited |
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 121 of file AthMessaging.cxx.
|
inlineprotectedinherited |
Definition at line 257 of file Converter.h.
|
protectedinherited |
Remember the POOL object to be written out (will be deleted after commit)
| obj | [IN] persistent object |
|
protectedinherited |
Remember the POOL object to be written out (will be deleted after commit)
| obj | [IN] persistent object |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 92 of file AthMessaging.h.
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 99 of file AthMessaging.h.
|
inlineinherited |
Test the output level.
| lvl | The message level to test against |
| true | Messages at level "lvl" will be printed |
Definition at line 86 of file AthMessaging.h.
|
protectedinherited |
|
protectedpure virtualinherited |
|
inlineoverrideprotectedvirtualinherited |
|
inlineprotectedinherited |
|
protectedinherited |
Read object of type P.
This is an exception-throwing version of poolToObject() plus reading of all extending objects. Version 1 - (see createTransient() above)
|
protectedinherited |
Read object of type P (plus all extending objects) using the indicated top-level TP converter.
Version 2 - (see createTransient() above) NOTE: the TLP converter will delete the persistent object after createTransient()
| tlp_converter | [IN] top-level TP converter to be used when reading |
|
overrideprotectedvirtualinherited |
|
protectedinherited |
|
overridevirtualinherited |
Definition at line 51 of file AthenaPoolConverter.cxx.
|
inlineinherited |
Definition at line 177 of file Converter.h.
|
inlineinherited |
Definition at line 111 of file Converter.h.
|
inlineinherited |
Definition at line 56 of file Converter.h.
|
inherited |
Change the current logging level.
Use this rather than msg().setLevel() for proper operation with MT.
Definition at line 108 of file AthMessaging.cxx.
|
protectedvirtualinherited |
|
protectedinherited |
|
protectedvirtualinherited |
Set POOL placement hint for a given type.
| tname | [IN] type name. |
| key | [IN] SG key. |
Definition at line 106 of file AthenaPoolConverter.cxx.
|
protectedvirtualinherited |
Set the token (in std::string representation) and classID for the object that will be read next.
Required by compareClassGuid() and poolReadObject(). Only extending converter needs to call this method explicitely
| token | [IN] token for the object to be read |
|
staticinherited |
Definition at line 72 of file AthenaPoolConverter.cxx.
|
inlineinherited |
Definition at line 50 of file Converter.h.
|
protectedpure virtualinherited |
|
inlineoverrideprotectedvirtualinherited |
Obsolete methods replaced by createPersistent() and createTransient() obsolete.
Definition at line 94 of file T_AthenaPoolCustomCnv.h.
|
mutableprivateinherited |
Messaging initialized (initMessaging)
Definition at line 141 of file AthMessaging.h.
|
protectedinherited |
Definition at line 117 of file AthenaPoolConverter.h.
|
protectedinherited |
Definition at line 320 of file Converter.h.
|
protectedinherited |
Definition at line 320 of file Converter.h.
|
protectedinherited |
Definition at line 320 of file Converter.h.
|
protectedinherited |
Definition at line 127 of file AthenaPoolConverter.h.
|
protectedinherited |
Definition at line 118 of file AthenaPoolConverter.h.
|
protectedinherited |
Definition at line 123 of file AthenaPoolConverter.h.
|
protectedinherited |
Definition at line 96 of file T_AthenaPoolCustCnv.h.
|
protectedinherited |
Definition at line 122 of file AthenaPoolConverter.h.
|
protectedinherited |
Definition at line 126 of file AthenaPoolConverter.h.
|
protectedinherited |
Definition at line 125 of file AthenaPoolConverter.h.
|
protectedinherited |
Definition at line 133 of file AthenaPoolConverter.h.
|
protectedinherited |
Definition at line 129 of file AthenaPoolConverter.h.
|
protectedinherited |
Definition at line 116 of file AthenaPoolConverter.h.
|
privateinherited |
GUID of the object being read.
Definition at line 81 of file T_AthenaPoolxAODCnv.h.
|
protectedinherited |
Definition at line 130 of file AthenaPoolConverter.h.
|
mutableprivateinherited |
|
mutableprivateinherited |
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
|
privateinherited |
Message source name.
Definition at line 129 of file AthMessaging.h.
|
protectedinherited |
Local cache for persistent objects created by this converter, grouped by processing slot These objects are deleted after a commit.
Definition at line 120 of file T_AthenaPoolCustomCnv.h.
|
protectedinherited |
protection mutex for m_persObjLists
Definition at line 123 of file T_AthenaPoolCustomCnv.h.
|
privateinherited |
List of TP converters.
Definition at line 84 of file T_AthenaPoolxAODCnv.h.
|
protectedinherited |
Definition at line 321 of file Converter.h.