diff --git a/PhysicsAnalysis/D3PDMaker/D3PDMakerConfig/python/D3PDProdFlags.py b/PhysicsAnalysis/D3PDMaker/D3PDMakerConfig/python/D3PDProdFlags.py index 083e09528c87eaad671b095e23844ba40cda0693..3f9ab6fb1cce41fa1281cc97d9ecc6f6aa0b60bb 100644 --- a/PhysicsAnalysis/D3PDMaker/D3PDMakerConfig/python/D3PDProdFlags.py +++ b/PhysicsAnalysis/D3PDMaker/D3PDMakerConfig/python/D3PDProdFlags.py @@ -140,8 +140,5 @@ listAllKnownD3PD.append (prodFlags.WriteTriggerD3PD) # Jet tag D3PDs _importFlagsFromModule ('JetTagD3PDMaker.JetTagD3PDProdFlags') -# Tracking D3PDs. -_importFlagsFromModule ('InDetD3PDMaker.VertexD3PDAnalysisProdFlags', True) - # egamma D3PDs. _importFlagsFromModule ('egammaD3PDMaker.egammaD3PDProdFlags') diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/CMakeLists.txt b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/CMakeLists.txt deleted file mode 100644 index 2daf5f88a7130a962a4a2c2284d2659224c3c42d..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/CMakeLists.txt +++ /dev/null @@ -1,66 +0,0 @@ -################################################################################ -# Package: InDetD3PDMaker -################################################################################ - -# Declare the package name: -atlas_subdir( InDetD3PDMaker ) - -# Declare the package's dependencies: -atlas_depends_on_subdirs( PRIVATE - Commission/CommissionEvent - Control/AthContainers - Control/AthenaKernel - Control/StoreGate - DetectorDescription/AtlasDetDescr - DetectorDescription/GeoModel/GeoAdaptors - DetectorDescription/Identifier - Event/EventPrimitives - Event/xAOD/xAODEventInfo - Event/xAOD/xAODTracking - GaudiKernel - InnerDetector/InDetConditions/InDetBeamSpotService - InnerDetector/InDetConditions/SCT_ConditionsTools - InnerDetector/InDetConditions/TRT_ConditionsServices - InnerDetector/InDetDetDescr/InDetIdentifier - InnerDetector/InDetDetDescr/InDetReadoutGeometry - InnerDetector/InDetDetDescr/SCT_Cabling - InnerDetector/InDetRawEvent/InDetRawData - InnerDetector/InDetRecEvent/InDetPrepRawData - InnerDetector/InDetRecEvent/InDetRIO_OnTrack - InnerDetector/InDetRecTools/TRT_DriftFunctionTool - InnerDetector/InDetSimEvent - PhysicsAnalysis/D3PDMaker/D3PDMakerUtils - PhysicsAnalysis/MCTruthClassifier - Reconstruction/ParticleTruth - Reconstruction/RecoTools/ITrackToVertex - Reconstruction/MuonIdentification/muonEvent - Reconstruction/Particle - Tracking/TrkEvent/TrkCompetingRIOsOnTrack - Tracking/TrkEvent/TrkEventPrimitives - Tracking/TrkEvent/TrkParameters - Tracking/TrkEvent/TrkParticleBase - Tracking/TrkEvent/TrkPrepRawData - Tracking/TrkEvent/TrkRIO_OnTrack - Tracking/TrkEvent/TrkTrack - Tracking/TrkEvent/TrkTrackSummary - Tracking/TrkEvent/TrkTruthData - Tracking/TrkEvent/TrkV0Vertex - Tracking/TrkEvent/VxVertex - Tracking/TrkTools/TrkToolInterfaces - Tracking/TrkValidation/TrkVertexFitterValidationUtils - Generators/AtlasHepMC ) - -# External dependencies: -find_package( Boost ) -find_package( HepPDT ) - -# Component(s) in the package: -atlas_add_component( InDetD3PDMaker - src/*.cxx - src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${HEPPDT_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} AtlasHepMCLib ${HEPPDT_LIBRARIES} GaudiKernel CommissionEvent AthContainers AthenaKernel StoreGateLib AtlasDetDescr GeoAdaptors Identifier EventPrimitives xAODEventInfo xAODTracking InDetBeamSpotServiceLib SCT_ConditionsToolsLib TRT_ConditionsServicesLib InDetIdentifier InDetReadoutGeometry SCT_CablingLib InDetRawData InDetPrepRawData InDetRIO_OnTrack InDetSimEvent D3PDMakerUtils MCTruthClassifierLib ParticleTruth ITrackToVertex muonEvent Particle TrkCompetingRIOsOnTrack TrkEventPrimitives TrkParameters TrkParticleBase TrkPrepRawData TrkRIO_OnTrack TrkTrack TrkTrackSummary TrkTruthData TrkV0Vertex VxVertex TrkToolInterfaces TrkVertexFitterValidationUtilsLib TRT_DriftFunctionToolLib ) - -# Install files from the package: -atlas_install_python_modules( python/*.py ) -atlas_install_joboptions( share/*.py ) diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/BeamSpotD3PDObject.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/BeamSpotD3PDObject.py deleted file mode 100644 index 3a841ce3aca2306a6f50c43f27a239d3e3703e14..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/BeamSpotD3PDObject.py +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -import TrackD3PDMaker -import D3PDMakerCoreComps -from D3PDMakerCoreComps.D3PDObject import D3PDObject - -def makeBeamSpotD3PDObject (name, prefix, object_name, - getter = None): - if not getter: - from InDetD3PDMaker import BeamSpotGetterTool - getter = BeamSpotGetterTool ( name + '_Getter' ) - - from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags - return D3PDMakerCoreComps.ObjFillerTool (name, - Prefix = prefix, - Getter = getter, - ObjectName = object_name, - AllowMissing=True, - SaveMetadata = \ - D3PDMakerFlags.SaveObjectMetadata()) - -BeamSpotD3PDObject = D3PDObject (makeBeamSpotD3PDObject, 'beamSpot_', 'BeamSpotD3PDObject') - -from InDetD3PDMaker import BeamSpotFillerTool -BeamSpotD3PDObject.defineBlock (0, 'BeamSpot', BeamSpotFillerTool) diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/InDetD3PDMakerPixelFlags.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/InDetD3PDMakerPixelFlags.py deleted file mode 100644 index 145473ab5d8a0cfb403ebbd4016b7ea86f5d9daf..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/InDetD3PDMakerPixelFlags.py +++ /dev/null @@ -1,179 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -# -## @file InDetD3PDMaker/python/InDetD3PDMakerPixelFlags.py -## @brief Python module to hold common flags to configure InDetD3PDMaker PixelNtuple JobOptions -## - - - -##----------------------------------------------------------------------------- -## Import -from AthenaCommon.JobProperties import JobProperty, JobPropertyContainer -from AthenaCommon.JobProperties import jobproperties - -# General flags - -class inputFiles(JobProperty): - statusOn = True - allowTypes = ['list'] - StoredValue = ['ESD.pool.root'] - -class outputFile(JobProperty): - statusOn = True - allowTypes = ['str'] - StoredValue = 'PixelNtuple.root' - - -class doPixelNtuple(JobProperty): - """ Turn on filling of Pixel Ntuples track and hit on track branches only - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=True - -class doPixelNtupleLight(JobProperty): - """ Turn on filling of Pixel Ntuples all branches - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - -class doPixelNtupleExtended(JobProperty): - """ Turn on filling of Pixel Ntuples branches including BCM rdo information - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - - -class storeEventInfo(JobProperty): - """ store general EventInformaton - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=True - - -class storeBSerror(JobProperty): - """ store general ByteStream error branches - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=True - - -class storeTracks(JobProperty): - """ store Combined Inner Detector 'Tracks' branches - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=True - -class storeHitsOnTracks(JobProperty): - """ store HitOnTrack details for Combined Inner Detector 'Tracks' branches - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=True - - -class storePixelClusters(JobProperty): - """ store branches for all Pixel Clusters - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=True - -class storePixelRDOs(JobProperty): - """ store branches for all Pixel RDOs - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=True - -class storeTriggerInfo(JobProperty): - """ store branches for trigger information - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=True - -class storePhysicsInfo(JobProperty): - """ store branches for MET etc. - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - - -class storeBCMrdo(JobProperty): - """ store branches for BCM RDOs - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - - - -class doTrackToClusterAssociation(JobProperty): - """ store HitOnTrack details and do index association from tracks to clusters - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - -class doClusterToTrackAssociation(JobProperty): - """ perform index association from clusters to tracks - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - -class doClusterToRdoAssociation(JobProperty): - """ perform index association from clusters to rdos - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - -class doRdoToClusterAssociation(JobProperty): - """ store perform index association from rdos to clusters - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - - -##----------------------------------------------------------------------------- -## Definition of the InDetD3PDMaker flag container - -class InDetD3PDMakerPixelFlags(JobPropertyContainer): - """ The Track D3PD Pixel flag container - """ - - -# add the reconstruction flags container to the top container -jobproperties.add_Container(InDetD3PDMakerPixelFlags) - -jobproperties.InDetD3PDMakerPixelFlags.add_JobProperty(inputFiles) -jobproperties.InDetD3PDMakerPixelFlags.add_JobProperty(outputFile) -jobproperties.InDetD3PDMakerPixelFlags.add_JobProperty(doPixelNtuple) -jobproperties.InDetD3PDMakerPixelFlags.add_JobProperty(doPixelNtupleLight) -jobproperties.InDetD3PDMakerPixelFlags.add_JobProperty(doPixelNtupleExtended) -jobproperties.InDetD3PDMakerPixelFlags.add_JobProperty(storeEventInfo) -jobproperties.InDetD3PDMakerPixelFlags.add_JobProperty(storeBSerror) -jobproperties.InDetD3PDMakerPixelFlags.add_JobProperty(storeTracks) -jobproperties.InDetD3PDMakerPixelFlags.add_JobProperty(storeHitsOnTracks) -jobproperties.InDetD3PDMakerPixelFlags.add_JobProperty(storePixelClusters) -jobproperties.InDetD3PDMakerPixelFlags.add_JobProperty(storePixelRDOs) -jobproperties.InDetD3PDMakerPixelFlags.add_JobProperty(storeTriggerInfo) -jobproperties.InDetD3PDMakerPixelFlags.add_JobProperty(storePhysicsInfo) -jobproperties.InDetD3PDMakerPixelFlags.add_JobProperty(storeBCMrdo) -jobproperties.InDetD3PDMakerPixelFlags.add_JobProperty(doTrackToClusterAssociation) -jobproperties.InDetD3PDMakerPixelFlags.add_JobProperty(doClusterToTrackAssociation) -jobproperties.InDetD3PDMakerPixelFlags.add_JobProperty(doClusterToRdoAssociation) -jobproperties.InDetD3PDMakerPixelFlags.add_JobProperty(doRdoToClusterAssociation) - - -InDetD3PDPixelFlags=jobproperties.InDetD3PDMakerPixelFlags diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/InDetD3PDMakerSCTFlags.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/InDetD3PDMakerSCTFlags.py deleted file mode 100644 index 2e715725b2f90d277e8c0eb2cfd8c602c49d2838..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/InDetD3PDMakerSCTFlags.py +++ /dev/null @@ -1,200 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -# -## @file InDetD3PDMaker/python/InDetD3PDMakerSCTFlags.py -## @brief Python module to hold common flags to configure InDetD3PDMaker SCTNtuple JobOptions -## - - - -##----------------------------------------------------------------------------- -## Import -from AthenaCommon.JobProperties import JobProperty, JobPropertyContainer -from AthenaCommon.JobProperties import jobproperties - -# General flags - -class inputFiles(JobProperty): - statusOn = True - allowTypes = ['list'] - StoredValue = ['ESD.pool.root'] - -class outputFile(JobProperty): - statusOn = True - allowTypes = ['str'] - StoredValue = 'SctNtuple.root' - - -class doSCTNtuple(JobProperty): - """ Turn on filling of SCT Ntuples track and hit on track branches only - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=True - -class doSCTNtupleLight(JobProperty): - """ Turn on filling of SCT Ntuples all branches - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - -class doSCTNtupleExtended(JobProperty): - """ Turn on filling of SCT Ntuples branches including BCM rdo information - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - - -class storeEventInfo(JobProperty): - """ store general EventInformaton - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=True - - -class storeBSerror(JobProperty): - """ store general ByteStream error branches - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=True - - -class storeTracks(JobProperty): - """ store Combined Inner Detector 'Tracks' branches - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False ##=# True - -class storeHitsOnTracks(JobProperty): - """ store HitOnTrack details for Combined Inner Detector 'Tracks' branches - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False ##=#True - - -class storeSctClusters(JobProperty): - """ store branches for all SCT Clusters - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=True - -class storeSctRDOs(JobProperty): - """ store branches for all SCT RDOs - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=True - -class storeTriggerInfo(JobProperty): - """ store branches for trigger information - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False ##=# True - -class storePhysicsInfo(JobProperty): - """ store branches for MET etc. - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - - -class storeBCMrdo(JobProperty): - """ store branches for BCM RDOs - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - -class includeTruthInfo(JobProperty): - """ store branches MC truth info - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - -class doTrackToMuonAssociation(JobProperty): - """ store Muon Information branches - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False ##=# True - -class useStacoMuonCollectionForAssociation(JobProperty): - """ use 'StacoMuonCollection' instead of default 'Muons' in SCTTrackParticleToMuonAssociationTool - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - -class doTrackToClusterAssociation(JobProperty): - """ store HitOnTrack details and do index association from tracks to clusters - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - -class doClusterToTrackAssociation(JobProperty): - """ perform index association from clusters to tracks - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - -class doClusterToRdoAssociation(JobProperty): - """ perform index association from clusters to rdos - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - -class doRdoToClusterAssociation(JobProperty): - """ store perform index association from rdos to clusters - """ - statusOn=True - allowedTypes=['bool'] - StoredValue=False - - -##----------------------------------------------------------------------------- -## Definition of the InDetD3PDMaker flag container - -class InDetD3PDMakerSCTFlags(JobPropertyContainer): - """ The InDet D3PD SCT flag container - """ - - -# add the reconstruction flags container to the top container -jobproperties.add_Container(InDetD3PDMakerSCTFlags) - -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(inputFiles) -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(outputFile) -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(doSCTNtuple) -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(doSCTNtupleLight) -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(doSCTNtupleExtended) -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(storeEventInfo) -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(storeBSerror) -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(storeTracks) -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(storeHitsOnTracks) -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(storeSctClusters) -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(storeSctRDOs) -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(storeTriggerInfo) -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(storePhysicsInfo) -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(storeBCMrdo) -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(doTrackToClusterAssociation) -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(doClusterToTrackAssociation) -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(doClusterToRdoAssociation) -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(doRdoToClusterAssociation) -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(doTrackToMuonAssociation) -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(useStacoMuonCollectionForAssociation) -jobproperties.InDetD3PDMakerSCTFlags.add_JobProperty(includeTruthInfo) - -InDetD3PDSCTFlags=jobproperties.InDetD3PDMakerSCTFlags diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/PixelClusterD3PDObject.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/PixelClusterD3PDObject.py deleted file mode 100644 index 026a4d30f82fab1a91bfe3519567f1e5a595d32e..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/PixelClusterD3PDObject.py +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -import D3PDMakerCoreComps -from D3PDMakerCoreComps.D3PDObject import D3PDObject -from D3PDMakerCoreComps.IndexMultiAssociation import IndexMultiAssociation -from D3PDMakerCoreComps.IndexAssociation import IndexAssociation -from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags - - -from InDetD3PDMaker import PixelClusterFillerTool -def makePixelClusterD3PDObject (name, prefix, object_name, getter = None, - sgkey = 'PixelClusters', - typename = 'InDet::PixelClusterContainer', - label = 'PixelClus', - blayerOnly = False): - if not getter: - from InDetD3PDMaker import PixelClusterCollectionGetterTool - getter = PixelClusterCollectionGetterTool (name + '_Getter', - SGKey = sgkey, - TypeName = typename, - Label = label, - BLayerOnly = blayerOnly) - - from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags - return D3PDMakerCoreComps.VectorFillerTool (name, Prefix = prefix, - Getter = getter, - ObjectName = object_name, - SaveMetadata = \ - D3PDMakerFlags.SaveObjectMetadata()) - -##--- -PixelClusterD3PDObject = D3PDObject (makePixelClusterD3PDObject, 'pixelClus_', - 'PixelClusterD3PDObject') - -PixelClusterD3PDObject.defineBlock (0, 'PixelCluster', PixelClusterFillerTool) - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/PixelHitOnTrackAssociation.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/PixelHitOnTrackAssociation.py deleted file mode 100644 index bc1cca4128bb8072bb6b36d3555f54a888703ca4..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/PixelHitOnTrackAssociation.py +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -import InDetD3PDMaker -from D3PDMakerCoreComps.SimpleAssociation import SimpleAssociation -from D3PDMakerCoreComps.ContainedVectorMultiAssociation import ContainedVectorMultiAssociation - -def PixelHitOnTrackAssociation (parent, associator, _prefix = '', - _blocknameprefix = '', _level = 0): - assoc = ContainedVectorMultiAssociation\ - (parent, associator, - prefix = _prefix, level = _level, - blockname = _blocknameprefix+'clAssoc') - assoc.defineBlock(0, _blocknameprefix+'clAssoc', - InDetD3PDMaker.ClusterAssocPixelFillerTool) - - return assoc - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/PixelRDOD3PDObject.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/PixelRDOD3PDObject.py deleted file mode 100644 index 2ae0d046657bec3316fbf8feb89fb7e56458546a..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/PixelRDOD3PDObject.py +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -## Pixel RDOs -import D3PDMakerCoreComps - - -from D3PDMakerCoreComps.D3PDObject import D3PDObject -from InDetD3PDMaker import PixelRDOFillerTool -def makePixelRDOD3PDObject (name, prefix, object_name, getter = None, - sgkey = 'PixelRDOs', - typename = 'PixelRDO_Container', #PixelRDO_Container', - label = 'PixelRdo'): - if not getter: - from InDetD3PDMaker import PixelRDOCollectionGetterTool - getter = PixelRDOCollectionGetterTool (name + '_Getter', - SGKey = sgkey, - TypeName = typename, - Label = label) - - from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags - return D3PDMakerCoreComps.VectorFillerTool (name, Prefix = prefix, - Getter = getter, - ObjectName = object_name, - SaveMetadata = \ - D3PDMakerFlags.SaveObjectMetadata()) - -##--- -PixelRDOD3PDObject = D3PDObject (makePixelRDOD3PDObject, 'pixelRdo_', - 'PixelRDOD3PDObject') - - -PixelRDOD3PDObject.defineBlock (0, 'PixelRdo', PixelRDOFillerTool) - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/SCTClusterD3PDObject.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/SCTClusterD3PDObject.py deleted file mode 100644 index a66c9f6778b277fcfadbd07306b06b3d168bed07..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/SCTClusterD3PDObject.py +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -import D3PDMakerCoreComps -from D3PDMakerCoreComps.D3PDObject import D3PDObject -from D3PDMakerCoreComps.IndexMultiAssociation import IndexMultiAssociation -from D3PDMakerCoreComps.IndexAssociation import IndexAssociation -from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags - - -from InDetD3PDMaker import SCTClusterFillerTool -def makeSCTClusterD3PDObject (name, prefix, object_name, getter = None, - sgkey = 'SCT_Clusters', - typename = 'InDet::SCT_ClusterContainer', - label = 'SCTClus'): - if not getter: - from InDetD3PDMaker import SCTClusterCollectionGetterTool - getter = SCTClusterCollectionGetterTool (name + '_Getter', - SGKey = sgkey, - TypeName = typename, - Label = label) - - from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags - return D3PDMakerCoreComps.VectorFillerTool (name, Prefix = prefix, - Getter = getter, - ObjectName = object_name, - SaveMetadata = \ - D3PDMakerFlags.SaveObjectMetadata()) - -##--- -SCTClusterD3PDObject = D3PDObject (makeSCTClusterD3PDObject, 'sctClus_', - 'SCTClusterD3PDObject') - -SCTClusterD3PDObject.defineBlock (0, 'SCT_Cluster', SCTClusterFillerTool) - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/SCTRDOD3PDObject.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/SCTRDOD3PDObject.py deleted file mode 100644 index 2778f1c4a748312da1e8a58af4e7468b9261e692..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/SCTRDOD3PDObject.py +++ /dev/null @@ -1,32 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -## SCT RDOs -import D3PDMakerCoreComps - - -from D3PDMakerCoreComps.D3PDObject import D3PDObject -from InDetD3PDMaker import SCTRDOFillerTool -def makeSCTRDOD3PDObject (name, prefix, object_name, getter = None, - sgkey = 'SCT_RDOs', - typename = 'SCT_RDO_Container', #SCT_RDO_Container', - label = 'SCTRdo'): - if not getter: - from InDetD3PDMaker import SCTRDOCollectionGetterTool - getter = SCTRDOCollectionGetterTool (name + '_Getter', - SGKey = sgkey, - TypeName = typename, - Label = label) - - from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags - return D3PDMakerCoreComps.VectorFillerTool (name, Prefix = prefix, - Getter = getter, - ObjectName = object_name, - SaveMetadata = \ - D3PDMakerFlags.SaveObjectMetadata()) - -##--- -SCTRDOD3PDObject = D3PDObject (makeSCTRDOD3PDObject, 'sctRdo_', - 'SCTRDOD3PDObject') - -SCTRDOD3PDObject.defineBlock (0, 'SCT_Rdo', SCTRDOFillerTool) -# diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/SctHitOnTrackAssociation.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/SctHitOnTrackAssociation.py deleted file mode 100644 index 6fd197da7e4aca70f851fcf5c7e43d7525e3839d..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/SctHitOnTrackAssociation.py +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -from InD3PDMaker import ClusterAssocFillerTool -from D3PDMakerCoreComps.SimpleAssociation import SimpleAssociation -from D3PDMakerCoreComps.ContainedVectorMultiAssociation import ContainedVectorMultiAssociation - -def SctHitOnTrackAssociation (parent, associator, _prefix = '', - _blocknameprefix = '', _level = 0): - assoc = ContainedVectorMultiAssociation\ - (parent, associator, - prefix = _prefix, level = _level, - blockname = _blocknameprefix+'clAssoc') - assoc.defineBlock(0, _blocknameprefix+'clAssoc', - ClusterAssocFillerTool) - - return assoc - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/SiHitD3PDObject.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/SiHitD3PDObject.py deleted file mode 100644 index 669beefbaf9f522751fe983314811a289054c0ab..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/SiHitD3PDObject.py +++ /dev/null @@ -1,104 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -import InDetD3PDMaker -import D3PDMakerCoreComps -import EventCommonD3PDMaker -from D3PDMakerCoreComps.D3PDObject import D3PDObject -from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags -from RecExConfig.RecFlags import rec - -from D3PDMakerCoreComps.SimpleAssociation import SimpleAssociation - -from D3PDMakerCoreComps.D3PDObject import make_SGDataVector_D3PDObject - -def makeD3PDObject (name, prefix, object_name, getter = None, - sgkey = None, - label = None): - if sgkey == None: sgkey = "SiHits" - if label == None: label = prefix - if prefix=="pixhit_" : - sgkey = "PixelHits" - if prefix=="scthit_" : - sgkey = "SCT_Hits" - - - - if not getter: - getter = InDetD3PDMaker.SiHitContainerGetterTool \ - (name + '_Getter', - TypeName = 'SiHitCollection', - SGKey = sgkey, - Label = label) - getter.OutputLevel=1 - return D3PDMakerCoreComps.VectorFillerTool (name, - Prefix = prefix, - Getter = getter, - ObjectName = object_name, OutputLevel=1) - -PixelSiHitD3PDObject = D3PDObject (makeD3PDObject, 'pixhit_', 'PixelSiHitD3PDObject') - -PixelSiHitD3PDObject.defineBlock (1, 'Hits', - InDetD3PDMaker.SiHitFillerTool) - -SctSiHitD3PDObject = D3PDObject (makeD3PDObject, 'scthit_', 'SctSiHitD3PDObject') - -SctSiHitD3PDObject.defineBlock (1, 'Hits', - InDetD3PDMaker.SiHitFillerTool) - - -# Truth matching -#if rec.doTruth() : -if True : - TruthAssoc = SimpleAssociation\ - (PixelSiHitD3PDObject, - InDetD3PDMaker.SiHitTruthAssociationTool, prefix="mc_") - TruthAssoc.defineBlock (1, - 'TruthAssocIndex', - D3PDMakerCoreComps.IndexFillerTool, - Target = 'mc') - - - TruthAssoc = SimpleAssociation\ - (SctSiHitD3PDObject, - InDetD3PDMaker.SiHitTruthAssociationTool, prefix="mc_") - TruthAssoc.defineBlock (1, - 'TruthAssocIndex', - D3PDMakerCoreComps.IndexFillerTool, - Target = 'mc') - - - - - -# def _levelAssocToGP (reqlev, args, hookargs): -# if reqlev < 1: return False -# if hookargs.get ('TruthParticleTarget'): return False -# if hookargs.get ('GenParticleTarget'): -# args['Target'] = hookargs.get ('GenParticleTarget') -# return True -# def _levelAssocToTP (reqlev, args, hookargs): -# if reqlev < 1: return False -# tpt = hookargs.get ('TruthParticleTarget') -# if not tpt: return False -# args['Target'] = tpt -# return True -# -# TruthAssoc = SimpleAssociation\ -# (object, -# TruthAssociationTool, -# prefix = "mc_", -# SGKey = sgkey, -# MapKey = truthMapKey) -# TruthAssoc.defineBlock (_levelAssocToGP, -# 'TruthAssocIndex', -# D3PDMakerCoreComps.IndexFillerTool, -# Target = truthTarget) -#77 truthTarget='mc', -#378 truthPrefix='mc_', -#379 detailedTruthPrefix='detailed_mc_', -#380 truthMapKey='TrackTruthCollection', -#381 SGKeyForTruth='Tracks', -#382 detailedTruthMapKey='DetailedTrackTruth', -#383 SGKeyForDetailedTruth='Tracks', -#384 flags=TrackD3PDFlags) - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TRTPhaseD3PDObject.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TRTPhaseD3PDObject.py deleted file mode 100644 index 009f59d7b3f9c56806ac7353ee98a2f04e96d584..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TRTPhaseD3PDObject.py +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -#TRT_Phase PUT IN SEPARATE PYTHON FILE -# -# We operate on a single object from StoreGate. -# -import D3PDMakerCoreComps - -from D3PDMakerCoreComps.D3PDObject import D3PDObject -from InDetD3PDMaker import TRTPhaseFillerTool -def makeTRTPhaseD3PDObject (name, prefix, object_name, getter = None, sgkey = 'TRT_Phase'): - if not getter: - getter = D3PDMakerCoreComps.SGObjGetterTool (name + '_Getter', - SGKey = sgkey, - TypeName = 'ComTime') - - from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags - return D3PDMakerCoreComps.ObjFillerTool (name, - Prefix = prefix, - Getter = getter, - ObjectName = object_name, - SaveMetadata = \ - D3PDMakerFlags.SaveObjectMetadata()) - -# Create the object type. -TRTPhaseD3PDObject = D3PDObject (makeTRTPhaseD3PDObject, 'TRT_', 'TRTPhaseD3PDObject') -# Define blocks. -TRTPhaseD3PDObject.defineBlock (0, 'TRTPhase',TRTPhaseFillerTool) - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TRTUncompressedHitD3PDObject.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TRTUncompressedHitD3PDObject.py deleted file mode 100644 index 6dacbf619806f797e112be0b83a6ba88175a1e02..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TRTUncompressedHitD3PDObject.py +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -import InDetD3PDMaker -import D3PDMakerCoreComps -import EventCommonD3PDMaker -from D3PDMakerCoreComps.D3PDObject import D3PDObject -from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags -from RecExConfig.RecFlags import rec - -# would be needed for truth association: -#from D3PDMakerCoreComps.SimpleAssociation import SimpleAssociation - -from D3PDMakerCoreComps.D3PDObject import make_SGDataVector_D3PDObject - -def makeD3PDObject (name, prefix, object_name, getter = None, sgkey = None, label = None): - if sgkey == None: sgkey = "TRTUncompressedHits" - if label == None: label = prefix - - if not getter: - getter = InDetD3PDMaker.TRTUncompressedHitContainerGetterTool \ - (name + '_Getter', - TypeName = 'TRTUncompressedHitCollection', - SGKey = sgkey, - Label = label) - getter.OutputLevel = 1 - return D3PDMakerCoreComps.VectorFillerTool (name, - Prefix = prefix, - Getter = getter, - ObjectName = object_name, OutputLevel=1) - -TRTUncompressedHitD3PDObject = D3PDObject (makeD3PDObject, 'trthit_', 'TRTUncompressedHitD3PDObject') - -TRTUncompressedHitD3PDObject.defineBlock (1, 'Hits', InDetD3PDMaker.TRTUncompressedHitFillerTool) - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TrackD3PD.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TrackD3PD.py deleted file mode 100644 index 802d413e024a5f913c0de5eeb60985c17dc80f05..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TrackD3PD.py +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -import D3PDMakerCoreComps -from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags -from TrackD3PDMaker.TrackD3PDMakerFlags import TrackD3PDFlags - -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() - - -def _args (level, name, kwin, **kw): - kw = kw.copy() - kw['level'] = level - for (k, v) in kwin.items(): - if k.startswith (name + '_'): - kw[k[len(name)+1:]] = v - return kw - - -def AddTrackD3PDComponents(alg, level=1, **kw): - - from InDetD3PDMaker.TruthTrackD3PDObject import TruthTrackD3PDObject - from InDetD3PDMaker.TruthVertexD3PDObject import TruthVertexD3PDObject - from InDetD3PDMaker.TrackParticleD3PDObjects import TrackParticleD3PDObject - from InDetD3PDMaker.VertexD3PDObject import PrimaryVertexD3PDObject - from InDetD3PDMaker.V0D3PDObject import DefaultV0D3PDObject as V0D3PDObject - #from TrackD3PDMaker.PixelClusterD3PDObject import PixelClusterD3PDObject - - alg += V0D3PDObject(level) - #alg += PixelClusterD3PDObject(**_args(level, 'PixelCluster', kw)) - alg += TruthTrackD3PDObject(**_args(level, 'TruthTrack', kw)) - alg += TruthVertexD3PDObject(**_args(level, 'TruthVertex', kw)) - alg += TrackParticleD3PDObject(**_args(level, 'Track', kw)) - alg += PrimaryVertexD3PDObject(**_args(level, 'PrimaryVertex', kw)) - -def TrackD3PD (file, - level = 4, - tuplename = 'track', - seq = topSequence, - D3PDSvc = 'D3PD::RootD3PDSvc', - **kw): - - from EventCommonD3PDMaker.EventInfoD3PDObject import EventInfoD3PDObject - from TrigMbD3PDMaker.CtpRdoD3PDObject import CtpRdoD3PDObject - - alg = D3PDMakerCoreComps.MakerAlg(tuplename, seq, file = file, D3PDSvc = D3PDSvc) - alg += EventInfoD3PDObject (level) - alg += CtpRdoD3PDObject(level) - AddTrackD3PDComponents(alg, level, **kw) - return alg diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TrackD3PDObject.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TrackD3PDObject.py deleted file mode 100644 index 7eb78b2a68ca2c8409cc575d053d02f12e858417..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TrackD3PDObject.py +++ /dev/null @@ -1,324 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -import TrackD3PDMaker -import InDetD3PDMaker -import D3PDMakerCoreComps -import EventCommonD3PDMaker -#import TruthD3PDMaker -from D3PDMakerCoreComps.D3PDObject import D3PDObject -from D3PDMakerCoreComps.D3PDObject import DeferArg -from D3PDMakerCoreComps.flagTestLOD import flagTestLOD, deferFlag -from D3PDMakerCoreComps.D3PDObject import make_SGDataVector_D3PDObject -from D3PDMakerCoreComps.SimpleAssociation import SimpleAssociation -from D3PDMakerCoreComps.IndexAssociation import IndexAssociation -from D3PDMakerCoreComps.IndexMultiAssociation import IndexMultiAssociation -from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags -from TrackD3PDMaker import TrackD3PDMakerConf -from TrackD3PDMaker.PerigeeAssociation import PerigeeAssociation -from InDetD3PDMaker.TrackStateOnSurfaceAssociation import TrackStateOnSurfaceAssociation -from RecExConfig.RecFlags import rec -from TrackD3PDMaker.TrackD3PDMakerFlags import * -from AthenaCommon.AppMgr import ToolSvc - - -def _get_estimator (args, hookargs): - from AthenaCommon.AppMgr import ToolSvc - if hasattr(ToolSvc, 'AtlasExtrapolator'): - AtlasExtrapolator = ToolSvc.AtlasExtrapolator - else: - from TrkExTools.AtlasExtrapolator import AtlasExtrapolator - AtlasExtrapolator = AtlasExtrapolator() - ToolSvc += AtlasExtrapolator - if hasattr(ToolSvc, 'TrackD3PDLinTrkFactory'): - TrackD3PDLinTrkFactory = ToolSvc.TrackD3PDLinTrkFactory - else: - from TrkVertexFitterUtils.TrkVertexFitterUtilsConf import Trk__FullLinearizedTrackFactory - TrackD3PDLinTrkFactory = Trk__FullLinearizedTrackFactory( - name = "TrackD3PDFullLinearizedTrackFactory", - Extrapolator = AtlasExtrapolator) - ToolSvc += TrackD3PDLinTrkFactory - - if hasattr(ToolSvc, 'TrackD3PDTrackToVertexIPEstimator'): - TrackD3PDTrackToVertexIPEstimator = ToolSvc.TrackD3PDTrackToVertexIPEstimator - else: - from TrkVertexFitterUtils.TrkVertexFitterUtilsConf import Trk__TrackToVertexIPEstimator - TrackD3PDTrackToVertexIPEstimator = Trk__TrackToVertexIPEstimator( - name="TrackD3PDTrackToVertexIPEstimator", - Extrapolator=AtlasExtrapolator, - LinearizedTrackFactory=TrackD3PDLinTrkFactory) - ToolSvc += TrackD3PDTrackToVertexIPEstimator - - args['TrackToVertexIPEstimator'] = TrackD3PDTrackToVertexIPEstimator - return - - -def TrackD3PDObject(_label='trkTrack', - _prefix='trkTrack_', - _sgkey='Tracks', - _object_name='TrackD3PDObject', - typ=TrackParticleType, - vertexTarget='vx', - vertexPrefix='vx_', - vertexSGKey='VxPrimaryCandidate', - truthTarget='mc', - truthPrefix='mc_', - detailedTruthPrefix='detailed_mc_', - truthMapKey='TrackTruthCollection', - SGKeyForTruth='Tracks', - detailedTruthMapKey='DetailedTrackTruth', - SGKeyForDetailedTruth='Tracks', - flags=TrackD3PDFlags): - - object = make_SGDataVector_D3PDObject ( - typ.typeName, - _sgkey, - _prefix, - _object_name, - default_allowMissing = True, - default_label = _label, - allow_args = ['GenParticleTarget', - 'TruthParticleTarget', - 'storeTruthInfo', - 'storeTrackMomentum', - 'trackParametersAtGlobalPerigeeLevelOfDetails', - 'trackParametersAtPrimaryVertexLevelOfDetails', - 'trackParametersAtBeamSpotLevelOfDetails', - 'trackParameterAtBeamLineLevelOfDetails', - 'storeDiagonalCovarianceAsErrors', - 'storeTrackParametersAtCalo', - 'storeTrackParametersAtCalo2ndLayer', - 'storeTrackFitQuality', - 'storeTrackPredictionAtBLayer', - 'storeTrackInfo', - 'storeVertexAssociation', - 'storeDetailedTruth', - 'storeBLayerHitsOnTrack', - 'storePixelHitsOnTrack', - 'storeSCTHitsOnTrack', - 'storeTRTHitsOnTrack', - 'storeMDTHitsOnTrack', - 'storeCSCHitsOnTrack', - 'storeRPCHitsOnTrack', - 'storeTGCHitsOnTrack', - 'storeBLayerOutliersOnTrack', - 'storePixelOutliersOnTrack', - 'storeSCTOutliersOnTrack', - 'storeTRTOutliersOnTrack', - 'storeMDTOutliersOnTrack', - 'storeCSCOutliersOnTrack', - 'storeRPCOutliersOnTrack', - 'storeTGCOutliersOnTrack', - 'storeBLayerHolesOnTrack', - 'storePixelHolesOnTrack', - 'storeSCTHolesOnTrack', - 'storeTRTHolesOnTrack', - 'storeMDTHolesOnTrack', - 'storeCSCHolesOnTrack', - 'storeRPCHolesOnTrack', - 'storeTGCHolesOnTrack', - 'storePullsAndResiduals', - 'storeTrackUnbiasedIPAtPV', - 'storeHitTruthMatching', - 'storeTrackSummary', - 'doTruth', - ]) - - # This generates ERROR messages. Disabled for now. - #object.defineBlock(1, "Isolation", TrackD3PDMaker.TrackIsolationFillerTool) - - - ## default perigee (at (0,0,0)) - PerigeeAssoc = PerigeeAssociation\ - (object, - typ.PerigeeAssociationTool, "GlobalPerigee", - fillMomName = 'storeTrackMomentum', - levelName = 'trackParametersAtGlobalPerigeeLevelOfDetails') - - # Unbiased impact parameters at PV - PerigeeAssoc.defineBlock (flagTestLOD('storeTrackUnbiasedIPAtPV', - flags, _get_estimator), - _prefix+"IPEstimate", - TrackD3PDMaker.PerigeeUnbiasedIPAtPVFillerTool, - # Filled in by LOD function. - TrackToVertexIPEstimator=None, - Prefix = 'IPEstimate_', - Suffix = '_wrtPV') - - # perigee at Primary Vertex - PerigeeAtPVAssoc = PerigeeAssociation\ - (object, - typ.PerigeeAtPVAssociationTool, "PerigeeAtPV", - suffix='_wrtPV', - levelName = 'trackParametersAtPrimaryVertexLevelOfDetails') - - # perigee at Beam Spot - PerigeeAtBSAssoc = PerigeeAssociation\ - (object, - typ.PerigeeAtBSAssociationTool, "PerigeeAtBS", - suffix='_wrtBS', - levelName = 'trackParametersAtBeamSpotLevelOfDetails') - - # parameters at Calo - object.defineBlock(flagTestLOD('storeTrackParametersAtCalo', flags), - _prefix+"ParametersAtCalo", - ParametersAtCaloFillerTool) - - # parameters at Calo 2nd layer - object.defineBlock(flagTestLOD('storeTrackParametersAtCalo2ndLayer', flags), - _prefix+"ParametersAtCalo2ndLayer", - ParametersAtCaloFillerTool, - Sampling = 1, - Suffix = '2ndLayer') - - # Fit Quality - FitQualityAssoc = SimpleAssociation\ - (object, - typ.FitQualityAssociationTool, - level = flagTestLOD('storeTrackFitQuality', flags)) - - FitQualityAssoc.defineBlock(flagTestLOD('storeTrackFitQuality', flags), - _prefix+'FitQuality', - InDetD3PDMaker.TrackFitQualityFillerTool) - - # Track Summary - TrackSummaryAssoc = SimpleAssociation\ - (object, - typ.TrackSummaryAssociationTool, - level = flagTestLOD('storeTrackSummary', flags)) - - TrackSummaryAssoc.defineBlock(flagTestLOD('storeTrackSummary', flags), - _prefix+'TrackSummary', - InDetD3PDMaker.TrackTrackSummaryFillerTool, - FullInfo = flags.storeTrackSummary.FullInfo, - IDHits = flags.storeTrackSummary.IDHits, - IDHoles = flags.storeTrackSummary.IDHoles, - IDSharedHits = flags.storeTrackSummary.IDSharedHits, - IDOutliers = flags.storeTrackSummary.IDOutliers, - PixelInfoPlus = flags.storeTrackSummary.PixelInfoPlus, - SCTInfoPlus = flags.storeTrackSummary.SCTInfoPlus, - TRTInfoPlus = flags.storeTrackSummary.TRTInfoPlus, - InfoPlus = flags.storeTrackSummary.InfoPlus, - MuonHits = flags.storeTrackSummary.MuonHits, - MuonHoles = flags.storeTrackSummary.MuonHoles, - ExpectBLayer = flags.storeTrackSummary.ExpectBLayer, - HitSum = flags.storeTrackSummary.HitSum, - HoleSum = flags.storeTrackSummary.HoleSum, - HitPattern = flags.storeTrackSummary.HitPattern, - SiHits = flags.storeTrackSummary.SiHits, - TRTRatio = flags.storeTrackSummary.TRTRatio, - PixeldEdx = flags.storeTrackSummary.PixeldEdx, - ElectronPID = flags.storeTrackSummary.ElectronPID) - - # Track Info - TrackInfoAssoc = SimpleAssociation\ - (object, - typ.TrackInfoAssociationTool, - level = flagTestLOD('storeTrackInfo', flags)) - - TrackInfoAssoc.defineBlock(flagTestLOD('storeTrackInfo', flags), - _prefix+'TrackInfo', - InDetD3PDMaker.TrackInfoFillerTool) - - ## B-Layer predictions - from AthenaCommon.AppMgr import ToolSvc - if hasattr(ToolSvc, 'InDetRecTestBLayerTool'): - BLayerPredictionAssoc = SimpleAssociation\ - (object, - typ.PerigeeAssociationTool, - prefix = 'blayerPrediction_', - blockname = _prefix+'BLayerInfoAssoc', - level = flagTestLOD('storeTrackPredictionAtBLayer', flags)) - - BLayerPredictionAssoc.defineBlock (flagTestLOD('storeTrackPredictionAtBLayer', flags), - _prefix+'BLayerInfo', - TrackD3PDMaker.PerigeeBLPredictionFillerTool, - InDetTestBLayerTool = ToolSvc.InDetRecTestBLayerTool) - - tsos_table = [ - ('storeBLayerHitsOnTrack', 'BLayer_hit_', 'getBLayerMeasurements'), - ('storePixelHitsOnTrack', 'Pixel_hit_', 'getPixelMeasurements'), - ('storeSCTHitsOnTrack', 'SCT_hit_', 'getSCTMeasurements'), - ('storeTRTHitsOnTrack', 'TRT_hit_', 'getTRTMeasurements'), - ('storeMDTHitsOnTrack', 'MDT_hit_', 'getMDTMeasurements'), - ('storeCSCHitsOnTrack', 'CSC_hit_', 'getCSCMeasurements'), - ('storeRPCHitsOnTrack', 'RPC_hit_', 'getRPCMeasurements'), - ('storeTGCHitsOnTrack', 'TGC_hit_', 'getTGCMeasurements'), - - ('storeBLayerOutliersOnTrack', 'BLayer_outlier_', 'getBLayerOutliers'), - ('storePixelOutliersOnTrack', 'Pixel_outlier_', 'getPixelOutliers'), - ('storeSCTOutliersOnTrack', 'SCT_outlier_', 'getSCTOutliers'), - ('storeTRTOutliersOnTrack', 'TRT_outlier_', 'getTRTOutliers'), - ('storeMDTOutliersOnTrack', 'MDT_outlier_', 'getMDTOutliers'), - ('storeCSCOutliersOnTrack', 'CSC_outlier_', 'getCSCOutliers'), - ('storeRPCOutliersOnTrack', 'RPC_outlier_', 'getRPCOutliers'), - ('storeTGCOutliersOnTrack', 'TGC_outlier_', 'getTGCOutliers'), - - ('storeBLayerHolesOnTrack', 'BLayer_hole_', 'getBLayerHoles'), - ('storePixelHolesOnTrack', 'Pixel_hole_', 'getPixelHoles'), - ('storeSCTHolesOnTrack', 'SCT_hole_', 'getSCTHoles'), - ('storeTRTHolesOnTrack', 'TRT_hole_', 'getTRTHoles'), - ('storeMDTHolesOnTrack', 'MDT_hole_', 'getMDTHoles'), - ('storeCSCHolesOnTrack', 'CSC_hole_', 'getCSCHoles'), - ('storeRPCHolesOnTrack', 'RPC_hole_', 'getRPCHoles'), - ('storeTGCHolesOnTrack', 'TGC_hole_', 'getTGCHoles'), - ] - - for flag, pref, opt in tsos_table: - TrackStateOnSurfaceAssociation (object, - typ.HitAssociationTool, - pref, _prefix + pref, - flagTestLOD(flag, flags), - fillPullsName = 'storePullsAndResiduals' if flag.find('Holes')<0 else 'False', - **{opt : True}) - - - # Vertex association - VertexAssoc = IndexAssociation ( - object, - typ.VertexAssociationTool, vertexTarget, - prefix = vertexPrefix, - VxSGKey = vertexSGKey, - level = flagTestLOD('storeVertexAssociation', flags)) - - # Truth matching - if rec.doTruth(): - # Simple truth matching - - # Allow associating to either GenParticles or TruthParticles. - def _levelAssocToGP (reqlev, args, hookargs): - if reqlev < 1: return False - if hookargs.get ('TruthParticleTarget'): return False - if hookargs.get ('GenParticleTarget'): - args['Target'] = hookargs.get ('GenParticleTarget') - return True - def _levelAssocToTP (reqlev, args, hookargs): - if reqlev < 1: return False - tpt = hookargs.get ('TruthParticleTarget') - if not tpt: return False - args['Target'] = tpt - return True - - TruthAssoc = SimpleAssociation\ - (object, - typ.TruthAssociationTool, - prefix = truthPrefix, - SGKey = SGKeyForTruth, - MapKey = truthMapKey, - level = flagTestLOD('doTruth and storeHitTruthMatching', flags)) - TruthAssoc.defineBlock (_levelAssocToGP, - 'TruthAssocIndex', - D3PDMakerCoreComps.IndexFillerTool, - Target = truthTarget) - - - # Detailed truth matching - DetailedTruthAssoc = IndexMultiAssociation ( - object, - typ.DetailedTruthAssociationTool, truthTarget, - prefix = detailedTruthPrefix, - level = flagTestLOD('doTruth and storeDetailedTruth and reqlev>=1', flags), - SGKey = SGKeyForDetailedTruth, - MapKey = detailedTruthMapKey) - - return object - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TrackParticleD3PDObjects.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TrackParticleD3PDObjects.py deleted file mode 100644 index 4d25aa34312bcdbeaa20b2ab96e71ebf71710735..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TrackParticleD3PDObjects.py +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -from InDetD3PDMaker.TrackD3PDObject import TrackD3PDObject -import TrackD3PDMaker -import InDetD3PDMaker - -class TrackParticleType: - typeName = 'Rec::TrackParticleContainer' - PerigeeAssociationTool = TrackD3PDMaker.TrackParticlePerigeeAtOOAssociationTool - PerigeeAtPVAssociationTool = TrackD3PDMaker.TrackParticlePerigeeAtPVAssociationTool - PerigeeAtBSAssociationTool = TrackD3PDMaker.TrackParticlePerigeeAtBSAssociationTool - FitQualityAssociationTool = InDetD3PDMaker.TrackParticleFitQualityAssociationTool - TrackSummaryAssociationTool = InDetD3PDMaker.TrackParticleTrackSummaryAssociationTool - TrackInfoAssociationTool = TrackD3PDMaker.TrackParticleInfoAssociationTool - HitAssociationTool = InDetD3PDMaker.TrackParticleTSOAssociationTool - VertexAssociationTool = TrackD3PDMaker.TrackParticleVertexAssociationTool - TruthAssociationTool = InDetD3PDMaker.TrackParticleTruthAssociationTool - DetailedTruthAssociationTool = InDetD3PDMaker.TrackParticleDetailedTruthAssociationTool - - -TrackParticleD3PDObject = TrackD3PDObject(_label='trk', - _prefix='trk_', - _sgkey=D3PDMakerFlags.TrackSGKey(), - _object_name='TrackParticleD3PDObject', - typ=TrackParticleType, - vertexTarget='vx', - vertexPrefix='vx_', - vertexSGKey='VxPrimaryCandidate', - truthTarget='mc', - truthPrefix='mc_', - detailedTruthPrefix='detailed_mc_', - truthMapKey='TrackParticleTruthCollection', - SGKeyForTruth=D3PDMakerFlags.TrackSGKey(), - detailedTruthMapKey='DetailedTrackTruth', - SGKeyForDetailedTruth='Tracks', - flags=TrackD3PDFlags) - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TrackStateOnSurfaceAssociation.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TrackStateOnSurfaceAssociation.py deleted file mode 100644 index b02b97d5825410f23c51f6c87d4a180a43cee7e9..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TrackStateOnSurfaceAssociation.py +++ /dev/null @@ -1,114 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -import TrackD3PDMaker -import InDetD3PDMaker -from TrackD3PDMaker.TrackD3PDMakerFlags import TrackD3PDFlags -import D3PDMakerCoreComps -from D3PDMakerCoreComps.flagTestLOD import deferFlag -from D3PDMakerCoreComps.SimpleAssociation import SimpleAssociation -from D3PDMakerCoreComps.ContainedVectorMultiAssociation import ContainedVectorMultiAssociation - -def _get_res(): - from AthenaCommon.AppMgr import ToolSvc - if hasattr(ToolSvc, 'TrackD3PDResidualPullCalculator'): - return ToolSvc.TrackD3PDResidualPullCalculator - - from TrkResidualPullCalculator.TrkResidualPullCalculatorConf import Trk__ResidualPullCalculator - print 'xxx', Trk__ResidualPullCalculator - res = Trk__ResidualPullCalculator( name = "TrackD3PDResidualPullCalculator") - ToolSvc += res - return res - - -def TrackStateOnSurfaceAssociation (parent, associator, _prefix = '', - _blocknameprefix = '', _level = 0, - getBLayerMeasurements = False, - getPixelMeasurements = False, - getSCTMeasurements = False, - getTRTMeasurements = False, - getMDTMeasurements = False, - getCSCMeasurements = False, - getRPCMeasurements = False, - getTGCMeasurements = False, - getBLayerOutliers = False, - getPixelOutliers = False, - getSCTOutliers = False, - getTRTOutliers = False, - getMDTOutliers = False, - getCSCOutliers = False, - getRPCOutliers = False, - getTGCOutliers = False, - getBLayerHoles = False, - getPixelHoles = False, - getSCTHoles = False, - getTRTHoles = False, - getMDTHoles = False, - getCSCHoles = False, - getRPCHoles = False, - getTGCHoles = False, - fillPullsName = 'False', - flags = TrackD3PDFlags): - - assoc = ContainedVectorMultiAssociation\ - (parent, associator, - prefix = _prefix, level = _level, - blockname = _blocknameprefix+'HitsOnTrackAssoc', - GetBLayerMeasurements = getBLayerMeasurements, - GetPixelMeasurements = getPixelMeasurements, - GetSCTMeasurements = getSCTMeasurements, - GetTRTMeasurements = getTRTMeasurements, - GetMDTMeasurements = getMDTMeasurements, - GetCSCMeasurements = getCSCMeasurements, - GetRPCMeasurements = getRPCMeasurements, - GetTGCMeasurements = getTGCMeasurements, - GetBLayerOutliers = getBLayerOutliers, - GetPixelOutliers = getPixelOutliers, - GetSCTOutliers = getSCTOutliers, - GetTRTOutliers = getTRTOutliers, - GetMDTOutliers = getMDTOutliers, - GetCSCOutliers = getCSCOutliers, - GetRPCOutliers = getRPCOutliers, - GetTGCOutliers = getTGCOutliers, - GetBLayerHoles = getBLayerHoles, - GetPixelHoles = getPixelHoles, - GetSCTHoles = getSCTHoles, - GetTRTHoles = getTRTHoles, - GetMDTHoles = getMDTHoles, - GetCSCHoles = getCSCHoles, - GetRPCHoles = getRPCHoles, - GetTGCHoles = getTGCHoles) - - - assoc.defineBlock(0, _blocknameprefix+'HitsOnTrack', - InDetD3PDMaker.TrackStateOnSurfaceFillerTool, - FillPixelHits = getPixelMeasurements or getPixelOutliers or getBLayerMeasurements or getBLayerOutliers, - FillSCTHits = getSCTMeasurements or getSCTOutliers, - FillTRTHits = getTRTMeasurements or getTRTOutliers, - FillMDTHits = getMDTMeasurements or getMDTOutliers, - FillCSCHits = getCSCMeasurements or getCSCOutliers, - FillRPCHits = getRPCMeasurements or getRPCOutliers, - FillTGCHits = getTGCMeasurements or getTGCOutliers, - FillPixelHoles = getPixelHoles or getBLayerHoles, - FillSCTHoles = getSCTHoles, - FillTRTHoles = getTRTHoles, - FillMDTHoles = getMDTHoles, - FillCSCHoles = getCSCHoles, - FillRPCHoles = getRPCHoles, - FillTGCHoles = getTGCHoles, - FillPulls = deferFlag (fillPullsName, flags), - ResidualPullCalculator = deferFlag ('_get_res() if %s else None'% - fillPullsName, - flags, - {'_get_res':_get_res})) - - ## TODO - add Muon holes - if not(getPixelHoles or getBLayerHoles or getSCTHoles or getTRTHoles): - fqassoc = SimpleAssociation\ - (assoc, - InDetD3PDMaker.TSOFitQualityAssociationTool, - prefix = '', level = 0, blockname = _blocknameprefix+'HitsOnTrack_FitQualityAssoc') - - fqassoc.defineBlock(0, _blocknameprefix+'HitsOnTrack_FitQuality', - InDetD3PDMaker.TrackFitQualityFillerTool) - - return assoc diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TrkTrackD3PDObjects.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TrkTrackD3PDObjects.py deleted file mode 100644 index 96a9e68b656f33cdab6a5f014746e911faab17ed..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TrkTrackD3PDObjects.py +++ /dev/null @@ -1,100 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -from InDetD3PDMaker.TrackD3PDObject import TrackD3PDObject -import InDetD3PDMaker - - -class TrackCollectionType: - typeName = 'TrackCollection' - PerigeeAssociationTool = InDetD3PDMaker.TrkTrackPerigeeAssociationTool - PerigeeAtPVAssociationTool = InDetD3PDMaker.TrkTrackPerigeeAtPVAssociationTool - PerigeeAtBSAssociationTool = InDetD3PDMaker.TrkTrackPerigeeAtBSAssociationTool - FitQualityAssociationTool = InDetD3PDMaker.TrkTrackFitQualityAssociationTool - TrackSummaryAssociationTool = InDetD3PDMaker.TrkTrackTrackSummaryAssociationTool - TrackInfoAssociationTool = InDetD3PDMaker.TrkTrackInfoAssociationTool - HitAssociationTool = InDetD3PDMaker.TrkTrackTSOAssociationTool - VertexAssociationTool = InDetD3PDMaker.TrkTrackVertexAssociationTool - TruthAssociationTool = InDetD3PDMaker.TrkTrackTruthAssociationTool - DetailedTruthAssociationTool = InDetD3PDMaker.TrkTrackDetailedTruthAssociationTool - - -TrkTrackD3PDObject = TrackD3PDObject(_label='trkTrack', - _prefix='trkTrack_', - _sgkey='Tracks', - _object_name='TrkTrackD3PDObject', - typ=TrackCollectionType, - vertexTarget='vx', - vertexPrefix='vx_', - vertexSGKey='VxPrimaryCandidate', - truthTarget='mc', - truthPrefix='mc_', - detailedTruthPrefix='detailed_mc_', - truthMapKey='TrackTruthCollection', - SGKeyForTruth='Tracks', - detailedTruthMapKey='DetailedTrackTruth', - SGKeyForDetailedTruth='Tracks') - -PixelTrackD3PDObject = TrackD3PDObject(_label='trkPix', - _prefix='trkPix_', - _sgkey='ResolvedPixelTracks', - _object_name='PixelTrackD3PDObject', - typ=TrackCollectionType, - vertexTarget='vx', - vertexPrefix='vx_', - vertexSGKey='VxPrimaryCandidate', - truthTarget='mc', - truthPrefix='mc_', - detailedTruthPrefix='detailed_mc_', - truthMapKey='ResolvedPixelTracksTruthCollection', - SGKeyForTruth='ResolvedPixelTracks', - detailedTruthMapKey='ResolvedPixelTracksDetailedTruth', - SGKeyForDetailedTruth='ResolvedPixelTracks') - -SCTTrackD3PDObject = TrackD3PDObject(_label='trkSCT', - _prefix='trkSCT_', - _sgkey='ResolvedSCTTracks', - _object_name='SCTTrackD3PDObject', - typ=TrackCollectionType, - vertexTarget='vx', - vertexPrefix='vx_', - vertexSGKey='VxPrimaryCandidate', - truthTarget='mc', - truthPrefix='mc_', - detailedTruthPrefix='detailed_mc_', - truthMapKey='ResolvedSCTTracksTruthCollection', - SGKeyForTruth='ResolvedSCTTracks', - detailedTruthMapKey='ResolvedSCTTracksDetailedTruth', - SGKeyForDetailedTruth='ResolvedSCTTracks') - -TRTTrackD3PDObject = TrackD3PDObject(_label='trkTRT', - _prefix='trkTRT_', - _sgkey='StandaloneTRTTracks', - _object_name='TRTTrackD3PDObject', - typ=TrackCollectionType, - vertexTarget='vx', - vertexPrefix='vx_', - vertexSGKey='VxPrimaryCandidate', - truthTarget='mc', - truthPrefix='mc_', - detailedTruthPrefix='detailed_mc_', - truthMapKey='StandaloneTRTTracks', - SGKeyForTruth='StandaloneTRTTracks', - detailedTruthMapKey='StandaloneTRTTracksDetailedTruth', - SGKeyForDetailedTruth='StandaloneTRTTracks') - -ResolvedTracksD3PDObject = TrackD3PDObject(_label='trkResolvedTrack', - _prefix='trkResolvedTrack_', - _sgkey='ResolvedTracks', - _object_name='ResolvedTracksD3PDObject', - typ=TrackCollectionType, - vertexTarget='vx', - vertexPrefix='vx_', - vertexSGKey='VxPrimaryCandidate', - truthTarget='mc', - truthPrefix='mc_', - detailedTruthPrefix='detailed_mc_', - truthMapKey='ResolvedTracksTruthCollection', - SGKeyForTruth='ResolvedTracks', - detailedTruthMapKey='ResolvedTracksDetailedTruth', - SGKeyForDetailedTruth='ResolvedTracks') - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TruthTrackD3PDObject.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TruthTrackD3PDObject.py deleted file mode 100644 index 41716508b42e7a68ec02cebaf945877b5ec1395b..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TruthTrackD3PDObject.py +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - - -import D3PDMakerCoreComps -import EventCommonD3PDMaker -from D3PDMakerCoreComps.D3PDObject import D3PDObject -from InDetD3PDMaker import TruthTrackFillerTool -from TruthD3PDMaker import GenParticlePerigeeFillerTool -from TruthD3PDMaker import GenParticleFillerTool -from InDetRecExample.InDetKeys import InDetKeys - -## Track Particles Truth -def makeTruthTrackD3PDObject (name, prefix, object_name, getter = None, - sgkey = "TruthEvent,GEN_AOD", - typename = 'McEventCollection', - label = 'mc'): - if not getter: - from InDetD3PDMaker import TruthTrackGetterTool - getter = TruthTrackGetterTool (name + '_Getter', - SGKey = sgkey, - TypeName = typename, - Label = label, - KeepOnlyPrimaryParticles = False, - KeepOnlyChargedParticles = False, - KeepV0 = True, - TrueTrackPtCut = 0, - TrueTrackEtaCut = 99999., - MaxRAll = 2000000, - MaxZAll = 2000000, - MaxRPrimary = 25, - MaxZPrimary = 200) - - from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags - return D3PDMakerCoreComps.VectorFillerTool (name, Prefix = prefix, - Getter = getter, - ObjectName = object_name, - SaveMetadata = \ - D3PDMakerFlags.SaveObjectMetadata()) - -## Track Truth -TruthTrackD3PDObject = D3PDObject (makeTruthTrackD3PDObject, 'mc_', 'TruthTrackD3PDObject') - -TruthTrackD3PDObject.defineBlock (0, 'TruthTrackGenParticleInfo', GenParticleFillerTool, prefix='gen_', WriteE = True, WriteM = False) -TruthTrackD3PDObject.defineBlock (0, 'TruthTrackPerigee', GenParticlePerigeeFillerTool, prefix='perigee_') -TruthTrackD3PDObject.defineBlock (0, 'TruthTrackParameters', TruthTrackFillerTool) diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TruthVertexD3PDObject.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TruthVertexD3PDObject.py deleted file mode 100644 index c2ed731b45492054c132454ab635f658e1549352..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/TruthVertexD3PDObject.py +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -## Truth Vertices - -import D3PDMakerCoreComps -from D3PDMakerCoreComps.D3PDObject import D3PDObject -from InDetD3PDMaker import TruthVertexFillerTool -from InDetRecExample.InDetKeys import InDetKeys - -def makeTruthVertexD3PDObject (name, prefix, object_name, getter = None, - sgkey = "TruthEvent,GEN_AOD", - label = 'mcVx'): - - if not getter: - from InDetD3PDMaker import TruthVertexGetterTool - getter = TruthVertexGetterTool (name + '_Getter', - SGKey = sgkey, - TypeName = 'McEventCollection', - Label = label) - - from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags - return D3PDMakerCoreComps.VectorFillerTool (name, Prefix = prefix, - Getter = getter, - ObjectName = object_name, - SaveMetadata = \ - D3PDMakerFlags.SaveObjectMetadata()) - -TruthVertexD3PDObject = D3PDObject (makeTruthVertexD3PDObject, 'mcVx_', - 'TruthVertexD3PDObject') -TruthVertexD3PDObject.defineBlock (0, 'TruthVxPosition', TruthVertexFillerTool) diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/V0D3PDObject.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/V0D3PDObject.py deleted file mode 100644 index fb7056f819cf7953c165f13e03b80722b2324868..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/V0D3PDObject.py +++ /dev/null @@ -1,67 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -import InDetD3PDMaker -import D3PDMakerCoreComps -import EventCommonD3PDMaker -from D3PDMakerCoreComps.D3PDObject import D3PDObject -from D3PDMakerCoreComps.D3PDObject import make_SGDataVector_D3PDObject -from D3PDMakerCoreComps.SimpleAssociation import SimpleAssociation -from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags -from InDetD3PDMaker.VertexD3PDObject import DefineVertexD3PDObject - -def BuildV0D3PDObject(_prefix='v0_', - _label='v0', - _sgkey='SimpleV0Candidates', - _object_name='V0D3PDObject'): - - - def makeV0D3PDObject (name, prefix, object_name, - getter = None, - sgkey = _sgkey, - label = _label): - - if sgkey == None: - sgkey = 'SimpleV0Candidates' - - if label == None: - label = prefix - - if not getter: - from InDetD3PDMaker import V0ContainerGetterTool - getter = V0ContainerGetterTool\ - (name + '_Getter', - TypeName = 'V0Container', - SGKey = sgkey, - Label = label) - - from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags - return D3PDMakerCoreComps.VectorFillerTool (name, - Prefix = prefix, - Getter = getter, - ObjectName = object_name, - AllowMissing = True, - SaveMetadata = \ - D3PDMakerFlags.SaveObjectMetadata()) - - object = D3PDObject(makeV0D3PDObject, _prefix, _object_name) - - object.defineBlock (0, 'V0Attributes', - InDetD3PDMaker.V0CandidateFillerTool) - - VxCandidateAssoc = SimpleAssociation\ - (object, - InDetD3PDMaker.V0CandidateVxCandidateAssociationTool) - - DefineVertexD3PDObject(VxCandidateAssoc, - trackTarget='trk', - trackPrefix='trk_', - trackType='Rec::TrackParticleContainer') - return object - -V0D3PDObject = BuildV0D3PDObject ('v0_', 'v0', - 'SimpleV0Candidates', - 'V0D3PDObject') - -DefaultV0D3PDObject = BuildV0D3PDObject ('v0_', 'v0', - 'V0Candidates', - 'DefaultV0D3PDObject') diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/VertexD3PDAnalysisFlags.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/VertexD3PDAnalysisFlags.py deleted file mode 100644 index 674256696271729eb2c09fb9eba60e7ddd8eb247..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/VertexD3PDAnalysisFlags.py +++ /dev/null @@ -1,181 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -# -## @file InDetD3PDMaker/python/VertexD3PDAnalysisFlags.py -## @brief Python module to hold VertexD3PDAnalysis common flags -## @author Simone Pagan Griso -## @date Mar, 2012 -## - - - -""" -This file is used to configure the VertexD3PDAnalysis objects: -enabling specific branch writing, ... -""" - -from AthenaCommon.JobProperties import JobProperty, JobPropertyContainer -from AthenaCommon.JobProperties import jobproperties -from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags - -## Example flags -#class doExampleFlag(JobProperty): -# """ Comment -# """ -# statusOn=True -# allowedType=['bool'] #['int','float',...] -# StoredValue=False -# - -## General flags - -class D3PDMakerExtraDict(JobProperty): - """ Extra options for D3PD making - """ - statusOn=True - allowedType=['dict'] - StoredValue={} - -class useEventInfo(JobProperty): - """ Store/use track information - """ - statusOn=True - allowedType=['bool'] - StoredValue=True - -class useTracks(JobProperty): - """ Store/use track information - """ - statusOn=True - allowedType=['bool'] - StoredValue=True - -class useBeamspot(JobProperty): - """ Store/use beamspot information - """ - statusOn=True - allowedType=['bool'] - StoredValue=True - -class useTrigger(JobProperty): - """ Store/use trigger information - """ - statusOn=True - allowedType=['bool'] - StoredValue=True - -class useTriggerRaw(JobProperty): - """ Store/use trigger RAW information - """ - statusOn=True - allowedType=['bool'] - StoredValue=False - -class useBackgroundWord(JobProperty): - """ Store/use beam background word information - """ - statusOn=True - allowedType=['bool'] - StoredValue=True - -class useSecondaryVertex(JobProperty): - """ Store/use V0 information - """ - statusOn=True - allowedType=['bool'] - StoredValue=False - -class useAllVertexCollections(JobProperty): - """ Store/use split and non BC vertices - """ - statusOn=True - allowedType=['bool'] - StoredValue=True - -class useTruth(JobProperty): - """ Store/use truth information - """ - statusOn=True - allowedType=['bool'] - StoredValue=True - -class filterTightTruth(JobProperty): - """ Only keep charged stable particles from in-time pile-up - """ - statusOn=True - allowedType=['bool'] - StoredValue=False - -class useMET(JobProperty): - """ Store/use Missing Energy information - """ - statusOn=True - allowedType=['bool'] - StoredValue=True - -class useMuons(JobProperty): - """ Store/use Muons information - """ - statusOn=True - allowedType=['bool'] - StoredValue=True - -class useElectrons(JobProperty): - """ Store/use Electrons information - """ - statusOn=True - allowedType=['bool'] - StoredValue=True - -class usePhotons(JobProperty): - """ Store/use Photons information - """ - statusOn=True - allowedType=['bool'] - StoredValue=False - -class useJets(JobProperty): - """ Store/use Jets information - """ - statusOn=True - allowedType=['bool'] - StoredValue=True - -class useTaus(JobProperty): - """ Store/use Jets information - """ - statusOn=True - allowedType=['bool'] - StoredValue=False - - - -## Add properties -class VertexD3PDAnalysisFlags(JobPropertyContainer): - """ VertexD3PDAnalysis D3PD Flags container - """ - -jobproperties.add_Container(VertexD3PDAnalysisFlags) - -#jobproperties.VertexD3PDAnalysisFlags.add_JobProperty(doExampleFlag) -jobproperties.VertexD3PDAnalysisFlags.add_JobProperty(D3PDMakerExtraDict) -jobproperties.VertexD3PDAnalysisFlags.add_JobProperty(useEventInfo) -jobproperties.VertexD3PDAnalysisFlags.add_JobProperty(useTracks) -jobproperties.VertexD3PDAnalysisFlags.add_JobProperty(useBeamspot) -jobproperties.VertexD3PDAnalysisFlags.add_JobProperty(useTrigger) -jobproperties.VertexD3PDAnalysisFlags.add_JobProperty(useTriggerRaw) -jobproperties.VertexD3PDAnalysisFlags.add_JobProperty(useBackgroundWord) -jobproperties.VertexD3PDAnalysisFlags.add_JobProperty(useSecondaryVertex) -jobproperties.VertexD3PDAnalysisFlags.add_JobProperty(useAllVertexCollections) -jobproperties.VertexD3PDAnalysisFlags.add_JobProperty(useTruth) -jobproperties.VertexD3PDAnalysisFlags.add_JobProperty(filterTightTruth) -jobproperties.VertexD3PDAnalysisFlags.add_JobProperty(useMET) -jobproperties.VertexD3PDAnalysisFlags.add_JobProperty(useElectrons) -jobproperties.VertexD3PDAnalysisFlags.add_JobProperty(useMuons) -jobproperties.VertexD3PDAnalysisFlags.add_JobProperty(usePhotons) -jobproperties.VertexD3PDAnalysisFlags.add_JobProperty(useJets) -jobproperties.VertexD3PDAnalysisFlags.add_JobProperty(useTaus) - - -## Create shortcut -VertexD3PDAnalysisFlags=jobproperties.VertexD3PDAnalysisFlags diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/VertexD3PDAnalysisKeys.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/VertexD3PDAnalysisKeys.py deleted file mode 100644 index ea1999e06af3c90a85c15eefc597020e108e1746..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/VertexD3PDAnalysisKeys.py +++ /dev/null @@ -1,118 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -# -## @file InDetD3PDMaker/python/VertexD3PDAnalysisKeys.py -## @brief Python module to hold VertexD3PDAnalysis common Keys -## @author Simone Pagan Griso -## @date Mar, 2012 -## - - - -""" -This file is used to set different conventions for the VertexD3PDAnalysis objects: -block names and common labels -""" - -from AthenaCommon.JobProperties import JobProperty, JobPropertyContainer -from AthenaCommon.JobProperties import jobproperties - -## Define keys - -## Example key -#class ExampleKey(JobProperty): -# """ Comment -# """ -# statusOn=True -# allowedType=['str'] #['int','float',...] -# StoredValue='ExampleValue' -# - -## General keys for Vertex Group D3PD production - -class D3PDFileName(JobProperty): - """ Output D3PD file name - """ - statusOn=True - allowedType=['str'] - StoredValue='VertexGroupD3PD.root' - -class D3PDTreeName(JobProperty): - """ Name of D3PD maker algorithm - """ - statusOn=True - allowedType=['str'] - StoredValue='VtxTree' - -class LabelDefaultVtx(JobProperty): - """ Label/Prefix for dumping default collection on AOD/ESD - Prefix is obtained as StoredValue+'_' - """ - statusOn=True - allowedType=['str'] - StoredValue='vxbc' - -class TruthTrackCutPtMin(JobProperty): - """ Cut of storing truth information on tracks (pT minimum) - """ - statusOn=True - allowedType=['float'] - StoredValue=350. - -class TruthTrackCutEtaMax(JobProperty): - """ Cut of storing truth information on tracks (|eta| maximum) - """ - statusOn=True - allowedType=['float'] - StoredValue=2.6 - -class TruthAddOnlyFirstVertex(JobProperty): - """ Store only information of first vertex per event - """ - statusOn=True - allowedType=['bool'] - StoredValue=True - -class MetCollections(JobProperty): - """ Container name of Met info to use - """ - statusOn=True - allowedType=['list'] - StoredValue=['MET_RefFinal'] - -class MuonCollections(JobProperty): - """ Container name of Muon info to use - """ - statusOn=True - allowedType=['list'] - StoredValue=['MuidMuonCollection'] - -class JetCollections(JobProperty): - """ Container name of Jet collections to use - """ - statusOn=True - allowedType=['list'] - StoredValue=['AntiKt4TopoEMJets'] - - - -## Add properties -class VertexD3PDAnalysisKeys(JobPropertyContainer): - """ VertexD3PDAnalysis D3PD Keys container - """ - -jobproperties.add_Container(VertexD3PDAnalysisKeys) - -#jobproperties.VertexD3PDAnalysisKeys.add_JobPorioerty(ExampleKey) -jobproperties.VertexD3PDAnalysisKeys.add_JobProperty(D3PDFileName) -jobproperties.VertexD3PDAnalysisKeys.add_JobProperty(D3PDTreeName) -jobproperties.VertexD3PDAnalysisKeys.add_JobProperty(LabelDefaultVtx) -jobproperties.VertexD3PDAnalysisKeys.add_JobProperty(TruthTrackCutPtMin) -jobproperties.VertexD3PDAnalysisKeys.add_JobProperty(TruthTrackCutEtaMax) -jobproperties.VertexD3PDAnalysisKeys.add_JobProperty(TruthAddOnlyFirstVertex) -jobproperties.VertexD3PDAnalysisKeys.add_JobProperty(MetCollections) -jobproperties.VertexD3PDAnalysisKeys.add_JobProperty(MuonCollections) -jobproperties.VertexD3PDAnalysisKeys.add_JobProperty(JetCollections) - -## Shortcut -VertexD3PDAnalysisKeys=jobproperties.VertexD3PDAnalysisKeys diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/VertexD3PDAnalysisProdFlags.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/VertexD3PDAnalysisProdFlags.py deleted file mode 100644 index b51f1ee482ecf06eff0b382b05417f8fe5c6ea1b..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/VertexD3PDAnalysisProdFlags.py +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -# -## @file InDetD3PDMaker/python/VertexGroupD3PDProdFlags.py -## @brief Setup Vertex Group D3PD (VTXD3PD) in D3PDMakerConfig/D3PDProdFlags.py -## @author Simone Pagan Griso -## @date Mar, 2012 -## -## Any objects here with a name of the form Write*D3PD that derive -## from JobProperty are added to D3PDProdFlags. -## - -from AthenaCommon.JobProperties import JobProperty -from InDetD3PDMaker.VertexD3PDAnalysisKeys import VertexD3PDAnalysisKeys - -class WriteIDVTXD3PD (JobProperty): - """Produce the Vertex Group (IDVTX) D3PD.""" - statusOn = True - allowedTypes = ['bool'] - StoredValue = False - StreamName = 'StreamNTUP_IDVTX' - FileName = '' - isVirtual = False - DPDMakerScript = "InDetD3PDMaker/VertexGroupD3PD_prodJobOFragment.py" - TreeNames = [VertexD3PDAnalysisKeys.D3PDTreeName()] - SubSteps = ['a2d', 'e2d'] - -class WriteIDVTXLUMID3PD (JobProperty): - """Produce the Vertex Luminosiry (IDVTXLUMI) D3PD.""" - statusOn = True - allowedTypes = ['bool'] - StoredValue = False - StreamName = 'StreamNTUP_IDVTXLUMI' - FileName = '' - isVirtual = False - DPDMakerScript = "InDetD3PDMaker/VertexLumiD3PD_prodJobOFragment.py" - TreeNames = [VertexD3PDAnalysisKeys.D3PDTreeName()] - SubSteps = ['a2d', 'e2d'] diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/VertexD3PDObject.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/VertexD3PDObject.py deleted file mode 100644 index ebc7f8642cdf94d3c8738f8474d1f935ffe934f1..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/VertexD3PDObject.py +++ /dev/null @@ -1,164 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -import TrackD3PDMaker -import InDetD3PDMaker -import D3PDMakerCoreComps -import EventCommonD3PDMaker -from D3PDMakerCoreComps.D3PDObject import D3PDObject -from D3PDMakerCoreComps.flagTestLOD import flagTestLOD, deferFlag -from D3PDMakerCoreComps.D3PDObject import make_SGDataVector_D3PDObject -from D3PDMakerCoreComps.SimpleAssociation import SimpleAssociation -from D3PDMakerCoreComps.IndexAssociation import IndexAssociation -from D3PDMakerCoreComps.IndexMultiAssociation import IndexMultiAssociation -from D3PDMakerCoreComps.ContainedVectorMultiAssociation import ContainedVectorMultiAssociation -from D3PDMakerCoreComps.resolveSGKey import resolveSGKey -from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags -from TrackD3PDMaker.TrackD3PDMakerFlags import * -from RecExConfig.RecFlags import rec - - -def _get_purity (args, hookargs): - from AthenaCommon.AppMgr import ToolSvc - from InDetRecExample.InDetKeys import InDetKeys - from InDetRecExample.InDetJobProperties import InDetFlags - # this tool is only needed for D3PD writing and hence it is configured here - from TrkVertexFitterValidationUtils.TrkVertexFitterValidationUtilsConf import Trk__TrkPriVxPurityTool - mckey = resolveSGKey ('McEventCollection', D3PDMakerFlags.TruthSGKey()) - TrkPriVxPurityTool = Trk__TrkPriVxPurityTool(MonteCarloCollection = mckey) - ToolSvc += TrkPriVxPurityTool - if InDetFlags.doPrintConfigurables(): - print TrkPriVxPurityTool - return - - -def DefineVertexD3PDObject(object, - trackTarget='trk', - trackPrefix='trk_', - trackType='Rec::TrackParticleContainer', - flags=TrackD3PDFlags): - - if trackType=='Rec::TrackParticleContainer': - vxTrackAtVertexTrackAssociationTool = InDetD3PDMaker.VxTrackAtVertexTrackParticleAssociationTool - if trackType=='TrackCollection': - vxTrackAtVertexTrackAssociationTool = InDetD3PDMaker.VxTrackAtVertexTrkTrackAssociationTool - - # Position - object.defineBlock (flagTestLOD('vertexPositionLevelOfDetails>=1', flags), - 'Position', - InDetD3PDMaker.VertexPositionFillerTool) - - # Covariance Matrix - CovarianceAssoc = SimpleAssociation \ - (object, - TrackD3PDMaker.VertexCovarianceAssociationTool, - level = flagTestLOD('vertexPositionLevelOfDetails>=2', flags)) - - - CovarianceAssoc.defineBlock ( - flagTestLOD('vertexPositionLevelOfDetails>=2', flags), - 'Error', - TrackD3PDMaker.CovarianceFillerTool, - Error = deferFlag ('storeDiagonalCovarianceAsErrors', flags), - DiagCovariance = deferFlag('not storeDiagonalCovarianceAsErrors',flags), - OffDiagCovariance = False, - IsPosition = True) - - CovarianceAssoc.defineBlock (flagTestLOD('vertexPositionLevelOfDetails>=3', flags), - 'Covariance', - TrackD3PDMaker.CovarianceFillerTool, - Error = False, - DiagCovariance = False, - OffDiagCovariance = True, - IsPosition = True) - - # Type - object.defineBlock (flagTestLOD('storeVertexType', flags), - 'Type', - InDetD3PDMaker.VertexTypeFillerTool) - - # Fit Quality - FitQualityAssoc = SimpleAssociation \ - (object, - InDetD3PDMaker.VertexFitQualityAssociationTool, - level = flagTestLOD('storeVertexFitQuality', flags)) - - FitQualityAssoc.defineBlock (flagTestLOD('storeVertexFitQuality', flags), - 'FitQuality', - InDetD3PDMaker.TrackFitQualityFillerTool) - - # Kine - object.defineBlock (flagTestLOD('storeVertexKinematics', flags), - 'Kine', - TrackD3PDMaker.VertexKineFillerTool) - - # Purity - if rec.doTruth(): - object.defineBlock(flagTestLOD('doTruth and storeVertexPurity', flags, _get_purity), - 'Purity', - InDetD3PDMaker.VertexPurityFillerTool) - - # Track association - TrackAssoc = ContainedVectorMultiAssociation\ - (object, - TrackD3PDMaker.VertexTrackAssociationTool, - trackPrefix, - FillUnbiasedIP = deferFlag ('storeVertexTrackAssociation', - flags), - level = flagTestLOD ('storeVertexTrackAssociation or storeVertexTrackIndexAssociation', - flags)) - - TrackAssoc.defineBlock(flagTestLOD('storeVertexTrackAssociation', flags), - 'TrackAtVertex', - InDetD3PDMaker.VertexTrackAssociationFillerTool) - - TrackParticleAssoc = IndexAssociation ( - TrackAssoc, - vxTrackAtVertexTrackAssociationTool, - trackTarget, - level = flagTestLOD ('storeVertexTrackIndexAssociation', flags)) - - -def BuildVertexD3PDObject(_prefix='vx_', - _label='vx', - _sgkey=D3PDMakerFlags.VertexSGKey(), - _object_name='PrimaryVertexD3PDObject', - trackTarget='trk', - trackPrefix='trk_', - trackType='Rec::TrackParticleContainer'): - - object = make_SGDataVector_D3PDObject ( - 'VxContainer', - _sgkey, - _prefix, - _object_name, - default_allowMissing = True, - allow_args = ['storeVertexTrackAssociation', - 'storeVertexTrackIndexAssociation', - 'storeDiagonalCovarianceAsErrors', - 'storeVertexType', - 'storeVertexFitQuality', - 'storeVertexKinematics', - 'storeVertexPurity', - 'vertexPositionLevelOfDetails', - 'doTruth']) - - DefineVertexD3PDObject(object, - trackTarget, - trackPrefix, - trackType) - - return object - - -# -# Additional arguments that can be passed to this D3PDObject: -# storeVertexAssociation -# storeVertexTrackIndexAssociation -# -PrimaryVertexD3PDObject = BuildVertexD3PDObject(_prefix='vx_', - _label='vx', - _sgkey='VxPrimaryCandidate', - _object_name='PrimaryVertexD3PDObject', - trackTarget='trk', - trackPrefix='trk_', - trackType='Rec::TrackParticleContainer') diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/VertexGroupD3PD.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/VertexGroupD3PD.py deleted file mode 100644 index b1ccab6092366731ab55d1d871bb7b98b53186fc..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/VertexGroupD3PD.py +++ /dev/null @@ -1,296 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -# -## @file InDetD3PDMaker/python/VertexGroupD3PD.py -## @brief Setup D3PD objects for vertex group D3PD production -## @author Simone Pagan Griso -## @date Mar, 2012 -## - -""" -This file is used to add Vertex Group D3PD objects -to a D3PD Maker algorithm -""" - -from InDetD3PDMaker.VertexD3PDAnalysisFlags import VertexD3PDAnalysisFlags -from InDetD3PDMaker.VertexD3PDAnalysisKeys import VertexD3PDAnalysisKeys - -import D3PDMakerCoreComps -import EventCommonD3PDMaker -from D3PDMakerCoreComps.D3PDObject import D3PDObject -from RecExConfig.RecFlags import rec - - -### Parse arguments with 'name' prefix and strip prefix -# for specific options to target D3PD objects -# E.g. ei_level -> sets options 'level' of EventInfoD3PDObject -def _args (name, kwin, **kw): - kw = kw.copy() - for (k, v) in kwin.items(): - if k.startswith (name + '_'): - kw[k[len(name)+1:]] = v - return kw - -### Main routing to add objects to algorithm 'alg' -def VertexGroupD3PD(alg = None, - file=VertexD3PDAnalysisKeys.D3PDFileName(), - treeName = VertexD3PDAnalysisKeys.D3PDTreeName(), - **kw): - - print '[InDetD3PDMaker.VertexGroupD3PD] Vertex group D3PD settings:' - print 'VertexD3PDAnalysisFlags' - print VertexD3PDAnalysisFlags - print 'VertexD3PDAnalysisKeys' - print VertexD3PDAnalysisKeys - - if not alg: - ## Create a new algorithm - from OutputStreamAthenaPool.MultipleStreamManager import MSMgr - alg = MSMgr.NewRootStream(treeName, file) - - ## General event information (custom options prefix: 'ei_') - if VertexD3PDAnalysisFlags.useEventInfo(): - from EventCommonD3PDMaker.EventInfoD3PDObject import EventInfoD3PDObject - alg += EventInfoD3PDObject(**_args('ei_', kw, level=0, prefix='ei_')) - - ## Trigger information (custom options prefix: 'trig_') - if VertexD3PDAnalysisFlags.useTrigger(): - from TriggerJobOpts.TriggerConfigGetter import TriggerConfigGetter - cfg = TriggerConfigGetter("ReadPool") - from TriggerD3PDMaker.defineTriggerBits import defineTriggerBits - from TriggerD3PDMaker.TrigConfMetadata import addTrigConfMetadata - from TriggerD3PDMaker.TrigDecisionD3PDObject import TrigDecisionD3PDObject - alg += TrigDecisionD3PDObject(**_args('trig_', kw, level=2)) - addTrigConfMetadata(alg) - if VertexD3PDAnalysisFlags.useTriggerRaw(): - from TriggerJobOpts.TriggerConfigGetter import TriggerConfigGetter - cfg = TriggerConfigGetter("ReadPool") - from TriggerD3PDMaker.defineTriggerBits import defineTriggerBits - from TriggerD3PDMaker.TrigConfMetadata import addTrigConfMetadata - #Setup custom D3PD object with raw trigger info only (e.g. calibration_vdM streams) - from D3PDMakerCoreComps.D3PDObject import make_Void_D3PDObject - import TriggerD3PDMaker - TrigDecisionD3PDObjectRaw = make_Void_D3PDObject( "trigRaw_", "TrigDecisionD3PDObjectRaw",default_name = "TrigDecisionFillerRaw" ) - if not VertexD3PDAnalysisFlags.useTrigger(): - TrigDecisionD3PDObjectRaw.defineBlock( 0, "TriggerRawInfo", - TriggerD3PDMaker.TrigDecisionFillerTool, - SaveLVL1Raw = True, SaveHLTRaw=True, SaveBGCode = True) - else: - TrigDecisionD3PDObjectRaw.defineBlock( 0, "TriggerRawInfo", - TriggerD3PDMaker.TrigDecisionFillerTool, - SaveHLTRaw=True, SaveBGCode = True) - #Finally add object to algorithms - alg += TrigDecisionD3PDObjectRaw(**_args('trig_', kw, level=0)) - if not VertexD3PDAnalysisFlags.useTrigger(): - #unless we've already added it, add meta-data as well - addTrigConfMetadata(alg) - - ## Beam background information (custom options prefix: 'bkg_') - if VertexD3PDAnalysisFlags.useBackgroundWord(): - from BackgroundD3PDMaker.BackgroundWordD3PDObject import BackgroundWordD3PDObject - alg += BackgroundWordD3PDObject (**_args('bkg_', kw, level=0)) - - ## Tracks and V0 information (custom options prefix: 'trk_', and 'v0_') - if VertexD3PDAnalysisFlags.useTracks(): - labelDefaultVtx=VertexD3PDAnalysisKeys.LabelDefaultVtx() - prefixDefaultVtx=labelDefaultVtx+'_' #Add trailing '_' - - import TrackD3PDMaker - from TrackD3PDMaker.TrackD3PDMakerFlags import TrackD3PDFlags - from InDetD3PDMaker.TrackD3PDObject import TrackD3PDObject - from InDetD3PDMaker.TrackParticleD3PDObjects import TrackParticleType - from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags - from TruthD3PDMaker.TruthD3PDMakerFlags import TruthD3PDFlags - from TruthD3PDMaker.TruthD3PDMakerKeys import TruthD3PDKeys - VtxD3PD_Track_Exclude=['vx_weight'] - TrackD3PDMaker.PerigeeUnbiasedIPAtPVFillerTool.DoBiased = False #Switch off biased perigee - TrackParticleD3PDObjectForVertex = TrackD3PDObject(_label='trk', - _prefix='trk_', - _sgkey=D3PDMakerFlags.TrackSGKey(), - _object_name='TrackParticleD3PDObjectForVertex', - typ=TrackParticleType, - vertexTarget=labelDefaultVtx, - vertexPrefix=prefixDefaultVtx, - vertexSGKey='VxPrimaryCandidate', - truthTarget=TruthD3PDFlags.GenParticleAssocLabel(), - truthPrefix=TruthD3PDKeys.GenParticlePrefix(), - detailedTruthPrefix='', # 'mc_detailed_' - SGKeyForTruth=D3PDMakerFlags.TrackSGKey(), - truthMapKey='TrackParticleTruthCollection', - detailedTruthMapKey='', #'DetailedTrackTruth' - flags=TrackD3PDFlags) - alg += TrackParticleD3PDObjectForVertex(**_args('trk_', kw, level=8, exclude=VtxD3PD_Track_Exclude)) - - if VertexD3PDAnalysisFlags.useSecondaryVertex(): - from InDetD3PDMaker.V0D3PDObject import V0D3PDObject - alg += V0D3PDObject(**_args('v0_', kw, level=10)) - - ## Store beamspot information (custom option perfix: 'bs_') - if VertexD3PDAnalysisFlags.useBeamspot(): - from InDetD3PDMaker.BeamSpotD3PDObject import BeamSpotD3PDObject - alg += BeamSpotD3PDObject(**_args('bs_', kw, level=0)) - - ## Store vertex information (custom options prefix: 'vtx_' or 'vtx' for BuildVertexD3PDObject) - from InDetD3PDMaker.VertexD3PDObject import PrimaryVertexD3PDObject - from InDetD3PDMaker.VertexD3PDObject import BuildVertexD3PDObject - from InDetRecExample.InDetKeys import InDetKeys - from InDetRecExample.InDetJobProperties import InDetFlags - #First dump existing content - labelDefaultVtx=VertexD3PDAnalysisKeys.LabelDefaultVtx() - prefixDefaultVtx=labelDefaultVtx+'_' #Add trailing '_' - VtxDefaultD3PDObj = BuildVertexD3PDObject(**_args('vtx', kw, - _prefix=prefixDefaultVtx, - _label=labelDefaultVtx, - _sgkey=InDetKeys.PrimaryVertices(), - trackTarget='trk', - trackPrefix='trk_', - trackType='Rec::TrackParticleContainer')) - alg += VtxDefaultD3PDObj(**_args('vtx_', kw, level=10)) - #Then also dump the other vertex collections - if VertexD3PDAnalysisFlags.useAllVertexCollections: - #Use non BC and split collections (sorry, no customization of parameters here) - if not InDetFlags.doSplitVertexFindingForMonitoring(): - #raise NameError('Requesting split vertices but algorith has not run!') - #pass - print('[InDetD3PDMaker.VertexGroupD3PD] WARNING: Requested split vertices, but algorithm has not run! Skipped.') - else: - SplitPrimaryVertexD3PDObject = BuildVertexD3PDObject(_prefix='vxsplit_', - _label='vxsplit', - _sgkey=InDetKeys.PrimaryVerticesSplitStream(), - trackTarget='trk', - trackPrefix='trk_', - trackType='Rec::TrackParticleContainer') - alg += SplitPrimaryVertexD3PDObject(8) - - #Then store also non beamspot constrained ones - if not InDetFlags.doVertexFindingForMonitoring(): - #raise NameError('Requesting NBC vertices but algorith has not run!') - #pass - print('[InDetD3PDMaker.VertexGroupD3PD] WARNING: Requested non beamspot constrained vertices, but algorithm has not run! Skipped.') - else: - NoBeamConstraintPrimaryVertexD3PDObject = BuildVertexD3PDObject(_prefix='vxnbc_', - _label='vxnbc', - _sgkey=InDetKeys.PrimaryVerticesWithoutBeamConstraint(), - trackTarget='trk', - trackPrefix='trk_', - trackType='Rec::TrackParticleContainer') - alg += NoBeamConstraintPrimaryVertexD3PDObject(8) - - ## Store truth-level information (custom options prefix: 'tuthVtx_', 'truthEvt_', 'truthPart_') - if VertexD3PDAnalysisFlags.useTruth(): - from TruthD3PDAnalysis.TruthD3PDAnalysisConf import D3PD__GenObjectsFilterTool - trackGenObjectsFilterTool= D3PD__GenObjectsFilterTool( "trackGenObjectsFilterTool" ) - from AthenaCommon.AppMgr import ToolSvc - ToolSvc += trackGenObjectsFilterTool - - if (VertexD3PDAnalysisFlags.filterTightTruth()): - trackGenObjectsFilterTool.SelectTruthTracks=True - trackGenObjectsFilterTool.PtMin = VertexD3PDAnalysisKeys.TruthTrackCutPtMin() - trackGenObjectsFilterTool.EtaMax = VertexD3PDAnalysisKeys.TruthTrackCutEtaMax() - trackGenObjectsFilterTool.RemoveEmptyEvents = True - trackGenObjectsFilterTool.RemoveDummyEvents = True - trackGenObjectsFilterTool.RemoveInTimePileUp = False - trackGenObjectsFilterTool.Remove2BCPileUp = True - trackGenObjectsFilterTool.Remove800nsPileUp = True - trackGenObjectsFilterTool.RemoveCavernBkg = False - trackGenObjectsFilterTool.AddOnlyFirstVertex = VertexD3PDAnalysisKeys.TruthAddOnlyFirstVertex() - else: - #Use a more inclusive truth policy - trackGenObjectsFilterTool.SelectTruthTracks=False - trackGenObjectsFilterTool.PtMin = VertexD3PDAnalysisKeys.TruthTrackCutPtMin() - trackGenObjectsFilterTool.EtaMax = VertexD3PDAnalysisKeys.TruthTrackCutEtaMax() - trackGenObjectsFilterTool.RemoveEmptyEvents = True - trackGenObjectsFilterTool.RemoveDummyEvents = True - trackGenObjectsFilterTool.AddOnlyFirstVertex = VertexD3PDAnalysisKeys.TruthAddOnlyFirstVertex() - - from TruthD3PDMaker.GenEventD3PDObject import GenEventD3PDObject - alg += GenEventD3PDObject(**_args('truthEvt_', kw, - level=10, filter = trackGenObjectsFilterTool, - pileup_CollectionGetterRegistry=alg.name()+'_CollectionGetterRegistry')) - - from TruthD3PDMaker.GenVertexD3PDObject import GenVertexD3PDObject - alg += GenVertexD3PDObject(**_args('truthVtx_', kw, - level=1, - filter = trackGenObjectsFilterTool)) - - from TruthD3PDMaker.GenParticleD3PDObject import GenParticleD3PDObject - alg += GenParticleD3PDObject(**_args('truthPart_', kw, - level=10, - filter = trackGenObjectsFilterTool)) - - from TruthD3PDMaker.GenParticleD3PDObject import GenTruthTrackD3PDObject - alg += GenTruthTrackD3PDObject(**_args('truthTrack_', kw, level=0)) - - ## Dump higher level objects - # Missing Energy (custom options prefix with VertexD3PDAnalysisKeys.MetCollections+'_') - if VertexD3PDAnalysisFlags.useMET(): - for MET in VertexD3PDAnalysisKeys.MetCollections(): - VtxD3PD_Met_Key=MET - VtxD3PD_Met_Prefix=MET.replace('_','')+'_' - VtxD3PD_Met_Level=0 #Only basic info - VtxD3PD_Met_Exclude=['MET_Regions', 'L1_', 'L2_', 'EF_'] - from MissingETD3PDMaker.MissingETD3PDObject import RefFinalMETD3PDObject - VtxD3PD_Met_Obj = RefFinalMETD3PDObject(**_args(MET+'_', kw, - level=VtxD3PD_Met_Level, - sgkey=VtxD3PD_Met_Key, - prefix=VtxD3PD_Met_Prefix, - exclude=VtxD3PD_Met_Exclude)) - alg += VtxD3PD_Met_Obj - - #Muons (custom options prefix VtxD3PD_Muon_Prefix -- see below [e.g. muid_, staco_, ...]) - if VertexD3PDAnalysisFlags.useMuons(): - from MuonD3PDMaker.MuonD3PDObject import MuonD3PDObject - for Muon in VertexD3PDAnalysisKeys.MuonCollections(): - VtxD3PD_Muon_Key=Muon - VtxD3PD_Muon_Prefix=Muon+'_' - if VtxD3PD_Muon_Key == 'MuidMuonCollection': - VtxD3PD_Muon_Prefix='muid_' - elif VtxD3PD_Muon_Key == 'StacoMuonCollection': - VtxD3PD_Muon_Prefix = 'staco_' - - VtxD3PD_Muon_Level=0 #Only basic info - VtxD3PD_Muon_Exclude=['EFCBInfo', 'EFMGInfo', 'EFMEInfo', 'L2CBInfo', 'L1Info', 'L1_', 'L2_', 'EF_'] - VtxD3PD_Muon_Obj = MuonD3PDObject(**_args(VtxD3PD_Muon_Prefix, kw, - level=VtxD3PD_Muon_Level, - sgkey=VtxD3PD_Muon_Key, - prefix=VtxD3PD_Muon_Prefix, - allowMissing = True, - exclude=VtxD3PD_Muon_Exclude)) - alg += VtxD3PD_Muon_Obj - - #Electrons (custom options prefix: 'el_') - if VertexD3PDAnalysisFlags.useElectrons(): - from egammaD3PDMaker.ElectronD3PDObject import ElectronD3PDObject - alg += ElectronD3PDObject(**_args('el_', kw, prefix='el_', level=0)) - - #Photons (custom options prefix: 'ph_') - if VertexD3PDAnalysisFlags.usePhotons(): - from egammaD3PDMaker.PhotonD3PDObject import PhotonD3PDObject - alg += PhotonD3PDObject(**_args('ph_', kw, prefix='ph_', level=0)) - - #Jets, JVF, b-jets (custom options prefix: 'jet_') - if VertexD3PDAnalysisFlags.useJets(): - from JetD3PDMaker.JetD3PDObject import JetD3PDObject - from JetTagD3PDMaker.JetTagD3PDMakerKeys import JetTagD3PDKeys - from JetTagD3PDMaker.AddBTagD3PDInfo import addBTagInfoToJetObject - addBTagInfoToJetObject(JetD3PDObject, btagLevelOffset=0) - VtxD3PD_Jet_Include=['Kinematics', 'JetVertexFraction', 'JVtx', 'EMFraction','TrueFlavorComponents', - JetTagD3PDKeys.BTagWeightsBlockName()] - for JET in VertexD3PDAnalysisKeys.JetCollections(): - VtxD3PD_Jet_Prefix=JET.replace('_','')+'_' - if len(VertexD3PDAnalysisKeys.JetCollections()) == 1: - #only 1 element, simplify prefix - VtxD3PD_Jet_Prefix='jet_' - alg += JetD3PDObject(**_args('jet_', kw, - sgkey=JET, - prefix=VtxD3PD_Jet_Prefix, - level=0, include=VtxD3PD_Jet_Include)) - - #Taus - if VertexD3PDAnalysisFlags.useTaus(): - from TauD3PDMaker.TauD3PDObject import TauD3PDObject - VtxD3PD_Tau_Include=['TauPriVtx'] - alg += TauD3PDObject(**_args('tau_', kw, prefix='tau_', level=0, include=VtxD3PD_Tau_Include)) - - ## Return algorithm - return alg diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/__init__.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/__init__.py deleted file mode 100644 index 5292384ade7320b7cf535bbd948d57733ce7c769..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -import InDetD3PDMakerConf -for k, v in InDetD3PDMakerConf.__dict__.items(): - if k.startswith ('D3PD__'): - globals()[k[6:]] = v - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/trackBeamlineParametersFiller.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/trackBeamlineParametersFiller.py deleted file mode 100644 index 485721ba032c17a2ff914f5cbb6be1f54c1433b5..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/trackBeamlineParametersFiller.py +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -# $Id: trackBeamlineParametersFiller.py 527323 2012-11-22 18:22:23Z ssnyder $ -# -# @file InDetD3PDMaker/python/trackBeamlineParametersFiller.py -# @author scott snyder <snyder@bnl.gov> -# @date June 2012 -# @brief Configure fillers for the beamline parameters of a track. -# - - -from D3PDMakerCoreComps.SimpleAssociation import SimpleAssociation -from D3PDMakerCoreComps.flagTestLOD import flagTestLOD -from TrackD3PDMaker.TrackD3PDMakerFlags import TrackD3PDFlags -import TrackD3PDMaker -import InDetD3PDMaker - - -def trackBeamlineParametersFiller (tobj, - blockprefix = '', - prefix = '', - suffix = '_wrtBL', - parametersLOD = None, - errorsLOD = None, - covarianceLOD = None): - - """Add blocks to TOBJ to write track parameters / errors / covariance -as evaluated at the beamline. - -TOBJ may represent one of Track, TrackParameters, or TrackParticle. - -BLOCKPREFIX is a prefix to add onto the block names. - -PREFIX and SUFFIX are added to variable names. - -If PARAMETERSLOD is None, then whether or not the parameters are written -is controlled by TrackD3PDFlags.trackParametersAtBeamLineLevelOfDetails. -Otherwise, it should be the level of detail for the block. - -ERRORSLOD and COVARIANCELOD are similar for the errors and covariances. -""" - - def make_lod (lod, flagthresh): - if lod != None: - return lod - return flagTestLOD ('trackParametersAtBeamLineLevelOfDetails >= %d and reqlev >= %d' % (flagthresh, flagthresh), TrackD3PDFlags) - - BLParamsAssoc = SimpleAssociation \ - (tobj, - InDetD3PDMaker.TrackBeamlineParametersAssociationTool, - blockname = blockprefix + 'BLParamsAssoc', - prefix = prefix, - suffix = suffix) - BLParamsAssoc.defineBlock (make_lod (parametersLOD, 1), - blockprefix + 'BLParams', - InDetD3PDMaker.TrackParametersFillerTool, - DefaultValue = -9999) - - BLErrorsAssoc = SimpleAssociation \ - (BLParamsAssoc, - InDetD3PDMaker.TrackParametersErrorMatrixAssociationTool, - blockname = blockprefix + 'BLErrorsAssoc') - BLErrorsAssoc.defineBlock (make_lod (parametersLOD, 2), - blockprefix + 'BLErrors', - InDetD3PDMaker.ErrorMatrixErrorFillerTool, - DefaultValue = -9999) - BLErrorsAssoc.defineBlock (make_lod (parametersLOD, 3), - blockprefix + 'BLCovariance', - InDetD3PDMaker.ErrorMatrixCovarianceFillerTool, - DefaultValue = -9999) - - return diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/trackIsolationTool.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/trackIsolationTool.py deleted file mode 100644 index 94821764e5ec8d0405c8abb75eca7b85a8f040e2..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/trackIsolationTool.py +++ /dev/null @@ -1,223 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -# $Id: trackIsolationTool.py 542462 2013-03-26 04:51:52Z ssnyder $ -# -# @file InDetD3PDMaker/python/trackIsolationTool.py -# @author scott snyder <snyder@bnl.gov> -# @date Mar, 2013 -# @brief Helpers for setting up TrackIsolationTool. -# - - -from RecExConfig.RecFlags import rec -from TrackIsolationTools.TrackIsolationToolsConf import TrackIsolationTool -from InDetTrackSelectorTool.InDetTrackSelectorToolConf import InDet__InDetDetailedTrackSelectorTool -from AthenaCommon.SystemOfUnits import MeV, GeV, mm -from AthenaCommon.DetFlags import DetFlags -from AthenaCommon.AppMgr import ServiceMgr - - -from AthenaCommon.Include import include -include ( "TrackInCaloTools/TrackInCaloTools_jobOptions.py" ) - - -# Create an initialized TrackIsolationTool. -def trackIsolationTool (name, - doTrackIsolation = False, - doSumConversionTracks = True, - trackParticleCollection = 'TrackParticleCandidate', - conversionContainer = 'ConversionCandidate', - calorimeterCellContainer = None, - onlyEM = False, - coreDeltaR = 0.05, - trackToVertexTool = None, - trackSummaryTool = None, - extrapolator = None, - - trackSelector = None, - pTMin = 1000*MeV, - IPd0Max = 10.0*mm, - IPz0Max = 10.0*mm, - z0Max = 10.0*mm, - useTrackSummaryInfo = True, - nHitBLayer = 0, - nHitPix = 0, - nHitBLayerPlusPix = 0, - nHitSct = 0, - nHitSi = 4, - nHitTrt = 0, - useTrackQualityInfo = False, - **kw - ): - - from AthenaCommon.AppMgr import ToolSvc - - if calorimeterCellContainer == None: - calorimeterCellContainer = \ - 'AODCellContainer' if rec.readAOD() else 'AllCalo' - - if trackToVertexTool == None: - from TrackToVertex.TrackToVertexConf import Reco__TrackToVertex - trackToVertexTool = Reco__TrackToVertex() - ToolSvc += trackToVertexTool - - if trackSummaryTool == None: - from TrkTrackSummaryTool.AtlasTrackSummaryTool import AtlasTrackSummaryTool - trackSummaryTool = AtlasTrackSummaryTool() - ToolSvc += trackSummaryTool - - if extrapolator == None: - from TrkExTools.AtlasExtrapolator import AtlasExtrapolator - extrapolator = AtlasExtrapolator() - ToolSvc += extrapolator - - - if trackSelector == None: - selname = name + 'TrackSelector' - from AthenaCommon.BeamFlags import jobproperties - if (jobproperties.Beam.beamType() == 'cosmics' or - jobproperties.Beam.beamType() == 'singlebeam'): - - trackSelector = InDet__InDetDetailedTrackSelectorTool ( - name = selname, - pTMin = 0*MeV, - IPd0Max = 9999*mm, - IPz0Max = 9999*mm, - z0Max = 9999*mm, - useTrackSummaryInfo = False, - useTrackQualityInfo = False, - TrackSummaryTool = trackSummaryTool, - Extrapolator = extrapolator) - else: - trackSelector = InDet__InDetDetailedTrackSelectorTool ( - name = selname, - pTMin = pTMin, - IPd0Max = IPd0Max, - IPz0Max = IPz0Max, - z0Max = z0Max, - useTrackSummaryInfo = useTrackSummaryInfo, - nHitBLayer = nHitBLayer, - nHitPix = nHitPix, - nHitBLayerPlusPix = nHitBLayerPlusPix, - nHitSct = nHitSct, - nHitSi = nHitSi, - nHitTrt = nHitTrt, - useTrackQualityInfo = useTrackQualityInfo, - TrackSummaryTool = trackSummaryTool, - Extrapolator = extrapolator, - **kw) - ToolSvc += trackSelector - - - tool = TrackIsolationTool( - name, - DoTrackIsolation = doTrackIsolation, - DoSumConversionTracks = doSumConversionTracks, - TrackParticleCollection = trackParticleCollection, - ConversionContainer = conversionContainer, - CaloCellContainer = calorimeterCellContainer, - - OnlyEM = onlyEM, - CoreDeltaR = coreDeltaR, - ExtrapolTrackToCaloTool = ToolSvc.TrackInCaloTools, - - TrackToVertex = trackToVertexTool, - TrackSelector = trackSelector) - ToolSvc += tool - return tool - - - -######################################################################### -# Define some useful variations of TrackIsolationTool. -# - - -# -# Track cut of 500 MeV -# -def trackIsolationTool_500MeV(): - return trackIsolationTool (name = 'TrackIsolationTool_500MeV', - pTMin = 500*MeV) - - -# -# Track cut of 1 GeV -# -def trackIsolationTool_1GeV(): - return trackIsolationTool (name = 'TrackIsolationTool_1GeV', - pTMin = 1*GeV) - - -# -# Track cut of 2 GeV -# -def trackIsolationTool_2GeV(): - return trackIsolationTool (name = 'TrackIsolationTool_2GeV', - pTMin = 2*GeV) - - -# -# Track cut of 3 GeV -# -def trackIsolationTool_3GeV(): - return trackIsolationTool (name = 'TrackIsolationTool_3GeV', - pTMin = 3*GeV) - - -# -# Track cut of 4 GeV -# -def trackIsolationTool_4GeV(): - return trackIsolationTool (name = 'TrackIsolationTool_4GeV', - pTMin = 4*GeV) - - -# -# Track cut of 4 GeV -# -def trackIsolationTool_5GeV(): - return trackIsolationTool (name = 'TrackIsolationTool_5GeV', - pTMin = 5*GeV) - -def trackIsolationTool_3GeV_hitschi(): - return trackIsolationTool (name = 'TrackIsolationTool_3GeV_hitschi', - pTMin = 3*GeV, - nHitPix = 1, - nHitSct = 4, - nHitTrt = 10, - useTrackQualityInfo = True, - fitChi2OnNdfMax = 3.0, - ) - - -def trackIsolationTool_trkelstyle(): - from AthenaCommon.AppMgr import ToolSvc - - IsolBuildTestBLayerTool = None - if DetFlags.haveRIO.pixel_on(): - from TrkExTools.AtlasExtrapolator import AtlasExtrapolator - TrackIsolationExtrapolator = AtlasExtrapolator() - ToolSvc+=TrackIsolationExtrapolator - - from InDetTestBLayer.InDetTestBLayerConf import \ - InDet__InDetTestBLayerTool - IsolBuildTestBLayerTool = InDet__InDetTestBLayerTool \ - (name= "IsolBuildTestBLayerTool", - PixelSummarySvc = ServiceMgr.PixelConditionsSummarySvc, - Extrapolator = TrackIsolationExtrapolator) - ToolSvc += IsolBuildTestBLayerTool - - return trackIsolationTool (name = 'TrackIsolationTool_trkelstyle', - pTMin = 0.4*MeV, - IPd0Max = 1.5*mm, - IPz0Max = 1.0*mm, - nHitBLayer = 1, - nHitSi = 9, - nHolesPixel = 0, - nSharedBLayer = 999, - nSharedPix = 999, - nSharedSct = 999, - nSharedSi = 999, - d0MaxPreselection = 9999, - InDetTestBLayerTool = IsolBuildTestBLayerTool) diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/trackParticleLastParametersFiller.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/trackParticleLastParametersFiller.py deleted file mode 100644 index b58a127454d7d077fc588e388b6ee67460209ab7..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/python/trackParticleLastParametersFiller.py +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration - -# $Id: trackParticleLastParametersFiller.py 526670 2012-11-19 18:50:06Z ssnyder $ -# -# @file InDetD3PDMaker/python/trackParticleLastParametersFiller.py -# @author scott snyder <snyder@bnl.gov> -# @date May 2012 -# @brief Configure fillers for last parameters of a TrackParticle. -# - - -from D3PDMakerCoreComps.SimpleAssociation import SimpleAssociation -import TrackD3PDMaker -import InDetD3PDMaker - - -def trackParticleLastParametersFiller (tpobj, covarianceLOD = 99): - - TPLastParameters = SimpleAssociation \ - (tpobj, - InDetD3PDMaker.TrackParticleLastParametersAssociationTool, - suffix = '_LM') - TPLastParameters.defineBlock (1, 'TPLastQoverP', - InDetD3PDMaker.TrackParametersFillerTool, - LocalType = "NONE", - FillPhi = False) - TPLastParameters.defineBlock (3, 'TPLastParameters', - InDetD3PDMaker.TrackParametersFillerTool, - LocalType = "CARTESIAN", - FillThetaAndQoverP = False) - TPLastErrors = SimpleAssociation \ - (TPLastParameters, - InDetD3PDMaker.TrackParametersErrorMatrixAssociationTool) - TPLastErrors.defineBlock (2, 'TPLastQoverPErr', - InDetD3PDMaker.ErrorMatrixErrorFillerTool, - LocalType = "NONE", - FillPhi = False) - TPLastErrors.defineBlock (3, 'TPLastParametersErr', - InDetD3PDMaker.ErrorMatrixErrorFillerTool, - LocalType = "CARTESIAN", - FillThetaAndQoverP = False) - - TPLastErrors.defineBlock (covarianceLOD, 'TPLastParametersCov', - InDetD3PDMaker.ErrorMatrixCovarianceFillerTool, - LocalType = "CARTESIAN") - - return - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/PixelNtuple.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/PixelNtuple.py deleted file mode 100644 index ee554ea00c20d25f0aabe7683f8ec081be02c3d9..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/PixelNtuple.py +++ /dev/null @@ -1,260 +0,0 @@ -#import MinBiasD3PDMaker -import TrackD3PDMaker -import D3PDMakerCoreComps -import EventCommonD3PDMaker -import TriggerD3PDMaker - -from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags -from TrackD3PDMaker.TrackD3PDMakerFlags import TrackD3PDFlags -from InDetD3PDMaker.InDetD3PDMakerPixelFlags import InDetD3PDPixelFlags - -### added to enure the TrackD3PD generic track variables (14.04.2011) -TrackD3PDFlags.vertexPositionLevelOfDetails=1 -TrackD3PDFlags.storeVertexFitQuality = True -TrackD3PDFlags.storeVertexKinematics=True -TrackD3PDFlags.storeVertexPurity=False -TrackD3PDFlags.storeVertexTrackAssociation=False -TrackD3PDFlags.storeVertexTrackIndexAssociation=False - -TrackD3PDFlags.storeTrackSummary = True -TrackD3PDFlags.storeTrackSummary.IDHits = True -TrackD3PDFlags.storeTrackSummary.IDHoles = True -TrackD3PDFlags.storeTrackSummary.IDSharedHits = False -TrackD3PDFlags.storeTrackSummary.IDOutliers = False -TrackD3PDFlags.storeTrackSummary.PixelInfoPlus = False -TrackD3PDFlags.storeTrackSummary.SCTInfoPlus = False -TrackD3PDFlags.storeTrackSummary.TRTInfoPlus = False -TrackD3PDFlags.storeTrackSummary.InfoPlus = False -TrackD3PDFlags.storeTrackSummary.MuonHits = False #default True -TrackD3PDFlags.storeTrackSummary.MuonHoles = False -TrackD3PDFlags.storeTrackSummary.ExpectBLayer = False #default True -TrackD3PDFlags.storeTrackPredictionAtBLayer = False -TrackD3PDFlags.storeTrackSummary.HitSum = True -TrackD3PDFlags.storeTrackSummary.HoleSum = True -TrackD3PDFlags.storeTrackSummary.HitPattern = True -TrackD3PDFlags.storeTrackSummary.SiHits = False -TrackD3PDFlags.storeTrackSummary.TRTRatio = True -TrackD3PDFlags.storeTrackSummary.PixeldEdx = True #default False -TrackD3PDFlags.storeTrackSummary.ElectronPID = False -#### -## Fix impact parameters -TrackD3PDFlags.trackParametersAtGlobalPerigeeLevelOfDetails=0 -TrackD3PDFlags.trackParametersAtPrimaryVertexLevelOfDetails=2 -TrackD3PDFlags.trackParametersAtBeamSpotLevelOfDetails=0 -TrackD3PDFlags.storeTrackUnbiasedIPAtPV=False -## Fix track variables -TrackD3PDFlags.storeTrackMomentum=True -TrackD3PDFlags.storeTrackInfo=True -TrackD3PDFlags.storeTrackFitQuality=True -## Fix the rest -TrackD3PDFlags.storePullsAndResiduals=False -TrackD3PDFlags.storeBLayerHitsOnTrack=False -TrackD3PDFlags.storePixelHitsOnTrack=False -TrackD3PDFlags.storeSCTHitsOnTrack=False -TrackD3PDFlags.storeTRTHitsOnTrack=False -TrackD3PDFlags.storeBLayerOutliersOnTrack=False -TrackD3PDFlags.storePixelOutliersOnTrack=False -TrackD3PDFlags.storeTRTOutliersOnTrack=False -TrackD3PDFlags.storeBLayerHolesOnTrack=False -TrackD3PDFlags.storePixelHolesOnTrack=False -TrackD3PDFlags.storeSCTHolesOnTrack=False -TrackD3PDFlags.storeTRTHolesOnTrack=False -TrackD3PDFlags.storeVertexAssociation=False - -from EventCommonD3PDMaker.EventInfoD3PDObject import EventInfoD3PDObject - -from InDetD3PDMaker.PixelClusterD3PDObject import PixelClusterD3PDObject #new -from InDetD3PDMaker.PixelRDOD3PDObject import PixelRDOD3PDObject #new -from TrackD3PDMaker.TRTPhaseD3PDObject import TRTPhaseD3PDObject -from InDetD3PDMaker.PixelHitOnTrackAssociation import PixelHitOnTrackAssociation #new - -#primary vertex -from InDetD3PDMaker.VertexD3PDObject import PrimaryVertexD3PDObject - - -from InDetD3PDMaker.TrackParticleD3PDObjects import TrackParticleD3PDObject -#from MinBiasD3PDMaker.BcmRdoD3PDObject import BcmRdoD3PDObject -from TrigMbD3PDMaker.BcmRdoD3PDObject import BcmRdoD3PDObject - -#Trigger -#from MinBiasD3PDMaker.CtpRdoD3PDObject import CtpRdoD3PDObject -#from MinBiasD3PDMaker.CtpDecisionD3PDObject import CtpDecisionD3PDObject -from TrigMbD3PDMaker.CtpRdoD3PDObject import CtpRdoD3PDObject -from TrigMbD3PDMaker.CtpDecisionD3PDObject import CtpDecisionD3PDObject -from TriggerD3PDMaker.TrigDecisionD3PDObject import TrigDecisionD3PDObject -from TriggerD3PDMaker.TrigConfMetadata import addTrigConfMetadata - -## Associations -from D3PDMakerCoreComps.D3PDObject import D3PDObject -from D3PDMakerCoreComps.IndexAssociation import IndexAssociation -from D3PDMakerCoreComps.IndexMultiAssociation import IndexMultiAssociation - -## Athena imports -from AthenaCommon.AlgSequence import AlgSequence - -topSequence = AlgSequence() -######################################################################################## -# Configure Pixel Ntuple tree - - -InDetD3PDPixelFlags.storeEventInfo = True -InDetD3PDPixelFlags.storeBSerror = True -InDetD3PDPixelFlags.storeTracks = True -InDetD3PDPixelFlags.storePixelClusters = True -InDetD3PDPixelFlags.storePixelRDOs = True -InDetD3PDPixelFlags.storeTriggerInfo = True - -# Xiaoxiao: -InDetD3PDPixelFlags.storeTriggerInfo = False -#if globalflags.InputFormat() == 'bytestream' and hasattr(runArgs,"topOptions"): - #InDetD3PDPixelFlags.storeTriggerInfo = False -#elif globalflags.InputFormat() == 'pool' and globalflags.DataSource() == 'geant4' and hasattr(runArgs,"topOptions"): - #InDetD3PDPixelFlags.storeTriggerInfo = False - - -InDetD3PDPixelFlags.storePhysicsInfo = False -InDetD3PDPixelFlags.storeBCMrdo = False - -InDetD3PDPixelFlags.storeHitsOnTracks = False -InDetD3PDPixelFlags.doTrackToClusterAssociation = True #temporarily false -InDetD3PDPixelFlags.doClusterToTrackAssociation = True #temporarily false -InDetD3PDPixelFlags.doRdoToClusterAssociation = True -InDetD3PDPixelFlags.doClusterToRdoAssociation = True - - -if InDetD3PDPixelFlags.doPixelNtupleLight: - InDetD3PDPixelFlags.doPixelNtuple = False - InDetD3PDPixelFlags.doPixelNtupleExtended = False -elif InDetD3PDPixelFlags.doPixelNtupleExtended: - InDetD3PDPixelFlags.doPixelNtupleLight = False - InDetD3PDPixelFlags.doPixelNtuple = False - - - -if InDetD3PDPixelFlags.doPixelNtupleLight: - InDetD3PDPixelFlags.storePixelClusters = False - InDetD3PDPixelFlags.storePixelRDOs = False - if InDetD3PDPixelFlags.storeTracks: - InDetD3PDPixelFlags.storeHitsOnTracks = True - InDetD3PDPixelFlags.doTrackToClusterAssociation = False - InDetD3PDPixelFlags.doClusterToTrackAssociation = False - InDetD3PDPixelFlags.doRdoToClusterAssociation = False - InDetD3PDPixelFlags.doClusterToRdoAssociation = False - -elif InDetD3PDPixelFlags.doPixelNtupleExtended: - InDetD3PDPixelFlags.storeBCMrdo = True - - -## D3PD Maker alg ######################################################################################## -from InDetRecExample.InDetKeys import InDetKeys -name = InDetD3PDPixelFlags.outputFile() #'PixelNtuple_'+InDetKeys.trkD3PDFileName() - -print InDetD3PDPixelFlags - -print TrackD3PDFlags - -#print "1 ", name -# -#if InDetD3PDPixelFlags.doPixelNtupleLight and True: -# name = 'Light_'+InDetD3PDPixelFlags.outputFile() -# print "2 ", name -#elif InDetD3PDPixelFlags.doPixelNtupleExtended and True: -# name = 'Extended_'+InDetD3PDPixelFlags.outputFile() -# print "3 ", name - -alg = D3PDMakerCoreComps.MakerAlg('InDetTrackTree', - topSequence, - name) - -#alg_2 = D3PDMakerCoreComps.MakerAlg('InDetAllTree', -# topSequence, -# name) - -#print "4 ", name - -########################################################################################################## -## Track to cluster association for full/extended version -if InDetD3PDPixelFlags.doTrackToClusterAssociation: - PixelClusterAssoc = IndexMultiAssociation(TrackParticleD3PDObject, - InDetD3PDMaker.TrackParticleToPixelClusterAssociationTool, - 'PixelClus','clAssoc_',level = 1) - -########################################################################################################## -## Cluster on Tracks for light version -if InDetD3PDPixelFlags.storeHitsOnTracks: - LightAssociationTool = InDetD3PDMaker.TrackParticleToPixelClusterAssociationToolLight - Pixel_clAssocLight = PixelHitOnTrackAssociation\ - (TrackParticleD3PDObject, - LightAssociationTool, - 'clAssoc_', 'clAssoc_', 0) -## Pixel CLusters ########################################################################################## -## Set up associaations for full/extended version -if InDetD3PDPixelFlags.doClusterToRdoAssociation: - PixelRDOAssoc = IndexMultiAssociation(PixelClusterD3PDObject, - InDetD3PDMaker.PixelClusterPixelRDOAssociationTool, - 'PixelRdo','rdoAssoc_',level = 1) - -if InDetD3PDPixelFlags.doClusterToTrackAssociation: - TrackAssoc = IndexMultiAssociation(PixelClusterD3PDObject, - InDetD3PDMaker.PixelClusterToTrackParticleAssociationTool, - 'trk','trkAssoc_',level = 1, - TrackParticleContainerSGKey = D3PDMakerFlags.TrackSGKey()) - -## Pixel RDOs ############################################################################################## -## Set up associations for full/extended version -if InDetD3PDPixelFlags.doRdoToClusterAssociation: - clasterAssoc = IndexAssociation(PixelRDOD3PDObject,InDetD3PDMaker.PixelRDOClusterAssociationTool, - 'PixelClus','clAssoc_',level = 1, ClusterConteinerKey = 'PixelClusters') - -############################################################################################################# -## Pixel ByteStreamErrors -#if InDetD3PDPixelFlags.storeBSerror: -# from TrackD3PDMaker.TrackD3PDMakerConf import D3PD__PixelByteStreamErrorFillerTool as PixelByteStreamFiller -# EventInfoD3PDObject.defineBlock (1, 'PixelErrors',PixelByteStreamFiller) - -############################################################################################################## -## Add blocks to the tree - -if InDetD3PDPixelFlags.storeEventInfo: - alg += EventInfoD3PDObject(10) - if not InDetFlags.doHeavyIon(): - alg += TRTPhaseD3PDObject(10) - - alg += PrimaryVertexD3PDObject(8) - -if InDetD3PDPixelFlags.storeTracks: - alg += TrackParticleD3PDObject(8) - -if InDetD3PDPixelFlags.storePixelRDOs: - alg += PixelRDOD3PDObject(8) - #alg_2 += PixelRDOD3PDObject(8) - -if InDetD3PDPixelFlags.storePixelClusters: - alg += PixelClusterD3PDObject(8) - #alg_2 += PixelClusterD3PDObject(8) - -if InDetD3PDPixelFlags.storeBCMrdo: - alg += BcmRdoD3PDObject(8) - -if InDetD3PDPixelFlags.storeTriggerInfo: - ## Configure Trigger reading - DoTrigger = True - if DoTrigger and False: - from TriggerJobOpts.TriggerConfigGetter import TriggerConfigGetter - cfg = TriggerConfigGetter("ReadPool") - - #alg += CtpDecisionD3PDObject(10) - #if InDetD3PDPixelFlags.doPixelNtupleExtended: - # alg += CtpRdoD3PDObject(10) - alg += TrigDecisionD3PDObject(3) - addTrigConfMetadata(alg) - -################################################################################################################### - -if globalflags.InputFormat() == 'bytestream': - from AnalysisTools.AnalysisToolsConf import AANTupleStream - AANTupleStream('D3PD').ExistDataHeader = False - - - -#theApp.CreateSvc += ["FPEControlSvc"] diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/RecoOptions.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/RecoOptions.py deleted file mode 100644 index 2be702bc9108450674783576a1f5b5913c1951d0..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/RecoOptions.py +++ /dev/null @@ -1,163 +0,0 @@ - -import os -if os.environ['CMTCONFIG'].endswith('-dbg'): - # --- do EDM monitor (debug mode only) - doEdmMonitor = True - # --- write out a short message upon entering or leaving each algorithm - doNameAuditor = True -else: - doEdmMonitor = False - doNameAuditor = False - -import AthenaCommon.SystemOfUnits as Units - -dotruth = False -dorereco = False -dowritesd = False - -if 'DoReconstruction' in dir(): - dorereco = DoReconstruction -if 'DoTruth' in dir(): - dotruth = DoTruth - -# --- specify input type -if not 'readESD' in dir(): - readESD= True -readAOD = not readESD -# --- controls what is written out. ESD includes AOD, so it's normally enough -doWriteESD = dowritesd and readESD -doWriteAOD = False - -#-------------------------------------------------------------- -# control algorithms to be rerun -#-------------------------------------------------------------- -# --- run InDetRecStatistics (only possible if readESD = True) -doInDetRecStatistics = False and readESD -# --- refit the EXISTING tracks in ESD (only possible if readESD = True) -doRefitTracks = False and readESD -# --- redo the pattern reco and the tracking (do not use that in conjunction with doRefitTracks above) -redoPatternRecoAndTracking = dorereco and not doRefitTracks and readESD -# --- redo primary vertexing (will be set to true later automatically if you redid the tracking and want to redo the TrackParticle creation) -reDoPrimaryVertexing = True and dorereco -# --- redo particle creation (recommended after revertexing on ESD, otherwise trackparticles are inconsistent) -#reDoParticleCreation = True and readESD and reDoPrimaryVertexing and dorereco -reDoParticleCreation = redoPatternRecoAndTracking -# --- redo conversion finding -reDoConversions = redoPatternRecoAndTracking -# --- redo V0 finding -reDoV0Finder = redoPatternRecoAndTracking - -## Uncomment to do vertexing without rerunning tracking -#reDoPrimaryVertexing = True -#------------------------------------------------------ - -#-------------------------------------------------------------- -# Control - standard options (as in jobOptions.py) -#-------------------------------------------------------------- -# --- Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL ) -OutputLevel = INFO -# --- produce an atlantis data file -doJiveXML = False -# --- run the Virtual Point 1 event visualisation -doVP1 = False -# --- do auditors ? -doAuditors = True - -# safety section ... redoing tracking/vertexing is a tricky business to stay consistent ... -if redoPatternRecoAndTracking and reDoParticleCreation: - reDoPrimaryVertexing = True - -if not (readESD or readAOD): - print "You have to turn on reading of ESD or AOD! That's the purpose of this jobO!" -if readESD and readAOD: - print "I can either read ESD or AOD but not both at the same time! Turn one or the other off!" -if readESD and reDoPrimaryVertexing and not reDoParticleCreation: - print "INFO! You are running on ESD, redoing the vertexing but not recreating the TrackParticles!" - print "INFO! To avoid inconsistencies do not use the old track particles in conjunction with the new vertex!" - if doWriteESD or doWriteAOD: - print "INFO! To avoid inconsistencies the old track particle (truth) container will not be in the new ESD/AOD!" -if readAOD and reDoPrimaryVertexing: - print "INFO! You are running on AOD, and redoing the vertexing. At the moment new track particles cannot be made from old ones." - print "INFO! To avoid inconsistencies do not use the old track particles in conjunction with the new vertex!" - if doWriteAOD: - print "INFO! To avoid inconsistencies the old track particle (truth) container will not be in the new AOD!" -if doRefitTracks and (reDoPrimaryVertexing or reDoParticleCreation): - print "INFO! You are refitting tracks and also revertex and/or recreate track particles" - print "INFO! The input for that will be the refitted tracks!" - -#-------------------------------------------------------------- -# Set Detector setup -#-------------------------------------------------------------- -from RecExConfig.RecFlags import rec -rec.Commissioning=True -rec.doMonitoring=False - -from AthenaCommon.DetFlags import DetFlags -DetFlags.ID_setOn() -DetFlags.Calo_setOff() -DetFlags.Muon_setOff() -DetFlags.Print() - -# --- setup InDetJobProperties -from InDetRecExample.InDetJobProperties import InDetFlags -InDetFlags.doTruth = (globalflags.DataSource == 'geant4' and globalflags.InputFormat == "pool") and dotruth -InDetFlags.preProcessing = redoPatternRecoAndTracking -InDetFlags.doPRDFormation = redoPatternRecoAndTracking # those two will be (later) automatically false if -InDetFlags.doSpacePointFormation = redoPatternRecoAndTracking # preProcessing is false -InDetFlags.doNewTracking = redoPatternRecoAndTracking -InDetFlags.doLowPt = True -InDetFlags.doCTBTracking = False -InDetFlags.doBackTracking = redoPatternRecoAndTracking -InDetFlags.doTRTStandalone = redoPatternRecoAndTracking -InDetFlags.doTrtSegments = redoPatternRecoAndTracking -#ao do run separate standalone tracklets -InDetFlags.doTrackSegmentsPixel = redoPatternRecoAndTracking -InDetFlags.doTrackSegmentsSCT = redoPatternRecoAndTracking -InDetFlags.doTrackSegmentsTRT = redoPatternRecoAndTracking -# -InDetFlags.postProcessing = reDoPrimaryVertexing or reDoParticleCreation or reDoConversions or doInDetRecStatistics or reDoV0Finder -InDetFlags.doSlimming = False -InDetFlags.loadTools = True -InDetFlags.doVertexFinding = reDoPrimaryVertexing -InDetFlags.doParticleCreation = reDoParticleCreation -InDetFlags.doConversions = reDoConversions -InDetFlags.doSecVertexFinder = False -InDetFlags.doV0Finder = reDoV0Finder -InDetFlags.doTrkNtuple = False -InDetFlags.doPixelTrkNtuple = False -InDetFlags.doSctTrkNtuple = False -InDetFlags.doTrtTrkNtuple = False -InDetFlags.doSctClusterNtuple = False -InDetFlags.doVtxNtuple = False -InDetFlags.doConvVtxNtuple = False -InDetFlags.doV0VtxNtuple = False -InDetFlags.doRefit = doRefitTracks -InDetFlags.doLowBetaFinder = False -InDetFlags.doPrintConfigurables = True -InDetFlags.doStatistics = doInDetRecStatistics - -# print InDetFlags - -#primary vertex settings -InDetFlags.primaryVertexSetup = 'DefaultFullFinding' -InDetFlags.useBeamConstraint = False - -InDetFlags.primaryVertexCutSetup = "StartUp" -#InDetPriVxFinderTool.chi2CutMethod = 2 -#print InDetPriVxFinderTool - -#-------------------------------------------------------------- -# load master InDet joboptions file -#-------------------------------------------------------------- - -include("InDetRecExample/InDetRec_all.py") - -#-------------------------------------------------------------- -# Event related parameters -#-------------------------------------------------------------- -if doWriteESD: - StreamESD.OutputFile = "/tmp/pbehera/InDetRecESD_new.root" - -if doWriteAOD: - StreamAOD.OutputFile = "/tmp/pbehera/InDetRecAOD_new.root" - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/RecoSetupForSctNtuple.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/RecoSetupForSctNtuple.py deleted file mode 100644 index 0e6e9383601d3fcc0b050cca6c68993e35320ae8..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/RecoSetupForSctNtuple.py +++ /dev/null @@ -1,184 +0,0 @@ -#CONTROL - -# --- Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL ) -OutputLevel = INFO -# --- produce an atlantis data file -doJiveXML = False -# --- run the Virtual Point 1 event visualisation -doVP1 = False -# --- controls what is written out. ESD includes AOD, so it's normally enough -doWriteESD = False -doWriteAOD = False -# --- read BS - please look at the default input file(s) to know the det descr and cond tag -doReadBS = False -if globalflags.InputFormat() == 'bytestream': - doReadBS=True - -doWriteBS = False -# --- do auditors ? -doAuditors = True - -# this might be useful to trace s.v. faults -import os -if os.environ['CMTCONFIG'].endswith('-dbg'): - # --- do EDM monitor (debug mode only) - doEdmMonitor = True - # --- write out a short message upon entering or leaving each algorithm - doNameAuditor = True -else: - doEdmMonitor = False - doNameAuditor = False - -#-------------------------------------------------------------- -# data or simulation -#-------------------------------------------------------------- - -mySimulation=False - -print "mySimulation=",mySimulation - -from RecExConfig.RecFlags import rec -from RecExConfig.InputFilePeeker import inputFileSummary -if inputFileSummary['evt_type'][0]=='IS_SIMULATION': - mySimulation=True - -print " SCT Ntuple will be created from simulated data: ",mySimulation - -#-------------------------------------------------------------- -# detector description version: both RDO and BS default use this -#-------------------------------------------------------------- - - -#-------------------------------------------------------------- -# load Global Flags and set defaults (import the new jobProperty globalflags) -#-------------------------------------------------------------- -import AthenaCommon.SystemOfUnits as Units -from AthenaCommon.GlobalFlags import globalflags -# --- default is atlas geometry -globalflags.DetGeo = 'atlas' -# --- set defaults - -if mySimulation: - globalflags.DataSource = 'geant4' -else: - globalflags.DataSource = 'data' - -#-------------------------------------------------------------- -# Detector Set Up -#------------------------------------------------------------- - -from RecExConfig.RecFlags import rec -rec.Commissioning=False -rec.doESD.set_Value_and_Lock(True) -rec.doInDet.set_Value_and_Lock(True) -rec.doEgamma.set_Value_and_Lock(False) -rec.doWriteESD.set_Value_and_Lock(False) ## write out ESDs -rec.doJiveXML.set_Value_and_Lock(False) ## for ATLANTIS -readESD = True -readRDO = False -if globalflags.InputFormat() == 'bytestream': - readESD = False -elif globalflags.InputFormat() == 'pool' and globalflags.DataSource() == 'geant4': - redESD = False - redRDO = True - -rec.readESD=readESD -rec.readRDO=readRDO - - -from AthenaCommon.DetFlags import DetFlags -# --- switch on Detector bits -DetFlags.ID_setOn() -#DetFlags.makeRIO.pixel_setOff() -#DetFlags.makeRIO.SCT_setOff() -#DetFlags.makeRIO.TRT_setOff() - -# Swithc of the rest -DetFlags.Calo_setOff() -DetFlags.Muon_setOff() - -DetFlags.Print() - -#-------------------------------------------------------------- -# control algorithms to be rerun -#-------------------------------------------------------------- -# --- run InDetRecStatistics (only possible if readESD = True) -doInDetRecStatistics = True and rec.doESD -# --- refit the EXISTING tracks in ESD (only possible if readESD = True) -doRefitTracks = readESD #False #False -# --- redo the pattern reco and the tracking (do not use that in conjunction with doRefitTracks above) -redoPatternRecoAndTracking = True -# --- redo primary vertexing (will be set to true later automatically if you redid the tracking and want to redo the TrackParticle creation) -reDoPrimaryVertexing = True -# --- redo particle creation (recommended after revertexing on ESD, otherwise trackparticles are inconsistent) -reDoParticleCreation = True -# --- redo conversion finding -reDoConversions = False -# --- redo V0 finding -reDoV0Finder = False -#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -from AthenaCommon.GlobalFlags import globalflags - -import AthenaPython.ConfigLib as apcl - -if globalflags.InputFormat() == 'bytestream': - cfg = apcl.AutoCfg(name = 'MyAutoConfig', input_files=athenaCommonFlags.BSRDOInput()) - cfg.configure_job() -else: - cfg = apcl.AutoCfg(name = 'MyAutoConfig', input_files=athenaCommonFlags.FilesInput()) - cfg.configure_job() - -#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -from InDetRecExample.InDetJobProperties import InDetFlags -InDetFlags.doTruth = (globalflags.DataSource == 'geant4' and globalflags.InputFormat == "pool") -InDetFlags.preProcessing = redoPatternRecoAndTracking - -InDetFlags.doPRDFormation = False # For SCT_Clusters -if globalflags.InputFormat() == 'bytestream': - InDetFlags.doPRDFormation = True -elif globalflags.InputFormat() == 'pool' and globalflags.DataSource() == 'geant4': - InDetFlags.doPRDFormation = True - - -InDetFlags.doSpacePointFormation = redoPatternRecoAndTracking # preProcessing is false -InDetFlags.doNewTracking = redoPatternRecoAndTracking - -if readESD: - InDetFlags.doLowPt = False - InDetFlags.doCTBTracking = False - -InDetFlags.doBackTracking = redoPatternRecoAndTracking -InDetFlags.doTRTStandalone = redoPatternRecoAndTracking -InDetFlags.doTrtSegments = redoPatternRecoAndTracking -InDetFlags.postProcessing = reDoPrimaryVertexing or reDoParticleCreation or reDoConversions or doInDetRecStatistics or reDoV0Finder -InDetFlags.doSlimming = False -InDetFlags.loadTools = True -InDetFlags.doVertexFinding = reDoPrimaryVertexing -InDetFlags.doParticleCreation = reDoParticleCreation -InDetFlags.doConversions = reDoConversions -if readESD: - InDetFlags.doSecVertexFinder = False - InDetFlags.doV0Finder = reDoV0Finder - -InDetFlags.doTrkNtuple = False -InDetFlags.doPixelTrkNtuple = False -InDetFlags.doSctTrkNtuple = False -InDetFlags.doTrtTrkNtuple = False -InDetFlags.doSctClusterNtuple = False -InDetFlags.doVtxNtuple = False -InDetFlags.doConvVtxNtuple = False -InDetFlags.doV0VtxNtuple = False -InDetFlags.doRefit = doRefitTracks -InDetFlags.doLowBetaFinder = False -InDetFlags.doPrintConfigurables = True - -#--------------------------------------------------------------- -# Load master JO -#--------------------------------------------------------------- -include("InDetRecExample/InDetRec_all.py") - - - - - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/SCTNtuple.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/SCTNtuple.py deleted file mode 100644 index f395f87f42b2001949bc26b2f41c65b8da0dd273..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/SCTNtuple.py +++ /dev/null @@ -1,283 +0,0 @@ -#import MinBiasD3PDMaker -import TrackD3PDMaker -import InDetD3PDMaker -import D3PDMakerCoreComps -import EventCommonD3PDMaker -import TriggerD3PDMaker - -from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags -from TrackD3PDMaker.TrackD3PDMakerFlags import TrackD3PDFlags -from InDetD3PDMaker.InDetD3PDMakerSCTFlags import InDetD3PDSCTFlags - -from InDetD3PDMaker.TruthTrackD3PDObject import TruthTrackD3PDObject -from InDetD3PDMaker.TruthVertexD3PDObject import TruthVertexD3PDObject - -### added to enure the TrackD3PD generic track variables (14.04.2011) -TrackD3PDFlags.vertexPositionLevelOfDetails=1 -TrackD3PDFlags.storeVertexFitQuality = True -TrackD3PDFlags.storeVertexKinematics=True -TrackD3PDFlags.storeVertexPurity=False -TrackD3PDFlags.storeVertexTrackAssociation=False -TrackD3PDFlags.storeVertexTrackIndexAssociation=False -TrackD3PDFlags.doTruth = True - -TrackD3PDFlags.storeTrackSummary = True -TrackD3PDFlags.storeTrackSummary.IDHits = True -TrackD3PDFlags.storeTrackSummary.IDHoles = True -TrackD3PDFlags.storeTrackSummary.IDSharedHits = False -TrackD3PDFlags.storeTrackSummary.IDOutliers = False -TrackD3PDFlags.storeTrackSummary.PixelInfoPlus = False -TrackD3PDFlags.storeTrackSummary.SCTInfoPlus = False -TrackD3PDFlags.storeTrackSummary.TRTInfoPlus = False -TrackD3PDFlags.storeTrackSummary.InfoPlus = False -TrackD3PDFlags.storeTrackSummary.MuonHits = False #default True -TrackD3PDFlags.storeTrackSummary.MuonHoles = False -TrackD3PDFlags.storeTrackSummary.ExpectBLayer = False #default True -TrackD3PDFlags.storeTrackPredictionAtBLayer = False -TrackD3PDFlags.storeTrackSummary.HitSum = True -TrackD3PDFlags.storeTrackSummary.HoleSum = True -TrackD3PDFlags.storeTrackSummary.HitPattern = True -TrackD3PDFlags.storeTrackSummary.SiHits = False -TrackD3PDFlags.storeTrackSummary.TRTRatio = True -TrackD3PDFlags.storeTrackSummary.PixeldEdx = True #default False -TrackD3PDFlags.storeTrackSummary.ElectronPID = False -#### -## Fix impact parameters -TrackD3PDFlags.trackParametersAtGlobalPerigeeLevelOfDetails=0 -TrackD3PDFlags.trackParametersAtPrimaryVertexLevelOfDetails=2 -TrackD3PDFlags.trackParametersAtBeamSpotLevelOfDetails=0 -TrackD3PDFlags.storeTrackUnbiasedIPAtPV=False -## Fix track variables -TrackD3PDFlags.storeTrackMomentum=True -TrackD3PDFlags.storeTrackInfo=True -TrackD3PDFlags.storeTrackFitQuality=True -## Fix the rest -TrackD3PDFlags.storePullsAndResiduals=False -TrackD3PDFlags.storeBLayerHitsOnTrack=False -TrackD3PDFlags.storePixelHitsOnTrack=False -TrackD3PDFlags.storeSCTHitsOnTrack=False -TrackD3PDFlags.storeTRTHitsOnTrack=False -TrackD3PDFlags.storeBLayerOutliersOnTrack=False -TrackD3PDFlags.storePixelOutliersOnTrack=False -TrackD3PDFlags.storeTRTOutliersOnTrack=False -TrackD3PDFlags.storeBLayerHolesOnTrack=False -TrackD3PDFlags.storePixelHolesOnTrack=False -TrackD3PDFlags.storeSCTHolesOnTrack=False -TrackD3PDFlags.storeTRTHolesOnTrack=False -TrackD3PDFlags.storeVertexAssociation=False - -from EventCommonD3PDMaker.EventInfoD3PDObject import EventInfoD3PDObject - -from InDetD3PDMaker.SCTClusterD3PDObject import SCTClusterD3PDObject #new -from InDetD3PDMaker.SCTRDOD3PDObject import SCTRDOD3PDObject #new -from InDetD3PDMaker.TRTPhaseD3PDObject import TRTPhaseD3PDObject -from InDetD3PDMaker.SctHitOnTrackAssociation import SctHitOnTrackAssociation #new - -#primary vertex -from InDetD3PDMaker.VertexD3PDObject import PrimaryVertexD3PDObject - - -from InDetD3PDMaker.TrackParticleD3PDObjects import TrackParticleD3PDObject -#from MinBiasD3PDMaker.BcmRdoD3PDObject import BcmRdoD3PDObject -from TrigMbD3PDMaker.BcmRdoD3PDObject import BcmRdoD3PDObject - -#Trigger -#from MinBiasD3PDMaker.CtpRdoD3PDObject import CtpRdoD3PDObject -#from MinBiasD3PDMaker.CtpDecisionD3PDObject import CtpDecisionD3PDObject -from TrigMbD3PDMaker.CtpRdoD3PDObject import CtpRdoD3PDObject -from TrigMbD3PDMaker.CtpDecisionD3PDObject import CtpDecisionD3PDObject -from TriggerD3PDMaker.TrigDecisionD3PDObject import TrigDecisionD3PDObject -from TriggerD3PDMaker.TrigConfMetadata import addTrigConfMetadata - -## Associations -from D3PDMakerCoreComps.D3PDObject import D3PDObject -from D3PDMakerCoreComps.IndexAssociation import IndexAssociation -from D3PDMakerCoreComps.IndexMultiAssociation import IndexMultiAssociation -from D3PDMakerCoreComps.SimpleAssociation import SimpleAssociation - -## Athena imports -from AthenaCommon.AlgSequence import AlgSequence - -topSequence = AlgSequence() -######################################################################################## -# Configure SCT Ntuple tree - -print "NICK here i am" - -InDetD3PDSCTFlags.storeEventInfo = True -InDetD3PDSCTFlags.storeBSerror = True -InDetD3PDSCTFlags.storeTracks = False -InDetD3PDSCTFlags.storeSctClusters = True -InDetD3PDSCTFlags.storeSctRDOs = True -InDetD3PDSCTFlags.storeTriggerInfo = False -if globalflags.InputFormat() == 'bytestream' and hasattr(runArgs,"topOptions"): - InDetD3PDSCTFlags.storeTriggerInfo = False -elif globalflags.InputFormat() == 'pool' and globalflags.DataSource() == 'geant4' and hasattr(runArgs,"topOptions"): - InDetD3PDSCTFlags.storeTriggerInfo = False - -InDetD3PDSCTFlags.doTrackToMuonAssociation = False -InDetD3PDSCTFlags.storePhysicsInfo = False -InDetD3PDSCTFlags.storeBCMrdo = False -InDetD3PDSCTFlags.includeTruthInfo = False -InDetD3PDSCTFlags.storeHitsOnTracks = False -InDetD3PDSCTFlags.doTrackToClusterAssociation = False -InDetD3PDSCTFlags.doClusterToTrackAssociation = False -InDetD3PDSCTFlags.doRdoToClusterAssociation = True -InDetD3PDSCTFlags.doClusterToRdoAssociation = True - - -if InDetD3PDSCTFlags.doSCTNtupleLight: - InDetD3PDSCTFlags.doSCTNtuple = False - InDetD3PDSCTFlags.doSCTNtupleExtended = False -elif InDetD3PDSCTFlags.doSCTNtupleExtended: - InDetD3PDSCTFlags.doSCTNtupleLight = False - InDetD3PDSCTFlags.doSCTNtuple = False - - - -if InDetD3PDSCTFlags.doSCTNtupleLight: - InDetD3PDSCTFlags.storeSctClusters = False - InDetD3PDSCTFlags.storeSctRDOs = False - if InDetD3PDSCTFlags.storeTracks: - InDetD3PDSCTFlags.storeHitsOnTracks = True - InDetD3PDSCTFlags.doTrackToMuonAssociation = False - InDetD3PDSCTFlags.doTrackToClusterAssociation = False - InDetD3PDSCTFlags.doClusterToTrackAssociation = False - InDetD3PDSCTFlags.doRdoToClusterAssociation = False - InDetD3PDSCTFlags.doClusterToRdoAssociation = False - -elif InDetD3PDSCTFlags.doSCTNtupleExtended: - InDetD3PDSCTFlags.storeBCMrdo = True - - -## D3PD Maker alg ######################################################################################## -from InDetRecExample.InDetKeys import InDetKeys -name = InDetD3PDSCTFlags.outputFile() #'SctNtuple_'+InDetKeys.trkD3PDFileName() - -print InDetD3PDSCTFlags - -print TrackD3PDFlags - -#print "1 ", name -# -#if InDetD3PDSCTFlags.doSCTNtupleLight and True: -# name = 'Light_'+InDetD3PDSCTFlags.outputFile() -# print "2 ", name -#elif InDetD3PDSCTFlags.doSCTNtupleExtended and True: -# name = 'Extended_'+InDetD3PDSCTFlags.outputFile() -# print "3 ", name - -alg = D3PDMakerCoreComps.MakerAlg('InDetTrackTree', - topSequence, - name) - -#print "4 ", name - -########################################################################################################## -## Track to cluster association for full/extended version -if InDetD3PDSCTFlags.doTrackToClusterAssociation: - SCTClusterAssoc = IndexMultiAssociation(TrackParticleD3PDObject, - InDetD3PDMaker.TrackParticleToSCTClusterAssociationTool, - 'SCTClus','clAssoc_',level = 1) - -########################################################################################################## -## Cluster on Tracks for light version -if InDetD3PDSCTFlags.storeHitsOnTracks: - LightAssociationTool = InDetD3PDMaker.TrackParticleToSCTClusterAssociationToolLight - SCT_clAssocLight = SctHitOnTrackAssociation\ - (TrackParticleD3PDObject, - LightAssociationTool, - 'clAssoc_', 'clAssoc_', 0) -## SCT CLusters ########################################################################################## -## Set up associaations for full/extended version -if InDetD3PDSCTFlags.doClusterToRdoAssociation: - SCTRDOAssoc = IndexMultiAssociation(SCTClusterD3PDObject, - InDetD3PDMaker.SCTClusterSCTRDOAssociationTool, - 'SCTRdo','rdoAssoc_',level = 1) - -if InDetD3PDSCTFlags.doClusterToTrackAssociation: - TrackAssoc = IndexMultiAssociation(SCTClusterD3PDObject, - InDetD3PDMaker.SCTClusterToTrackParticleAssociationTool, - 'trk','trkAssoc_',level = 1, - TrackParticleContainerSGKey = D3PDMakerFlags.TrackSGKey()) - -## Muons ########################################################################################## -## TrackParticle to muon association -if InDetD3PDSCTFlags.doTrackToMuonAssociation: - if InDetD3PDSCTFlags.useStacoMuonCollectionForAssociation==True: - MuonAssoc = SimpleAssociation(TrackParticleD3PDObject, - TrackD3PDMaker.SCTTrackParticleToMuonAssociationTool, - matched = 'hasMuon', - MuonContainerSGKey = "StacoMuonCollection") - else: - MuonAssoc = SimpleAssociation(TrackParticleD3PDObject, - TrackD3PDMaker.SCTTrackParticleToMuonAssociationTool, - matched = 'hasMuon', - MuonContainerSGKey = "Muons") - -## SCT RDOs ############################################################################################## -## Set up associations for full/extended version -if InDetD3PDSCTFlags.doRdoToClusterAssociation: - clasterAssoc = IndexAssociation(SCTRDOD3PDObject,InDetD3PDMaker.SCTRDOClusterAssociationTool, - 'SCTClus','clAssoc_',level = 1, ClusterConteinerKey = 'SCT_Clusters') - -############################################################################################################# -## SCT ByteStreaErrors -if InDetD3PDSCTFlags.storeBSerror: - from InDetD3PDMaker import SCTByteStreamErrorFillerTool - EventInfoD3PDObject.defineBlock (1, 'SCTErrors',SCTByteStreamErrorFillerTool) - -############################################################################################################## -## Add blocks to the tree - -if InDetD3PDSCTFlags.storeEventInfo: - alg += EventInfoD3PDObject(10) - if not InDetFlags.doHeavyIon(): - alg += TRTPhaseD3PDObject(10) - #use Truth? - if (InDetD3PDSCTFlags.includeTruthInfo and globalflags.DataSource == 'geant4'): - alg += TruthVertexD3PDObject(10) - alg += PrimaryVertexD3PDObject(10) - else: - alg += PrimaryVertexD3PDObject(8) - -if InDetD3PDSCTFlags.storeTracks: - #use Truth? - if (InDetD3PDSCTFlags.includeTruthInfo and globalflags.DataSource == 'geant4'): - alg += TruthTrackD3PDObject(10) - alg += TrackParticleD3PDObject(10) - else: - alg += TrackParticleD3PDObject(8) - - -if InDetD3PDSCTFlags.storeSctRDOs: - alg += SCTRDOD3PDObject(8) - -if InDetD3PDSCTFlags.storeSctClusters: - alg += SCTClusterD3PDObject(8) - -if InDetD3PDSCTFlags.storeBCMrdo: - alg += BcmRdoD3PDObject(8) - -if InDetD3PDSCTFlags.storeTriggerInfo: - ## Configure Trigger reading - DoTrigger = True - if DoTrigger and False: - from TriggerJobOpts.TriggerConfigGetter import TriggerConfigGetter - cfg = TriggerConfigGetter("ReadPool") - - #alg += CtpDecisionD3PDObject(10) - #if InDetD3PDSCTFlags.doSCTNtupleExtended: - # alg += CtpRdoD3PDObject(10) - alg += TrigDecisionD3PDObject(3) - addTrigConfMetadata(alg) - -################################################################################################################### - -if globalflags.InputFormat() == 'bytestream': - from AnalysisTools.AnalysisToolsConf import AANTupleStream - AANTupleStream('D3PD').ExistDataHeader = False - - - -#theApp.CreateSvc += ["FPEControlSvc"] diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/SctNtuple_topOptions.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/SctNtuple_topOptions.py deleted file mode 100644 index c3b364890c302e0c10bd60d189e2e23df9e7f29a..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/SctNtuple_topOptions.py +++ /dev/null @@ -1,61 +0,0 @@ -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -from AthenaCommon.GlobalFlags import globalflags - -from InDetD3PDMaker.InDetD3PDMakerSCTFlags import InDetD3PDSCTFlags - -if hasattr(runArgs,"inputESDFile"): - InDetD3PDSCTFlags.inputFiles = runArgs.inputESDFile - athenaCommonFlags.FilesInput=InDetD3PDSCTFlags.inputFiles() - -if hasattr(runArgs,"inputBSFile"): - InDetD3PDSCTFlags.inputFiles = runArgs.inputBSFile - globalflags.InputFormat='bytestream' - athenaCommonFlags.BSRDOInput=InDetD3PDSCTFlags.inputFiles() - -if hasattr(runArgs,"inputRDOFile"): - InDetD3PDSCTFlags.inputFiles = runArgs.inputRDOFile - globalflags.InputFormat='pool' - athenaCommonFlags.PoolRDOInput=InDetD3PDSCTFlags.inputFiles() - athenaCommonFlags.FilesInput=athenaCommonFlags.PoolRDOInput() - - -# run the reconstruction -include('InDetD3PDMaker/RecoSetupForSctNtuple.py') - -#Condition tag 04.03 -if globalflags.InputFormat() == 'bytestream': - if len(globalflags.ConditionsTag())!=0: - from IOVDbSvc.CondDB import conddb - conddb.setGlobalTag(globalflags.ConditionsTag()) - - -# compose the tree -from InDetD3PDMaker.InDetD3PDMakerSCTFlags import InDetD3PDSCTFlags - -# uncomment the necessary one -InDetD3PDSCTFlags.doSCTNtuple = True # default -#InDetD3PDSCTFlags.doSCTNtupleLight = True -#InDetD3PDSCTFlags.doSCTNtupleExtended = True - -#if not hasattr(runArgs,"inputRDOFile") and not hasattr(runArgs,"inputBSFile"): -# include('InDetD3PDMaker/SCTNtuple.py') - -include('InDetD3PDMaker/SCTNtuple.py') - - -#if globalflags.InputFormat() == 'bytestream': -# from AnalysisTools.AthAnalysisToolsConf import AANTupleStream -# AANTupleStream('D3PD').ExistDataHeader = False - - -################################################################# -if hasattr(runArgs,"maxEvents"): - theApp.EvtMax=runArgs.maxEvents - -#theApp.SkipEvents=1870 -#ServiceMgr.EventSelector.SkipEvents=1870 - -if globalflags.InputFormat() == 'bytestream': - ServiceMgr.EventSelector.Input = athenaCommonFlags.BSRDOInput() -else: - ServiceMgr.EventSelector.InputCollections = InDetD3PDSCTFlags.inputFiles() diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/SimHitsD3PD_jobOptions.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/SimHitsD3PD_jobOptions.py deleted file mode 100644 index 44e2aa3186a38cb9e773d24b2947d4b4a56bc3fb..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/SimHitsD3PD_jobOptions.py +++ /dev/null @@ -1,84 +0,0 @@ -#-------------------------------------------------------------- -# Job configuration -#-------------------------------------------------------------- - -from GaudiKernel.GaudiHandles import * -from GaudiKernel.Proxy.Configurable import * -import AthenaPoolCnvSvc.ReadAthenaPool -from AthenaCommon.AppMgr import ServiceMgr -from AthenaCommon.AppMgr import ToolSvc - -# configure MsgSvc -ServiceMgr.MessageSvc.defaultLimit = 9999999 -ServiceMgr.MessageSvc.OutputLevel = INFO - -#-------------------------------------------------------------- -## Configure input -#-------------------------------------------------------------- -ServiceMgr.EventSelector.InputCollections = [ "Hits.pool.root" ] -theApp.EvtMax = -1 -ServiceMgr.EventSelector.SkipEvents = 0 - -#-------------------------------------------------------------- -# load Global Flags and set defaults (import the new jobProperty globalflags) -#-------------------------------------------------------------- - -## Global flags -DetDescrVersion = 'ATLAS-GEO-20-00-01' - -from AthenaCommon.GlobalFlags import globalflags -from AthenaCommon.BeamFlags import jobproperties -globalflags.DetGeo = 'atlas' -globalflags.InputFormat = 'pool' -globalflags.DetDescrVersion = DetDescrVersion -globalflags.DataSource = 'geant4' # 'data' # -jobproperties.Beam.beamType = 'collisions' # 'cosmics' # 'singlebeam' # -if globalflags.DataSource != 'geant4': - DoTruth = False -else: - globalflags.ConditionsTag = 'OFLCOND-MC12-SIM-00' - -globalflags.print_JobProperties() - -## Configure conditions -if len(globalflags.ConditionsTag())!=0: - from IOVDbSvc.CondDB import conddb - conddb.setGlobalTag(globalflags.ConditionsTag()) - -# setup detector description -from AthenaCommon.DetFlags import DetFlags -DetFlags.ID_setOn() -DetFlags.Calo_setOn() -DetFlags.Muon_setOn() -DetFlags.Truth_setOn() - -# load det description -include('RecExCond/AllDet_detDescr.py') - -#-------------------------------------------------------------- -# Configure the TrackD3PDMaker -#-------------------------------------------------------------- - -## Output file name -outFileName = 'SimHitsD3PD.root' - -## Top Sequence -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() - -## Event Info -from EventCommonD3PDMaker.EventInfoD3PDObject import EventInfoD3PDObject -## Truth Tracks -from InDetD3PDMaker.SiHitD3PDObject import PixelSiHitD3PDObject -from InDetD3PDMaker.SiHitD3PDObject import SctSiHitD3PDObject -from InDetD3PDMaker.TRTUncompressedHitD3PDObject import TRTUncompressedHitD3PDObject - -## D3PD Maker alg -import D3PDMakerCoreComps -alg = D3PDMakerCoreComps.MakerAlg('SimHits', topSequence, outFileName) - -## Add blocks to the tree -alg += EventInfoD3PDObject(0) -alg += PixelSiHitD3PDObject(10) -alg += SctSiHitD3PDObject(10) -alg += TRTUncompressedHitD3PDObject(10) diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/TrackD3PD_topOptions.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/TrackD3PD_topOptions.py deleted file mode 100644 index 92defedc9c32624aaf7718d6a239431bdf3d25da..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/TrackD3PD_topOptions.py +++ /dev/null @@ -1,67 +0,0 @@ -# Input and output files. -if not globals().get('poolFileInput'): - poolFileInput = "AOD.pool.root" - -if not globals().get('tupleFileOutput'): - tupleFileOutput = 'trackD3PD.root' - -theApp.EvtMax = 10 - -# Turn this on to enable the detector description. -# Without this, some event information that depends on the geometry -# will not be available. On the other hand, Athena will initialize -# much faster. -if not globals().has_key('use_dd'): - use_dd = False - -if use_dd: - from AthenaCommon.DetFlags import DetFlags - DetFlags.detdescr.all_setOn() - import AtlasGeoModel.GeoModelInit - svcMgr.GeoModelSvc.AutomaticGeometryVersion = True - - - -##################################################### -# Set up reading the input file. -# - -if type(poolFileInput) == type(""): - poolFileInput = [poolFileInput] - -# Disable inputFilePeeker cache. -# The cache just goes by the file name. -# So if, for example, you're reading the input file via a symlink and you -# change where the symlink points, the old cached info will still be used. -# This can be terribly confusing. -# So disable the cache for now. -import PyUtils.AthFile as af -af.server.flush_cache() -try: - af.server.disable_pers_cache() -except AttributeError: # backward compat... - pass - -import AthenaPoolCnvSvc.ReadAthenaPool -ServiceMgr.EventSelector.InputCollections = poolFileInput -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -athenaCommonFlags.FilesInput.set_Value_and_Lock(poolFileInput) -from RecExConfig.InputFilePeeker import inputFileSummary - - -# Backwards compatibility for taus. -if ('TauRecExtraDetailsContainer' in - inputFileSummary['eventdata_itemsDic'].get - ('Analysis::TauDetailsContainer',[])): - from AthenaCommon.AlgSequence import AlgSequence - topSequence = AlgSequence() - from TauTools.TauToolsConf import TauCommonDetailsMerger - topSequence += TauCommonDetailsMerger("TauCommonDetailsMerger") - - -##################################################### -# Set up the D3PD maker. -# - -from InDetD3PDMaker.TrackD3PD import TrackD3PD -alg = TrackD3PD ( tupleFileOutput ) diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexGroupD3PD_configure.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexGroupD3PD_configure.py deleted file mode 100644 index 7da8ff1c4f26304a895dbf464578ef005358527e..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexGroupD3PD_configure.py +++ /dev/null @@ -1,9 +0,0 @@ -# -## @file InDetD3PDMaker/share/VertexGroupD3PD_configure.py -## @brief PreInlcude file for Reco_trf.py to enable NBC and split vertices algorithms -## @author Simone Pagan Griso -## @date Mar, 2012 -## - -InDetFlags.doVertexFindingForMonitoring.set_Value_and_Lock(True) -InDetFlags.doSplitVertexFindingForMonitoring.set_Value_and_Lock(True) diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexGroupD3PD_jobOptions.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexGroupD3PD_jobOptions.py deleted file mode 100644 index da0946dabf6ba8148bdd0577ff9aa7ce4bb19c9f..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexGroupD3PD_jobOptions.py +++ /dev/null @@ -1,38 +0,0 @@ -# -## @file InDetD3PDMaker/share/VertexGroupD3PD_jobOptions.py -## @brief Setup D3PD Maker algorithm for vertex group D3PD production -## @author Simone Pagan Griso -## @date Mar, 2012 -## - -""" -Setup D3PD Maker algorithm to produce Vertex Group D3PD -""" - -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() -from AthenaCommon.AppMgr import ToolSvc -from InDetD3PDMaker.VertexD3PDAnalysisFlags import VertexD3PDAnalysisFlags -from InDetD3PDMaker.VertexD3PDAnalysisKeys import VertexD3PDAnalysisKeys - -### Pre-configure options (if you want your custom options, set and lock them before including this file) -include("InDetD3PDMaker/VertexGroupD3PD_loadConfig.py") - -### Now semi-automatic settings -- do manually in your JO! -#if VertexD3PDAnalysisFlags.useAllVertexCollections: -# #Need to enable algorithms in IDRE -# from InDetRecExample.InDetJobProperties import InDetFlags -# InDetFlags.doVertexFindingForMonitoring.set_Value_and_Lock(True) -# #Include IDRE job options -# include("InDetRecExample/InDetRec_all.py") - -### Now setup D3PD Maker algorithm -import D3PDMakerCoreComps -VertexGroupD3PDMaker = D3PDMakerCoreComps.MakerAlg('VertexGroupD3PDMaker', - topSequence, - file=VertexD3PDAnalysisKeys.D3PDFileName(), - tuplename=VertexD3PDAnalysisKeys.D3PDTreeName()) - -### Add objects to the algorithm -from InDetD3PDMaker.VertexGroupD3PD import VertexGroupD3PD -VertexGroupD3PD(VertexGroupD3PDMaker, **(VertexD3PDAnalysisFlags.D3PDMakerExtraDict())) diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexGroupD3PD_loadConfig.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexGroupD3PD_loadConfig.py deleted file mode 100644 index e7e9bbd340d6d51a8da699a07b6279f8d006ca51..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexGroupD3PD_loadConfig.py +++ /dev/null @@ -1,112 +0,0 @@ -# -## @file InDetD3PDMaker/share/VertexGroupD3PD_loadConfig.py -## @brief Setup D3PD flags for vertex group D3PD production -## @author Simone Pagan Griso -## @date Mar, 2012 -## - -""" -Setup Vertex Group D3PD options for various objects. -""" - -from RecExConfig.RecFlags import rec -from InDetD3PDMaker.VertexD3PDAnalysisFlags import VertexD3PDAnalysisFlags -from InDetD3PDMaker.VertexD3PDAnalysisKeys import VertexD3PDAnalysisKeys - -from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags -from TrackD3PDMaker.TrackD3PDMakerFlags import TrackD3PDFlags - -### Set flags of D3PD fillers, etc.. -## First our own flags -# Set truth flag -VertexD3PDAnalysisFlags.useTruth = rec.doTruth() -# Set storegate collection names (where default may be wrong) -from InDetRecExample.InDetKeys import InDetKeys -if rec.readESD(): - InDetKeys.UnslimmedTracks = 'Tracks' - InDetKeys.UnslimmedTracksTruth = 'TrackTruthCollection' -if rec.readAOD(): - InDetKeys.Tracks = InDetKeys.TrackParticles() - InDetKeys.TracksTruth = InDetKeys.TrackParticlesTruth() - #print "InDetKeys.Tracks = "+InDetKeys.Tracks() - #print "InDetKeys.TracksTruth = "+InDetKeys.TracksTruth() - InDetKeys.McEventCollection = 'GEN_AOD' -#print D3PDMakerFlags - -# Set default prefix for existing vertex collection -from InDetRecExample.InDetJobProperties import InDetFlags -if (not VertexD3PDAnalysisFlags.useAllVertexCollections()) and (not InDetFlags.useBeamConstraint()): - #Assume we're dumping NBC vertices - VertexD3PDAnalysisKeys.LabelDefaultVtx = 'vxnbc' - -## Switch off trigger-related objects for other info D3PD dumpers (e.g. MET, Muons, ...) -D3PDMakerFlags.DoTrigger=False - -## Set track/vertex details -TrackD3PDFlags.doTruth = rec.doTruth() -TrackD3PDFlags.storeDiagonalCovarianceAsErrors = False -TrackD3PDFlags.storeHitTruthMatching = True -TrackD3PDFlags.storeDetailedTruth = False -TrackD3PDFlags.storeTrackMomentum = True -TrackD3PDFlags.storePullsAndResiduals = True -TrackD3PDFlags.storeTrackInfo = True -TrackD3PDFlags.storeTrackFitQuality = True -TrackD3PDFlags.trackParametersAtGlobalPerigeeLevelOfDetails = 3 -TrackD3PDFlags.trackParametersAtPrimaryVertexLevelOfDetails = 2 -TrackD3PDFlags.trackParametersAtBeamSpotLevelOfDetails = 2 -TrackD3PDFlags.trackParametersAtBeamLineLevelOfDetails = 0 -TrackD3PDFlags.storeTrackParametersAtCalo = False -TrackD3PDFlags.storeTrackUnbiasedIPAtPV = True -TrackD3PDFlags.storeTrackPredictionAtBLayer = False -TrackD3PDFlags.storeTrackSummary = True -TrackD3PDFlags.storeTrackSummary.IDHits = True -TrackD3PDFlags.storeTrackSummary.IDHoles = True -TrackD3PDFlags.storeTrackSummary.IDSharedHits = True -TrackD3PDFlags.storeTrackSummary.IDOutliers = False -TrackD3PDFlags.storeTrackSummary.PixelInfoPlus = False -TrackD3PDFlags.storeTrackSummary.SCTInfoPlus = False -TrackD3PDFlags.storeTrackSummary.TRTInfoPlus = False -TrackD3PDFlags.storeTrackSummary.InfoPlus = False -TrackD3PDFlags.storeTrackSummary.MuonHits = False -TrackD3PDFlags.storeTrackSummary.MuonHoles = False -TrackD3PDFlags.storeTrackSummary.ExpectBLayer = True -TrackD3PDFlags.storeTrackSummary.HitSum = True -TrackD3PDFlags.storeTrackSummary.HoleSum = False -TrackD3PDFlags.storeTrackSummary.HitPattern = True -TrackD3PDFlags.storeTrackSummary.SiHits = False -TrackD3PDFlags.storeTrackSummary.TRTRatio = True -TrackD3PDFlags.storeTrackSummary.PixeldEdx = False -TrackD3PDFlags.storeTrackSummary.ElectronPID = False -TrackD3PDFlags.storeBLayerHitsOnTrack = False -TrackD3PDFlags.storePixelHitsOnTrack = False -if TrackD3PDFlags.storePixelHitsOnTrack(): - TrackD3PDFlags.storeBLayerHitsOnTrack = False -#TrackD3PDFlags.storeDetailedTrackPredictionAtBLayer = False -TrackD3PDFlags.storeSCTHitsOnTrack = False -TrackD3PDFlags.storeTRTHitsOnTrack = False -TrackD3PDFlags.storeBLayerOutliersOnTrack = False -TrackD3PDFlags.storePixelOutliersOnTrack = False -TrackD3PDFlags.storeSCTOutliersOnTrack = False -TrackD3PDFlags.storeTRTOutliersOnTrack = False -TrackD3PDFlags.storeBLayerHolesOnTrack = False -TrackD3PDFlags.storePixelHolesOnTrack = False -TrackD3PDFlags.storeSCTHolesOnTrack = False -TrackD3PDFlags.storeTRTHolesOnTrack = False -TrackD3PDFlags.storeVertexAssociation = True -TrackD3PDFlags.vertexPositionLevelOfDetails = 3 -TrackD3PDFlags.storeVertexType = True -TrackD3PDFlags.storeVertexFitQuality = True -TrackD3PDFlags.storeVertexKinematics = True -TrackD3PDFlags.storeVertexPurity = False -TrackD3PDFlags.storeVertexTrackAssociation = False -TrackD3PDFlags.storeVertexTrackIndexAssociation = True -if not VertexD3PDAnalysisFlags.useTracks(): - #If not storing tracks, do not store track-vertex association as well - TrackD3PDFlags.storeVertexTrackAssociation = False - TrackD3PDFlags.storeVertexTrackIndexAssociation = False - -# b-tagging info -from JetTagD3PDMaker.JetTagD3PDMakerFlags import JetTagD3PDFlags -JetTagD3PDFlags.Taggers.set_Value_and_Lock(['MV1', 'JetFitterCOMBNN']) - -### Use special VertexD3PDAnalysisFlags to trigger specific options diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexGroupD3PD_prodJobOFragment.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexGroupD3PD_prodJobOFragment.py deleted file mode 100644 index b227df7d11332ce3411d66933f06180c8d180e64..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexGroupD3PD_prodJobOFragment.py +++ /dev/null @@ -1,65 +0,0 @@ -# -## @file InDetD3PDMaker/share/VertexGroupD3PD_prodjobOFragment.py -## @brief Setup D3PD Maker algorithm for vertex group D3PD when running from Reco_trf.py -## @author Simone Pagan Griso -## @date Mar, 2012 -## -## Notes: -## - To include non beam-constrained and split vertices, use as preExec: -## InDetFlags.doVertexFindingForMonitoring.set_Value_and_Lock(True) -## InDetFlags.doSplitVertexFindingForMonitoring.set_Value_and_Lock(True) -## or use as preInclude InDetD3PDMaker/VertexGroupD3PD_configure.py -## and make sure that VertexD3PDAnalysisFlags.useAllVertexCollections = True -## (it is by default; if the algorithms are not run, it does not dump info) - -""" -Setup Vertex Group D3PD Maker algorithm when running from Reco_trf.py -""" - -from AthenaCommon.JobProperties import jobproperties -vtxprodFlags = jobproperties.D3PDProdFlags -from PrimaryDPDMaker.PrimaryDPDHelpers import buildFileName - -from InDetD3PDMaker.VertexD3PDAnalysisKeys import VertexD3PDAnalysisKeys -from InDetD3PDMaker.VertexD3PDAnalysisFlags import VertexD3PDAnalysisFlags - -### Configure Vertex D3PD Maker -VertexD3PDAnalysisFlags.useAllVertexCollections = True -VertexD3PDAnalysisFlags.useEventInfo=True -VertexD3PDAnalysisFlags.useTracks=True -VertexD3PDAnalysisFlags.useBeamspot=True -VertexD3PDAnalysisFlags.useBackgroundWord=True -VertexD3PDAnalysisFlags.useTrigger=True -VertexD3PDAnalysisFlags.useSecondaryVertex=False -VertexD3PDAnalysisFlags.useMET=True -VertexD3PDAnalysisFlags.useElectrons=True -VertexD3PDAnalysisFlags.useMuons=True -VertexD3PDAnalysisFlags.usePhotons=False -VertexD3PDAnalysisFlags.useJets=True -VertexD3PDAnalysisFlags.useTaus=False - -include("InDetD3PDMaker/VertexGroupD3PD_loadConfig.py") - -### Semi-automatic configuration steps -## The following needs to be given as preExec -## (it has to be set before including RecExCommon) -#if VertexD3PDAnalysisFlags.useAllVertexCollections: -# #Need to enable algorithms in IDRE -# from InDetRecExample.InDetJobProperties import InDetFlags -# InDetFlags.doVertexFindingForMonitoring.set_Value_and_Lock(True) -# InDetFlags.doSplitVertexFindingForMonitoring.set_Value_and_Lock(True) - -### Setup algorithm -if vtxprodFlags.WriteIDVTXD3PD.isVirtual: - raise NameError( "IDVTX set to be a virtual stream" ) - pass - -streamName = vtxprodFlags.WriteIDVTXD3PD.StreamName -fileName = buildFileName( vtxprodFlags.WriteIDVTXD3PD ) - -from OutputStreamAthenaPool.MultipleStreamManager import MSMgr -VertexGroupD3PDMaker = MSMgr.NewRootStream(vtxprodFlags.WriteIDVTXD3PD.StreamName, fileName, VertexD3PDAnalysisKeys.D3PDTreeName()) - -### Add objects to the algorithm -from InDetD3PDMaker.VertexGroupD3PD import VertexGroupD3PD -VertexGroupD3PD(VertexGroupD3PDMaker, **(VertexD3PDAnalysisFlags.D3PDMakerExtraDict())) diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexGroupD3PD_topOptions.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexGroupD3PD_topOptions.py deleted file mode 100644 index d58875b0aabf9b5a3cde2554a7042d36a2c9f20a..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexGroupD3PD_topOptions.py +++ /dev/null @@ -1,73 +0,0 @@ -# -## @file InDetD3PDMaker/share/VertexGroupD3PD_topOptions.py -## @brief Example of job options for producing Vertex Group D3PD (standalone, othewise use Reco_trf directly) -## @author Simone Pagan Griso -## @date Mar, 2012 -## - -""" -Example of job options for producing Vertex Group D3PD (standalone, othewise use Reco_trf directly) -""" - - -## Set input and configration -readESD=False -readAOD= not readESD -InputPath='/eliza18/atlas/spagan/VtxStudies/VtxPUTF/AOD/' -NEvtProcess=100 - -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -athenaCommonFlags.FilesInput = [InputPath+'mc11_valid.105200.T1_McAtNlo_Jimmy.recon.AOD.e835_s1256_s1258_r2529_tid464329_00/AOD.464329._000135.pool.root.1'] - -import AthenaPython.ConfigLib as apcl -cfg = apcl.AutoCfg(name = 'InDetRecExampleAutoConfig', input_files=athenaCommonFlags.FilesInput()) -#cfg = apcl.AutoCfg(cfg='everything', input_files=athenaCommonFlags.FilesInput()) -cfg.configure_job() - -theApp.EvtMax = NEvtProcess - -## Set specific options for D3PD production -from InDetD3PDMaker.VertexD3PDAnalysisFlags import VertexD3PDAnalysisFlags -VertexD3PDAnalysisFlags.useAllVertexCollections = True -VertexD3PDAnalysisFlags.useTrigger=True -VertexD3PDAnalysisFlags.useSecondaryVertex=True -VertexD3PDAnalysisFlags.useMET=True -VertexD3PDAnalysisFlags.useElectrons=True -VertexD3PDAnalysisFlags.useMuons=True -VertexD3PDAnalysisFlags.usePhotons=True -VertexD3PDAnalysisFlags.useJets=True -VertexD3PDAnalysisFlags.useTaus=True - -## Set other InDetRecExample configurations -doWriteESD = False -doWriteAOD = False -OutputLevel = INFO -doJiveXML = False -doVP1 = False -doAuditors = True -doEdmMonitor = False -doNameAuditor = False - -from RecExConfig.RecFlags import rec -rec.Commissioning=True - -from InDetRecExample.InDetJobProperties import InDetFlags -InDetFlags.disableInDetReco.set_Value_and_Lock(True) # Do not run ID reconstruction - -from InDetRecExample.InDetKeys import InDetKeys -if InDetFlags.doVertexFinding() and readAOD: - InDetKeys.Tracks = InDetKeys.TrackParticles() - print "InDetKeys.Tracks = "+InDetKeys.Tracks() - -if readESD: - InDetKeys.UnslimmedTracks = 'Tracks' - InDetKeys.UnslimmedTracksTruth = 'TrackTruthCollection' -if readAOD: - InDetKeys.McEventCollection = 'GEN_AOD' - -TrackCollectionKeys = [InDetKeys.Tracks()] -TrackCollectionTruthKeys = [InDetKeys.TracksTruth()] - - -## Now include main job options for D3PD production (with IDRE) -include("InDetD3PDMaker/VertexGroupD3PD_jobOptions.py") diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexLumiD3PD_configure.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexLumiD3PD_configure.py deleted file mode 100644 index fc18113b068a046e9c9a957e532750335443ae34..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexLumiD3PD_configure.py +++ /dev/null @@ -1,12 +0,0 @@ -# -## @file InDetD3PDMaker/share/VertexLumiD3PD_configure.py -## @brief PreInlcude file for Reco_trf.py to enable NBC and split vertices algorithms -## @author Simone Pagan Griso -## @date Mar, 2012 -## - -# Do not use beamspot constraint tools and cuts and -# enable non beamspot constrined vertex algorithm -# Note: The setting can still be over-written with a preExec -InDetFlags.useBeamConstraint.set_Value_and_Lock(False) -InDetFlags.doVertexFindingForMonitoring.set_Value_and_Lock(True) diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexLumiD3PD_prodJobOFragment.py b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexLumiD3PD_prodJobOFragment.py deleted file mode 100644 index 19fd760f01e41552348efee405efbd622c97a1fd..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/share/VertexLumiD3PD_prodJobOFragment.py +++ /dev/null @@ -1,64 +0,0 @@ -# -## @file InDetD3PDMaker/share/VertexLumiD3PD_prodjobOFragment.py -## @brief Setup D3PD Maker algorithm for luminosity measurement/debug -## @author Simone Pagan Griso -## @date Mar, 2012 -## -## Notes: -## - To include non beam-constrained, use as preExec: -## InDetFlags.doVertexFindingForMonitoring.set_Value_and_Lock(True) -## or use as preInclude InDetD3PDMaker/VertexLumiD3PD_configure.py -## and make sure that VertexD3PDAnalysisFlags.useAllVertexCollections = True -## (it is by default; if the algorithms are not run, it does not dump info) - -""" -Setup Vertex Lumi D3PD Maker algorithm when running from Reco_trf.py -""" - -from AthenaCommon.JobProperties import jobproperties -vtxprodFlags = jobproperties.D3PDProdFlags -from PrimaryDPDMaker.PrimaryDPDHelpers import buildFileName - -from InDetD3PDMaker.VertexD3PDAnalysisKeys import VertexD3PDAnalysisKeys -from InDetD3PDMaker.VertexD3PDAnalysisFlags import VertexD3PDAnalysisFlags - -### Configure Vertex D3PD Maker -VertexD3PDAnalysisFlags.useAllVertexCollections = False -VertexD3PDAnalysisFlags.useEventInfo=True -VertexD3PDAnalysisFlags.useTracks=False -VertexD3PDAnalysisFlags.useBeamspot=False -VertexD3PDAnalysisFlags.useTrigger=False -VertexD3PDAnalysisFlags.useBackgroundWord=True -VertexD3PDAnalysisFlags.useSecondaryVertex=False -VertexD3PDAnalysisFlags.useMET=False -VertexD3PDAnalysisFlags.useElectrons=False -VertexD3PDAnalysisFlags.useMuons=False -VertexD3PDAnalysisFlags.usePhotons=False -VertexD3PDAnalysisFlags.useJets=False -VertexD3PDAnalysisFlags.useTaus=False - -include("InDetD3PDMaker/VertexGroupD3PD_loadConfig.py") - - -### Semi-automatic configuration steps -## The following needs to be given as preExec -## (it has to be set before including RecExCommon) -#if VertexD3PDAnalysisFlags.useAllVertexCollections: -# #Need to enable algorithms in IDRE -# from InDetRecExample.InDetJobProperties import InDetFlags -# InDetFlags.doVertexFindingForMonitoring.set_Value_and_Lock(True) - -### Setup algorithm -if vtxprodFlags.WriteIDVTXLUMID3PD.isVirtual: - raise NameError( "IDVTXLUMID set to be a virtual stream" ) - pass - -streamName = vtxprodFlags.WriteIDVTXLUMID3PD.StreamName -fileName = buildFileName( vtxprodFlags.WriteIDVTXLUMID3PD ) - -from OutputStreamAthenaPool.MultipleStreamManager import MSMgr -VertexLumiD3PDMaker = MSMgr.NewRootStream(vtxprodFlags.WriteIDVTXLUMID3PD.StreamName, fileName, VertexD3PDAnalysisKeys.D3PDTreeName()) - -### Add objects to the algorithm -from InDetD3PDMaker.VertexGroupD3PD import VertexGroupD3PD -VertexGroupD3PD(VertexLumiD3PDMaker, **(VertexD3PDAnalysisFlags.D3PDMakerExtraDict())) diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/BeamSpotFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/BeamSpotFillerTool.cxx deleted file mode 100644 index 66646e6c31edac1340ab421db232b98ef17d5f5c..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/BeamSpotFillerTool.cxx +++ /dev/null @@ -1,95 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ -/** - * @file InDetD3PDMaker/src/BeamSpotFillerTool.cxx - * @author remi zaidan <zaidan@cern.ch> - * @date Jan, 2011 - * @brief Block filler tool for beam spot parameters. - */ - - -#include "BeamSpotFillerTool.h" -#include "VxVertex/VxCandidate.h" -#include "AthenaKernel/errorcheck.h" -#include "EventPrimitives/EventPrimitivesHelpers.h" -#include "TrkEventPrimitives/ParamDefs.h" - - -namespace D3PD { - - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -BeamSpotFillerTool::BeamSpotFillerTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ - book().ignore(); // Avoid coverity warnings. -} - - -/** - * @brief Book variables for this block. - */ -StatusCode BeamSpotFillerTool::book() -{ - - CHECK( addVariable ("x", m_x, "", -9999) ); - CHECK( addVariable ("y", m_y, "", -9999) ); - CHECK( addVariable ("z", m_z, "", -9999) ); - CHECK( addVariable ("sigma_x", m_sigma_x, "", -1 ) ); - CHECK( addVariable ("sigma_y", m_sigma_y, "", -1 ) ); - CHECK( addVariable ("sigma_z", m_sigma_z, "", -1 ) ); - CHECK( addVariable ("tilt_x", m_tilt_x, "", -1 ) ); - CHECK( addVariable ("tilt_y", m_tilt_y, "", -1 ) ); - - return StatusCode::SUCCESS; -} - - -/** - * @brief Fill one block --- type-safe version. - * @param p The input object. - * - * This is called once per object. The caller - * is responsible for arranging that all the pointers for booked variables - * are set appropriately upon entry. - */ -StatusCode BeamSpotFillerTool::fill (const Trk::RecVertex& p) -{ - - const Amg::Vector3D& pos = p.position(); - *m_x = pos.x(); - *m_y = pos.y(); - *m_z = pos.z(); - - const AmgSymMatrix(3)& m = p.covariancePosition(); - //*m_sigma_x = Amg::error(m,Trk::x); - //*m_sigma_y = Amg::error(m,Trk::y); - //*m_sigma_z = Amg::error(m,Trk::z); - - *m_sigma_x = sqrt(m(Trk::x,Trk::x)); - *m_sigma_y = sqrt(m(Trk::y,Trk::y)); - *m_sigma_z = sqrt(m(Trk::z,Trk::z)); - - double cxz = m(Trk::x, Trk::z); - double cyz = m(Trk::y, Trk::z); - - if(*m_sigma_z != 0) { - *m_tilt_x = atan(cxz / ( (*m_sigma_z)*(*m_sigma_z) )); - *m_tilt_y = atan(cyz / ( (*m_sigma_z)*(*m_sigma_z) )); - } - - return StatusCode::SUCCESS; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/BeamSpotFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/BeamSpotFillerTool.h deleted file mode 100644 index 3f6f4454f914d30f5716d87f906c488d4131de9d..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/BeamSpotFillerTool.h +++ /dev/null @@ -1,81 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ -/** - * @file InDetD3PDMaker/src/BeamSpotFillerTool.h - * @author remi zaidan <zaidan@cern.ch> - * @date Jan, 2011 - * @brief Block filler tool for beam spot. - */ - -#ifndef INDETD3PDMAKER_BEAMSPOTFILLERTOOL_H -#define INDETD3PDMAKER_BEAMSPOTFILLERTOOL_H - - -#include "D3PDMakerUtils/BlockFillerTool.h" -namespace Trk { - class RecVertex; -} - - -namespace D3PD { - - -/** - * @brief Block filler tool for vertex position. - */ -class BeamSpotFillerTool - : public BlockFillerTool<Trk::RecVertex> -{ -public: - typedef BlockFillerTool<Trk::RecVertex> Base; - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - BeamSpotFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - /// Book variables for this block. - virtual StatusCode book(); - - - /** - * @brief Fill one block --- type-safe version. - * @param p The input object. - * - * This is called once per object. The caller - * is responsible for arranging that all the pointers for booked variables - * are set appropriately upon entry. - */ - virtual StatusCode fill (const Trk::RecVertex& p); - -private: - - /// Variables: - // Beam spot position. - float* m_x; - float* m_y; - float* m_z; - // Beam spot size: - float* m_sigma_x; - float* m_sigma_y; - float* m_sigma_z; - // Beam spot tilt - float* m_tilt_x; - float* m_tilt_y; -}; - - -} // namespace D3PD - - -#endif // not INDETD3PDMAKER_BEAMSPOTFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/BeamSpotGetterTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/BeamSpotGetterTool.cxx deleted file mode 100644 index d91e4d9dad3af84cd1666869cbb5448816ad9fc1..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/BeamSpotGetterTool.cxx +++ /dev/null @@ -1,62 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#include "BeamSpotGetterTool.h" - -#include "InDetBeamSpotService/IBeamCondSvc.h" -#include "AthenaKernel/errorcheck.h" - -namespace D3PD { - -BeamSpotGetterTool::BeamSpotGetterTool(const std::string& type, - const std::string& name, - const IInterface* parent) : - Base(type, name, parent), - m_iBeamCondSvc(0) -{ - declareProperty("BeamCondSvcName", m_beamCondSvcName = "BeamCondSvc" ); -} - -BeamSpotGetterTool::~BeamSpotGetterTool(){ - -} - -StatusCode BeamSpotGetterTool::initialize(){ - - CHECK(Base::initialize()); - - // Pick up the BeamConditionService - if (service(m_beamCondSvcName, m_iBeamCondSvc).isFailure() || m_iBeamCondSvc == 0) { - REPORT_MESSAGE (MSG::WARNING) << "Could not find BeamCondSvc: " << m_beamCondSvcName; - REPORT_MESSAGE (MSG::WARNING) << "Will use nominal beamspot at (0,0,0)"; - } - - return StatusCode::SUCCESS; -} - -const Trk::RecVertex* BeamSpotGetterTool::get (bool /*allowMissing*/){ - - /// Pick up the beamspot parameters as a vertex object - Trk::RecVertex *bvx = 0; - if (m_iBeamCondSvc) { - bvx = new Trk::RecVertex(m_iBeamCondSvc->beamVtx()); - }else{ - // no beam service => create dummy beam spot - AmgSymMatrix(3) err; - Amg::Vector3D pos(0,0,0); - double ndf = 0; - double chi2 = 0; - bvx = new Trk::RecVertex(pos, err, ndf, chi2); // dummy beam spot - } - - return bvx; -} - -void BeamSpotGetterTool::releaseObject (const Trk::RecVertex* p){ - if(p) delete p; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/BeamSpotGetterTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/BeamSpotGetterTool.h deleted file mode 100644 index 5c741b4aa1495d0df500a9d1e617279aeaf84796..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/BeamSpotGetterTool.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#ifndef INDETD3PDMAKER_BEAMSPOTGETTERTOOL_H -#define INDETD3PDMAKER_BEAMSPOTGETTERTOOL_H - -#include "D3PDMakerUtils/ObjGetterTool.h" -#include "VxVertex/RecVertex.h" - -#include "GaudiKernel/ToolHandle.h" - -class IBeamCondSvc; - -namespace D3PD { - -class BeamSpotGetterTool : public D3PD::ObjGetterTool<Trk::RecVertex> { -public: - typedef D3PD::ObjGetterTool<Trk::RecVertex> Base; - - BeamSpotGetterTool(const std::string& type, - const std::string& name, - const IInterface* parent); - virtual ~BeamSpotGetterTool(); - - StatusCode initialize(); - - /** - get method: - use the beam spot service to extract beam spot parameters - wrap the info in a Trk::RecVertex object (position and covariance matrix - */ - virtual const Trk::RecVertex* get (bool allowMissing = false); - - /** - delete the pointer created by get - */ - virtual void releaseObject (const Trk::RecVertex* p); - -private: - - /* the beam condition service **/ - IBeamCondSvc* m_iBeamCondSvc; - std::string m_beamCondSvcName; - -}; // class BeamSpotGetterTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_BEAMSPOTGETTERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ClusterAssocFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ClusterAssocFillerTool.cxx deleted file mode 100644 index 157361cbf84a6c73b6e3a8510ffb380345992a5b..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ClusterAssocFillerTool.cxx +++ /dev/null @@ -1,375 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "ClusterAssocFillerTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "TrkTrack/TrackStateOnSurface.h" -#include "InDetRIO_OnTrack/SiClusterOnTrack.h" -#include "InDetRIO_OnTrack/TRT_DriftCircleOnTrack.h" -#include "InDetReadoutGeometry/SiDetectorElement.h" -#include "TrkEventPrimitives/LocalParameters.h" -#include "TrkEventPrimitives/TrackStateDefs.h" -//#include "TrkParameters/MeasuredTrackParameters.h" -#include "InDetIdentifier/PixelID.h" -#include "InDetIdentifier/SCT_ID.h" -#include "InDetIdentifier/TRT_ID.h" -#include "InDetPrepRawData/PixelCluster.h" -#include "InDetPrepRawData/SCT_Cluster.h" -#include "TrkCompetingRIOsOnTrack/CompetingRIOsOnTrack.h" -#include "EventPrimitives/EventPrimitivesHelpers.h" - -//using CLHEP::rotationZOf; - - -namespace D3PD { - - -ClusterAssocFillerTool::ClusterAssocFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : D3PD::BlockFillerTool<Trk::TrackStateOnSurface> (type, name, parent), - m_idHelper(0), - m_sctId(0) -{ - book().ignore(); // Avoid coverity warnings. -} - -StatusCode ClusterAssocFillerTool::initialize(){ - - CHECK( Base::initialize() ); - - // need Atlas id-helpers to identify sub-detectors, take them from detStore - if (detStore()->retrieve(m_idHelper, "AtlasID").isFailure()) { - REPORT_MESSAGE (MSG::ERROR) << "Could not get AtlasDetectorID helper"; - return StatusCode::FAILURE; - } - - if(detStore()->retrieve(m_sctId,"SCT_ID").isFailure() ){ - REPORT_MESSAGE (MSG::FATAL) << "Could not retrieve SCT helper"; - return StatusCode::FAILURE; - } - - return StatusCode::SUCCESS; -} - -StatusCode ClusterAssocFillerTool::book(){ - - - //CHECK( addVariable( "tsosPosition" , m_tsosPosition) ); - CHECK( addVariable( "clX" , m_clGlobX) ); - CHECK( addVariable( "clY" , m_clGlobY) ); - CHECK( addVariable( "clZ" , m_clGlobZ) ); - CHECK( addVariable( "clLocX" , m_clLocX) ); - CHECK( addVariable( "clLocY" , m_clLocY) ); - CHECK( addVariable( "clId" , m_id) ); - CHECK( addVariable( "clDetElementId" , m_detElementId) ); - CHECK( addVariable( "clDetType" , m_detType) ); - CHECK( addVariable( "clBEC" , m_bec) ); - CHECK( addVariable( "clLayer" , m_layer) ); - CHECK( addVariable( "locX" , m_locX) ); - CHECK( addVariable( "locY" , m_locY) ); - CHECK( addVariable( "errLocX" , m_err_locX) ); - CHECK( addVariable( "errLocY" , m_err_locY) ); - CHECK( addVariable( "covLocXY" , m_cov_locXY) ); - CHECK( addVariable( "x" , m_x) ); - CHECK( addVariable( "y" , m_y) ); - CHECK( addVariable( "z" , m_z) ); - CHECK( addVariable( "trkLocX" , m_trkLocX) ); - CHECK( addVariable( "trkLocY" , m_trkLocY) ); - CHECK( addVariable( "errTrkLocX" , m_err_trkLocX) ); - CHECK( addVariable( "errTrkLocY" , m_err_trkLocY) ); - CHECK( addVariable( "covTrkLocXY" , m_cov_trkLocXY) ); - CHECK( addVariable( "isCompetingRIO" , m_isCompetingRIO) ); - CHECK( addVariable( "size" , m_sizePhi) ); - CHECK( addVariable( "side" , m_sideModule) ); - CHECK( addVariable( "locPhi" , m_locPhi) ); - CHECK( addVariable( "locTheta" , m_locTheta) ); - CHECK( addVariable( "tsosType" , m_tsosType) ); - - - return StatusCode::SUCCESS; -} - -StatusCode ClusterAssocFillerTool::fill (const Trk::TrackStateOnSurface& tso) -{ - - this->clearData(); - - const InDet::SCT_Cluster* RawDataClus = 0; - - const Trk::TrackStateOnSurface* pTSoS = &tso; - long bitsetValue = (long)pTSoS->types().to_ulong(); - *m_tsosType = (int)bitsetValue; - - // TrackStateOnSurface part - - // measured hit/outlier - const Trk::MeasurementBase *measurement = pTSoS->measurementOnTrack(); - - // track parameters at wafer - const Trk::TrackParameters *tp = pTSoS->trackParameters(); - - // Fill the hit/oultier local/global position variables - if(measurement){ - - // local position - //for SCT only locX, locY ether not defined at all, i.e.-9999. - // or 0, when the second parameter defined - - //local parameters - const Trk::LocalParameters pars = measurement->localParameters(); - //local error matrix - const Amg::MatrixX err = measurement->localCovariance(); - - //>fix1.. this produced FPE OVERFLOW last time - // *m_locX = (float)pars[Trk::locX]; - // *m_locY = (float)pars[Trk::locY]; - if ( pars.contains(Trk::locX) ){ - double locX = pars[Trk::locX]; - if ( !(std::isinf(locX) || std::isnan(locX)) ){ - *m_locX = (float)locX; - *m_err_locX = (float)Amg::error(err,Trk::locX); - } - } - if ( pars.contains(Trk::locY) ){ - double locY = pars.get(Trk::locY); - if ( !(std::isinf(locY) || std::isnan(locY)) ){ - if ( locY<1e-07 ) locY=0.; - *m_locY = (float)locY; - *m_err_locY = (float)Amg::error(err,Trk::locY); - } - } - if ( *m_locX > -9900 && *m_locY > -9900 ){ - double locXY = err(Trk::locX, Trk::locY); - if ( !(std::isinf(locXY) || std::isnan(locXY)) ) - *m_cov_locXY = (float)locXY; - } - //<fix1 - - // global position - const Amg::Vector3D pos = measurement->globalPosition(); - //*m_x = (float)pos[Trk::x]; - //*m_y = (float)pos[Trk::y]; - //*m_z = (float)pos[Trk::z]; - *m_x = (float)pos.x(); - *m_y = (float)pos.y(); - *m_z = (float)pos.z(); - } - - // Fill the track local position at wafer - if(tp){ - - //const HepVector lp0 = tp->parameters(); - if ( tp->parameters().rows() > 1 ){ - *m_trkLocX=(float)tp->parameters()[Trk::locX]; //lp[Trk::locX]; - *m_trkLocY=(float)tp->parameters()[Trk::locY]; //lp[Trk::locY]; - - const AmgSymMatrix(5) *mtp = tp->covariance(); - if(mtp){ - - //const Trk::ErrorMatrix err = mtp->localErrorMatrix(); - - *m_err_trkLocX=(float)Amg::error(*mtp,Trk::locX); - *m_err_trkLocY=(float)Amg::error(*mtp,Trk::locY); - *m_cov_trkLocXY=(float)(*mtp)(Trk::locX, Trk::locY); - } - } - - } // if(tp) - - //*m_isCompetingRIO = 0; - const Trk::RIO_OnTrack *rio = dynamic_cast<const Trk::RIO_OnTrack*>(measurement); - if(!rio){ - const Trk::CompetingRIOsOnTrack *crot = dynamic_cast<const Trk::CompetingRIOsOnTrack*>(measurement); - if(crot){ - rio = & crot->rioOnTrack( crot->indexOfMaxAssignProb() ); - *m_isCompetingRIO = 1; - } - } - - - // Fill varaibles representing SCT Cluster local and global coordinates - if(rio){ - - Identifier id = rio->identify(); - - const Trk::TrkDetElementBase *de = rio->detectorElement(); - if(de){ - Identifier detId = de->identify(); - - if ( detId.is_valid() ) { - *m_detElementId = detId.get_compact(); - - if (m_idHelper->is_sct(detId)) { - *m_detType = (int)Trk::TrackState::SCT; - *m_bec = (int)m_sctId->barrel_ec(id); - *m_layer = (int)m_sctId->layer_disk(id); - *m_sideModule = (int)m_sctId->side(id); - const InDet::SCT_Cluster *clus = dynamic_cast<const InDet::SCT_Cluster*>(rio->prepRawData()); - if(clus){ - const InDet::SiWidth cw = clus->width(); - *m_sizePhi = (int)cw.colRow().x(); //cw.colRow()[0]; - RawDataClus = clus; - - *m_clGlobX = (float)RawDataClus->globalPosition().x(); - *m_clGlobY = (float)RawDataClus->globalPosition().y(); - *m_clGlobZ = (float)RawDataClus->globalPosition().z(); - const Amg::Vector2D& locpos = RawDataClus->localPosition(); - - if ( !(std::isinf(locpos[Trk::locX]) || std::isnan(locpos[Trk::locX])) ) - *m_clLocX = (float)locpos[Trk::locX]; - - if ( !(std::isinf(locpos[Trk::locY]) || std::isnan(locpos[Trk::locY])) ){ - - if (locpos[Trk::locY]<1e-07) - *m_clLocY=0.; - else - *m_clLocY = (float)locpos(Trk::locY);//locpos.get?? - - } - - } - } - } - else { - REPORT_MESSAGE (MSG::WARNING) << "Pointer to detector element is not valid"; - } - } - } // if rio - - - // Fill local incidence angles - if ( measurement && rio && tp ) { - - const Trk::TrkDetElementBase *de = rio->detectorElement(); - - if(de){ - Identifier detId = de->identify(); - - if ( detId.is_valid() ) { - if ( m_idHelper->is_sct(detId)) { - - const InDetDD::SiDetectorElement *side = dynamic_cast<const InDetDD::SiDetectorElement *>(de); - if ( side ){ - - //fix 2 is the modification of loc inc. angles - //const InDet::SCT_Cluster *clus = dynamic_cast<const InDet::SCT_Cluster*>(rio->prepRawData()); - double sinAlpha = 0.; - if(RawDataClus){ - // local Stereo anlge of strip with respect to locY axis - // always 0. for Barrel modules - sinAlpha = side->sinStereoLocal(RawDataClus->localPosition()); - } - - // normal component of the wafer's local coordinate system - // (along global R for Barrel and global Z for Endcaps) - Amg::Vector3D mynormal = side->normal(); - - // side->phiAxis() is the X component of wafer's local coordinates - //(goes across the strips in increasing global Phi direction) - // side->etaAxis() is the Y component of wafer's local coordinates - //(goes along the strips in increasing global Eta direction) - - // Here we rotate around local Z axis to account for strip local stereo angle if any (EC) - // "-" is because rotation is defined in the counter-clockwise sense, - // and we need to go back (clockwise) to align the local axes with the - - Amg::Transform3D rotationZ; - //rotationZ.setIdentity(); - rotationZ = Amg::AngleAxis3D(asin(-sinAlpha),Amg::Vector3D(0.,0.,1.)); - Amg::Vector3D myphiax = rotationZ.linear() * side->phiAxis(); - Amg::Vector3D myetaax = rotationZ.linear() * side->etaAxis(); - - Amg::Vector3D mytrack = tp->momentum(); - - //Vector3D<double> mynormal = side->normal(); - //Vector3D<double> myphiax = side->phiAxis(); - //Vector3D<double> myetaax = side->etaAxis(); - float trketacomp = (float)mytrack.dot(myetaax); - float trkphicomp = (float)mytrack.dot(myphiax); - float trknormcomp = (float)mytrack.dot(mynormal); - if (fabs(trknormcomp*1e07)>0 ){ - const double inv_trknormcomp = 1. / trknormcomp; - *m_locPhi = (float)atan(trkphicomp * inv_trknormcomp); //(float)atan2(trkphicomp,trknormcomp); - *m_locTheta = (float)atan(trketacomp * inv_trknormcomp); //(float)atan2(trketacomp,trknormcomp); - } - - /* Old... - Vector3D<double> mytrack = tp->momentum(); - - Vector3D<double> mynormal = side->normal(); - - Vector3D<double> myphiax = side->phiAxis(); - Vector3D<double> myetaax = side->etaAxis(); - float trketacomp = (float)mytrack.dot(myetaax); - float trkphicomp = (float)mytrack.dot(myphiax); - float trknormcomp = (float)mytrack.dot(mynormal); - *m_locPhi = (float)atan2(trkphicomp,trknormcomp); - *m_locTheta = (float)atan2(trketacomp,trknormcomp); - ....end...old */ - - // For x-check. To be removed when uploading.Start - /* - *m_locPhiOld = (float)atan2(trkphicomp,trknormcomp); - *m_locThetaOld = (float)atan2(trketacomp,trknormcomp); - //Vector3D<double> mynormal = side->normal(); - Vector3D<double> myphiax0 = side->phiAxis(); - Vector3D<double> myetaax0 = side->etaAxis(); - float trketacomp0 = (float)mytrack.dot(myetaax0); - float trkphicomp0 = (float)mytrack.dot(myphiax0); - *m_locPhiOldNotCor = (float)atan2(trkphicomp0,trknormcomp); - *m_locThetaOldNotCor = (float)atan2(trketacomp0,trknormcomp); - // For x-check. To be removed when uploading.End - */ - } - } - } - else{ - REPORT_MESSAGE (MSG::WARNING) << "Pointer to detector element is not valid"; - } - } - } // if measurement && rio && tp - - return StatusCode::SUCCESS; -} - -void ClusterAssocFillerTool::clearData(){ - - *m_clGlobX= -9999.; - *m_clGlobY= -9999.; - *m_clGlobZ= -9999.; - *m_clLocX= -9999.; - *m_clLocY= -9999.; - *m_locX= -9999.; - *m_locY= -9999.; - *m_err_locX= -9999.; - *m_err_locY= -9999.; - *m_cov_locXY= -9999.; - *m_x= -9999.; - *m_y= -9999.; - *m_z= -9999.; - *m_trkLocX= -9999.; - *m_trkLocY= -9999.; - *m_err_trkLocX= -9999.; - *m_err_trkLocY= -9999.; - *m_cov_trkLocXY= -9999.; - *m_isCompetingRIO= 0; - *m_sizePhi= 0.; - *m_sideModule = -9999; - *m_locPhi= -9999.; - *m_locTheta= -9999.; - *m_tsosType= (int)Trk::TrackStateOnSurface::Unknown; - - *m_id= 0; // unique identifier for a cluster - *m_detElementId= 0; // unique identifier for a detector element - *m_detType= Trk::TrackState::unidentified; - *m_bec= -9999.; - *m_layer= -1; - -} - - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ClusterAssocFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ClusterAssocFillerTool.h deleted file mode 100644 index 022fc0d3d1504d9458d4dba2d1e48b31a08e187a..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ClusterAssocFillerTool.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_CLUSTERASSOCFILLERTOOL_H -#define INDETD3PDMAKER_CLUSTERASSOCFILLERTOOL_H - -#include "D3PDMakerUtils/BlockFillerTool.h" - -#include "Identifier/Identifier.h" - -class AtlasDetectorID; -class PixelID; -class SCT_ID; -class TRT_ID; - -namespace Trk{ -class TrackStateOnSurface; -} - -namespace D3PD { - -class ClusterAssocFillerTool - : public D3PD::BlockFillerTool<Trk::TrackStateOnSurface> -{ -public: - typedef D3PD::BlockFillerTool<Trk::TrackStateOnSurface> Base; - - ClusterAssocFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode fill (const Trk::TrackStateOnSurface &p); - -private: - - void clearData(); - - const AtlasDetectorID* m_idHelper; - const SCT_ID* m_sctId; - - - float *m_clGlobX; - float *m_clGlobY; - float *m_clGlobZ; - float *m_clLocX; - float *m_clLocY; - float *m_locX; - float *m_locY; - float *m_err_locX; - float *m_err_locY; - float *m_cov_locXY; - float *m_x; - float *m_y; - float *m_z; - float *m_trkLocX; - float *m_trkLocY; - float *m_err_trkLocX; - float *m_err_trkLocY; - float *m_cov_trkLocXY; - int *m_isCompetingRIO; - int *m_sizePhi; - int *m_sideModule; - float *m_locPhi; - float *m_locTheta; - int *m_tsosType; - Identifier::value_type *m_id; // unique identifier for a cluster - Identifier::value_type *m_detElementId; // unique identifier for a detector element - int *m_detType; - int *m_bec; - int *m_layer; - - -}; // class ClusterAssocFillerTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_CLUSTERASSOCFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ClusterAssocPixelFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ClusterAssocPixelFillerTool.cxx deleted file mode 100644 index 52b26947aacc84eb8c7f20c67dd588b917e4eabd..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ClusterAssocPixelFillerTool.cxx +++ /dev/null @@ -1,372 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "ClusterAssocPixelFillerTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "TrkTrack/TrackStateOnSurface.h" -#include "InDetRIO_OnTrack/SiClusterOnTrack.h" -#include "InDetRIO_OnTrack/TRT_DriftCircleOnTrack.h" -#include "InDetReadoutGeometry/SiDetectorElement.h" -#include "TrkEventPrimitives/LocalParameters.h" -#include "TrkEventPrimitives/TrackStateDefs.h" -#include "InDetIdentifier/PixelID.h" -#include "InDetIdentifier/SCT_ID.h" -#include "InDetIdentifier/TRT_ID.h" -#include "InDetPrepRawData/PixelCluster.h" -#include "InDetPrepRawData/SCT_Cluster.h" -#include "TrkCompetingRIOsOnTrack/CompetingRIOsOnTrack.h" -#include "EventPrimitives/EventPrimitivesHelpers.h" - - -namespace D3PD { - - -ClusterAssocPixelFillerTool::ClusterAssocPixelFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : D3PD::BlockFillerTool<Trk::TrackStateOnSurface> (type, name, parent), - m_idHelper(0), - m_pixelId(0) -{ - book().ignore(); // Avoid coverity warnings. -} - -StatusCode ClusterAssocPixelFillerTool::initialize(){ - - CHECK( Base::initialize() ); - - // need Atlas id-helpers to identify sub-detectors, take them from detStore - if (detStore()->retrieve(m_idHelper, "AtlasID").isFailure()) { - REPORT_MESSAGE (MSG::ERROR) << "Could not get AtlasDetectorID helper"; - return StatusCode::FAILURE; - } - - if(detStore()->retrieve(m_pixelId,"PixelID").isFailure() ){ - REPORT_MESSAGE (MSG::FATAL) << "Could not retrieve Pixel helper"; - return StatusCode::FAILURE; - } - - return StatusCode::SUCCESS; -} - -StatusCode ClusterAssocPixelFillerTool::book(){ - - - //CHECK( addVariable( "tsosPosition" , m_tsosPosition) ); - CHECK( addVariable( "clX" , m_clGlobX) ); - CHECK( addVariable( "clY" , m_clGlobY) ); - CHECK( addVariable( "clZ" , m_clGlobZ) ); - CHECK( addVariable( "clLocX" , m_clLocX) ); - CHECK( addVariable( "clLocY" , m_clLocY) ); - CHECK( addVariable( "clId" , m_id) ); - CHECK( addVariable( "clDetElementId" , m_detElementId) ); - CHECK( addVariable( "clDetType" , m_detType) ); - CHECK( addVariable( "clBEC" , m_bec) ); - CHECK( addVariable( "clLayer" , m_layer) ); - CHECK( addVariable( "locX" , m_locX) ); - CHECK( addVariable( "locY" , m_locY) ); - CHECK( addVariable( "errLocX" , m_err_locX) ); - CHECK( addVariable( "errLocY" , m_err_locY) ); - CHECK( addVariable( "covLocXY" , m_cov_locXY) ); - CHECK( addVariable( "x" , m_x) ); - CHECK( addVariable( "y" , m_y) ); - CHECK( addVariable( "z" , m_z) ); - CHECK( addVariable( "trkLocX" , m_trkLocX) ); - CHECK( addVariable( "trkLocY" , m_trkLocY) ); - CHECK( addVariable( "errTrkLocX" , m_err_trkLocX) ); - CHECK( addVariable( "errTrkLocY" , m_err_trkLocY) ); - CHECK( addVariable( "covTrkLocXY" , m_cov_trkLocXY) ); - CHECK( addVariable( "isCompetingRIO" , m_isCompetingRIO) ); - CHECK( addVariable( "size" , m_sizePhi) ); - //CHECK( addVariable( "side" , m_sideModule) ); - CHECK( addVariable( "locPhi" , m_locPhi) ); - CHECK( addVariable( "locTheta" , m_locTheta) ); - CHECK( addVariable( "tsosType" , m_tsosType) ); - - - return StatusCode::SUCCESS; -} - -StatusCode ClusterAssocPixelFillerTool::fill (const Trk::TrackStateOnSurface& tso) -{ - - this->clearData(); - - const InDet::PixelCluster* RawDataClus = 0; - - const Trk::TrackStateOnSurface* pTSoS = &tso; - long bitsetValue = (long)pTSoS->types().to_ulong(); - *m_tsosType = (int)bitsetValue; - - // TrackStateOnSurface part - - // measured hit/outlier - const Trk::MeasurementBase *measurement = pTSoS->measurementOnTrack(); - - // track parameters at wafer - const Trk::TrackParameters *tp = pTSoS->trackParameters(); - - // Fill the hit/oultier local/global position variables - if(measurement){ - - // local position - //for Pixel only locX, locY ether not defined at all, i.e.-9999. - // or 0, when the second parameter defined - - //local parameters - const Trk::LocalParameters pars = measurement->localParameters(); - //local error matrix - const AmgSymMatrix(5) err = measurement->localCovariance(); - - //>fix1.. this produced FPE OVERFLOW last time - // *m_locX = (float)pars[Trk::locX]; - // *m_locY = (float)pars[Trk::locY]; - if ( pars.contains(Trk::locX) ){ - double locX = pars[Trk::locX]; - if ( !(std::isinf(locX) || std::isnan(locX)) ){ - *m_locX = (float)locX; - *m_err_locX = (float)Amg::error(err,Trk::locX); - } - } - if ( pars.contains(Trk::locY) ){ - double locY = pars.get(Trk::locY); - if ( !(std::isinf(locY) || std::isnan(locY)) ){ - if ( locY<1e-07 ) locY=0.; - *m_locY = (float)locY; - *m_err_locY = (float)Amg::error(err,Trk::locY); - } - } - if ( *m_locX > -9900 && *m_locY > -9900 ){ - double locXY = err(Trk::locX, Trk::locY); - if ( !(std::isinf(locXY) || std::isnan(locXY)) ) - *m_cov_locXY = (float)locXY; - } - //<fix1 - - // global position - const Amg::Vector3D pos = measurement->globalPosition(); - //*m_x = (float)pos[Trk::x]; - //*m_y = (float)pos[Trk::y]; - //*m_z = (float)pos[Trk::z]; - *m_x = (float)pos.x(); - *m_y = (float)pos.y(); - *m_z = (float)pos.z(); - } - - // Fill the track local position at wafer - if(tp){ - - //const HepVector lp0 = tp->parameters(); - if ( tp->parameters().rows() > 1 ){ - *m_trkLocX=(float)tp->parameters()[Trk::locX]; //lp[Trk::locX]; - *m_trkLocY=(float)tp->parameters()[Trk::locY]; //lp[Trk::locY]; - - const AmgSymMatrix(5) *mtp = tp->covariance(); - if(mtp){ - - //const Trk::ErrorMatrix err = mtp->localErrorMatrix(); - - *m_err_trkLocX=(float)Amg::error(*mtp,Trk::locX); - *m_err_trkLocY=(float)Amg::error(*mtp,Trk::locY); - *m_cov_trkLocXY=(float)(*mtp)(Trk::locX, Trk::locY); - } - } - - } // if(tp) - - //*m_isCompetingRIO = 0; - const Trk::RIO_OnTrack *rio = dynamic_cast<const Trk::RIO_OnTrack*>(measurement); - if(!rio){ - const Trk::CompetingRIOsOnTrack *crot = dynamic_cast<const Trk::CompetingRIOsOnTrack*>(measurement); - if(crot){ - rio = &crot->rioOnTrack( crot->indexOfMaxAssignProb() ); - *m_isCompetingRIO = 1; - } - } - - - // Fill varaibles representing Pixel Cluster local and global coordinates - if(rio){ - - Identifier id = rio->identify(); - - const Trk::TrkDetElementBase *de = rio->detectorElement(); - if(de){ - Identifier detId = de->identify(); - - if ( detId.is_valid() ) { - *m_detElementId = detId.get_compact(); - - if (m_idHelper->is_pixel(detId)) { - *m_detType = (int)Trk::TrackState::Pixel; - *m_bec = (int)m_pixelId->barrel_ec(id); - *m_layer = (int)m_pixelId->layer_disk(id); - //*m_sideModule = (int)m_pixelId->side(id); - const InDet::PixelCluster *clus = dynamic_cast<const InDet::PixelCluster*>(rio->prepRawData()); - if(clus){ - const InDet::SiWidth cw = clus->width(); - *m_sizePhi = (int)cw.colRow().x(); //cw.colRow()[0]; - RawDataClus = clus; - - *m_clGlobX = (float)RawDataClus->globalPosition().x(); - *m_clGlobY = (float)RawDataClus->globalPosition().y(); - *m_clGlobZ = (float)RawDataClus->globalPosition().z(); - const Amg::Vector2D& locpos = RawDataClus->localPosition(); - - if ( !(std::isinf(locpos[Trk::locX]) || std::isnan(locpos[Trk::locX])) ) - *m_clLocX = (float)locpos[Trk::locX]; - - if ( !(std::isinf(locpos[Trk::locY]) || std::isnan(locpos[Trk::locY])) ){ - - if (locpos[Trk::locY]<1e-07) - *m_clLocY=0.; - else - *m_clLocY = (float)locpos(Trk::locY); - - } - - } - } - } - else { - REPORT_MESSAGE (MSG::WARNING) << "Pointer to detector element is not valid"; - } - } - } // if rio - - - // Fill local incidence angles - if ( measurement && rio && tp ) { - - const Trk::TrkDetElementBase *de = rio->detectorElement(); - - if(de){ - Identifier detId = de->identify(); - - if ( detId.is_valid() ) { - if ( m_idHelper->is_pixel(detId)) { - - const InDetDD::SiDetectorElement *side = dynamic_cast<const InDetDD::SiDetectorElement *>(de); - if ( side ){ - - //fix 2 is the modification of loc inc. angles - //const InDet::PixelCluster *clus = dynamic_cast<const InDet::PixelCluster*>(rio->prepRawData()); - double sinAlpha = 0.; - if(RawDataClus){ - // local Stereo anlge of strip with respect to locY axis - // always 0. for Barrel modules - sinAlpha = side->sinStereoLocal(RawDataClus->localPosition()); - } - - // normal component of the wafer's local coordinate system - // (along global R for Barrel and global Z for Endcaps) - Amg::Vector3D mynormal = side->normal(); - - // side->phiAxis() is the X component of wafer's local coordinates - //(goes across the strips in increasing global Phi direction) - // side->etaAxis() is the Y component of wafer's local coordinates - //(goes along the strips in increasing global Eta direction) - - // Here we rotate around local Z axis to account for strip local stereo angle if any (EC) - // "-" is because rotation is defined in the counter-clockwise sense, - // and we need to go back (clockwise) to align the local axes with the - Amg::Transform3D rotationZ; - //rotationZ.setIdentity(); - rotationZ = Amg::AngleAxis3D(asin(-sinAlpha),Amg::Vector3D(0.,0.,1.)); - - Amg::Vector3D myphiax = rotationZ.linear() * side->phiAxis(); - Amg::Vector3D myetaax = rotationZ.linear() * side->etaAxis(); - - Amg::Vector3D mytrack = tp->momentum(); - - //Vector3D<double> mynormal = side->normal(); - //Vector3D<double> myphiax = side->phiAxis(); - //Vector3D<double> myetaax = side->etaAxis(); - float trketacomp = (float)mytrack.dot(myetaax); - float trkphicomp = (float)mytrack.dot(myphiax); - float trknormcomp = (float)mytrack.dot(mynormal); - if (fabs(trknormcomp*1e07)>0 ){ - const double inv_trknormcomp = 1. / trknormcomp; - *m_locPhi = (float)atan(trkphicomp * inv_trknormcomp); //(float)atan2(trkphicomp,trknormcomp); - *m_locTheta = (float)atan(trketacomp * inv_trknormcomp); //(float)atan2(trketacomp,trknormcomp); - } - - /* Old... - Vector3D<double> mytrack = tp->momentum(); - - Vector3D<double> mynormal = side->normal(); - - Vector3D<double> myphiax = side->phiAxis(); - Vector3D<double> myetaax = side->etaAxis(); - float trketacomp = (float)mytrack.dot(myetaax); - float trkphicomp = (float)mytrack.dot(myphiax); - float trknormcomp = (float)mytrack.dot(mynormal); - *m_locPhi = (float)atan2(trkphicomp,trknormcomp); - *m_locTheta = (float)atan2(trketacomp,trknormcomp); - ....end...old */ - - // For x-check. To be removed when uploading.Start - /* - *m_locPhiOld = (float)atan2(trkphicomp,trknormcomp); - *m_locThetaOld = (float)atan2(trketacomp,trknormcomp); - //Vector3D<double> mynormal = side->normal(); - Vector3D<double> myphiax0 = side->phiAxis(); - Vector3D<double> myetaax0 = side->etaAxis(); - float trketacomp0 = (float)mytrack.dot(myetaax0); - float trkphicomp0 = (float)mytrack.dot(myphiax0); - *m_locPhiOldNotCor = (float)atan2(trkphicomp0,trknormcomp); - *m_locThetaOldNotCor = (float)atan2(trketacomp0,trknormcomp); - // For x-check. To be removed when uploading.End - */ - } - } - } - else{ - REPORT_MESSAGE (MSG::WARNING) << "Pointer to detector element is not valid"; - } - } - } // if measurement && rio && tp - - return StatusCode::SUCCESS; -} - -void ClusterAssocPixelFillerTool::clearData(){ - - *m_clGlobX= -9999.; - *m_clGlobY= -9999.; - *m_clGlobZ= -9999.; - *m_clLocX= -9999.; - *m_clLocY= -9999.; - *m_locX= -9999.; - *m_locY= -9999.; - *m_err_locX= -9999.; - *m_err_locY= -9999.; - *m_cov_locXY= -9999.; - *m_x= -9999.; - *m_y= -9999.; - *m_z= -9999.; - *m_trkLocX= -9999.; - *m_trkLocY= -9999.; - *m_err_trkLocX= -9999.; - *m_err_trkLocY= -9999.; - *m_cov_trkLocXY= -9999.; - *m_isCompetingRIO= 0; - *m_sizePhi= 0.; - //*m_sideModule = -9999; - *m_locPhi= -9999.; - *m_locTheta= -9999.; - *m_tsosType= (int)Trk::TrackStateOnSurface::Unknown; - - *m_id= 0; // unique identifier for a cluster - *m_detElementId= 0; // unique identifier for a detector element - *m_detType= Trk::TrackState::unidentified; - *m_bec= -9999.; - *m_layer= -1; - -} - - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ClusterAssocPixelFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ClusterAssocPixelFillerTool.h deleted file mode 100644 index 7e206e81eb59e3a3cee4e1e858e3cb4d33425fb0..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ClusterAssocPixelFillerTool.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_CLUSTERASSOCPIXELFILLERTOOL_H -#define INDETD3PDMAKER_CLUSTERASSOCPIXELFILLERTOOL_H - -#include "D3PDMakerUtils/BlockFillerTool.h" - -#include "Identifier/Identifier.h" - -class AtlasDetectorID; -class PixelID; -class SCT_ID; -class TRT_ID; - -namespace Trk{ -class TrackStateOnSurface; -} - -namespace D3PD { - -class ClusterAssocPixelFillerTool - : public D3PD::BlockFillerTool<Trk::TrackStateOnSurface> -{ -public: - typedef D3PD::BlockFillerTool<Trk::TrackStateOnSurface> Base; - - ClusterAssocPixelFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode fill (const Trk::TrackStateOnSurface &p); - -private: - - void clearData(); - - const AtlasDetectorID* m_idHelper; - const PixelID* m_pixelId; - - - float *m_clGlobX; - float *m_clGlobY; - float *m_clGlobZ; - float *m_clLocX; - float *m_clLocY; - float *m_locX; - float *m_locY; - float *m_err_locX; - float *m_err_locY; - float *m_cov_locXY; - float *m_x; - float *m_y; - float *m_z; - float *m_trkLocX; - float *m_trkLocY; - float *m_err_trkLocX; - float *m_err_trkLocY; - float *m_cov_trkLocXY; - int *m_isCompetingRIO; - int *m_sizePhi; - //int *m_sideModule; - float *m_locPhi; - float *m_locTheta; - int *m_tsosType; - Identifier::value_type *m_id; // unique identifier for a cluster - Identifier::value_type *m_detElementId; // unique identifier for a detector element - int *m_detType; - int *m_bec; - int *m_layer; - - -}; // class ClusterAssocPixelFillerTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_CLUSTERASSOCPIXELFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ErrorMatrixCovarianceFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ErrorMatrixCovarianceFillerTool.cxx deleted file mode 100644 index bd8043bb96f27c22f3a2e60166a85cd9bbb8599d..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ErrorMatrixCovarianceFillerTool.cxx +++ /dev/null @@ -1,114 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id$ -/** - * @file InDetD3PDMaker/ErrorMatrixCovarianceFillerTool.cxx - * @author scott snyder <snyder@bnl.gov> - * @date Jun, 2012 - * @brief Fill covariance elements from ErrorMatrix. - */ - - -#include "ErrorMatrixCovarianceFillerTool.h" -//#include "TrkEventPrimitives/ErrorMatrix.h" -#include "AthenaKernel/errorcheck.h" - - -namespace D3PD { - - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -ErrorMatrixCovarianceFillerTool::ErrorMatrixCovarianceFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : D3PD::BlockFillerTool<AmgSymMatrix(5)> (type, name, parent) -{ - declareProperty ("LocalType", m_localType = "CYLINDRICAL", - "Type of local variables: " - "CYLINDRICAL -- d0/z0; CARTESIAN -- locX/loxY; " - "NONE -- not written."); - declareProperty ("FillThetaAndQoverP", m_fillThetaAndQoverP = true, - "Should theta and qoverp be filled?"); - declareProperty ("FillPhi", m_fillPhi=true, - "Should the phi variable be filled?"); - declareProperty ("DefaultValue", m_defaultValue = 0, - "Default value to which to set unfilled variables."); -} - - -/** - * @brief Book variables for this block. - */ -StatusCode ErrorMatrixCovarianceFillerTool::book() -{ - std::vector<Trk::ParamDefs> varcodes; - std::vector<std::string> varnames; - - if (m_localType == "CYLINDRICAL") { - varcodes.push_back (Trk::loc1); varnames.push_back ("d0"); - varcodes.push_back (Trk::loc2); varnames.push_back ("z0"); - } - else if (m_localType == "CARTESIAN") { - varcodes.push_back (Trk::loc1); varnames.push_back ("locX"); - varcodes.push_back (Trk::loc2); varnames.push_back ("locY"); - } - - if (m_fillPhi) { - varcodes.push_back (Trk::phi0); varnames.push_back ("phi"); - } - - if (m_fillThetaAndQoverP){ - varcodes.push_back (Trk::theta); varnames.push_back ("theta"); - varcodes.push_back (Trk::qOverP); varnames.push_back ("qoverp"); - } - - size_t n = varcodes.size(); - m_vars.clear(); - m_vars.resize (n * (n-1) / 2); - - size_t ipos = 0; - for (size_t i = 0; i < n; i++) { - for (size_t j = i+1; j < n; j++) { - assert (ipos < m_vars.size()); - std::string name = varnames[i] + "_" + varnames[j] + "_err"; - CHECK( addVariable (name, m_vars[ipos].var, - varnames[i] + " / " + varnames[j] + " covariance", - m_defaultValue) ); - m_vars[ipos].v1 = varcodes[i]; - m_vars[ipos].v2 = varcodes[j]; - ++ipos; - } - } - assert (ipos == m_vars.size()); - - return StatusCode::SUCCESS; -} - - -/** - * @brief Fill one block --- type-safe version. - * @param p The input object. - * - * This is called once per object. The caller - * is responsible for arranging that all the pointers for booked variables - * are set appropriately upon entry. - */ - StatusCode ErrorMatrixCovarianceFillerTool::fill (const AmgSymMatrix(5) &p) -{ - for (size_t ipos = 0; ipos < m_vars.size(); ipos++) { - Var& v = m_vars[ipos]; - *v.var = p(v.v1, v.v2); - } - - return StatusCode::SUCCESS; -} - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ErrorMatrixCovarianceFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ErrorMatrixCovarianceFillerTool.h deleted file mode 100644 index 6cb21641004f74e33c526c61b6a73fa649281a0b..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ErrorMatrixCovarianceFillerTool.h +++ /dev/null @@ -1,102 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id$ -/** - * @file InDetD3PDMaker/ErrorMatrixCovarianceFillerTool.h - * @author scott snyder <snyder@bnl.gov> - * @date Jun, 2012 - * @brief Fill covariance elements from ErrorMatrix. - */ - - -#ifndef INDETD3PDMAKER_ERRORMATRIXCOVARIANCEFILLERTOOL_H -#define INDETD3PDMAKER_ERRORMATRIXCOVARIANCEFILLERTOOL_H - - -#include "D3PDMakerUtils/BlockFillerTool.h" -#include "TrkEventPrimitives/ParamDefs.h" -#include "EventPrimitives/EventPrimitives.h" -#include <vector> - - - -namespace D3PD { - - -/** - * @brief Fill covariance elements from ErrorMatrix. - */ -class ErrorMatrixCovarianceFillerTool - : public D3PD::BlockFillerTool<AmgSymMatrix(5)> -{ -public: - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - ErrorMatrixCovarianceFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - /** - * @brief Book variables for this block. - */ - virtual StatusCode book(); - - - /** - * @brief Fill one block --- type-safe version. - * @param p The input object. - * - * This is called once per object. The caller - * is responsible for arranging that all the pointers for booked variables - * are set appropriately upon entry. - */ - virtual StatusCode fill (const AmgSymMatrix(5) &p); - - -private: - /// Parameter: Type of local variables: - /// CYLINDRICAL -- d0/z0; CARTESIAN -- locX/loxY; NONE -- not written. - std::string m_localType; - - /// Parameter: Should theta and qoverp be filled? - bool m_fillThetaAndQoverP; - - /// Parameter: Should the phi variable be filled? - bool m_fillPhi; - - /// Parameter: Default value to which to set unfilled variables. - float m_defaultValue; - - - struct Var { - /// The D3PD variable being filled. - float* var; - - /// First parameter code for this variable. - Trk::ParamDefs v1; - - /// Second parameter code for this variable. - Trk::ParamDefs v2; - - Var() : var(0), v1(Trk::d0), v2(Trk::z0) {} - }; - - - /// Variables being filled. - std::vector<Var> m_vars; -}; - - -} // namespace D3PD - - -#endif // not INDETD3PDMAKER_ERRORMATRIXCOVARIANCEFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ErrorMatrixErrorFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ErrorMatrixErrorFillerTool.cxx deleted file mode 100644 index 9534f3071b3ac35123c2e819e15218ed7f90e975..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ErrorMatrixErrorFillerTool.cxx +++ /dev/null @@ -1,114 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id$ -/** - * @file InDetD3PDMaker/ErrorMatrixErrorFillerTool.cxx - * @author scott snyder <snyder@bnl.gov> - * @date May, 2012 - * @brief Fill error elements from ErrorMatrix. - */ - - -#include "ErrorMatrixErrorFillerTool.h" -//#include "TrkEventPrimitives/ErrorMatrix.h" -#include "AthenaKernel/errorcheck.h" -#include "EventPrimitives/EventPrimitivesHelpers.h" -#include "TrkEventPrimitives/ParamDefs.h" - -namespace D3PD { - - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -ErrorMatrixErrorFillerTool::ErrorMatrixErrorFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : D3PD::BlockFillerTool<AmgSymMatrix(5)> (type, name, parent) -{ - declareProperty ("LocalType", m_localType = "CYLINDRICAL", - "Type of local variables: " - "CYLINDRICAL -- d0/z0; CARTESIAN -- locX/loxY; " - "NONE -- not written."); - declareProperty ("FillThetaAndQoverP", m_fillThetaAndQoverP = true, - "Should theta and qoverp be filled?"); - declareProperty ("FillPhi", m_fillPhi=true, - "Should the phi variable be filled?"); - declareProperty ("DefaultValue", m_defaultValue = 0, - "Default value to which to set unfilled variables."); - - book().ignore(); // Silence coverity warnings -} - - -/** - * @brief Book variables for this block. - */ -StatusCode ErrorMatrixErrorFillerTool::book() -{ - if (m_localType == "CYLINDRICAL") { - CHECK( addVariable ("d0_err", m_loc1_err, - "Local transverse impact", m_defaultValue) ); - CHECK( addVariable ("z0_err", m_loc2_err, - "Local longitudinal impact", m_defaultValue) ); - } - else if (m_localType == "CARTESIAN") { - CHECK( addVariable ("locX_err", m_loc1_err, - "Local x coordinate", m_defaultValue) ); - CHECK( addVariable ("locY_err", m_loc2_err, - "Local y coordinate", m_defaultValue) ); - } - else { - m_loc1_err = 0; - m_loc2_err = 0; - } - - if (m_fillPhi) - CHECK( addVariable ("phi_err", m_phi_err, - "Azimuthal angle", m_defaultValue) ); - - if(m_fillThetaAndQoverP){ - CHECK( addVariable ("theta_err", m_theta_err, - "Polar angle", m_defaultValue) ); - CHECK( addVariable ("qoverp_err", m_qoverp_err, - "Charge over momentum", m_defaultValue) ); - } - - return StatusCode::SUCCESS; -} - - -/** - * @brief Fill one block --- type-safe version. - * @param p The input object. - * - * This is called once per object. The caller - * is responsible for arranging that all the pointers for booked variables - * are set appropriately upon entry. - */ - StatusCode ErrorMatrixErrorFillerTool::fill (const AmgSymMatrix(5) &p) -{ - // Either d0/z0 or locX/locY - if (m_loc1_err) { - *m_loc1_err = Amg::error(p,Trk::loc1); - *m_loc2_err = Amg::error(p,Trk::loc2); - } - - if (m_fillPhi) - *m_phi_err = Amg::error(p,Trk::phi0); - - if(m_fillThetaAndQoverP){ - *m_theta_err = Amg::error(p,Trk::theta); - *m_qoverp_err = Amg::error(p,Trk::qOverP); - } - - return StatusCode::SUCCESS; -} - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ErrorMatrixErrorFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ErrorMatrixErrorFillerTool.h deleted file mode 100644 index 0e0b56d832f75d8f52f439d71276696fc4954f19..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/ErrorMatrixErrorFillerTool.h +++ /dev/null @@ -1,97 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id$ -/** - * @file InDetD3PDMaker/ErrorMatrixErrorFillerTool.h - * @author scott snyder <snyder@bnl.gov> - * @date May, 2012 - * @brief Fill error elements from ErrorMatrix. - */ - - -#ifndef INDETD3PDMAKER_ERRORMATRIXERRORFILLERTOOL_H -#define INDETD3PDMAKER_ERRORMATRIXERRORFILLERTOOL_H - - -#include "D3PDMakerUtils/BlockFillerTool.h" -#include "EventPrimitives/EventPrimitives.h" - - -namespace D3PD { - - -/** - * @brief Fill error elements from ErrorMatrix. - */ -class ErrorMatrixErrorFillerTool - : public D3PD::BlockFillerTool<AmgSymMatrix(5)> -{ -public: - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - ErrorMatrixErrorFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - /** - * @brief Book variables for this block. - */ - virtual StatusCode book(); - - - /** - * @brief Fill one block --- type-safe version. - * @param p The input object. - * - * This is called once per object. The caller - * is responsible for arranging that all the pointers for booked variables - * are set appropriately upon entry. - */ - virtual StatusCode fill (const AmgSymMatrix(5) &p); - - -private: - /// Parameter: Type of local variables: - /// CYLINDRICAL -- d0/z0; CARTESIAN -- locX/loxY; NONE -- not written. - std::string m_localType; - - /// Parameter: Should theta and qoverp be filled? - bool m_fillThetaAndQoverP; - - /// Parameter: Should the phi variable be filled? - bool m_fillPhi; - - /// Parameter: Default value to which to set unfilled variables. - float m_defaultValue; - - - /// Variable: First local variable. - float* m_loc1_err; - - /// Variable: Second local variable. - float* m_loc2_err; - - /// Variable: aximuthal angle. - float* m_phi_err; - - /// Variable: polar angle. - float* m_theta_err; - - /// Variable: Charge over momentum. - float* m_qoverp_err; -}; - - -} // namespace D3PD - - -#endif // not INDETD3PDMAKER_ERRORMATRIXERRORFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/InDetTSOSAssociationHelper.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/InDetTSOSAssociationHelper.cxx deleted file mode 100644 index 7acda9cb1577dc56dd87719a7a8f6e0d7599fe5f..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/InDetTSOSAssociationHelper.cxx +++ /dev/null @@ -1,278 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#include "InDetTSOSAssociationHelper.h" - -#include "TrkTrack/Track.h" -#include <Particle/TrackParticle.h> -#include <TrkTrack/TrackStateOnSurface.h> -#include "AthenaKernel/errorcheck.h" -#include "Identifier/Identifier.h" -#include "TrkEventPrimitives/TrackStateDefs.h" -#include "AtlasDetDescr/AtlasDetectorID.h" -#include "InDetIdentifier/PixelID.h" - -namespace D3PD { - - -InDetTSOSAssociationHelper::InDetTSOSAssociationHelper()//: - // m_idHoleSearch("InDet::InDetTrackHoleSearchTool")// , - // m_doHolesInDet(false) - : m_idHelper(0), - m_pixelId(0) -{ - m_getTypes["GetBLayerMeasurements"] = false; - m_getTypes["GetPixelMeasurements"] = false; - m_getTypes["GetSCTMeasurements"] = false; - m_getTypes["GetTRTMeasurements"] = false; - m_getTypes["GetMDTMeasurements"] = false; - m_getTypes["GetCSCMeasurements"] = false; - m_getTypes["GetRPCMeasurements"] = false; - m_getTypes["GetTGCMeasurements"] = false; - m_getTypes["GetBLayerOutliers"] = false; - m_getTypes["GetPixelOutliers"] = false; - m_getTypes["GetSCTOutliers"] = false; - m_getTypes["GetTRTOutliers"] = false; - m_getTypes["GetMDTOutliers"] = false; - m_getTypes["GetCSCOutliers"] = false; - m_getTypes["GetRPCOutliers"] = false; - m_getTypes["GetTGCOutliers"] = false; - m_getTypes["GetBLayerHoles"] = false; - m_getTypes["GetPixelHoles"] = false; - m_getTypes["GetSCTHoles"] = false; - m_getTypes["GetTRTHoles"] = false; - m_getTypes["GetMDTHoles"] = false; - m_getTypes["GetCSCHoles"] = false; - m_getTypes["GetRPCHoles"] = false; - m_getTypes["GetTGCHoles"] = false; -} - -InDetTSOSAssociationHelper::~InDetTSOSAssociationHelper(){ - -} - -StatusCode InDetTSOSAssociationHelper::doReset (const Trk::Track& p) -{ - - const Trk::Track *track = &p; - - const DataVector<const Trk::TrackStateOnSurface> *TSOs = 0; - - // static const Trk::Track *newTrack = 0; - // if(m_doHolesInDet){ - // if(newTrack) delete newTrack; - // newTrack = m_idHoleSearch->getTrackWithHoles(*track, track->info().particleHypothesis()); - // TSOs = newTrack->trackStateOnSurfaces(); - // }else{ - TSOs = track->trackStateOnSurfaces(); - // } - - if(!TSOs){ - m_TSOItr = m_TSOEnd; - REPORT_MESSAGE (MSG::WARNING) << "Could not access track state on surfaces"; - return StatusCode::SUCCESS; - } - - m_TSOItr = TSOs->begin(); - m_TSOEnd = TSOs->end(); - - return StatusCode::SUCCESS; -} - -StatusCode InDetTSOSAssociationHelper::doReset (const Rec::TrackParticle& p) -{ - - const Trk::Track *track = p.originalTrack(); - if(!track){ - m_TSOItr = m_TSOEnd; - //REPORT_MESSAGE (MSG::DEBUG) << "Could not access original track"; - return StatusCode::SUCCESS; - } - - const DataVector<const Trk::TrackStateOnSurface> *TSOs = 0; - - // static const Trk::Track *newTrack = 0; - // if(m_doHolesInDet){ - // if(newTrack) delete newTrack; - // newTrack = m_idHoleSearch->getTrackWithHoles(*track, track->info().particleHypothesis()); - // TSOs = newTrack->trackStateOnSurfaces(); - // }else{ - TSOs = track->trackStateOnSurfaces(); - // } - - if(!TSOs){ - m_TSOItr = m_TSOEnd; - REPORT_MESSAGE (MSG::WARNING) << "Could not access track state on surfaces"; - return StatusCode::SUCCESS; - } - - m_TSOItr = TSOs->begin(); - m_TSOEnd = TSOs->end(); - - return StatusCode::SUCCESS; -} - -const Trk::TrackStateOnSurface* InDetTSOSAssociationHelper::getNext(){ - - // reached the end - if(m_TSOItr == m_TSOEnd) return 0; - - const Trk::TrackStateOnSurface *TSO = (*m_TSOItr); - m_TSOItr++; - - int detType = getDetectorType(TSO); - - const Trk::TrackStateOnSurface *ret = 0; - - if(TSO->types()[Trk::TrackStateOnSurface::Measurement]){ - if(Trk::TrackState::Pixel==detType){ - if(m_getTypes["GetPixelMeasurements"]){ - ret = TSO; - } - if(m_getTypes["GetBLayerMeasurements"] && isBLayer(TSO)){ - ret = TSO; - } - } - if(Trk::TrackState::SCT==detType && m_getTypes["GetSCTMeasurements"]){ - ret = TSO; - } - if(Trk::TrackState::TRT==detType && m_getTypes["GetTRTMeasurements"]){ - ret = TSO; - } - if(Trk::TrackState::MDT==detType && m_getTypes["GetMDTMeasurements"]){ - ret = TSO; - } - if(Trk::TrackState::CSC==detType && m_getTypes["GetCSCMeasurements"]){ - ret = TSO; - } - if(Trk::TrackState::RPC==detType && m_getTypes["GetRPCMeasurements"]){ - ret = TSO; - } - if(Trk::TrackState::TGC==detType && m_getTypes["GetTGCMeasurements"]){ - ret = TSO; - } - }else if(TSO->types()[Trk::TrackStateOnSurface::Outlier]){ - if(Trk::TrackState::Pixel==detType){ - if(m_getTypes["GetPixelOutliers"]){ - ret = TSO; - } - if(m_getTypes["GetBLayerOutliers"] && isBLayer(TSO)){ - ret = TSO; - } - } - if(Trk::TrackState::SCT==detType && m_getTypes["GetSCTOutliers"]){ - ret = TSO; - } - if(Trk::TrackState::TRT==detType && m_getTypes["GetTRTOutliers"]){ - ret = TSO; - } - if(Trk::TrackState::MDT==detType && m_getTypes["GetMDTOutliers"]){ - ret = TSO; - } - if(Trk::TrackState::CSC==detType && m_getTypes["GetCSCOutliers"]){ - ret = TSO; - } - if(Trk::TrackState::RPC==detType && m_getTypes["GetRPCOutliers"]){ - ret = TSO; - } - if(Trk::TrackState::TGC==detType && m_getTypes["GetTGCOutliers"]){ - ret = TSO; - } - }else if(TSO->types()[Trk::TrackStateOnSurface::Hole]){ - if(Trk::TrackState::Pixel==detType && m_getTypes["GetPixelHoles"]){ - if(m_getTypes["GetPixelHoles"]){ - ret = TSO; - } - if(m_getTypes["GetBLayerHoles"] && isBLayer(TSO)){ - ret = TSO; - } - } - if(Trk::TrackState::SCT==detType && m_getTypes["GetSCTHoles"]){ - ret = TSO; - } - if(Trk::TrackState::TRT==detType && m_getTypes["GetTRTHoles"]){ - ret = TSO; - } - if(Trk::TrackState::MDT==detType && m_getTypes["GetMDTHoles"]){ - ret = TSO; - } - if(Trk::TrackState::CSC==detType && m_getTypes["GetCSCHoles"]){ - ret = TSO; - } - if(Trk::TrackState::RPC==detType && m_getTypes["GetRPCHoles"]){ - ret = TSO; - } - if(Trk::TrackState::TGC==detType && m_getTypes["GetTGCHoles"]){ - ret = TSO; - } - } - - if(!ret) ret = getNext(); - - return ret; -} - -int InDetTSOSAssociationHelper::getDetectorType(const Trk::TrackStateOnSurface *TSO){ - - int detType = Trk::TrackState::unidentified; - - if( TSO->types()[Trk::TrackStateOnSurface::Measurement] || - TSO->types()[Trk::TrackStateOnSurface::Outlier] || - TSO->types()[Trk::TrackStateOnSurface::Hole] ){ - - const Trk::Surface& surface = TSO->surface(); - const Trk::TrkDetElementBase* detElement = surface.associatedDetectorElement(); - - if(detElement){ - Identifier Id = detElement->identify(); - - if (m_idHelper->is_pixel(Id) ) { - detType = Trk::TrackState::Pixel; - }else if (m_idHelper->is_sct(Id)) { - detType = Trk::TrackState::SCT; - }else if (m_idHelper->is_trt(Id)) { - detType = Trk::TrackState::TRT; - } else if (m_idHelper->is_mdt(Id)) { - detType = Trk::TrackState::MDT; - } else if (m_idHelper->is_csc(Id)) { - detType = Trk::TrackState::CSC; - } else if (m_idHelper->is_rpc(Id)) { - detType = Trk::TrackState::RPC; - } else if (m_idHelper->is_tgc(Id)) { - detType = Trk::TrackState::TGC; - } - } - } - - return detType; -} - -bool InDetTSOSAssociationHelper::isBLayer(const Trk::TrackStateOnSurface *TSO){ - - if( TSO->types()[Trk::TrackStateOnSurface::Measurement] || - TSO->types()[Trk::TrackStateOnSurface::Outlier] || - TSO->types()[Trk::TrackStateOnSurface::Hole] ){ - - const Trk::Surface& surface = TSO->surface(); - - - const Trk::TrkDetElementBase* detElement = surface.associatedDetectorElement(); - - if(detElement){ - - Identifier Id = detElement->identify(); - - if(m_idHelper->is_pixel(Id)){ - - if(m_pixelId->is_blayer(Id)){ - return true; - } - } - } - } - - return false; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/InDetTSOSAssociationHelper.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/InDetTSOSAssociationHelper.h deleted file mode 100644 index 2811b785c220470e92d35b241590a6b310bbd8b6..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/InDetTSOSAssociationHelper.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_TSOSASSOCIATIONHELPER_H -#define INDETD3PDMAKER_TSOSASSOCIATIONHELPER_H - -//#include "GaudiKernel/ToolHandle.h" -//#include "TrkToolInterfaces/ITrackHoleSearchTool.h" -#include "AthContainers/DataVector.h" - -#include <vector> -#include <map> -#include <string> - -class AtlasDetectorID; -class PixelID; - -namespace Rec{ -class TrackParticle; -} - -namespace Trk{ - class Track; - class TrackStateOnSurface; -} - -namespace D3PD { - - -class InDetTSOSAssociationHelper { - public: - InDetTSOSAssociationHelper(); - virtual ~InDetTSOSAssociationHelper(); - - StatusCode doReset (const Rec::TrackParticle& p); - StatusCode doReset (const Trk::Track& p); - const Trk::TrackStateOnSurface* getNext(); - -protected: - - int getDetectorType(const Trk::TrackStateOnSurface *TSO); - bool isBLayer(const Trk::TrackStateOnSurface *TSO); - - /* Hole search tool **/ - /* ToolHandle<Trk::ITrackHoleSearchTool> m_idHoleSearch; */ - /* bool m_doHolesInDet; */ - - const AtlasDetectorID* m_idHelper; - const PixelID* m_pixelId; - - std::map<std::string, bool> m_getTypes; - - DataVector<const Trk::TrackStateOnSurface>::const_iterator m_TSOItr; - DataVector<const Trk::TrackStateOnSurface>::const_iterator m_TSOEnd; -}; - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_TSOSASSOCIATIONHELPER_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterCollectionGetterTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterCollectionGetterTool.cxx deleted file mode 100644 index 9420cbb01598fea9c8afbf6658addc32b13f77b1..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterCollectionGetterTool.cxx +++ /dev/null @@ -1,154 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "PixelClusterCollectionGetterTool.h" - -#include "InDetPrepRawData/PixelCluster.h" -#include "Identifier/Identifier.h" -#include "InDetIdentifier/PixelID.h" - -namespace D3PD { - -PixelClusterCollectionGetterTool::PixelClusterCollectionGetterTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent), - m_pixelId(0) -{ - declareProperty("BLayerOnly", m_BLayerOnly = false); -} - -StatusCode PixelClusterCollectionGetterTool::initialize() -{ - CHECK( Base::initialize() ); - - CHECK( detStore()->retrieve(m_pixelId,"PixelID") ); - - return StatusCode::SUCCESS; -} - -const std::type_info& PixelClusterCollectionGetterTool::typeinfo() const -{ - return typeid(InDet::PixelClusterContainer); -} - - -const std::type_info& PixelClusterCollectionGetterTool::elementTypeinfo() const -{ - return typeid(InDet::PixelCluster); -} - -size_t PixelClusterCollectionGetterTool::sizeHint(bool allowMissing) -{ - const InDet::PixelClusterContainer* cont = (InDet::PixelClusterContainer*)getUntyped(allowMissing); - - if (!cont) { - return 0; - } - int nclus = 0; - - // Loop over the container - InDet::PixelClusterContainer::const_iterator itr = cont->begin(); - InDet::PixelClusterContainer::const_iterator itr_end = cont->end(); - for( ; itr!=itr_end; ++itr ){ - - // Loop over the collection - InDet::PixelClusterCollection::const_iterator itr_col = (*itr)->begin(); - InDet::PixelClusterCollection::const_iterator itr_col_end = (*itr)->end(); - for( ; itr_col!=itr_col_end; ++itr_col ){ - nclus++; - } - } - - return nclus; -} - -StatusCode PixelClusterCollectionGetterTool::reset(bool allowMissing) -{ - - const InDet::PixelClusterContainer* cont = (InDet::PixelClusterContainer*)getUntyped(allowMissing); - - if (!cont) { - m_contItr = m_contEnd; - m_collItr = m_collEnd; - return StatusCode::FAILURE; - } - - m_contItr = cont->begin(); - m_contEnd = cont->end(); - - if(m_contItr == m_contEnd){ - m_collItr = m_collEnd; - return StatusCode::SUCCESS; - } - - m_collItr = (*m_contItr)->begin(); - m_collEnd = (*m_contItr)->end(); - - return StatusCode::SUCCESS; -} - -const void* PixelClusterCollectionGetterTool::nextUntyped() -{ - if(m_collItr == m_collEnd){ - if(m_contItr == m_contEnd){ - return 0; - } - m_contItr++; - if(m_contItr == m_contEnd){ - return 0; - } - m_collItr = (*m_contItr)->begin(); - m_collEnd = (*m_contItr)->end(); - if(m_collItr == m_collEnd){ - return 0; - } - } - - const InDet::PixelCluster *clus = *m_collItr; - - m_collItr++; - - if(m_BLayerOnly){ - if(clus){ - if(!isBLayer(clus)){ - clus = (const InDet::PixelCluster *)nextUntyped(); - } - } - } - - return clus; -} - -bool PixelClusterCollectionGetterTool::isBLayer(const InDet::PixelCluster *clus){ - - Identifier id = clus->identify(); - - if ( id.is_valid() ) { - if( m_pixelId->is_blayer(id) ) { - return true; - } - } - - return false; -} - -// Dummies --- the default versions of these don't compile. -// But these are overridden by the derived class here. -template<> -const std::type_info& -CollectionGetterTool<InDet::PixelClusterContainer>::elementTypeinfo() const -{ - return typeid(InDet::PixelCluster); -} - -template<> -const void* -CollectionGetterTool<InDet::PixelClusterContainer>::nextUntyped() -{ - return 0; -} - -} diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterCollectionGetterTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterCollectionGetterTool.h deleted file mode 100644 index 4883abc45c2c29466bf3e041dce086c313b97194..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterCollectionGetterTool.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_PIXELCLUSTERCOLLECTIONGETTERTOOL_H -#define INDETD3PDMAKER_PIXELCLUSTERCOLLECTIONGETTERTOOL_H - -#include "D3PDMakerUtils/SGCollectionGetterTool.h" -#include "InDetPrepRawData/PixelClusterContainer.h" -#include "InDetPrepRawData/PixelClusterCollection.h" - -namespace InDet { - class PixelCluster; -} -class PixelID; - -namespace D3PD { - -class PixelClusterCollectionGetterTool - : public SGCollectionGetterTool<InDet::PixelClusterContainer> -{ - public: - typedef SGCollectionGetterTool<InDet::PixelClusterContainer> Base; - PixelClusterCollectionGetterTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - StatusCode initialize(); - size_t sizeHint(bool=false); - StatusCode reset(bool=false); - const void* nextUntyped(); - const std::type_info& typeinfo() const; - const std::type_info& elementTypeinfo() const; - - private: - - bool isBLayer(const InDet::PixelCluster *clus); - - InDet::PixelClusterContainer::const_iterator m_contItr; - InDet::PixelClusterContainer::const_iterator m_contEnd; - - InDet::PixelClusterCollection::const_iterator m_collItr; - InDet::PixelClusterCollection::const_iterator m_collEnd; - - bool m_BLayerOnly; - const PixelID* m_pixelId; - -}; - -// Dummies --- the default versions of these don't compile. -// But these are overridden by the derived class here. -template<> -const std::type_info& -CollectionGetterTool<InDet::PixelClusterContainer>::elementTypeinfo() const; - -template<> -const void* -CollectionGetterTool<InDet::PixelClusterContainer>::nextUntyped(); - -} - -#endif // INDETD3PDMAKER_PIXELCLUSTERCOLLECTIONGETTERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterFillerTool.cxx deleted file mode 100644 index 240c24655fdf534599e9832a3dd164f92e9dc594..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterFillerTool.cxx +++ /dev/null @@ -1,147 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "PixelClusterFillerTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "InDetReadoutGeometry/SiDetectorElement.h" -#include "InDetIdentifier/PixelID.h" -#include "InDetPrepRawData/PixelCluster.h" -//#include "TrkEventPrimitives/ErrorMatrix.h" - -namespace D3PD { - - -PixelClusterFillerTool::PixelClusterFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : D3PD::BlockFillerTool<InDet::PixelCluster> (type, name, parent), - m_pixId(0) -{ - book().ignore(); // Avoid coverity warnings. -} - -StatusCode PixelClusterFillerTool::initialize(){ - - CHECK( Base::initialize() ); - - if (detStore()->retrieve(m_pixId,"PixelID").isFailure() ){ - REPORT_MESSAGE (MSG::FATAL) << "Unable to retrieve pixel ID helper"; - return StatusCode::FAILURE; - } - - return StatusCode::SUCCESS; -} - -StatusCode PixelClusterFillerTool::book(){ - - CHECK( addVariable ("id", m_id) ); - CHECK( addVariable ("bec", m_bec) ); - CHECK( addVariable ("layer", m_layer) ); - CHECK( addVariable ("detElementId", m_detElementId) ); - CHECK( addVariable ("phi_module", m_phi_module) ); - CHECK( addVariable ("eta_module", m_eta_module) ); - CHECK( addVariable ("col", m_col) ); - CHECK( addVariable ("row", m_row) ); - CHECK( addVariable ("charge", m_charge) ); - CHECK( addVariable ("ToT", m_ToT) ); - CHECK( addVariable ("LVL1A", m_LVL1A) ); - CHECK( addVariable ("sizePhi", m_sizePhi) ); - CHECK( addVariable ("sizeZ", m_sizeZ) ); - CHECK( addVariable ("size", m_size) ); - CHECK( addVariable ("locX", m_locX) ); - CHECK( addVariable ("locY", m_locY) ); - CHECK( addVariable ("x", m_x) ); - CHECK( addVariable ("y", m_y) ); - CHECK( addVariable ("z", m_z) ); - CHECK( addVariable ("isFake", m_isFake) ); - CHECK( addVariable ("isGanged", m_isGanged) ); - CHECK( addVariable ("isSplit", m_isSplit) ); - CHECK( addVariable ("splitProb1", m_splitProb1) ); - CHECK( addVariable ("splitProb2", m_splitProb2) ); - - return StatusCode::SUCCESS; -} - -StatusCode PixelClusterFillerTool::fill (const InDet::PixelCluster& clus) -{ - - this->clearData(); - - Identifier id = clus.identify(); - - if ( id.is_valid() ) { - *m_id = id.get_compact(); - *m_bec = (int)m_pixId->barrel_ec(id); - *m_layer = (int)m_pixId->layer_disk(id); - *m_phi_module = (char)m_pixId->phi_module(id); - *m_eta_module = (char)m_pixId->eta_module(id); - *m_col = (short)m_pixId->eta_index(id); - *m_row = (short)m_pixId->phi_index(id); - } - - const InDetDD::SiDetectorElement* de = clus.detectorElement(); - if(de){ - Identifier detId = de->identify(); - if ( detId.is_valid() ) { - *m_detElementId = detId.get_compact(); - } - } - - *m_LVL1A = (short)clus.LVL1A(); - *m_charge = clus.totalCharge(); - *m_ToT = clus.totalToT(); - - const InDet::SiWidth cw = clus.width(); - *m_sizePhi = (int)cw.colRow()[0]; - *m_sizeZ = (int)cw.colRow()[1]; - *m_size = (int)clus.rdoList().size(); - - const Amg::Vector2D& locpos = clus.localPosition(); - *m_locX = locpos[Trk::locX]; - *m_locY = locpos[Trk::locY]; - - const Amg::Vector3D& glopos = clus.globalPosition(); - *m_x = glopos[Trk::x]; - *m_y = glopos[Trk::y]; - *m_z = glopos[Trk::z]; - - *m_isFake = (char)clus.isFake(); - *m_isGanged = (char)clus.gangedPixel(); - *m_isSplit = (int)clus.isSplit(); - *m_splitProb1= clus.splitProbability1(); - *m_splitProb2 = clus.splitProbability2(); - - return StatusCode::SUCCESS; -} - -void PixelClusterFillerTool::clearData(){ - - *m_id = 0; - *m_detElementId = 0; - *m_bec = -1; - *m_layer = -1; - *m_phi_module = 0; - *m_eta_module = 0; - *m_col = 0; - *m_row = 0; - *m_charge = 0; - *m_ToT = -99999.; - *m_LVL1A = -1; - *m_sizePhi = 0; - *m_sizeZ = 0; - *m_size = 0; - *m_locX = -99999.; - *m_locY = -99999.; - *m_x = -99999.; - *m_y = -99999.; - *m_z = -99999.; - *m_isFake = 0; - *m_isGanged = 0; - *m_isSplit = 0; - *m_splitProb1 = 0.; - *m_splitProb2 = 0.; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterFillerTool.h deleted file mode 100644 index 75a1b0e232b793038a089ecbd2a16b20186a742b..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterFillerTool.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_PIXELCLUSTERFILLERTOOL_H -#define INDETD3PDMAKER_PIXELCLUSTERFILLERTOOL_H - -#include "D3PDMakerUtils/BlockFillerTool.h" - -#include "Identifier/Identifier.h" - -class PixelID; - -namespace InDet { - class PixelCluster; -} - -namespace D3PD { - -class PixelClusterFillerTool - : public D3PD::BlockFillerTool<InDet::PixelCluster> -{ -public: - typedef D3PD::BlockFillerTool<InDet::PixelCluster> Base; - - PixelClusterFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode fill (const InDet::PixelCluster &clus); - -private: - - void clearData(); - - const PixelID* m_pixId; - - /* NTuple variables: **/ - Identifier::value_type *m_id; // unique identifier for a cluster - Identifier::value_type *m_detElementId; - char *m_bec; // Barrel:0, End Cap: +/- 2 - char *m_layer; - char *m_phi_module; - char *m_eta_module; - short *m_col; - short *m_row; - float *m_charge; - int *m_ToT; - short *m_LVL1A; - int *m_sizePhi; - int *m_sizeZ; - int *m_size; - float *m_locX; - float *m_locY; - float *m_x; - float *m_y; - float *m_z; - char *m_isFake; - char *m_isGanged; - int *m_isSplit; // defined for Pixel only - float *m_splitProb1; // defined for Pixel only - float *m_splitProb2; // defined for Pixel only -}; // class PixelClusterFillerTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_PIXELCLUSTERFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterPixelRDOAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterPixelRDOAssociationTool.cxx deleted file mode 100644 index 363c72eaccb200ee78864fb670dfbbe4e6520de1..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterPixelRDOAssociationTool.cxx +++ /dev/null @@ -1,231 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -//********************************************************/ -// @author <yuriy.pylypchenko@cern.ch> / -// @date Oct, 2010 / -// @brief setting up an association of clusters to tracks / -// represented by indices. / -//********************************************************/ - - -#include "PixelClusterPixelRDOAssociationTool.h" -#include "AthenaKernel/errorcheck.h" -#include "TrkTrack/Track.h" -#include "TrkTrack/TrackCollection.h" -#include "InDetPrepRawData/PixelClusterContainer.h" -#include "InDetPrepRawData/PixelClusterCollection.h" -#include <map> - -#include "TrkTrack/TrackStateOnSurface.h" -#include "Identifier/Identifier.h" -#include "TrkEventPrimitives/TrackStateDefs.h" -#include "AtlasDetDescr/AtlasDetectorID.h" -#include "InDetIdentifier/PixelID.h" -#include "xAODEventInfo/EventInfo.h" - - -namespace D3PD { - - -PixelClusterPixelRDOAssociationTool::PixelClusterPixelRDOAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : PixelClusterPixelRDOBase(type, name, parent), - m_pixelId(0), - m_eventNumber(0), - m_rdocont(0) -{ -} - - -/// initialize method. -StatusCode PixelClusterPixelRDOAssociationTool::initialize() -{ - - //return PixelClusterPixelRDOBase::initialize(); - CHECK ( PixelClusterPixelRDOBase::initialize() ); - if (detStore()->retrieve(m_pixelId,"PixelID").isFailure() ){ - REPORT_MESSAGE (MSG::FATAL) << "Unable to retrieve Pixel ID helper"; - return StatusCode::FAILURE; - } - - m_eventNumber = -1; - - return StatusCode::SUCCESS; -} -/// booking btuple variables -StatusCode PixelClusterPixelRDOAssociationTool::book() -{ - - CHECK( PixelClusterPixelRDOBase::book() ); - - return StatusCode::SUCCESS; -} -StatusCode PixelClusterPixelRDOAssociationTool::invalidate(StatusCode sc){ - - m_rdoItr = m_rdoEnd; - return sc; -} - -/// -/// @brief Start the iteration for a new association. -/// @param p The object from which to associate. -/// -StatusCode PixelClusterPixelRDOAssociationTool::reset (const InDet::PixelCluster& p) -{ - - m_pixelRDOForAssociation.clear(); - - - int clusterModuleID = 0; - StatusCode sc = tempmoduleid(p.identify(), clusterModuleID); - if ( sc.isFailure() ) REPORT_MESSAGE (MSG::ERROR)<< "Failed to calculate the tempID."; - - std::vector< Identifier> pixelClusterIdentifier; - - const std::vector<Identifier>& rdoList = p.rdoList(); - pixelClusterIdentifier.insert(pixelClusterIdentifier.end(),rdoList.begin(),rdoList.end()); - - - const xAOD::EventInfo* eventInfo; - sc = evtStore()->retrieve(eventInfo); - if (sc.isFailure()) - { - REPORT_MESSAGE (MSG::ERROR) << "Could not retrieve event info"; - return StatusCode::FAILURE; - } - int eventNumber = (int)eventInfo->eventNumber(); - - if (m_eventNumber != eventNumber ){ - // For each event - - m_globalmapOfRDOsPerModule.clear(); - m_eventNumber = eventNumber; - - if(!evtStore()->contains<PixelRDO_Container>("PixelRDOs")){ - REPORT_MESSAGE (MSG::WARNING) << "RDOTESTASSOC: No Pixel RDO container in StoreGate"; - } - else { - sc = evtStore()->retrieve(m_rdocont,"PixelRDOs"); - if(sc.isFailure()) { - REPORT_MESSAGE (MSG::WARNING) << "Failed to retrieve Pixel RDO container"; - } - } - - if ( m_rdocont != 0){ - - // get all the RIO_Collections in the container - PixelRDO_Container::const_iterator contIt = m_rdocont->begin(); - for( ; contIt != m_rdocont->end(); contIt++){ - - //get all the RDOs in the collection - //const PixelRDO_Collection* Pixel_Collection(*contIt); - PixelRDO_Collection::const_iterator rdoIt = (*contIt)->begin(); - for (; rdoIt != (*contIt)->end(); rdoIt++) { - - if (!(*rdoIt)) { - REPORT_MESSAGE (MSG::WARNING) << "Null rdo...."; - continue; - } - - Identifier rdoId = (*rdoIt)->identify(); - - int rdoModuleID = 0; - StatusCode sc2 = tempmoduleid (rdoId, rdoModuleID); - if ( sc2.isFailure() ) REPORT_MESSAGE (MSG::WARNING)<<" Failed to calculate RDO tempID!"; - - std::map< Identifier, const PixelRDORawData* > tempmap; - tempmap.insert( std::pair< Identifier, const PixelRDORawData*>( rdoId, (*rdoIt) ) ); - - if ( m_globalmapOfRDOsPerModule.find(rdoModuleID) == m_globalmapOfRDOsPerModule.end() ) - m_globalmapOfRDOsPerModule.insert( std::pair< int, std::map< Identifier, const PixelRDORawData*> >( rdoModuleID, tempmap )); - else { - if ( m_globalmapOfRDOsPerModule[rdoModuleID].find(rdoId) == m_globalmapOfRDOsPerModule[rdoModuleID].end() ) - m_globalmapOfRDOsPerModule[rdoModuleID].insert(std::pair<Identifier, const PixelRDORawData*>(rdoId,(*rdoIt))); - else REPORT_MESSAGE (MSG::WARNING) << " More then one RDO per identifier!"; - } - - } // collection - } // container - } - //for each event - } - //For each cluster - std::map< Identifier, const PixelRDORawData*>::iterator mIt2 = m_globalmapOfRDOsPerModule[clusterModuleID].begin(); - for( ; mIt2!=m_globalmapOfRDOsPerModule[clusterModuleID].end(); mIt2++){ - Identifier rdoIdentity = mIt2->first; - std::vector<Identifier>::iterator posIt = find(pixelClusterIdentifier.begin(),pixelClusterIdentifier.end(),rdoIdentity); - if ( posIt != pixelClusterIdentifier.end() ){ - m_pixelRDOForAssociation.push_back(mIt2->second); - } - } - // end of global map loop - - - m_rdoItr = m_pixelRDOForAssociation.begin(); //pixel::vector<cont InDet::PixelCluster>::const_iterator - m_rdoEnd = m_pixelRDOForAssociation.end(); - - - return StatusCode::SUCCESS; -} - -/** -* @brief Return a pointer to the next element in the association. -* -* Return 0 when the association has been exhausted. -*/ -const PixelRDORawData* PixelClusterPixelRDOAssociationTool::next() - { - - // reached the end - if(m_rdoItr==m_rdoEnd){ - return 0; - } - else{ - } - - const PixelRDORawData* RawData = *m_rdoItr; - - m_rdoItr++; // to go throuhg all the HitsOnTrack - - return RawData; - - } - - StatusCode PixelClusterPixelRDOAssociationTool::tempmoduleid( Identifier id, int& intbuf ){ - - int bec = (int)m_pixelId->barrel_ec(id); - int bec1 = bec; - int layer = (int)m_pixelId->layer_disk(id); - int phi_module = (char)m_pixelId->phi_module(id); - int eta_module = (char)m_pixelId->eta_module(id); - int eta_module1 = eta_module; - //int side = (int)m_pixelId->side(id); - int firstPrefix = 1; - if ( bec != 0 ){ - firstPrefix = 2; - if ( bec < 0 ) bec1 = bec*(-1); - } - int secondPrefix = 2; - if ( eta_module < 0 ){ - secondPrefix = 1; - eta_module1 = eta_module*(-1); - } - - char buf[1024]; - intbuf = 0; - //sprintf(buf,"%i%i%i%i%i%i%i",firstPrefix,secondPrefix,side,bec1,layer,eta_module1,phi_module); - sprintf(buf,"%i%i%i%i%i%i",firstPrefix,secondPrefix,bec1,layer,eta_module1,phi_module); - if(!(from_strings<int>(intbuf, std::string(buf), std::dec))){ - //if ( EOF == sscanf(buf, "%i", &intbuf) ){ - REPORT_MESSAGE (MSG::ERROR) <<" Cannot convert string to int..."; - return StatusCode::FAILURE; - } - - return StatusCode::SUCCESS; - } - - } // namespace D3PD - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterPixelRDOAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterPixelRDOAssociationTool.h deleted file mode 100644 index eabb4545507043aa90be3c84d370d251971f9422..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterPixelRDOAssociationTool.h +++ /dev/null @@ -1,140 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/** -* @date Oct, 2010 -* @brief setting up an association of pixel clusters to RDOs -* represented by indices. -*/ -#ifndef PIXELCLUSTERPIXELRDOASSOCIATIONTOOL_H -#define PIXELCLUSTERPIXELRDOASSOCIATIONTOOL_H - - -#include "D3PDMakerUtils/MultiAssociationTool.h" -#include "GaudiKernel/AlgTool.h" -#include "GaudiKernel/ToolHandle.h" -#include "StoreGate/StoreGateSvc.h" -#include <vector> -#include <map> - -#include "InDetPrepRawData/PixelClusterContainer.h" -#include "InDetPrepRawData/PixelClusterCollection.h" -#include "InDetPrepRawData/PixelCluster.h" -#include "InDetRIO_OnTrack/SiClusterOnTrack.h" -#include "InDetPrepRawData/SiCluster.h" -#include "Identifier/Identifier.h" -#include "AthContainers/DataVector.h" - -#include "AthenaKernel/CLASS_DEF.h" -#include "InDetRawData/InDetRawDataContainer.h" -#include "InDetRawData/InDetRawDataCollection.h" -#include "InDetRawData/PixelRDO_Container.h" -#include "InDetRawData/PixelRDO_Collection.h" -#include "InDetRawData/PixelRDORawData.h" -#include "InDetRawData/PixelRDO_Collection.h" // Needed to pick up CLID. -#include <stdio.h> -#include <iostream> -#include <string> - - -class PixelID; - -namespace InDet { - class PixelCluster; - class SiCluster; -} - - -namespace D3PD { - - - template <class T> - bool from_strings(T& t, const std::string& s, std::ios_base& (*f)(std::ios_base&)) - { - std::istringstream iss(s); - return !(iss >> f >> t).fail(); - } - - - /// - ///@brief Associate all clusters which belong to given track. - /// - /// This is a multiple association tool. - /// Given an @c InDet::PixelCluster object and a container of such objects, - /// return the all objects in the container wich identified with TrackStateOnSurface - /// (Measurements) of the input track. - /// - -typedef D3PD::MultiAssociationTool<InDet::PixelCluster, PixelRDORawData> PixelClusterPixelRDOBase; - -class PixelClusterPixelRDOAssociationTool - : public PixelClusterPixelRDOBase -{ -public: - - /// - /// @brief Standard Gaudi tool constructor. - /// @param type The name of the tool type. - /// @param name The tool name. - /// @param parent The tool's Gaudi parent. - /// - PixelClusterPixelRDOAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - - /// Standard initialize method. - virtual StatusCode initialize(); - /// - /// @brief Create any needed tuple variables. - /// In principle we do not intend to get anything else then index - ///(=we don't create) variables - /// but for debugging and validation puproses it is nice to have this. - /// This is called at the start of the first event. - /// - virtual StatusCode book(); - - /// - /// @brief Start the iteration for a new association. - /// @param p The object from which to associate. - /// - virtual StatusCode reset (const InDet::PixelCluster& p); - - - /// - /// @brief Return a pointer to the next element in the association. - /// - /// Return 0 when the association has been exhausted. - /// - virtual const PixelRDORawData* next(); - - -private: - - StatusCode invalidate(StatusCode); - StatusCode tempmoduleid( Identifier id, int& calculatedID ); - - - const PixelID* m_pixelId; - - int m_eventNumber; - const PixelRDO_Container* m_rdocont; - std::map < int, std::map< Identifier, const PixelRDORawData*> > m_globalmapOfRDOsPerModule; - - - /// The input object. - std::vector<const PixelRDORawData* >::const_iterator m_rdoItr; - std::vector<const PixelRDORawData* >::const_iterator m_rdoEnd; - - - std::vector<const PixelRDORawData*> m_pixelRDOForAssociation; - - -}; // class PixelClusterPixelRDOAssociationTool - - -} // namespace D3PD - -#endif // not PIXELCLUSTERPIXELRDOASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterToTrackParticleAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterToTrackParticleAssociationTool.cxx deleted file mode 100644 index 060af30b7ed7fd46b24883599474e74afc14bcb6..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterToTrackParticleAssociationTool.cxx +++ /dev/null @@ -1,194 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "PixelClusterToTrackParticleAssociationTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "Particle/TrackParticle.h" -#include "Particle/TrackParticleContainer.h" -#include "TrkTrack/Track.h" -#include "TrkTrack/TrackCollection.h" -#include "InDetPrepRawData/PixelClusterContainer.h" -#include "InDetPrepRawData/PixelClusterCollection.h" -#include <map> - -#include "TrkTrack/TrackStateOnSurface.h" -#include "Identifier/Identifier.h" -#include "TrkEventPrimitives/TrackStateDefs.h" -#include "AtlasDetDescr/AtlasDetectorID.h" -#include "xAODEventInfo/EventInfo.h" - - -namespace D3PD { - - PixelClusterToTrackParticleAssociationTool::PixelClusterToTrackParticleAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent), - m_tr(0), - m_eventNumber(0) - { - declareProperty ("TrackParticleContainerSGKey", m_TrackParticleContainer = "TrackParticleCandidate"); - } - - - StatusCode PixelClusterToTrackParticleAssociationTool::initialize() - { - - CHECK( Base::initialize() ); - - m_tr = 0; - m_eventNumber = -1; - - return StatusCode::SUCCESS; - } - - - StatusCode PixelClusterToTrackParticleAssociationTool::book () - { - - CHECK( Base::book() ); - - return StatusCode::SUCCESS; - } - - - StatusCode PixelClusterToTrackParticleAssociationTool::reset(const InDet::PixelCluster& cluster) - { - - REPORT_MESSAGE (MSG::DEBUG) << "EnterReset"; - - // Get Track Collections - // Should be using Getter tools intead of StoreGate - // -- Tracks - - m_trackParticleForAssoc.clear(); - - StatusCode sc = StatusCode::SUCCESS; - - const xAOD::EventInfo* eventInfo; - sc = evtStore()->retrieve(eventInfo); - if (sc.isFailure()) - { - REPORT_MESSAGE (MSG::ERROR) << "Could not retrieve event info"; - } - int eventNumber = (int)eventInfo->eventNumber(); - - - // FIXME: Obviously bogus! Should catch an incident. - if (m_eventNumber != eventNumber ){ // tretrieve only once! - - m_eventNumber = eventNumber; - - m_trackParticleMap.clear(); - - sc = evtStore()->retrieve(m_tr, m_TrackParticleContainer); - if(sc.isFailure() || !m_tr) { - REPORT_MESSAGE (MSG::WARNING) << "Could not retrieve TrackParticleContainer"; - return StatusCode::FAILURE; - } - else { - - - Rec::TrackParticleContainer::const_iterator trItr = m_tr->begin(); - for( ; trItr!=m_tr->end(); trItr++){ - - - const Trk::Track *track = (*trItr)->originalTrack(); - if ( !track ){ - REPORT_MESSAGE (MSG::DEBUG) << "Could not access original track"; - continue; - } - std::vector< Identifier> pixelClusterIdentifier; - - const DataVector<const Trk::TrackStateOnSurface>* trackHits = track->trackStateOnSurfaces(); - - if (!trackHits){ - REPORT_MESSAGE (MSG::DEBUG) << "REVERSE TESTASSOC for current track measurementsOntrack == Null, no clusters will be associated with this track"; - continue; - } - - DataVector<const Trk::TrackStateOnSurface>::const_iterator it = trackHits->begin(); - - for ( ; it != trackHits->end(); it++){ - - const InDet::SiClusterOnTrack *clus = dynamic_cast<const InDet::SiClusterOnTrack*>((*it)->measurementOnTrack()); - - if (clus){ - - const Trk::TrkDetElementBase* detectorElement = clus->detectorElement(); - // Dynamic cast to Silicon element and do Pixel / SCT element test - const InDetDD::SiDetectorElement* siliconDetectorElement = dynamic_cast< const InDetDD::SiDetectorElement* >(detectorElement); - if ( siliconDetectorElement ){ - - // Get Pointer to prepRawDataObject - const InDet::PixelCluster *RawDataClus = dynamic_cast<const InDet::PixelCluster*>(clus->prepRawData()); - - // check if Cluster is in Pixel ... - if (RawDataClus!=0){ - if (RawDataClus->detectorElement()->isPixel()){ - - REPORT_MESSAGE (MSG::DEBUG) << "REVERSE TESTASSOC SiHIT via prepRawData"; - - Identifier pixelClusterID = RawDataClus->identify(); - pixelClusterIdentifier.push_back(pixelClusterID); - REPORT_MESSAGE (MSG::DEBUG) << "(2)REVERSE TESTASSOC TSoS-Type is: "<< (*it)->types().to_ulong(); - - } // isPixel - } // RawDataClus - } // siliconDetectorElement - else REPORT_MESSAGE (MSG::DEBUG) << "REVERSE TESTASSOC can't cast to siliconDetElement!!!!"; - } // clus - } // TSoS loop - - m_trackParticleMap.insert(std::pair<const Rec::TrackParticle*, std::vector<Identifier> >(*trItr,pixelClusterIdentifier)); - - } // track loop - } // if trackParticle is properly retrieved - } // if !m_tr - - // reverse logic compare to TrackPixelClusterAssociationTool - - Identifier clusterId = cluster.identify(); - - std::map< const Rec::TrackParticle*, std::vector<Identifier> >::const_iterator mapIt = m_trackParticleMap.begin(); - for( ; mapIt!=m_trackParticleMap.end(); mapIt++){ - - - if ( find(mapIt->second.begin(),mapIt->second.end(),clusterId)!= mapIt->second.end() ){ - m_trackParticleForAssoc.push_back(mapIt->first); - } - } - - m_pItr = m_trackParticleForAssoc.begin(); - m_pEnd = m_trackParticleForAssoc.end(); - - REPORT_MESSAGE (MSG::DEBUG) << "LeavingReset"; - - return StatusCode::SUCCESS; - } - //--------------------------------------------------------------------------------------------- - const Rec::TrackParticle* PixelClusterToTrackParticleAssociationTool::next(){ - - REPORT_MESSAGE (MSG::DEBUG) << "EnterNext"; - - if(m_pItr==m_pEnd){ - - //m_trackParticleMap.clear(); - //m_trackParticleForAssoc.clear(); - //m_tr=0; - - return 0; - } - - const Rec::TrackParticle *trackParticle = *m_pItr; - - m_pItr++; - - REPORT_MESSAGE (MSG::DEBUG) << "LeavingNext"; - return trackParticle; - } - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterToTrackParticleAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterToTrackParticleAssociationTool.h deleted file mode 100644 index 92168c2d85325c23559546c0ff2918522a22a978..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelClusterToTrackParticleAssociationTool.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_PIXELCLUSTERTOTRACKPARTICLEASSOCIATIONTOOL_H -#define INDETD3PDMAKER_PIXELCLUSTERTOTRACKPARTICLEASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/MultiAssociationTool.h" - -#include "GaudiKernel/AlgTool.h" -#include "GaudiKernel/ToolHandle.h" -#include "StoreGate/StoreGateSvc.h" -#include <vector> -#include <map> - -#include "InDetPrepRawData/PixelClusterContainer.h" -#include "InDetPrepRawData/PixelClusterCollection.h" -#include "InDetPrepRawData/PixelCluster.h" -#include "InDetRIO_OnTrack/SiClusterOnTrack.h" -#include "InDetPrepRawData/SiCluster.h" -#include "Identifier/Identifier.h" -#include "AthContainers/DataVector.h" - -#include "Particle/TrackParticleContainer.h" - - -namespace Rec{ - class TrackParticle; -} - - -namespace Trk{ - class Track; - class TrackStateOnSurface; -} - -namespace InDet { - class PixelCluster; - class SiCluster; -} - - - -namespace D3PD { - - class PixelClusterToTrackParticleAssociationTool - : public MultiAssociationTool<InDet::PixelCluster, Rec::TrackParticle> - { - public: - typedef MultiAssociationTool<InDet::PixelCluster, Rec::TrackParticle> Base; - - PixelClusterToTrackParticleAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode reset(const InDet::PixelCluster& cluster); - - virtual const Rec::TrackParticle* next(); - - private: - - const Rec::TrackParticleContainer* m_tr; - int m_eventNumber; - std::map< const Rec::TrackParticle*, std::vector<Identifier> > m_trackParticleMap; - - // StoreGate keys - std::string m_TrackParticleContainer; - - - std::vector<const Rec::TrackParticle* >::const_iterator m_pItr; - std::vector<const Rec::TrackParticle* >::const_iterator m_pEnd; - std::vector<const Rec::TrackParticle* > m_trackParticleForAssoc; - - - // NTuple variables - - - }; // class PixelClusterToTrackParticleAssociationTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_PIXELCLUSTERTOTRACKPARTICLEASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelRDOClusterAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelRDOClusterAssociationTool.cxx deleted file mode 100644 index 35971181c409f5e6143d88908020c94e1f43553c..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelRDOClusterAssociationTool.cxx +++ /dev/null @@ -1,181 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "PixelRDOClusterAssociationTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "TrkTrack/Track.h" -#include "TrkTrack/TrackCollection.h" -#include "InDetPrepRawData/PixelClusterContainer.h" -#include "InDetPrepRawData/PixelClusterCollection.h" -#include <map> - -#include "TrkTrack/TrackStateOnSurface.h" -#include "Identifier/Identifier.h" -#include "TrkEventPrimitives/TrackStateDefs.h" -#include "AtlasDetDescr/AtlasDetectorID.h" - -#include "InDetIdentifier/PixelID.h" -#include "xAODEventInfo/EventInfo.h" - - -namespace D3PD { - - PixelRDOClusterAssociationTool::PixelRDOClusterAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent), - m_cl(0), - m_eventNumber(0), - m_pixelId(0) - { - declareProperty ("ClusterConteinerKey", m_clusterContainer = "PixelClusters"); - } - - - StatusCode PixelRDOClusterAssociationTool::initialize() - { - CHECK( Base::initialize() ); - CHECK( detStore()->retrieve(m_pixelId,"PixelID") ); - - m_eventNumber = -1; - return StatusCode::SUCCESS; - } - - - StatusCode PixelRDOClusterAssociationTool::book () - { - - //CHECK( addVariable ("", m_variable) ); - - return StatusCode::SUCCESS; - } - - - const InDet::PixelCluster* PixelRDOClusterAssociationTool::get (const PixelRDORawData& rdo) - { - - // Get Track Collections - // Should be using Getter tools intead of StoreGate - // -- Tracks - - const InDet::PixelCluster *cluster = 0; - - Identifier rdoId = rdo.identify(); - int rdoTmpID = tempmoduleid(rdoId); - if ( !rdoTmpID ){ - REPORT_MESSAGE (MSG::ERROR) <<" Could not calculate tempID"; - return 0; - } - - const xAOD::EventInfo* eventInfo; - StatusCode sc = evtStore()->retrieve(eventInfo); - if (sc.isFailure()) - { - REPORT_MESSAGE (MSG::ERROR) << "Could not retrieve event info"; - return 0; - } - int eventNumber = (int)eventInfo->eventNumber(); - - if ( m_eventNumber != eventNumber ) { - - m_eventNumber = eventNumber; - m_rdoClusterMap.clear(); - - StatusCode sc = evtStore()->retrieve(m_cl, m_clusterContainer); - if(sc.isFailure() || !m_cl) { - REPORT_MESSAGE (MSG::WARNING) << "Could not retrieve Track Collection"; - return 0; - } - - - InDet::PixelClusterContainer::const_iterator clItr = m_cl->begin(); - for( ; clItr!=m_cl->end(); clItr++){ - - InDet::PixelClusterCollection::const_iterator rioItr = (*clItr)->begin(); - for (; rioItr != (*clItr)->end(); rioItr++) { - - - //const std::vector<Identifier>& rdoList = (*rioItr)->rdoList(); - - Identifier clIdentifier = (*rioItr)->identify(); - - int tmpID = tempmoduleid( clIdentifier ); - if ( !tmpID ) { - - REPORT_MESSAGE (MSG::ERROR) << "could not calculater tmpID for cluster"; - continue; - - } - - std::vector< const InDet::PixelCluster* > pixelClusterIdentifier; - pixelClusterIdentifier.push_back ( (*rioItr) ); - if ( m_rdoClusterMap.find(tmpID) == m_rdoClusterMap.end() ){ - - m_rdoClusterMap.insert(std::pair< int, std::vector<const InDet::PixelCluster*> >(tmpID,pixelClusterIdentifier) ); - - } - else{ - m_rdoClusterMap[tmpID].push_back( (*rioItr) ); - - } - } // Cluster Collection Loop - } // cluster container loop - }// one per event - - if ( m_rdoClusterMap.find(rdoTmpID) != m_rdoClusterMap.end() ){ - - std::vector< const InDet::PixelCluster *> cloi = m_rdoClusterMap[rdoTmpID]; - for( std::vector< const InDet::PixelCluster* >::iterator vIt = cloi.begin(); vIt!=cloi.end(); vIt++){ - - const std::vector<Identifier>& rdoList = (*vIt)->rdoList(); - - if ( find(rdoList.begin(),rdoList.end(),rdoId)!= rdoList.end() ) - cluster = (*vIt); - - if ( cluster ) break; - - }//vector loop - - } // if module is in the map - - return cluster; - } - - int PixelRDOClusterAssociationTool::tempmoduleid( Identifier id ){ - - int intbuf = 0; - int bec = (int)m_pixelId->barrel_ec(id); - int bec1 = bec; - int layer = (int)m_pixelId->layer_disk(id); - int phi_module = (char)m_pixelId->phi_module(id); - int eta_module = (char)m_pixelId->eta_module(id); - int eta_module1 = eta_module; - //int side = (int)m_pixelId->side(id); - int firstPrefix = 1; - if ( bec != 0 ){ - firstPrefix = 2; - if ( bec < 0 ) bec1 = bec*(-1); - } - int secondPrefix = 2; - if ( eta_module < 0 ){ - secondPrefix = 1; - eta_module1 = eta_module*(-1); - } - - char buf[1024]; - intbuf = 0; - //sprintf(buf,"%i%i%i%i%i%i%i",firstPrefix,secondPrefix,side,bec1,layer,eta_module1,phi_module); - sprintf(buf,"%i%i%i%i%i%i",firstPrefix,secondPrefix,bec1,layer,eta_module1,phi_module); - //if(!(from_string<int>(intbuf, std::string(buf), std::dec))){ - if ( EOF == sscanf(buf, "%i", &intbuf) ){ - REPORT_MESSAGE (MSG::ERROR) <<" Cannot convert string to int..."; - return 0; - } - - return intbuf; - } - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelRDOClusterAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelRDOClusterAssociationTool.h deleted file mode 100644 index 0580d0e91f33afc28b797d4a8edf4e4621401fe8..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelRDOClusterAssociationTool.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_PIXELRDOCLUSTERASSOCIATIONTOOL_H -#define INDETD3PDMAKER_PIXELRDOCLUSTERASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/SingleAssociationTool.h" - -#include "GaudiKernel/AlgTool.h" -#include "GaudiKernel/ToolHandle.h" -#include "StoreGate/StoreGateSvc.h" -#include <vector> - -#include "InDetPrepRawData/PixelClusterContainer.h" -#include "InDetPrepRawData/PixelClusterCollection.h" -#include "InDetPrepRawData/PixelCluster.h" -#include "Identifier/Identifier.h" -#include "AthContainers/DataVector.h" - -#include "AthenaKernel/CLASS_DEF.h" -#include "InDetRawData/InDetRawDataContainer.h" -#include "InDetRawData/InDetRawDataCollection.h" -#include "InDetRawData/PixelRDO_Container.h" -#include "InDetRawData/PixelRDO_Collection.h" -#include "InDetRawData/PixelRDORawData.h" -#include "InDetRawData/PixelRDO_Collection.h" // Needed to pick up CLID. - -#include <stdio.h> -#include <iostream> -#include <string> - - -class PixelID; - - -namespace InDet { - class PixelCluster; - class SiCluster; -} - - -namespace D3PD { - - class PixelRDOClusterAssociationTool - : public SingleAssociationTool<PixelRDORawData, InDet::PixelCluster> - { - public: - typedef SingleAssociationTool<PixelRDORawData, InDet::PixelCluster> Base; - - PixelRDOClusterAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - - virtual const InDet::PixelCluster* get (const PixelRDORawData& rdo); - - private: - - int tempmoduleid( Identifier id ); - const InDet::PixelClusterContainer *m_cl; - std::map< int, std::vector< const InDet::PixelCluster* > > m_rdoClusterMap; - int m_eventNumber; - const PixelID* m_pixelId; - - - // StoreGate keys - std::string m_clusterContainer; - - // NTuple variables - - - }; // class PixelRDOClusterAssociationTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_PIXELRDOCLUSTERASSOCIATIONTOOL_H - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelRDOCollectionGetterTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelRDOCollectionGetterTool.cxx deleted file mode 100644 index a8fbf68c0aab3fe65357185087caccf6070df6ee..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelRDOCollectionGetterTool.cxx +++ /dev/null @@ -1,139 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "PixelRDOCollectionGetterTool.h" -#include "GaudiKernel/MsgStream.h" - - -namespace D3PD { - -PixelRDOCollectionGetterTool::PixelRDOCollectionGetterTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ -} - -StatusCode PixelRDOCollectionGetterTool::initialize() -{ - CHECK( Base::initialize() ); - - // Get Particle Data Table - - return StatusCode::SUCCESS; -} - -const std::type_info& PixelRDOCollectionGetterTool::typeinfo() const -{ - return typeid(PixelRDO_Container); -} - - -const std::type_info& PixelRDOCollectionGetterTool::elementTypeinfo() const -{ - return typeid(PixelRDORawData); -} - - -size_t PixelRDOCollectionGetterTool::sizeHint(bool allowMissing) -{ - - const PixelRDO_Container* cont = get(allowMissing); - - - if (!cont) { - return 0; - } - - int nRDOs = 0; - - PixelRDO_Container::const_iterator col_It = cont->begin(); - PixelRDO_Container::const_iterator lastCol = cont->end(); - for( ; col_It!= lastCol ; ++col_It){ - - const PixelRDO_Collection* Pixel_Collection(*col_It); - if (!Pixel_Collection) continue; // select only Pixel RDOs - nRDOs += Pixel_Collection->size(); - } - - return nRDOs; -} - - -StatusCode PixelRDOCollectionGetterTool::reset(bool allowMissing) -{ - - const PixelRDO_Container* cont = get(allowMissing); - - if (!cont) { - m_contItr = m_contEnd; - m_collItr = m_collEnd; - return StatusCode::FAILURE; - } - - m_contItr = cont->begin(); - m_contEnd = cont->end(); - - if(m_contItr == m_contEnd){ - m_collItr = m_collEnd; - return StatusCode::SUCCESS; - } - - m_collItr = (*m_contItr)->begin(); - m_collEnd = (*m_contItr)->end(); - - return StatusCode::SUCCESS; -} - -const void* PixelRDOCollectionGetterTool::nextUntyped() -{ - - const PixelRDORawData* rawDataObject = 0; - - do{ - - if(m_contItr == m_contEnd){ - return 0; - } - - if (m_collItr == m_collEnd) - rawDataObject = 0; - else { - rawDataObject = *m_collItr; - m_collItr++; - } - - if(m_collItr == m_collEnd){ - m_contItr++; - if(m_contItr != m_contEnd){ - m_collItr = (*m_contItr)->begin(); - m_collEnd = (*m_contItr)->end(); - } - } - - } while(!rawDataObject); - - return rawDataObject; - -} - -// Dummies --- the default versions of these don't compile. -// But these are overridden by the derived class here. -template<> -const std::type_info& -CollectionGetterTool<PixelRDO_Container>::elementTypeinfo() const -{ - return typeid(PixelRDORawData); -} - -template<> -const void* -CollectionGetterTool<PixelRDO_Container>::nextUntyped() -{ - return 0; -} - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelRDOCollectionGetterTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelRDOCollectionGetterTool.h deleted file mode 100644 index e6b7c664544ce817fe69de0eb9c969ad3754b05e..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelRDOCollectionGetterTool.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_PIXELRDOCOLLECTIONGETTERTOOL_H -#define INDETD3PDMAKER_PIXELRDOCOLLECTIONGETTERTOOL_H - -#include "D3PDMakerUtils/SGCollectionGetterTool.h" - -#include "AthenaKernel/CLASS_DEF.h" -#include "InDetRawData/InDetRawDataContainer.h" -#include "InDetRawData/InDetRawDataCollection.h" -#include "InDetRawData/PixelRDO_Container.h" -#include "InDetRawData/PixelRDO_Collection.h" -#include "InDetRawData/PixelRDORawData.h" -//#include "InDetRawData/SCT_RDO_Collection.h" // Needed to pick up CLID. - -class PixelID; - - -namespace D3PD { - -class PixelRDOCollectionGetterTool - : public D3PD::SGCollectionGetterTool<PixelRDO_Container> -{ -public: - typedef D3PD::SGCollectionGetterTool<PixelRDO_Container> Base; - - PixelRDOCollectionGetterTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - StatusCode initialize(); - size_t sizeHint(bool=false); - StatusCode reset(bool=false); - const void* nextUntyped(); - - const std::type_info& typeinfo() const; - const std::type_info& elementTypeinfo() const; - -private: - - /* Container iterators **/ - PixelRDO_Container::const_iterator m_contItr; - PixelRDO_Container::const_iterator m_contEnd; - - /* Collection iterators **/ - PixelRDO_Collection::const_iterator m_collItr; - PixelRDO_Collection::const_iterator m_collEnd; - -}; // class PixelRDOCollectionGetterTool - -// Dummies --- the default versions of these don't compile. -// But these are overridden by the derived class here. -template<> -const std::type_info& -CollectionGetterTool<PixelRDO_Container>::elementTypeinfo() const; - -template<> -const void* -CollectionGetterTool<PixelRDO_Container>::nextUntyped(); - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_PIXELRDOCOLLECTIONGETTERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelRDOFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelRDOFillerTool.cxx deleted file mode 100644 index cc3f7064a9c5caf977fb91e99b6b45106b210c93..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelRDOFillerTool.cxx +++ /dev/null @@ -1,102 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "PixelRDOFillerTool.h" -#include "AthenaKernel/errorcheck.h" - - -namespace D3PD { - -PixelRDOFillerTool::PixelRDOFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : PixelRDOFillerBase (type, name, parent), - m_pixelId(0) -{ - book().ignore(); // Avoid coverity warnings. -} - -StatusCode PixelRDOFillerTool::initialize() -{ - -CHECK( PixelRDOFillerBase::initialize() ); - - if (detStore()->retrieve(m_pixelId,"PixelID").isFailure() ){ - REPORT_MESSAGE (MSG::FATAL) << "Unable to retrieve Pixel ID helper"; - return StatusCode::FAILURE; - } - -return StatusCode::SUCCESS; -} - -StatusCode PixelRDOFillerTool::book() -{ - - //CHECK( addVariable ("nRDO", m_nRDO) ); - //CHECK( addVariable ("time_ns", m_timeNanoSec) ); - //CHECK( addVariable ("isOnTrack", m_isOnTrack) ); - - CHECK( addVariable ("bec", m_bec) ); - CHECK( addVariable ("layer" ,m_layer) ); - CHECK( addVariable ("moduleEta", m_moduleEta) ); - CHECK( addVariable ("modulePhi", m_modulePhi) ); - - CHECK( addVariable ("ToT", m_ToT) ); - //CHECK( addVariable ("moduleSide", m_moduleSide) ); - //CHECK( addVariable ("firstStrip", m_firstStrip) ); - //CHECK( addVariable ("nStripsOnWafer", m_nStripsOnWafer) ); - //CHECK( addVariable ("timeBin", m_tbin) ); - - - return StatusCode::SUCCESS; -} - -StatusCode PixelRDOFillerTool::fill (const PixelRDORawData& pixelRdo) -{ - - this->clearData(); - - //const PixelRDORawData *p_pixelRdo = &pixelRdo; - - //const Pixel1RawData* rdo1 = dynamic_cast<const Pixel1RawData*>(p_pixelRdo); - //if (rdo1!=0) - // *m_tbin = rdo1->getTimeBin(); - //else *m_tbin = -1; - - Identifier Pixel_Identifier = pixelRdo.identify(); - *m_bec = m_pixelId->barrel_ec(Pixel_Identifier); - *m_layer = m_pixelId->layer_disk(Pixel_Identifier); - *m_modulePhi = m_pixelId->phi_module(Pixel_Identifier); - *m_moduleEta = m_pixelId->eta_module(Pixel_Identifier); - - *m_ToT = pixelRdo.getToT(); - //*m_moduleSide = m_pixelId->side(Pixel_Identifier); - //*m_firstStrip = pixelRdo.getStrip(); - //*m_nStripsOnWafer = pixelRdo.getGroupSize(); - //*m_isOnTrack = 0; - - return StatusCode::SUCCESS; -} - -void PixelRDOFillerTool::clearData(){ - - //*m_nRDO = -9999; - //*m_timeNanoSec = -9999; - //*m_isOnTrack = -9999; - - *m_bec = -9999; - *m_layer = -9999; - *m_moduleEta = -9999; - *m_modulePhi = -9999; - - *m_ToT = -9999; - //*m_moduleSide = -9999; - //*m_firstStrip = -9999; - //*m_nStripsOnWafer = -9999; - //*m_tbin = -9999; - -} - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelRDOFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelRDOFillerTool.h deleted file mode 100644 index 143a234c33f904d70c7895edead7d24272a55ab5..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/PixelRDOFillerTool.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_PIXELRDOFILLERTOOL_H -#define INDETD3PDMAKER_PIXELRDOFILLERTOOL_H - -#include "D3PDMakerUtils/BlockFillerTool.h" -#include <vector> - - -//#include "InDetRawData/SCT_RDO_Collection.h" -#include "InDetRawData/PixelRDO_Container.h" -#include "InDetRawData/PixelRDORawData.h" -//#include "InDetRawData/SCT3_RawData.h" -#include "InDetRawData/Pixel1RawData.h" //method 1? - -#include "Identifier/Identifier.h" -#include "InDetIdentifier/PixelID.h" - -class PixelID; - -namespace D3PD { - - - -class PixelRDOFillerTool - : public D3PD::BlockFillerTool<PixelRDORawData> - { - public: - - typedef D3PD::BlockFillerTool<PixelRDORawData> PixelRDOFillerBase; - PixelRDOFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode fill (const PixelRDORawData& p); - - private: - - void clearData(); - - const PixelID* m_pixelId; - - - /* NTuple variables **/ - //int *m_nRDO; - //float *m_timeNanoSec; - //int *m_isOnTrack; - int *m_bec; - int *m_layer; - int *m_moduleEta; - int *m_modulePhi; - - int *m_ToT; - //int *m_moduleSide; - //int *m_firstStrip; - //int *m_nStripsOnWafer; - //int *m_tbin; - - }; // class PixelRDOFillerTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_PIXELRDOFILLERTOOL_H - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTByteStreamErrorFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTByteStreamErrorFillerTool.cxx deleted file mode 100644 index 1a4bd761c5b62d3dd781304f30463decddf30b7a..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTByteStreamErrorFillerTool.cxx +++ /dev/null @@ -1,112 +0,0 @@ -/* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -*/ - -#include "SCTByteStreamErrorFillerTool.h" -#include "AthenaKernel/errorcheck.h" -#include <string> - -namespace D3PD { - - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -SCTByteStreamErrorFillerTool::SCTByteStreamErrorFillerTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : BlockFillerTool<xAOD::EventInfo> (type, name, parent), - m_sctid(0) - { - book().ignore(); // Avoid coverity warnings. - } - - StatusCode SCTByteStreamErrorFillerTool::initialize(){ - - if (detStore()->retrieve(m_sctid, "SCT_ID").isFailure()) { - REPORT_MESSAGE (MSG::ERROR) <<"Could not get SCT ID helper"; - return StatusCode::FAILURE; - } - - - - if (m_byteStreamErrTool.retrieve().isFailure()) { - REPORT_MESSAGE (MSG::ERROR) << "Failed to retrieve tool " << m_byteStreamErrTool; - return StatusCode::FAILURE; - } else { - REPORT_MESSAGE (MSG::INFO) << "Retrieved service " << m_byteStreamErrTool; - } - if (m_cabling.retrieve().isFailure()) { - REPORT_MESSAGE (MSG::ERROR) << "Failed to retrieve service " << m_cabling; - return StatusCode::FAILURE; - } else { - REPORT_MESSAGE (MSG::INFO) << "Retrieved service " << m_cabling; - } - - - - return StatusCode::SUCCESS; - - } - - /** - * @brief Book variables for this block. - */ - StatusCode SCTByteStreamErrorFillerTool::book() - { - - CHECK( addVariable ("sctBSerr_Ntot", m_totalNumErrors) ); - CHECK( addVariable ("sctBSerr_bec", m_scterr_bec) ) ; - CHECK( addVariable ("sctBSerr_layer", m_scterr_layer) ); - CHECK( addVariable ("sctBSerr_eta", m_scterr_eta) ); - CHECK( addVariable ("sctBSerr_phi", m_scterr_phi) ); - CHECK( addVariable ("sctBSerr_side", m_scterr_side) ); - CHECK( addVariable ("sctBSerr_rodid", m_scterr_rodid) ); - CHECK( addVariable ("sctBSerr_channel", m_scterr_channel) ); - CHECK( addVariable ("sctBSerr_type", m_scterr_type) ); - - return StatusCode::SUCCESS; - } - - -StatusCode SCTByteStreamErrorFillerTool::fill (const xAOD::EventInfo& /*p*/) - { - *m_totalNumErrors = 0; - for (int type=0; type < SCT_ByteStreamErrors::NUM_ERROR_TYPES; ++type) { - const std::set<IdentifierHash> errorSet = m_byteStreamErrTool->getErrorSet(type); - int eta=0,phi=0,bec=0,layer=0,side=0; - *m_totalNumErrors += errorSet.size(); - for(const auto& idHash : errorSet) { - Identifier itId = m_sctid->wafer_id(idHash); - layer = m_sctid->layer_disk(itId); - side = m_sctid->side(itId); - eta = m_sctid->eta_module(itId); - phi = m_sctid->phi_module(itId); - bec = m_sctid->barrel_ec(itId); - m_scterr_type->push_back(type); - m_scterr_bec->push_back(bec); - m_scterr_layer->push_back(layer); - m_scterr_eta->push_back(eta); - m_scterr_phi->push_back(phi); - m_scterr_side->push_back(side); - - uint32_t onlineID = m_cabling->getOnlineIdFromHash(idHash); - SCT_OnlineId online(onlineID); - uint32_t rod = online.rod(); - uint32_t fibre = online.fibre(); - m_scterr_rodid->push_back((int)rod); - m_scterr_channel->push_back((int)fibre); - } - - } - - - return StatusCode::SUCCESS; - } - - - } // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTByteStreamErrorFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTByteStreamErrorFillerTool.h deleted file mode 100644 index 81529cf435ac3a77bc776ffebbb640fb34c51a89..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTByteStreamErrorFillerTool.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_SCTBYTESTREAMERRORFILLERTOOL_H -#define INDETD3PDMAKER_SCTBYTESTREAMERRORFILLERTOOL_H - - -#include "D3PDMakerUtils/BlockFillerTool.h" -#include "InDetIdentifier/SCT_ID.h" -#include "SCT_ConditionsTools/ISCT_ByteStreamErrorsTool.h" -#include "SCT_Cabling/ISCT_CablingTool.h" -#include "SCT_Cabling/SCT_OnlineId.h" -#include "xAODEventInfo/EventInfo.h" - -#include <vector> - - -namespace D3PD { - - -/** - * @brief Block filler tool for byte stream error state from ByteStreamErrorsSvc. - */ -class SCTByteStreamErrorFillerTool - : public BlockFillerTool<xAOD::EventInfo> -{ -public: - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - SCTByteStreamErrorFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - - virtual StatusCode initialize() override; - - /// Book variables for this block. - virtual StatusCode book() override; - - - /** - * @brief Fill one block --- type-safe version. - * - * This is called once per object. The caller - * is responsible for arranging that all the pointers for booked variables - * are set appropriately upon entry. - */ - virtual StatusCode fill (const xAOD::EventInfo& p) override; - - - private: - - const SCT_ID* m_sctid; - ToolHandle<ISCT_ByteStreamErrorsTool> m_byteStreamErrTool{this, "SCT_ByteStreamErrorsTool", "SCT_ByteStreamErrorsTool", "Tool to retrieve SCT ByteStream Errors"}; - ToolHandle<ISCT_CablingTool> m_cabling{this, "SCT_CablingTool", "SCT_CablingTool", "Tool to retrieve SCT Cabling"}; - - - int *m_totalNumErrors; - std::vector<int> *m_scterr_bec; - std::vector<int> *m_scterr_layer; - std::vector<int> *m_scterr_eta; - std::vector<int> *m_scterr_phi; - std::vector<int> *m_scterr_side; - std::vector<int> *m_scterr_rodid; - std::vector<int> *m_scterr_channel; - std::vector<int> *m_scterr_type; - - }; - - -} // namespace D3PD - -#endif diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterCollectionGetterTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterCollectionGetterTool.cxx deleted file mode 100644 index 2e648d71bc20adbb0d6b3b0cba1fb5a596b91708..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterCollectionGetterTool.cxx +++ /dev/null @@ -1,134 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "SCTClusterCollectionGetterTool.h" - -#include "InDetPrepRawData/SCT_Cluster.h" - -namespace D3PD { - -SCTClusterCollectionGetterTool::SCTClusterCollectionGetterTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ -} - -StatusCode SCTClusterCollectionGetterTool::initialize() -{ - CHECK( Base::initialize() ); - - return StatusCode::SUCCESS; -} - -const std::type_info& SCTClusterCollectionGetterTool::typeinfo() const -{ - return typeid(InDet::SCT_ClusterContainer); -} - - -const std::type_info& SCTClusterCollectionGetterTool::elementTypeinfo() const -{ - return typeid(InDet::SCT_Cluster); -} - -size_t SCTClusterCollectionGetterTool::sizeHint(bool allowMissing) -{ - const InDet::SCT_ClusterContainer* cont = (InDet::SCT_ClusterContainer*)getUntyped(allowMissing); - - if (!cont) { - return 0; - } - int nclus = 0; - - // Loop over the container - InDet::SCT_ClusterContainer::const_iterator itr = cont->begin(); - InDet::SCT_ClusterContainer::const_iterator itr_end = cont->end(); - for( ; itr!=itr_end; ++itr ){ - - // Loop over the collection - InDet::SCT_ClusterCollection::const_iterator itr_col = (*itr)->begin(); - InDet::SCT_ClusterCollection::const_iterator itr_col_end = (*itr)->end(); - for( ; itr_col!=itr_col_end; ++itr_col ){ - nclus++; - } - } - - return nclus; -} - -StatusCode SCTClusterCollectionGetterTool::reset(bool allowMissing) -{ - - //std::cout << "reset in SCT Cluster Getter" << std::endl; - - const InDet::SCT_ClusterContainer* cont = (InDet::SCT_ClusterContainer*)getUntyped(allowMissing); - - if (!cont) { - m_contItr = m_contEnd; - m_collItr = m_collEnd; - return StatusCode::FAILURE; - } - - m_contItr = cont->begin(); - m_contEnd = cont->end(); - - if(m_contItr == m_contEnd){ - m_collItr = m_collEnd; - return StatusCode::SUCCESS; - } - - m_collItr = (*m_contItr)->begin(); - m_collEnd = (*m_contItr)->end(); - - return StatusCode::SUCCESS; -} - - -const void* SCTClusterCollectionGetterTool::nextUntyped() -{ - if(m_collItr == m_collEnd){ - if(m_contItr==m_contEnd){ - return 0; - } - m_contItr++; - if(m_contItr==m_contEnd){ - return 0; - } - m_collItr = (*m_contItr)->begin(); - m_collEnd = (*m_contItr)->end(); - if(m_collItr == m_collEnd){ - return 0; - } - } - - const InDet::SCT_Cluster *clus = *m_collItr; - - m_collItr++; - - //std::cout << "nextUntyped in SCT Cluster Getter. count_this " << std::endl; - - return clus; -} - - -// Dummies --- the default versions of these don't compile. -// But these are overridden by the derived class here. -template<> -const std::type_info& -CollectionGetterTool<InDet::SCT_ClusterContainer>::elementTypeinfo() const -{ - return typeid(InDet::SCT_Cluster); -} - -template<> -const void* -CollectionGetterTool<InDet::SCT_ClusterContainer>::nextUntyped() -{ - return 0; -} - - -} diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterCollectionGetterTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterCollectionGetterTool.h deleted file mode 100644 index bca14924a0f670969cf5341de5c4f67b41dac883..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterCollectionGetterTool.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_SCTCLUSTERCOLLECTIONGETTERTOOL_H -#define INDETD3PDMAKER_SCTCLUSTERCOLLECTIONGETTERTOOL_H - -#include "D3PDMakerUtils/SGCollectionGetterTool.h" -#include "InDetPrepRawData/SCT_ClusterContainer.h" -#include "InDetPrepRawData/SCT_ClusterCollection.h" -#include "InDetPrepRawData/SCT_Cluster.h" - -namespace D3PD { - -class SCTClusterCollectionGetterTool - : public SGCollectionGetterTool<InDet::SCT_ClusterContainer> -{ - public: - typedef SGCollectionGetterTool<InDet::SCT_ClusterContainer> Base; - - SCTClusterCollectionGetterTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - StatusCode initialize(); - size_t sizeHint(bool=false); - StatusCode reset(bool=false); - const void* nextUntyped(); - const std::type_info& typeinfo() const; - const std::type_info& elementTypeinfo() const; - - private: - InDet::SCT_ClusterContainer::const_iterator m_contItr; - InDet::SCT_ClusterContainer::const_iterator m_contEnd; - - InDet::SCT_ClusterCollection::const_iterator m_collItr; - InDet::SCT_ClusterCollection::const_iterator m_collEnd; -}; - -// Dummies --- the default versions of these don't compile. -// But these are overridden by the derived class here. -template<> -const std::type_info& -CollectionGetterTool<InDet::SCT_ClusterContainer>::elementTypeinfo() const; - -template<> -const void* -CollectionGetterTool<InDet::SCT_ClusterContainer>::nextUntyped(); - -} - -#endif // INDETD3PDMAKER_SCTCLUSTERCOLLECTIONGETTERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterFillerTool.cxx deleted file mode 100644 index 5623cadccc4ce495c99db43c6b83ead58f96ef2a..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterFillerTool.cxx +++ /dev/null @@ -1,121 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "SCTClusterFillerTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "InDetReadoutGeometry/SiDetectorElement.h" -#include "InDetIdentifier/SCT_ID.h" -#include "InDetPrepRawData/SCT_Cluster.h" - - -namespace D3PD { - - -SCTClusterFillerTool::SCTClusterFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : D3PD::BlockFillerTool<InDet::SCT_Cluster> (type, name, parent), - m_sctId(0) -{ - book().ignore(); // Avoid coverity warnings. -} - -StatusCode SCTClusterFillerTool::initialize(){ - - CHECK( Base::initialize() ); - - if (detStore()->retrieve(m_sctId,"SCT_ID").isFailure() ){ - REPORT_MESSAGE (MSG::FATAL) << "Unable to retrieve SCT ID helper"; - return StatusCode::FAILURE; - } - - return StatusCode::SUCCESS; -} - -StatusCode SCTClusterFillerTool::book(){ - - CHECK( addVariable ("id", m_id) ); - CHECK( addVariable ("bec", m_bec) ); - CHECK( addVariable ("layer", m_layer) ); - CHECK( addVariable ("detElementId", m_detElementId) ); - CHECK( addVariable ("phi_module", m_phi_module) ); - CHECK( addVariable ("eta_module", m_eta_module) ); - CHECK( addVariable ("x", m_x) ); - CHECK( addVariable ("y", m_y) ); - CHECK( addVariable ("z", m_z) ); - CHECK( addVariable ("locX", m_locX) ); - CHECK( addVariable ("locY", m_locY) ); - CHECK( addVariable ("side", m_side) ); - CHECK( addVariable ("size", m_size) ); - - return StatusCode::SUCCESS; -} - -StatusCode SCTClusterFillerTool::fill (const InDet::SCT_Cluster& clus) -{ - - this->clearData(); - - Identifier id = clus.identify(); - - if ( id.is_valid() ) { - - *m_size = int(clus.rdoList().size()); - *m_id = id.get_compact(); - *m_bec = (int)m_sctId->barrel_ec(id); - *m_layer = (int)m_sctId->layer_disk(id); - *m_phi_module = (int)m_sctId->phi_module(id); - *m_eta_module = (int)m_sctId->eta_module(id); - *m_side = (int)m_sctId->side(id); - - } - - const InDetDD::SiDetectorElement* de = clus.detectorElement(); - if(de){ - Identifier detId = de->identify(); - if ( detId.is_valid() ) { - *m_detElementId = detId.get_compact(); - } - } - - const Amg::Vector2D& locpos = clus.localPosition(); - *m_locX = locpos.x(); //[Trk::locX]; - if ( !(std::isinf(locpos.y()) || std::isnan(locpos.y())) ){ - if (locpos.y()<1e-07) - *m_locY= 0.; - else - *m_locY=locpos.y(); - } - else - *m_locY = -9999.;//= locpos[Trk::locY]; - - - - const Amg::Vector3D& glopos = clus.globalPosition(); - *m_x = glopos.x(); //[Trk::x]; - *m_y = glopos.y(); //[Trk::y]; - *m_z = glopos.z(); //[Trk::z]; - return StatusCode::SUCCESS; -} - -void SCTClusterFillerTool::clearData(){ - - *m_id = 0; - *m_detElementId = 0; - *m_bec = -1; - *m_layer = -1; - *m_phi_module = 0; - *m_eta_module = 0; - *m_x = -99999.; - *m_y = -99999.; - *m_z = -99999.; - *m_locX = -99999.; - *m_locY = -99999.; - *m_side = -10; - *m_size = -99999; - -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterFillerTool.h deleted file mode 100644 index 9d07d4d56aa9ba26f3d980b16e75a8b143880fd9..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterFillerTool.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_SCTCLUSTERFILLERTOOL_H -#define INDETD3PDMAKER_SCTCLUSTERFILLERTOOL_H - -#include "D3PDMakerUtils/BlockFillerTool.h" - -#include "Identifier/Identifier.h" - -class SCT_ID; - -namespace InDet { - class SCT_Cluster; -} - -namespace D3PD { - - -class SCTClusterFillerTool - : public D3PD::BlockFillerTool<InDet::SCT_Cluster> -{ -public: - typedef D3PD::BlockFillerTool<InDet::SCT_Cluster> Base; - - SCTClusterFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode fill (const InDet::SCT_Cluster &clus); - -private: - - void clearData(); - - const SCT_ID* m_sctId; - - /* NTuple variables: **/ - Identifier::value_type *m_id; // unique identifier for a cluster - Identifier::value_type *m_detElementId; - int *m_bec; // Barrel:0, End Cap: +/- 2 - int *m_layer; - int *m_phi_module; - int *m_eta_module; - float *m_x; - float *m_y; - float *m_z; - float *m_locX; - float *m_locY; - int *m_side; - int *m_size; - -}; // class SCTClusterFillerTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_SCTCLUSTERFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterSCTRDOAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterSCTRDOAssociationTool.cxx deleted file mode 100644 index c0090b946de25cdbd88e72bdde534689b717a1a7..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterSCTRDOAssociationTool.cxx +++ /dev/null @@ -1,230 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -//********************************************************/ -// @author <yuriy.pylypchenko@cern.ch> / -// @date Oct, 2010 / -// @brief setting up an association of clusters to tracks / -// represented by indices. / -//********************************************************/ - - -#include "SCTClusterSCTRDOAssociationTool.h" -#include "AthenaKernel/errorcheck.h" -#include "TrkTrack/Track.h" -#include "TrkTrack/TrackCollection.h" -#include "InDetPrepRawData/SCT_ClusterContainer.h" -#include "InDetPrepRawData/SCT_ClusterCollection.h" -#include <map> - -#include "TrkTrack/TrackStateOnSurface.h" -#include "Identifier/Identifier.h" -#include "TrkEventPrimitives/TrackStateDefs.h" -#include "AtlasDetDescr/AtlasDetectorID.h" -#include "InDetIdentifier/SCT_ID.h" -#include "xAODEventInfo/EventInfo.h" - - -namespace D3PD { - - -SCTClusterSCTRDOAssociationTool::SCTClusterSCTRDOAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : SCTClusterSCTRDOBase(type, name, parent), - m_sctId(0), - m_eventNumber(0), - m_rdocont(0) -{ -} - - -/// initialize method. -StatusCode SCTClusterSCTRDOAssociationTool::initialize() -{ - - //return SCTClusterSCTRDOBase::initialize(); - CHECK ( SCTClusterSCTRDOBase::initialize() ); - if (detStore()->retrieve(m_sctId,"SCT_ID").isFailure() ){ - REPORT_MESSAGE (MSG::FATAL) << "Unable to retrieve SCT ID helper"; - return StatusCode::FAILURE; - } - - m_eventNumber = -1; - - return StatusCode::SUCCESS; -} -/// booking btuple variables -StatusCode SCTClusterSCTRDOAssociationTool::book() -{ - - CHECK( SCTClusterSCTRDOBase::book() ); - - return StatusCode::SUCCESS; -} -StatusCode SCTClusterSCTRDOAssociationTool::invalidate(StatusCode sc){ - - m_rdoItr = m_rdoEnd; - return sc; -} - -/// -/// @brief Start the iteration for a new association. -/// @param p The object from which to associate. -/// -StatusCode SCTClusterSCTRDOAssociationTool::reset (const InDet::SCT_Cluster& p) -{ - - m_sctRDOForAssociation.clear(); - - - int clusterModuleID = 0; - StatusCode sc = tempmoduleid(p.identify(), clusterModuleID); - if ( sc.isFailure() ) REPORT_MESSAGE (MSG::ERROR)<< "Failed to calculate the tempID."; - - std::vector< Identifier> sctClusterIdentifier; - - const std::vector<Identifier>& rdoList = p.rdoList(); - sctClusterIdentifier.insert(sctClusterIdentifier.end(),rdoList.begin(),rdoList.end()); - - - const xAOD::EventInfo* eventInfo; - sc = evtStore()->retrieve(eventInfo); - if (sc.isFailure()) - { - REPORT_MESSAGE (MSG::ERROR) << "Could not retrieve event info"; - return StatusCode::FAILURE; - } - int eventNumber = (int)eventInfo->eventNumber(); - - if (m_eventNumber != eventNumber ){ - // For each event - - m_globalmapOfRDOsPerModule.clear(); - m_eventNumber = eventNumber; - - if(!evtStore()->contains<SCT_RDO_Container>("SCT_RDOs")){ - REPORT_MESSAGE (MSG::WARNING) << "RDOTESTASSOC: No SCT RDO container in StoreGate"; - } - else { - sc = evtStore()->retrieve(m_rdocont,"SCT_RDOs"); - if(sc.isFailure()) { - REPORT_MESSAGE (MSG::WARNING) << "Failed to retrieve SCT RDO container"; - } - } - - if ( m_rdocont != 0){ - - // get all the RIO_Collections in the container - SCT_RDO_Container::const_iterator contIt = m_rdocont->begin(); - for( ; contIt != m_rdocont->end(); contIt++){ - - //get all the RDOs in the collection - //const SCT_RDO_Collection* SCT_Collection(*contIt); - SCT_RDO_Collection::const_iterator rdoIt = (*contIt)->begin(); - for (; rdoIt != (*contIt)->end(); rdoIt++) { - - if (!(*rdoIt)) { - REPORT_MESSAGE (MSG::WARNING) << "Null rdo...."; - continue; - } - - Identifier rdoId = (*rdoIt)->identify(); - - int rdoModuleID = 0; - StatusCode sc2 = tempmoduleid (rdoId, rdoModuleID); - if ( sc2.isFailure() ) REPORT_MESSAGE (MSG::WARNING)<<" Failed to calculate RDO tempID!"; - - std::map< Identifier, const SCT_RDORawData* > tempmap; - tempmap.insert( std::pair< Identifier, const SCT_RDORawData*>( rdoId, (*rdoIt) ) ); - - if ( m_globalmapOfRDOsPerModule.find(rdoModuleID) == m_globalmapOfRDOsPerModule.end() ) - m_globalmapOfRDOsPerModule.insert( std::pair< int, std::map< Identifier, const SCT_RDORawData*> >( rdoModuleID, tempmap )); - else { - if ( m_globalmapOfRDOsPerModule[rdoModuleID].find(rdoId) == m_globalmapOfRDOsPerModule[rdoModuleID].end() ) - m_globalmapOfRDOsPerModule[rdoModuleID].insert(std::pair<Identifier, const SCT_RDORawData*>(rdoId,(*rdoIt))); - else REPORT_MESSAGE (MSG::WARNING) << " More then one RDO per identifier!"; - } - - } // collection - } // container - } - //for each event - } - //For each cluster - std::map< Identifier, const SCT_RDORawData*>::iterator mIt2 = m_globalmapOfRDOsPerModule[clusterModuleID].begin(); - for( ; mIt2!=m_globalmapOfRDOsPerModule[clusterModuleID].end(); mIt2++){ - Identifier rdoIdentity = mIt2->first; - std::vector<Identifier>::iterator posIt = find(sctClusterIdentifier.begin(),sctClusterIdentifier.end(),rdoIdentity); - if ( posIt != sctClusterIdentifier.end() ){ - m_sctRDOForAssociation.push_back(mIt2->second); - } - } - // end of global map loop - - - m_rdoItr = m_sctRDOForAssociation.begin(); //sct::vector<cont InDet::SCT_Cluster>::const_iterator - m_rdoEnd = m_sctRDOForAssociation.end(); - - - return StatusCode::SUCCESS; -} - -/** -* @brief Return a pointer to the next element in the association. -* -* Return 0 when the association has been exhausted. -*/ -const SCT_RDORawData* SCTClusterSCTRDOAssociationTool::next() - { - - // reached the end - if(m_rdoItr==m_rdoEnd){ - return 0; - } - else{ - } - - const SCT_RDORawData* RawData = *m_rdoItr; - - m_rdoItr++; // to go throuhg all the HitsOnTrack - - return RawData; - - } - - StatusCode SCTClusterSCTRDOAssociationTool::tempmoduleid( Identifier id, int& intbuf ){ - - int bec = (int)m_sctId->barrel_ec(id); - int bec1 = bec; - int layer = (int)m_sctId->layer_disk(id); - int phi_module = (char)m_sctId->phi_module(id); - int eta_module = (char)m_sctId->eta_module(id); - int eta_module1 = eta_module; - int side = (int)m_sctId->side(id); - int firstPrefix = 1; - if ( bec != 0 ){ - firstPrefix = 2; - if ( bec < 0 ) bec1 = bec*(-1); - } - int secondPrefix = 2; - if ( eta_module < 0 ){ - secondPrefix = 1; - eta_module1 = eta_module*(-1); - } - - char buf[1024]; - intbuf = 0; - sprintf(buf,"%i%i%i%i%i%i%i",firstPrefix,secondPrefix,side,bec1,layer,eta_module1,phi_module); - if(!(from_string<int>(intbuf, std::string(buf), std::dec))){ - //if ( EOF == sscanf(buf, "%i", &intbuf) ){ - REPORT_MESSAGE (MSG::ERROR) <<" Cannot convert string to int..."; - return StatusCode::FAILURE; - } - - return StatusCode::SUCCESS; - } - - } // namespace D3PD - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterSCTRDOAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterSCTRDOAssociationTool.h deleted file mode 100644 index cf3216667fb3d853e16040d415630dae4329c5b6..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterSCTRDOAssociationTool.h +++ /dev/null @@ -1,140 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/** -* @date Oct, 2010 -* @brief setting up an association of SCT clusters to RDOs -* represented by indices. -*/ -#ifndef SCTCLUSTERSCTRDOASSOCIATIONTOOL_H -#define SCTCLUSTERSCTRDOASSOCIATIONTOOL_H - - -#include "D3PDMakerUtils/MultiAssociationTool.h" -#include "GaudiKernel/AlgTool.h" -#include "GaudiKernel/ToolHandle.h" -#include "StoreGate/StoreGateSvc.h" -#include <vector> -#include <map> - -#include "InDetPrepRawData/SCT_ClusterContainer.h" -#include "InDetPrepRawData/SCT_ClusterCollection.h" -#include "InDetPrepRawData/SCT_Cluster.h" -#include "InDetRIO_OnTrack/SiClusterOnTrack.h" -#include "InDetPrepRawData/SiCluster.h" -#include "Identifier/Identifier.h" -#include "AthContainers/DataVector.h" - -#include "AthenaKernel/CLASS_DEF.h" -#include "InDetRawData/InDetRawDataContainer.h" -#include "InDetRawData/InDetRawDataCollection.h" -#include "InDetRawData/SCT_RDO_Container.h" -#include "InDetRawData/SCT_RDO_Collection.h" -#include "InDetRawData/SCT_RDORawData.h" -#include "InDetRawData/SCT_RDO_Collection.h" // Needed to pick up CLID. -#include <stdio.h> -#include <iostream> -#include <string> - - -class SCT_ID; - -namespace InDet { - class SCT_Cluster; - class SiCluster; -} - - -namespace D3PD { - - - template <class T> - bool from_string(T& t, const std::string& s, std::ios_base& (*f)(std::ios_base&)) - { - std::istringstream iss(s); - return !(iss >> f >> t).fail(); - } - - - /// - ///@brief Associate all clusters which belong to given track. - /// - /// This is a multiple association tool. - /// Given an @c InDet::SCT_Cluster object and a container of such objects, - /// return the all objects in the container wich identified with TrackStateOnSurface - /// (Measurements) of the input track. - /// - -typedef D3PD::MultiAssociationTool<InDet::SCT_Cluster, SCT_RDORawData> SCTClusterSCTRDOBase; - -class SCTClusterSCTRDOAssociationTool - : public SCTClusterSCTRDOBase -{ -public: - - /// - /// @brief Standard Gaudi tool constructor. - /// @param type The name of the tool type. - /// @param name The tool name. - /// @param parent The tool's Gaudi parent. - /// - SCTClusterSCTRDOAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - - /// Standard initialize method. - virtual StatusCode initialize(); - /// - /// @brief Create any needed tuple variables. - /// In principle we do not intend to get anything else then index - ///(=we don't create) variables - /// but for debugging and validation puproses it is nice to have this. - /// This is called at the start of the first event. - /// - virtual StatusCode book(); - - /// - /// @brief Start the iteration for a new association. - /// @param p The object from which to associate. - /// - virtual StatusCode reset (const InDet::SCT_Cluster& p); - - - /// - /// @brief Return a pointer to the next element in the association. - /// - /// Return 0 when the association has been exhausted. - /// - virtual const SCT_RDORawData* next(); - - -private: - - StatusCode invalidate(StatusCode); - StatusCode tempmoduleid( Identifier id, int& calculatedID ); - - - const SCT_ID* m_sctId; - - int m_eventNumber; - const SCT_RDO_Container* m_rdocont; - std::map < int, std::map< Identifier, const SCT_RDORawData*> > m_globalmapOfRDOsPerModule; - - - /// The input object. - std::vector<const SCT_RDORawData* >::const_iterator m_rdoItr; - std::vector<const SCT_RDORawData* >::const_iterator m_rdoEnd; - - - std::vector<const SCT_RDORawData*> m_sctRDOForAssociation; - - -}; // class SCTClusterSCTRDOAssociationTool - - -} // namespace D3PD - -#endif // not SCTCLUSTERSCTRDOASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterToTrackParticleAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterToTrackParticleAssociationTool.cxx deleted file mode 100644 index 9eb156271050e8f780565c732cb694813ddf3e70..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterToTrackParticleAssociationTool.cxx +++ /dev/null @@ -1,196 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "SCTClusterToTrackParticleAssociationTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "Particle/TrackParticle.h" -#include "Particle/TrackParticleContainer.h" -#include "TrkTrack/Track.h" -#include "TrkTrack/TrackCollection.h" -#include "InDetPrepRawData/SCT_ClusterContainer.h" -#include "InDetPrepRawData/SCT_ClusterCollection.h" -#include <map> - -#include "TrkTrack/TrackStateOnSurface.h" -#include "Identifier/Identifier.h" -#include "TrkEventPrimitives/TrackStateDefs.h" -#include "AtlasDetDescr/AtlasDetectorID.h" -#include "xAODEventInfo/EventInfo.h" - - -namespace D3PD { - - SCTClusterToTrackParticleAssociationTool::SCTClusterToTrackParticleAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent), - m_tr(0), - m_eventNumber(0) - { - declareProperty ("TrackParticleContainerSGKey", m_TrackParticleContainer = "TrackParticleCandidate"); - } - - - StatusCode SCTClusterToTrackParticleAssociationTool::initialize() - { - - CHECK( Base::initialize() ); - - m_tr = 0; - m_eventNumber = -1; - - return StatusCode::SUCCESS; - } - - - StatusCode SCTClusterToTrackParticleAssociationTool::book () - { - - CHECK( Base::book() ); - - return StatusCode::SUCCESS; - } - - - StatusCode SCTClusterToTrackParticleAssociationTool::reset(const InDet::SCT_Cluster& cluster) - { - - //REPORT_MESSAGE (MSG::DEBUG) << "EnterReset"; - - // Get Track Collections - // Should be using Getter tools intead of StoreGate - // -- Tracks - - m_trackParticleForAssoc.clear(); - - StatusCode sc = StatusCode::SUCCESS; - - const xAOD::EventInfo* eventInfo = nullptr; - sc = evtStore()->retrieve(eventInfo); - if (sc.isFailure()) - { - REPORT_MESSAGE (MSG::ERROR) << "Could not retrieve event info"; - } - int eventNumber = (int)eventInfo->eventNumber(); - - - // FIXME: Obviously bogus! Should catch an incident. - if (m_eventNumber != eventNumber ){ // tretrieve only once! - - m_eventNumber = eventNumber; - - m_trackParticleMap.clear(); - - sc = evtStore()->retrieve(m_tr, m_TrackParticleContainer); - if(sc.isFailure() || !m_tr) { - REPORT_MESSAGE (MSG::WARNING) << "Could not retrieve TrackParticleContainer"; - return StatusCode::FAILURE; - } - else { - - - Rec::TrackParticleContainer::const_iterator trItr = m_tr->begin(); - for( ; trItr!=m_tr->end(); trItr++){ - - - const Trk::Track *track = (*trItr)->originalTrack(); - if ( !track ){ - //REPORT_MESSAGE (MSG::DEBUG) << "Could not access original track"; - continue; - } - std::vector< Identifier> sctClusterIdentifier; - - const DataVector<const Trk::TrackStateOnSurface>* trackHits = track->trackStateOnSurfaces(); - - if (!trackHits){ - //REPORT_MESSAGE (MSG::DEBUG) << "REVERSE TESTASSOC for current track measurementsOntrack == Null, no clusters will be associated with this track"; - continue; - } - - DataVector<const Trk::TrackStateOnSurface>::const_iterator it = trackHits->begin(); - - for ( ; it != trackHits->end(); it++){ - - const InDet::SiClusterOnTrack *clus = dynamic_cast<const InDet::SiClusterOnTrack*>((*it)->measurementOnTrack()); - - if (clus){ - - const Trk::TrkDetElementBase* detectorElement = clus->detectorElement(); - // Dynamic cast to Silicon element and do Pixel / SCT element test - const InDetDD::SiDetectorElement* siliconDetectorElement = dynamic_cast< const InDetDD::SiDetectorElement* >(detectorElement); - if ( siliconDetectorElement ){ - - // Get Pointer to prepRawDataObject - const InDet::SCT_Cluster *RawDataClus = dynamic_cast<const InDet::SCT_Cluster*>(clus->prepRawData()); - - // check if Cluster is in SCT ... - if (RawDataClus!=0){ - if (RawDataClus->detectorElement()->isSCT()){ - - //REPORT_MESSAGE (MSG::DEBUG) << "REVERSE TESTASSOC SiHIT via prepRawData"; - - Identifier sctClusterID = RawDataClus->identify(); - sctClusterIdentifier.push_back(sctClusterID); - //REPORT_MESSAGE (MSG::DEBUG) << "(2)REVERSE TESTASSOC TSoS-Type is: "<< (*it)->types().to_ulong(); - - } // isSCT - } // RawDataClus - } // siliconDetectorElement - else { - //REPORT_MESSAGE (MSG::DEBUG) << "REVERSE TESTASSOC can't cast to siliconDetElement!!!!"; - } - } // clus - } // TSoS loop - - m_trackParticleMap.insert(std::pair<const Rec::TrackParticle*, std::vector<Identifier> >(*trItr,sctClusterIdentifier)); - - } // track loop - } // if trackParticle is properly retrieved - } // if !m_tr - - // reverse logic compare to TrackSCTClusterAssociationTool - - Identifier clusterId = cluster.identify(); - - std::map< const Rec::TrackParticle*, std::vector<Identifier> >::const_iterator mapIt = m_trackParticleMap.begin(); - for( ; mapIt!=m_trackParticleMap.end(); mapIt++){ - - - if ( find(mapIt->second.begin(),mapIt->second.end(),clusterId)!= mapIt->second.end() ){ - m_trackParticleForAssoc.push_back(mapIt->first); - } - } - - m_pItr = m_trackParticleForAssoc.begin(); - m_pEnd = m_trackParticleForAssoc.end(); - - //REPORT_MESSAGE (MSG::DEBUG) << "LeavingReset"; - - return StatusCode::SUCCESS; - } - //--------------------------------------------------------------------------------------------- - const Rec::TrackParticle* SCTClusterToTrackParticleAssociationTool::next(){ - - //REPORT_MESSAGE (MSG::DEBUG) << "EnterNext"; - - if(m_pItr==m_pEnd){ - - //m_trackParticleMap.clear(); - //m_trackParticleForAssoc.clear(); - //m_tr=0; - - return 0; - } - - const Rec::TrackParticle *trackParticle = *m_pItr; - - m_pItr++; - - //REPORT_MESSAGE (MSG::DEBUG) << "LeavingNext"; - return trackParticle; - } - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterToTrackParticleAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterToTrackParticleAssociationTool.h deleted file mode 100644 index cd15a001653a9562badc56428933c3fa2c29d85b..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTClusterToTrackParticleAssociationTool.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_SCTCLUSTERTOTRACKPARTICLEASSOCIATIONTOOL_H -#define INDETD3PDMAKER_SCTCLUSTERTOTRACKPARTICLEASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/MultiAssociationTool.h" - -#include "GaudiKernel/AlgTool.h" -#include "GaudiKernel/ToolHandle.h" -#include "StoreGate/StoreGateSvc.h" -#include <vector> -#include <map> - -#include "InDetPrepRawData/SCT_ClusterContainer.h" -#include "InDetPrepRawData/SCT_ClusterCollection.h" -#include "InDetPrepRawData/SCT_Cluster.h" -#include "InDetRIO_OnTrack/SiClusterOnTrack.h" -#include "InDetPrepRawData/SiCluster.h" -#include "Identifier/Identifier.h" -#include "AthContainers/DataVector.h" - -#include "Particle/TrackParticleContainer.h" - - -namespace Rec{ - class TrackParticle; -} - - -namespace Trk{ - class Track; - class TrackStateOnSurface; -} - -namespace InDet { - class SCT_Cluster; - class SiCluster; -} - - - -namespace D3PD { - - class SCTClusterToTrackParticleAssociationTool - : public MultiAssociationTool<InDet::SCT_Cluster, Rec::TrackParticle> - { - public: - typedef MultiAssociationTool<InDet::SCT_Cluster, Rec::TrackParticle> Base; - - SCTClusterToTrackParticleAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode reset(const InDet::SCT_Cluster& cluster); - - virtual const Rec::TrackParticle* next(); - - private: - - const Rec::TrackParticleContainer* m_tr; - int m_eventNumber; - std::map< const Rec::TrackParticle*, std::vector<Identifier> > m_trackParticleMap; - - // StoreGate keys - std::string m_TrackParticleContainer; - - - std::vector<const Rec::TrackParticle* >::const_iterator m_pItr; - std::vector<const Rec::TrackParticle* >::const_iterator m_pEnd; - std::vector<const Rec::TrackParticle* > m_trackParticleForAssoc; - - - // NTuple variables - - - }; // class SCTClusterToTrackParticleAssociationTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_SCTCLUSTERTOTRACKPARTICLEASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTRDOClusterAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTRDOClusterAssociationTool.cxx deleted file mode 100644 index fa0b44c31467121cdf6a8a68bb88cde2cdff1107..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTRDOClusterAssociationTool.cxx +++ /dev/null @@ -1,182 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "SCTRDOClusterAssociationTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "TrkTrack/Track.h" -#include "TrkTrack/TrackCollection.h" -#include "InDetPrepRawData/SCT_ClusterContainer.h" -#include "InDetPrepRawData/SCT_ClusterCollection.h" -#include <map> - -#include "TrkTrack/TrackStateOnSurface.h" -#include "Identifier/Identifier.h" -#include "TrkEventPrimitives/TrackStateDefs.h" -#include "AtlasDetDescr/AtlasDetectorID.h" - -#include "InDetIdentifier/SCT_ID.h" -#include "xAODEventInfo/EventInfo.h" - - -namespace D3PD { - - SCTRDOClusterAssociationTool::SCTRDOClusterAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent), - m_cl(0), - m_eventNumber(0), - m_sctId(0) - { - declareProperty ("ClusterConteinerKey", m_clusterContainer = "SCT_Clusters"); - } - - - StatusCode SCTRDOClusterAssociationTool::initialize() - { - CHECK( Base::initialize() ); - CHECK( detStore()->retrieve(m_sctId,"SCT_ID") ); - CHECK( m_SCTDetEleCollKey.initialize() ); - - m_eventNumber = -1; - return StatusCode::SUCCESS; - } - - - StatusCode SCTRDOClusterAssociationTool::book () - { - - //CHECK( addVariable ("", m_variable) ); - - return StatusCode::SUCCESS; - } - - - const InDet::SCT_Cluster* SCTRDOClusterAssociationTool::get (const SCT_RDORawData& rdo) - { - - // Get Track Collections - // Should be using Getter tools intead of StoreGate - // -- Tracks - - const InDet::SCT_Cluster *cluster = 0; - - Identifier rdoId = rdo.identify(); - int rdoTmpID = tempmoduleid(rdoId); - if ( !rdoTmpID ){ - REPORT_MESSAGE (MSG::ERROR) <<" Could not calculate tempID"; - return 0; - } - - const xAOD::EventInfo* eventInfo; - StatusCode sc = evtStore()->retrieve(eventInfo); - if (sc.isFailure()) - { - REPORT_MESSAGE (MSG::ERROR) << "Could not retrieve event info"; - return 0; - } - int eventNumber = (int)eventInfo->eventNumber(); - - if ( m_eventNumber != eventNumber ) { - - m_eventNumber = eventNumber; - m_rdoClusterMap.clear(); - - StatusCode sc = evtStore()->retrieve(m_cl, m_clusterContainer); - if(sc.isFailure() || !m_cl) { - REPORT_MESSAGE (MSG::WARNING) << "Could not retrieve Track Collection"; - return 0; - } - - - InDet::SCT_ClusterContainer::const_iterator clItr = m_cl->begin(); - for( ; clItr!=m_cl->end(); clItr++){ - - InDet::SCT_ClusterCollection::const_iterator rioItr = (*clItr)->begin(); - for (; rioItr != (*clItr)->end(); rioItr++) { - - - //const std::vector<Identifier>& rdoList = (*rioItr)->rdoList(); - - Identifier clIdentifier = (*rioItr)->identify(); - - int tmpID = tempmoduleid( clIdentifier ); - if ( !tmpID ) { - - REPORT_MESSAGE (MSG::ERROR) << "could not calculater tmpID for cluster"; - continue; - - } - - std::vector< const InDet::SCT_Cluster* > sctClusterIdentifier; - //sctClusterIdentifier.insert(sctClusterIdentifier.end(),rdoList.begin(),rdoList.end()); - sctClusterIdentifier.push_back ( (*rioItr) ); - if ( m_rdoClusterMap.find(tmpID) == m_rdoClusterMap.end() ){ - - m_rdoClusterMap.insert(std::pair< int, std::vector<const InDet::SCT_Cluster*> >(tmpID,sctClusterIdentifier) ); - - } - else{ - m_rdoClusterMap[tmpID].push_back( (*rioItr) ); - - } - } // Cluster Collection Loop - } // cluster container loop - }// one per event - - if ( m_rdoClusterMap.find(rdoTmpID) != m_rdoClusterMap.end() ){ - - std::vector< const InDet::SCT_Cluster *> cloi = m_rdoClusterMap[rdoTmpID]; - for( std::vector< const InDet::SCT_Cluster* >::iterator vIt = cloi.begin(); vIt!=cloi.end(); vIt++){ - - const std::vector<Identifier>& rdoList = (*vIt)->rdoList(); - - if ( find(rdoList.begin(),rdoList.end(),rdoId)!= rdoList.end() ) - cluster = (*vIt); - - if ( cluster ) break; - - }//vector loop - - } // if module is in the map - - return cluster; - } - - int SCTRDOClusterAssociationTool::tempmoduleid( Identifier id ){ - - int intbuf = 0; - int bec = (int)m_sctId->barrel_ec(id); - int bec1 = bec; - int layer = (int)m_sctId->layer_disk(id); - int phi_module = (char)m_sctId->phi_module(id); - int eta_module = (char)m_sctId->eta_module(id); - int eta_module1 = eta_module; - int side = (int)m_sctId->side(id); - int firstPrefix = 1; - if ( bec != 0 ){ - firstPrefix = 2; - if ( bec < 0 ) bec1 = bec*(-1); - } - int secondPrefix = 2; - if ( eta_module < 0 ){ - secondPrefix = 1; - eta_module1 = eta_module*(-1); - } - - char buf[1024]; - intbuf = 0; - sprintf(buf,"%i%i%i%i%i%i%i",firstPrefix,secondPrefix,side,bec1,layer,eta_module1,phi_module); - //if(!(from_string<int>(intbuf, std::string(buf), std::dec))){ - if ( EOF == sscanf(buf, "%i", &intbuf) ){ - REPORT_MESSAGE (MSG::ERROR) <<" Cannot convert string to int..."; - return 0; - } - - return intbuf; - } - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTRDOClusterAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTRDOClusterAssociationTool.h deleted file mode 100644 index 23996a47a059a67d5d3e54738abb8cea42167239..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTRDOClusterAssociationTool.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_SCTRDOCLUSTERASSOCIATIONTOOL_H -#define INDETD3PDMAKER_SCTRDOCLUSTERASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/SingleAssociationTool.h" - -#include "GaudiKernel/AlgTool.h" -#include "GaudiKernel/ToolHandle.h" -#include "StoreGate/ReadCondHandleKey.h" -#include "StoreGate/StoreGateSvc.h" -#include <vector> - -#include "InDetPrepRawData/SCT_ClusterContainer.h" -#include "InDetPrepRawData/SCT_ClusterCollection.h" -#include "InDetPrepRawData/SCT_Cluster.h" -#include "Identifier/Identifier.h" -#include "AthContainers/DataVector.h" - -#include "AthenaKernel/CLASS_DEF.h" -#include "InDetRawData/InDetRawDataContainer.h" -#include "InDetRawData/InDetRawDataCollection.h" -#include "InDetRawData/SCT_RDO_Container.h" -#include "InDetRawData/SCT_RDO_Collection.h" -#include "InDetRawData/SCT_RDORawData.h" -#include "InDetRawData/SCT_RDO_Collection.h" // Needed to pick up CLID. -#include "InDetReadoutGeometry/SiDetectorElementCollection.h" - -#include <stdio.h> -#include <iostream> -#include <string> - - -class SCT_ID; - - -namespace InDet { - class SCT_Cluster; - class SiCluster; -} - - -namespace D3PD { - - class SCTRDOClusterAssociationTool - : public SingleAssociationTool<SCT_RDORawData, InDet::SCT_Cluster> - { - public: - typedef SingleAssociationTool<SCT_RDORawData, InDet::SCT_Cluster> Base; - - SCTRDOClusterAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - - virtual const InDet::SCT_Cluster* get (const SCT_RDORawData& rdo); - - private: - - int tempmoduleid( Identifier id ); - const InDet::SCT_ClusterContainer *m_cl; - std::map< int, std::vector< const InDet::SCT_Cluster* > > m_rdoClusterMap; - int m_eventNumber; - const SCT_ID* m_sctId; - - - // StoreGate keys - std::string m_clusterContainer; - - // Read Cond Handle - // For P->T converter of SCT_Clusters - SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> m_SCTDetEleCollKey{this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"}; - - // NTuple variables - - - }; // class SCTRDOClusterAssociationTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_SCTRDOCLUSTERASSOCIATIONTOOL_H - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTRDOCollectionGetterTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTRDOCollectionGetterTool.cxx deleted file mode 100644 index 23a3b460f30d2fe0992f4a78d473b9cdf804aae7..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTRDOCollectionGetterTool.cxx +++ /dev/null @@ -1,140 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "SCTRDOCollectionGetterTool.h" -#include "GaudiKernel/MsgStream.h" - - -namespace D3PD { - -SCTRDOCollectionGetterTool::SCTRDOCollectionGetterTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ -} - -StatusCode SCTRDOCollectionGetterTool::initialize() -{ - CHECK( Base::initialize() ); - - // Get Particle Data Table - - return StatusCode::SUCCESS; -} - -const std::type_info& SCTRDOCollectionGetterTool::typeinfo() const -{ - //return typeid(SCT_RDO_Container); - return typeid(SCT_RDO_Container); -} - - -const std::type_info& SCTRDOCollectionGetterTool::elementTypeinfo() const -{ - return typeid(SCT_RDORawData); -} - - -size_t SCTRDOCollectionGetterTool::sizeHint(bool allowMissing) -{ - - const SCT_RDO_Container* cont = get(allowMissing); - - - if (!cont) { - return 0; - } - - int nRDOs = 0; - - SCT_RDO_Container::const_iterator col_It = cont->begin(); - SCT_RDO_Container::const_iterator lastCol = cont->end(); - for( ; col_It!= lastCol ; ++col_It){ - - const SCT_RDO_Collection* SCT_Collection(*col_It); - if (!SCT_Collection) continue; // select only SCT RDOs - nRDOs += SCT_Collection->size(); - } - - return nRDOs; -} - - -StatusCode SCTRDOCollectionGetterTool::reset(bool allowMissing) -{ - - const SCT_RDO_Container* cont = get(allowMissing); - - if (!cont) { - m_contItr = m_contEnd; - m_collItr = m_collEnd; - return StatusCode::FAILURE; - } - - m_contItr = cont->begin(); - m_contEnd = cont->end(); - - if(m_contItr == m_contEnd){ - m_collItr = m_collEnd; - return StatusCode::SUCCESS; - } - - m_collItr = (*m_contItr)->begin(); - m_collEnd = (*m_contItr)->end(); - - return StatusCode::SUCCESS; -} - -const void* SCTRDOCollectionGetterTool::nextUntyped() -{ - - const SCT_RDORawData* rawDataObject = 0; - - do{ - - if(m_contItr == m_contEnd){ - return 0; - } - - if (m_collItr == m_collEnd) - rawDataObject = 0; - else { - rawDataObject = *m_collItr; - m_collItr++; - } - - if(m_collItr == m_collEnd){ - m_contItr++; - if(m_contItr != m_contEnd){ - m_collItr = (*m_contItr)->begin(); - m_collEnd = (*m_contItr)->end(); - } - } - - } while(!rawDataObject); - - return rawDataObject; - -} - -// Dummies --- the default versions of these don't compile. -// But these are overridden by the derived class here. -template<> -const std::type_info& -CollectionGetterTool<SCT_RDO_Container>::elementTypeinfo() const -{ - return typeid(SCT_RDORawData); -} - -template<> -const void* -CollectionGetterTool<SCT_RDO_Container>::nextUntyped() -{ - return 0; -} - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTRDOCollectionGetterTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTRDOCollectionGetterTool.h deleted file mode 100644 index 4f8243f04a4b8c13919660a2ff35c16ff51cbd74..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTRDOCollectionGetterTool.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_SCTRDOCOLLECTIONGETTERTOOL_H -#define INDETD3PDMAKER_SCTRDOCOLLECTIONGETTERTOOL_H - -#include "D3PDMakerUtils/SGCollectionGetterTool.h" - -#include "AthenaKernel/CLASS_DEF.h" -#include "InDetRawData/InDetRawDataContainer.h" -#include "InDetRawData/InDetRawDataCollection.h" -#include "InDetRawData/SCT_RDO_Container.h" -#include "InDetRawData/SCT_RDO_Collection.h" -#include "InDetRawData/SCT_RDORawData.h" -#include "InDetRawData/SCT_RDO_Collection.h" // Needed to pick up CLID. - -class SCT_ID; - - -namespace D3PD { - -class SCTRDOCollectionGetterTool - : public D3PD::SGCollectionGetterTool<SCT_RDO_Container> -{ -public: - typedef D3PD::SGCollectionGetterTool<SCT_RDO_Container> Base; - - SCTRDOCollectionGetterTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - StatusCode initialize(); - size_t sizeHint(bool=false); - StatusCode reset(bool=false); - const void* nextUntyped(); - - const std::type_info& typeinfo() const; - const std::type_info& elementTypeinfo() const; - -private: - - /* Container iterators **/ - SCT_RDO_Container::const_iterator m_contItr; - SCT_RDO_Container::const_iterator m_contEnd; - - /* Collection iterators **/ - SCT_RDO_Collection::const_iterator m_collItr; - SCT_RDO_Collection::const_iterator m_collEnd; - -}; // class SCTRDOCollectionGetterTool - -// Dummies --- the default versions of these don't compile. -// But these are overridden by the derived class here. -template<> -const std::type_info& -CollectionGetterTool<SCT_RDO_Container>::elementTypeinfo() const; - -template<> -const void* -CollectionGetterTool<SCT_RDO_Container>::nextUntyped(); - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_SCTRDOCOLLECTIONGETTERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTRDOFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTRDOFillerTool.cxx deleted file mode 100644 index 29fdf58055212eb8e3a158fffe6ef8d242d534ec..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTRDOFillerTool.cxx +++ /dev/null @@ -1,96 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "SCTRDOFillerTool.h" -#include "AthenaKernel/errorcheck.h" - - -namespace D3PD { - -SCTRDOFillerTool::SCTRDOFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : SCTRDOFillerBase (type, name, parent), - m_sctId(0) -{ - book().ignore(); // Avoid coverity warnings. -} - -StatusCode SCTRDOFillerTool::initialize() -{ - -CHECK( SCTRDOFillerBase::initialize() ); - - if (detStore()->retrieve(m_sctId,"SCT_ID").isFailure() ){ - REPORT_MESSAGE (MSG::FATAL) << "Unable to retrieve SCT ID helper"; - return StatusCode::FAILURE; - } - -return StatusCode::SUCCESS; -} - -StatusCode SCTRDOFillerTool::book() -{ - - //CHECK( addVariable ("nRDO", m_nRDO) ); - //CHECK( addVariable ("time_ns", m_timeNanoSec) ); - //CHECK( addVariable ("isOnTrack", m_isOnTrack) ); - - CHECK( addVariable ("bec", m_bec) ); - CHECK( addVariable ("layer" ,m_layer) ); - CHECK( addVariable ("moduleEta", m_moduleEta) ); - CHECK( addVariable ("modulePhi", m_modulePhi) ); - CHECK( addVariable ("moduleSide", m_moduleSide) ); - CHECK( addVariable ("firstStrip", m_firstStrip) ); - CHECK( addVariable ("nStripsOnWafer", m_nStripsOnWafer) ); - CHECK( addVariable ("timeBin", m_tbin) ); - - - return StatusCode::SUCCESS; -} - -StatusCode SCTRDOFillerTool::fill (const SCT_RDORawData& sctRdo) -{ - - this->clearData(); - - const SCT_RDORawData *p_sctRdo = &sctRdo; - - const SCT3_RawData* rdo3 = dynamic_cast<const SCT3_RawData*>(p_sctRdo); - if (rdo3!=0) - *m_tbin = rdo3->getTimeBin(); - else *m_tbin = -1; - - Identifier SCT_Identifier = sctRdo.identify(); - *m_bec = m_sctId->barrel_ec(SCT_Identifier); - *m_layer = m_sctId->layer_disk(SCT_Identifier); - *m_modulePhi = m_sctId->phi_module(SCT_Identifier); - *m_moduleEta = m_sctId->eta_module(SCT_Identifier); - *m_moduleSide = m_sctId->side(SCT_Identifier); - *m_firstStrip = m_sctId->strip(SCT_Identifier); - *m_nStripsOnWafer = sctRdo.getGroupSize(); - //*m_isOnTrack = 0; - - return StatusCode::SUCCESS; -} - -void SCTRDOFillerTool::clearData(){ - - //*m_nRDO = -9999; - //*m_timeNanoSec = -9999; - //*m_isOnTrack = -9999; - - *m_bec = -9999; - *m_layer = -9999; - *m_moduleEta = -9999; - *m_modulePhi = -9999; - *m_moduleSide = -9999; - *m_firstStrip = -9999; - *m_nStripsOnWafer = -9999; - *m_tbin = -9999; - -} - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTRDOFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTRDOFillerTool.h deleted file mode 100644 index fa6abdcb74d967b440b0a1d2cfca5f90617538f6..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTRDOFillerTool.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_SCTRDOFILLERTOOL_H -#define INDETD3PDMAKER_SCTRDOFILLERTOOL_H - -#include "D3PDMakerUtils/BlockFillerTool.h" -#include <vector> - - -//#include "InDetRawData/SCT_RDO_Collection.h" -#include "InDetRawData/SCT_RDO_Container.h" -#include "InDetRawData/SCT_RDORawData.h" -#include "InDetRawData/SCT3_RawData.h" - -#include "Identifier/Identifier.h" -#include "InDetIdentifier/SCT_ID.h" - -class SCT_ID; - -namespace D3PD { - - - -class SCTRDOFillerTool - : public D3PD::BlockFillerTool<SCT_RDORawData> - { - public: - - typedef D3PD::BlockFillerTool<SCT_RDORawData> SCTRDOFillerBase; - SCTRDOFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode fill (const SCT_RDORawData& p); - - private: - - void clearData(); - - const SCT_ID* m_sctId; - - - /* NTuple variables **/ - //int *m_nRDO; - //float *m_timeNanoSec; - //int *m_isOnTrack; - int *m_bec; - int *m_layer; - int *m_moduleEta; - int *m_modulePhi; - int *m_moduleSide; - int *m_firstStrip; - int *m_nStripsOnWafer; - int *m_tbin; - - }; // class SCTRDOFillerTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_SCTRDOFILLERTOOL_H - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTTrackParticleToMuonAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTTrackParticleToMuonAssociationTool.cxx deleted file mode 100644 index 887e2442f20e7f067359458c00dbaaf4acef1afc..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTTrackParticleToMuonAssociationTool.cxx +++ /dev/null @@ -1,71 +0,0 @@ -/* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -*/ - -//********************************************************/ -// @author <laura.rehnisch@cern.ch> / -// @date Nov, 2012 / -// @brief setting up an association of trackparticles / -// and muons. / -//********************************************************/ - - -#include "SCTTrackParticleToMuonAssociationTool.h" -#include "Particle/TrackParticle.h" -#include "muonEvent/MuonContainer.h" -#include "AthenaKernel/errorcheck.h" - -#include <cmath> - -using namespace Analysis; - -namespace D3PD { - - SCTTrackParticleToMuonAssociationTool::SCTTrackParticleToMuonAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) - { - declareProperty ("MuonContainerSGKey", m_muonContainer = "muonCandidate");//dummy, SGKey defined in SCTntuple.py - } - - - StatusCode SCTTrackParticleToMuonAssociationTool::initialize() - { - CHECK( Base::initialize() ); - return StatusCode::SUCCESS; - } - - - StatusCode SCTTrackParticleToMuonAssociationTool::book () - { - CHECK( Base::book() ); - return StatusCode::SUCCESS; - } - - - const Analysis::Muon* SCTTrackParticleToMuonAssociationTool::get (const Rec::TrackParticle& TP) - { - const Analysis::Muon *muon = 0; - - /// access to MuonTracks - const MuonContainer* muonsForCombination=0; - if (evtStore()->retrieve(muonsForCombination, m_muonContainer).isFailure()){ - REPORT_MESSAGE (MSG::WARNING) << "No AOD muon container found in TDS"; - return 0; - } - - // check if muons in container - for (const Analysis::Muon* cmuon : *muonsForCombination) { - /// the Inner Detector track - if ( cmuon->hasInDetTrackParticle() && - std::abs(TP.pt() - cmuon->inDetTrackParticle()->pt()) < 0.01) { - muon = cmuon; - } - - } //muon container loop - - return muon; - }// get() - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTTrackParticleToMuonAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTTrackParticleToMuonAssociationTool.h deleted file mode 100644 index 17ed111e91f8df289938d6bd55b31132d2a1b27d..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SCTTrackParticleToMuonAssociationTool.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -/** - * @file InDetD3PDMaker/src/SCTTrackParticleToMuonAssociationTool.cxx - * @author <laura.rehnisch@cern.ch> - * @date Nov, 2012 - * @brief setting up an association of trackparticles - * and muons. - */ -#ifndef INDETD3PDMAKER_SCTTRACKPARTICLETOMUONASSOCIATIONTOOL_H -#define INDETD3PDMAKER_SCTTRACKPARTICLETOMUONASSOCIATIONTOOL_H - - -#include "D3PDMakerUtils/SingleAssociationTool.h" -#include "muonEvent/Muon.h" - -namespace Rec { - class TrackParticle; -} - -namespace D3PD { - - class SCTTrackParticleToMuonAssociationTool - : public SingleAssociationTool<Rec::TrackParticle, Analysis::Muon> - { - public: - typedef SingleAssociationTool<Rec::TrackParticle, Analysis::Muon> Base; - - SCTTrackParticleToMuonAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - - virtual const Analysis::Muon* get (const Rec::TrackParticle& trackparticle); - - private: - // StoreGate keys - std::string m_muonContainer; - - }; // class SCTTrackParticleToMuonAssociationTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_SCTTRACKPARTICLETOMUONASSOCIATIONTOOL_H - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SiHitFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SiHitFillerTool.cxx deleted file mode 100644 index fc50dc610a7ffae520d4b9b851376ad014d437fa..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SiHitFillerTool.cxx +++ /dev/null @@ -1,241 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "SiHitFillerTool.h" - -#include "AthenaKernel/errorcheck.h" -//#include "InDetReadoutGeometry/SiDetectorElement.h" -//#include "InDetIdentifier/PixelID.h" -//#include "InDetPrepRawData/PixelCluster.h" -//#include "TrkEventPrimitives/ErrorMatrix.h" -#include "AtlasHepMC/GenParticle.h" -//#include "GeoAdaptors/GeoSiHit.h" - -/* -using HepGeom::Point3D; - - -namespace D3PD { - - -SiHitFillerTool::SiHitFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : D3PD::BlockFillerTool<SiHit> (type, name, parent) -{ - book().ignore(); // Avoid coverity warnings. -} - -StatusCode SiHitFillerTool::initialize(){ - - CHECK( Base::initialize() ); - - // if (detStore()->retrieve(m_pixId,"PixelID").isFailure() ){ - // REPORT_MESSAGE (MSG::FATAL) << "Unable to retrieve pixel ID helper"; - // return StatusCode::FAILURE; - //} - - return StatusCode::SUCCESS; -} - -StatusCode SiHitFillerTool::book(){ - - CHECK( addVariable ("identifier", m_identifier) ); - CHECK( addVariable ("localStartPos_x",m_localStartPos_x) ); - CHECK( addVariable ("localStartPos_y",m_localStartPos_y) ); - CHECK( addVariable ("localStartPos_z",m_localStartPos_z) ); - - CHECK( addVariable ("localEndPos_x",m_localEndPos_x) ); - CHECK( addVariable ("localEndPos_y",m_localEndPos_y) ); - CHECK( addVariable ("localEndPos_z",m_localEndPos_z) ); - - CHECK( addVariable ("globalPos_x",m_globalPos_x) ); - CHECK( addVariable ("globalPos_y",m_globalPos_y) ); - CHECK( addVariable ("globalPos_z",m_globalPos_z) ); - CHECK( addVariable ("globalPos_r",m_globalPos_r) ); - - CHECK( addVariable ("energyLoss",m_energyLoss) ); - CHECK( addVariable ("meanTime",m_meanTime) ); - CHECK( addVariable ("trackNumber",m_trackNumber) ); - CHECK( addVariable ("isPixel",m_isPixel) ); - CHECK( addVariable ("isSCT",m_isSCT) ); - CHECK( addVariable ("BarrelEndcap",m_BarrelEndcap) ); - - CHECK( addVariable ("m_LayerDisk",m_LayerDisk) ); - CHECK( addVariable ("EtaModule",m_EtaModule) ); - CHECK( addVariable ("PhiModule",m_PhiModule) ); - CHECK( addVariable ("Side",m_Side) ); - - CHECK( addVariable ("TruthBarcode",m_truthbarcode) ); - - CHECK( addVariable ("TruthBarcode2",m_truthbarcode2) ); - - - - return StatusCode::SUCCESS; -} - -StatusCode SiHitFillerTool::fill (const SiHit& hit) -{ - - //REPORT_MESSAGE (MSG::DEBUG) << "got hit"; - - - *m_identifier=hit.identify(); - - const Point3D<double>& startPos=hit.localStartPosition(); - *m_localStartPos_x=startPos.x(); - *m_localStartPos_y=startPos.y(); - *m_localStartPos_z=startPos.z(); - - const Point3D<double>& endPos=hit.localEndPosition(); - *m_localEndPos_x=endPos.x(); - *m_localEndPos_y=endPos.y(); - *m_localEndPos_z=endPos.z(); - - GeoSiHit ghit(hit); - const Point3D<double>& globalPos=ghit.getGlobalPosition(); - *m_globalPos_x = globalPos.x(); - *m_globalPos_y = globalPos.y(); - *m_globalPos_z = globalPos.z(); - *m_globalPos_r = globalPos.perp(); - - *m_energyLoss=hit.energyLoss(); - *m_meanTime=hit.meanTime(); - *m_trackNumber=hit.trackNumber(); - //const HepMcParticleLink & particleLink () const - *m_isPixel=hit.isPixel(); - *m_isSCT=hit.isSCT(); - *m_BarrelEndcap=hit.getBarrelEndcap(); - *m_LayerDisk=hit.getLayerDisk(); - *m_EtaModule=hit.getEtaModule(); - *m_PhiModule=hit.getPhiModule(); - *m_Side=hit.getSide(); - - const HepMcParticleLink& mcLink = hit.particleLink(); - *m_truthbarcode2 = mcLink.barcode(); - - const HepMC::GenParticle* genPart= mcLink.cptr(); - if(genPart){ - *m_truthbarcode = genPart->barcode(); - }else{ - *m_truthbarcode=-999; - } - - return StatusCode::SUCCESS; -} - -} // namespace D3PD -*/ - - -using HepGeom::Point3D; - - -namespace D3PD { - - -SiHitFillerTool::SiHitFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : D3PD::BlockFillerTool<SiHit> (type, name, parent) -{ - book().ignore(); // Avoid coverity warnings. -} - -StatusCode SiHitFillerTool::initialize(){ - - CHECK( Base::initialize() ); - - // if (detStore()->retrieve(m_pixId,"PixelID").isFailure() ){ - // REPORT_MESSAGE (MSG::FATAL) << "Unable to retrieve pixel ID helper"; - // return StatusCode::FAILURE; - //} - - return StatusCode::SUCCESS; -} - -StatusCode SiHitFillerTool::book(){ - - CHECK( addVariable ("identifier", m_identifier) ); - CHECK( addVariable ("localStartPos_x",m_localStartPos_x) ); - CHECK( addVariable ("localStartPos_y",m_localStartPos_y) ); - CHECK( addVariable ("localStartPos_z",m_localStartPos_z) ); - - CHECK( addVariable ("localEndPos_x",m_localEndPos_x) ); - CHECK( addVariable ("localEndPos_y",m_localEndPos_y) ); - CHECK( addVariable ("localEndPos_z",m_localEndPos_z) ); - - CHECK( addVariable ("globalPos_x",m_globalPos_x) ); - CHECK( addVariable ("globalPos_y",m_globalPos_y) ); - CHECK( addVariable ("globalPos_z",m_globalPos_z) ); - CHECK( addVariable ("globalPos_r",m_globalPos_r) ); - - CHECK( addVariable ("energyLoss",m_energyLoss) ); - CHECK( addVariable ("meanTime",m_meanTime) ); - CHECK( addVariable ("trackNumber",m_trackNumber) ); - CHECK( addVariable ("isPixel",m_isPixel) ); - CHECK( addVariable ("isSCT",m_isSCT) ); - CHECK( addVariable ("BarrelEndcap",m_BarrelEndcap) ); - - CHECK( addVariable ("m_LayerDisk",m_LayerDisk) ); - CHECK( addVariable ("EtaModule",m_EtaModule) ); - CHECK( addVariable ("PhiModule",m_PhiModule) ); - CHECK( addVariable ("Side",m_Side) ); - - CHECK( addVariable ("TruthBarcode",m_truthbarcode) ); - - CHECK( addVariable ("TruthBarcode2",m_truthbarcode2) ); - - - - return StatusCode::SUCCESS; -} - -StatusCode SiHitFillerTool::fill (const SiHit& /*hit*/) -{ - - //REPORT_MESSAGE (MSG::DEBUG) << "got hit"; - - - *m_identifier=1; - - //const Point3D<double>& startPos=hit.localStartPosition(); - *m_localStartPos_x=1.0; - *m_localStartPos_y=1.0; - *m_localStartPos_z=1.0; - - //const Point3D<double>& endPos=hit.localEndPosition(); - *m_localEndPos_x=1.0; - *m_localEndPos_y=1.0; - *m_localEndPos_z=1.0; - - //GeoSiHit ghit(hit); - //const Point3D<double>& globalPos=ghit.getGlobalPosition(); - *m_globalPos_x = 1.0; - *m_globalPos_y = 1.0; - *m_globalPos_z = 1.0; - *m_globalPos_r = 1.0; - - *m_energyLoss=1.0; - *m_meanTime=1.0; - *m_trackNumber=1.0; - *m_isPixel=1; - *m_isSCT=1; - *m_BarrelEndcap=1; - *m_LayerDisk=1; - *m_EtaModule=1; - *m_PhiModule=1; - *m_Side=1; - - *m_truthbarcode2 = 1; - - - *m_truthbarcode = -999; - - - return StatusCode::SUCCESS; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SiHitFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SiHitFillerTool.h deleted file mode 100644 index cfb0032b5eb5837702283ae24ebb69f37fffcfbb..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SiHitFillerTool.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_SIHITFILLERTOOL_H -#define INDETD3PDMAKER_SIHITFILLERTOOL_H - -#include "D3PDMakerUtils/BlockFillerTool.h" -#include "InDetSimEvent/SiHit.h" -#include "InDetSimEvent/SiHitCollection.h" - -#include "D3PDMakerUtils/SGCollectionGetterTool.h" - -//#include "Identifier/Identifier.h" - -class PixelID; - - - - - -namespace D3PD { - -class SiHitContainerGetterTool - : public D3PD::SGCollectionGetterTool<SiHitCollection> - { - public: - SiHitContainerGetterTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : SGCollectionGetterTool<SiHitCollection> - (type, name, parent) {} - }; - - -class SiHitFillerTool - : public D3PD::BlockFillerTool<SiHit> -{ -public: - typedef D3PD::BlockFillerTool<SiHit> Base; - - SiHitFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode fill (const SiHit &hit); - -private: - - // const PixelID* m_pixId; - - /* NTuple variables: **/ - - int *m_identifier; - float *m_localStartPos_x; - float *m_localStartPos_y; - float *m_localStartPos_z; - float *m_localEndPos_x; - float *m_localEndPos_y; - float *m_localEndPos_z; - float *m_globalPos_x; - float *m_globalPos_y; - float *m_globalPos_z; - float *m_globalPos_r; - double *m_energyLoss; - double *m_meanTime; - int *m_trackNumber; - //const HepMcParticleLink & particleLink () const - bool *m_isPixel; - bool *m_isSCT; - int *m_BarrelEndcap; - int *m_LayerDisk; - int *m_EtaModule; - int *m_PhiModule; - int *m_Side; - int *m_truthbarcode; - int *m_truthbarcode2; - - - -}; // class SiHitFillerTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_SIHITFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SiHitTruthAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SiHitTruthAssociationTool.cxx deleted file mode 100644 index fd8111b8dd96178a5cc3b6cf7aa79c47dadb298d..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SiHitTruthAssociationTool.cxx +++ /dev/null @@ -1,63 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - - #include "SiHitTruthAssociationTool.h" - - #include "AthenaKernel/errorcheck.h" - #include "AtlasHepMC/GenParticle.h" -//#include "TrkTrack/Track.h" -//#include "TrkTrack/TrackCollection.h" -//#include "TrkTruthData/TrackTruthCollection.h" - #include <map> - - namespace D3PD { - - SiHitTruthAssociationTool::SiHitTruthAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) - { - // declareProperty ("MapKey", m_TruthMap = "TrackTruthMap"); - //declareProperty ("SGKey", m_TrkContainer = "Tracks"); - } - - - StatusCode SiHitTruthAssociationTool::initialize() - { - - CHECK( Base::initialize() ); - - // StatusCode sc = service("StoreGateSvc", m_storeGate); - //if(sc.isFailure()) { - // return StatusCode::FAILURE; - //} - - return StatusCode::SUCCESS; - } - - - StatusCode SiHitTruthAssociationTool::book () - { - //CHECK( addVariable ("probability", m_trueProb) ); - //CHECK( addVariable ("barcode", m_trueBarcode) ); - - return StatusCode::SUCCESS; - } - -const HepMC::GenParticle* SiHitTruthAssociationTool::get (const SiHit& sihit){ - const HepMcParticleLink& mcLink = sihit.particleLink(); -const HepMC::GenParticle* genPart= mcLink.cptr(); - std::cout<< "Identifier: "<< sihit.identify(); - if(genPart){ - std::cout<<" genPart.barcode: " << genPart->barcode() << " type " << genPart->pdg_id() << " status " << genPart->status(); - - }else { - std::cout<<" no genPart "; - } - - std::cout<< std::endl; - -return genPart; -} - } diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SiHitTruthAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SiHitTruthAssociationTool.h deleted file mode 100644 index 6dd3312120d770000f1d3511df50d99aa0ff4348..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/SiHitTruthAssociationTool.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_SIHITTRUTHASSOCIATIONTOOL_H -#define INDETD3PDMAKER_SIHITTRUTHASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/SingleAssociationTool.h" - -#include "GaudiKernel/AlgTool.h" -#include "GaudiKernel/ToolHandle.h" - -#include "StoreGate/StoreGateSvc.h" -#include "InDetSimEvent/SiHit.h" -#include "InDetSimEvent/SiHitCollection.h" -#include "AtlasHepMC/GenParticle.h" - - -namespace Trk { - class Track; - } - - namespace D3PD { - - class SiHitTruthAssociationTool - : public SingleAssociationTool<SiHit, HepMC::GenParticle> - { - public: - typedef SingleAssociationTool<SiHit, HepMC::GenParticle> Base; - - SiHitTruthAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - virtual const HepMC::GenParticle* get (const SiHit& sihit); - - private: - - /* Pointer to storegate **/ - // StoreGateSvc* m_storeGate; - - /* StoreGate keys **/ - //std::string m_TruthMap; - //std::string m_TrkContainer; - - /* NTuple variables **/ - //float* m_trueProb; - // int* m_trueBarcode; - - }; // class SiHitTruthAssociationTool - -} // namespace D3PD - - #endif // not INDETD3PDMAKER_SIHITTRUTHASSOCIATIONTOOL_H - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TRTPhaseFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TRTPhaseFillerTool.cxx deleted file mode 100644 index 4d4b0f1ada4c7153731582842e9b6fec192cd92e..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TRTPhaseFillerTool.cxx +++ /dev/null @@ -1,49 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "TRTPhaseFillerTool.h" -#include "AthenaKernel/errorcheck.h" - -namespace D3PD { - - -TRTPhaseFillerTool::TRTPhaseFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : D3PD::BlockFillerTool<ComTime> (type, name, parent) -{ - book().ignore(); // Avoid coverity warnings. -} - -StatusCode TRTPhaseFillerTool::initialize(){ - - CHECK( Base::initialize() ); - - return StatusCode::SUCCESS; -} - -StatusCode TRTPhaseFillerTool::book(){ - - CHECK( addVariable ("Phase", m_TRTPhase) ); - - return StatusCode::SUCCESS; -} - -StatusCode TRTPhaseFillerTool::fill (const ComTime& theComTime) -{ - - this->clearData(); - - *m_TRTPhase = float(theComTime.getTime()); - - return StatusCode::SUCCESS; -} - -void TRTPhaseFillerTool::clearData(){ - - *m_TRTPhase = 0; - -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TRTPhaseFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TRTPhaseFillerTool.h deleted file mode 100644 index c6249625e0c7685ad24658e4fbb0e561c4261abe..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TRTPhaseFillerTool.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_TRTPHASEFILLERTOOL_H -#define INDETD3PDMAKER_TRTPHASEFILLERTOOL_H - -#include "D3PDMakerUtils/BlockFillerTool.h" -#include "CommissionEvent/ComTime.h" - - -namespace D3PD { - - -class TRTPhaseFillerTool - : public D3PD::BlockFillerTool<ComTime> -{ -public: - typedef D3PD::BlockFillerTool<ComTime> Base; - - TRTPhaseFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode fill (const ComTime &theComTime); - -private: - - void clearData(); - - - /* NTuple variables: **/ - float *m_TRTPhase; - -}; // class TRTPhaseFillerTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_TRTPHASEFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TRTUncompressedHitFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TRTUncompressedHitFillerTool.cxx deleted file mode 100644 index f233c73630873c7b8cf200c380e4cfc10917eaaa..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TRTUncompressedHitFillerTool.cxx +++ /dev/null @@ -1,124 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "TRTUncompressedHitFillerTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "AtlasHepMC/GenParticle.h" -#include "GeoAdaptors/GeoTRTUncompressedHit.h" - -D3PD::TRTUncompressedHitFillerTool::TRTUncompressedHitFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : D3PD::BlockFillerTool<TRTUncompressedHit> (type, name, parent) -{ - book().ignore(); // Avoid coverity warnings. -} - -StatusCode D3PD::TRTUncompressedHitFillerTool::initialize(){ - - CHECK( Base::initialize() ); - - return StatusCode::SUCCESS; -} - -StatusCode D3PD::TRTUncompressedHitFillerTool::book(){ - CHECK( addVariable("hitID", m_hitID ) ); - CHECK( addVariable("particleEncoding", m_particleEncoding) ); - CHECK( addVariable("kineticEnergy", m_kineticEnergy ) ); - CHECK( addVariable("energyDeposit", m_energyDeposit ) ); - CHECK( addVariable("preStepX", m_preStepX ) ); - CHECK( addVariable("preStepY", m_preStepY ) ); - CHECK( addVariable("preStepZ", m_preStepZ ) ); - CHECK( addVariable("postStepX", m_postStepX ) ); - CHECK( addVariable("postStepY", m_postStepY ) ); - CHECK( addVariable("postStepZ", m_postStepZ ) ); - CHECK( addVariable("globalTime", m_globalTime ) ); - - CHECK( addVariable("globalPosX", m_globalPosX ) ); - CHECK( addVariable("globalPosY", m_globalPosY ) ); - CHECK( addVariable("globalPosZ", m_globalPosZ ) ); - CHECK( addVariable("globalPosR", m_globalPosR ) ); - - CHECK( addVariable("TruthBarcode", m_truthbarcode ) ); - CHECK( addVariable("TruthBarcode2", m_truthbarcode2 ) ); - - return StatusCode::SUCCESS; -} - - -/* - -StatusCode D3PD::TRTUncompressedHitFillerTool::fill (const TRTUncompressedHit& hit) -{ - - //REPORT_MESSAGE (MSG::DEBUG) << "got hit"; - - // read out the TRTUncompressedHit - *m_hitID = hit.GetHitID(); - *m_particleEncoding = hit.GetParticleEncoding(); - *m_kineticEnergy = hit.GetKineticEnergy(); - *m_energyDeposit = hit.GetEnergyDeposit(); - *m_preStepX = hit.GetPreStepX(); - *m_preStepY = hit.GetPreStepY(); - *m_preStepZ = hit.GetPreStepZ(); - *m_postStepX = hit.GetPostStepX(); - *m_postStepY = hit.GetPostStepY(); - *m_postStepZ = hit.GetPostStepZ(); - *m_globalTime = hit.GetGlobalTime(); - - // resolve global position - GeoTRTUncompressedHit ghit(hit); - const HepGeom::Point3D<double>& globalPos = ghit.getGlobalPosition(); - *m_globalPosX = globalPos.x(); - *m_globalPosY = globalPos.y(); - *m_globalPosZ = globalPos.z(); - *m_globalPosR = globalPos.perp(); - - // particle barcode2 directly from TRTUncompressedHit - const HepMcParticleLink& mcLink = hit.particleLink(); - *m_truthbarcode2 = mcLink.barcode(); - - // particle barcode from associated GenParticle - const HepMC::GenParticle* genPart = mcLink.cptr(); - *m_truthbarcode = genPart ? genPart->barcode() : -999; - - return StatusCode::SUCCESS; -} - - -*/ - -StatusCode D3PD::TRTUncompressedHitFillerTool::fill (const TRTUncompressedHit& /*hit*/) -{ - - //REPORT_MESSAGE (MSG::DEBUG) << "got hit"; - - // read out the TRTUncompressedHit - *m_hitID = 1; - *m_particleEncoding = 1; - *m_kineticEnergy = 1.0; - *m_energyDeposit = 1.0; - *m_preStepX = 1.0; - *m_preStepY = 1.0; - *m_preStepZ = 1.0; - *m_postStepX = 1.0; - *m_postStepY = 1.0; - *m_postStepZ = 1.0; - *m_globalTime = 1.0; - - // resolve global position - *m_globalPosX = 1.0; - *m_globalPosY = 1.0; - *m_globalPosZ = 1.0; - *m_globalPosR = 1.0; - - // particle barcode2 directly from TRTUncompressedHit - *m_truthbarcode2 = -999; - - // particle barcode from associated GenParticle - *m_truthbarcode = -999; - - return StatusCode::SUCCESS; -} diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TRTUncompressedHitFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TRTUncompressedHitFillerTool.h deleted file mode 100644 index e30f7d36a80ce6de50385c586a031690dfbdab46..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TRTUncompressedHitFillerTool.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_TRTUNCOMPRESSEDHITFILLERTOOL_H -#define INDETD3PDMAKER_TRTUNCOMPRESSEDHITFILLERTOOL_H - -#include "D3PDMakerUtils/BlockFillerTool.h" -#include "InDetSimEvent/TRTUncompressedHit.h" -#include "InDetSimEvent/TRTUncompressedHitCollection.h" - -#include "D3PDMakerUtils/SGCollectionGetterTool.h" - -namespace D3PD { - - class TRTUncompressedHitContainerGetterTool - : public D3PD::SGCollectionGetterTool<TRTUncompressedHitCollection> { - - public: - TRTUncompressedHitContainerGetterTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : SGCollectionGetterTool<TRTUncompressedHitCollection>(type, name, parent) { } - }; - - - class TRTUncompressedHitFillerTool - : public D3PD::BlockFillerTool<TRTUncompressedHit> { - - public: - typedef D3PD::BlockFillerTool<TRTUncompressedHit> Base; - - TRTUncompressedHitFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode fill (const TRTUncompressedHit &hit); - - private: - - /** NTuple variables: - (partily copied from InDetSimEvent/TRTUncompressedHit.h ) */ - int *m_hitID; //<! To identify the hit - int *m_particleEncoding; //<! PDG id - float *m_kineticEnergy; //<! kin energy of the particle - float *m_energyDeposit; //<! energy deposit by the hit - float *m_preStepX; - float *m_preStepY; - float *m_preStepZ; - float *m_postStepX; - float *m_postStepY; - float *m_postStepZ; - float *m_globalTime; - - /** global hit position */ - float *m_globalPosX; - float *m_globalPosY; - float *m_globalPosZ; - float *m_globalPosR; - - /** associated particle barcode */ - int *m_truthbarcode; //<! from HepMC::GenParticle - int *m_truthbarcode2; //<! from TRTUncompressedHit - - }; // class TRTUncompressedHitFillerTool - -} // namespace D3PD - -#endif // INDETD3PDMAKER_TRTUNCOMPRESSEDHITFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TSOFitQualityAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TSOFitQualityAssociationTool.cxx deleted file mode 100644 index cc4d218d167ffca43ff84116c46395e74b6b27fb..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TSOFitQualityAssociationTool.cxx +++ /dev/null @@ -1,46 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ -/** - * @file InDetD3PDMaker/src/TSOFitQualityAssociationTool.cxx - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a TSOS to its FitQualityOnSurface. - */ - -#include "TSOFitQualityAssociationTool.h" -#include "TrkTrack/TrackStateOnSurface.h" - -#include "AthenaKernel/errorcheck.h" - -namespace D3PD { - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -TSOFitQualityAssociationTool::TSOFitQualityAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ -} - -/** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ -const Trk::FitQualityOnSurface *TSOFitQualityAssociationTool::get (const Trk::TrackStateOnSurface& tso) - -{ - return tso.fitQualityOnSurface(); -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TSOFitQualityAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TSOFitQualityAssociationTool.h deleted file mode 100644 index 5a1a8ad4603d3d3d48930bb9ad556f1088e61f21..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TSOFitQualityAssociationTool.h +++ /dev/null @@ -1,59 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ -/** - * @file InDetD3PDMaker/src/TSOFitQualityAssociationTool.h - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a TSOS to its FitQualityOnSurface. - */ -#ifndef INDETD3PDMAKER_TSOFITQUALITYASSOCIATIONTOOL_H -#define INDETD3PDMAKER_TSOFITQUALITYASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/SingleAssociationTool.h" -#include "TrkEventPrimitives/FitQualityOnSurface.h" - -namespace Trk { - class TrackStateOnSurface; -} - -namespace D3PD { - -/** - * @brief Associate from a TSOS to its FitQualityOnSurface. - */ -class TSOFitQualityAssociationTool - : public SingleAssociationTool<Trk::TrackStateOnSurface, Trk::FitQualityOnSurface> -{ -public: - typedef SingleAssociationTool<Trk::TrackStateOnSurface, Trk::FitQualityOnSurface> Base; - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - TSOFitQualityAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - /** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ - virtual const Trk::FitQualityOnSurface* get (const Trk::TrackStateOnSurface& p); -}; - - -} // namespace D3PD - - - -#endif // not INDETD3PDMAKER_TSOFITQUALITYASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TSOSPixelClusterAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TSOSPixelClusterAssociationTool.cxx deleted file mode 100644 index db9764fae9a58c812bec842d2cf44feed670b7d2..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TSOSPixelClusterAssociationTool.cxx +++ /dev/null @@ -1,94 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: TSOSPixelClusterAssociationTool.cxx 569325 2013-11-08 11:27:17Z nstyles $ -/** - * @file InDetD3PDMaker/src/TSOSPixelClusterAssociationTool.cxx - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a pixel TrackStateOnSurface to a PixelCluster. - */ - -#include "TSOSPixelClusterAssociationTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "InDetPrepRawData/PixelCluster.h" -#include "TrkTrack/TrackStateOnSurface.h" -#include "TrkCompetingRIOsOnTrack/CompetingRIOsOnTrack.h" -#include "TrkRIO_OnTrack/RIO_OnTrack.h" -#include "AtlasDetDescr/AtlasDetectorID.h" - -namespace D3PD { - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -TSOSPixelClusterAssociationTool::TSOSPixelClusterAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent), - m_idHelper(0) -{ -} - -StatusCode TSOSPixelClusterAssociationTool::initialize(){ - - CHECK( Base::initialize() ); - - // need Atlas id-helpers to identify sub-detectors, take them from detStore - CHECK (detStore()->retrieve(m_idHelper, "AtlasID")); - - return StatusCode::SUCCESS; -} - -/** - * @brief Return the target object. - * @param track The source object for the association. - * Return the target of the association, or 0. - */ - const InDet::PixelCluster *TSOSPixelClusterAssociationTool::get (const Trk::TrackStateOnSurface& tsos) -{ - - /// check if the TSOS is a pixel hit - bool isPixelHit = false; - if( tsos.types()[Trk::TrackStateOnSurface::Measurement] || - tsos.types()[Trk::TrackStateOnSurface::Outlier]){ - - const Trk::TrackParameters *tp = tsos.trackParameters(); - if(tp){ - const Trk::Surface& surface = tp->associatedSurface(); - const Trk::TrkDetElementBase* detElement = surface.associatedDetectorElement(); - if(detElement){ - Identifier Id = detElement->identify(); - if (m_idHelper->is_pixel(Id) ) { - isPixelHit = true; - } - } - } - } - if(!isPixelHit){ - return 0; - } - - const Trk::MeasurementBase *measurement = tsos.measurementOnTrack(); - const Trk::RIO_OnTrack *rio = dynamic_cast<const Trk::RIO_OnTrack*>(measurement); - if(!rio){ - const Trk::CompetingRIOsOnTrack *crot = dynamic_cast<const Trk::CompetingRIOsOnTrack*>(measurement); - if(crot){ - rio = &crot->rioOnTrack( crot->indexOfMaxAssignProb() ); - } - } - const InDet::PixelCluster *clus = 0; - if(rio){ - clus = dynamic_cast<const InDet::PixelCluster*>(rio->prepRawData()); - } - - return clus; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TSOSPixelClusterAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TSOSPixelClusterAssociationTool.h deleted file mode 100644 index 8469b629d6ecb738075da1fdbf179486f4e056c2..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TSOSPixelClusterAssociationTool.h +++ /dev/null @@ -1,65 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: TSOSPixelClusterAssociationTool.h 349056 2011-03-03 13:36:07Z zaidan $ -/** - * @file InDetD3PDMaker/src/TSOSPixelClusterAssociationTool.h - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Mar, 2011 - * @brief Associate from a TrackParticle to its default Perigee. - */ -#ifndef INDETD3PDMAKER_TSOSPIXELCLUSTERASSOCIATIONTOOL_H -#define INDETD3PDMAKER_TSOSPIXELCLUSTERASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/SingleAssociationTool.h" - -namespace Trk { - class TrackStateOnSurface; -} -namespace InDet { - class PixelCluster; -} -class AtlasDetectorID; - -namespace D3PD { - -/** - * @brief Associate from a pixel TrackStateOnSurface to a PixelCluster. - */ -class TSOSPixelClusterAssociationTool - : public SingleAssociationTool<Trk::TrackStateOnSurface, InDet::PixelCluster> -{ -public: - typedef SingleAssociationTool<Trk::TrackStateOnSurface, InDet::PixelCluster> Base; - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - TSOSPixelClusterAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - - /** - * @brief Return the target object. - * @param p The source object for the association. - * Return the target of the association, or 0. - */ - virtual const InDet::PixelCluster* get (const Trk::TrackStateOnSurface& p); - -private: - - const AtlasDetectorID* m_idHelper; - -}; // class TSOSPixelClusterAssociationTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_TSOSPIXELCLUSTERASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackBeamlineParametersAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackBeamlineParametersAssociationTool.cxx deleted file mode 100644 index b687b91343efbec2c46e74b31ee56a68c34fe0da..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackBeamlineParametersAssociationTool.cxx +++ /dev/null @@ -1,114 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id$ -/** - * @file InDetD3PDMaker/TrackParametersBeamlineParametersAssociationTool.cxx - * @author scott snyder <snyder@bnl.gov> - * @date Jun, 2012 - * @brief Associate from a track to the corresponding parameters - * evaluated at the beamline. - */ - - -#include "TrackBeamlineParametersAssociationTool.h" -#include "Particle/TrackParticle.h" -#include "TrkTrack/Track.h" -#include "AthenaKernel/errorcheck.h" - - -namespace D3PD { - - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -TrackBeamlineParametersAssociationTool::TrackBeamlineParametersAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent), - m_trackToVertexTool( "Reco::TrackToVertex") -{ - declareProperty ("TrackToVertexTool", m_trackToVertexTool, - "TrackToVertexTool instance."); -} - - -/** - * @brief Standard Gaudi initialize method. - */ -StatusCode TrackBeamlineParametersAssociationTool::initialize() -{ - CHECK( m_trackToVertexTool.retrieve() ); - return StatusCode::SUCCESS; -} - - -/** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ -const Trk::TrackParameters* -TrackBeamlineParametersAssociationTool::get (const Trk::Track& p) -{ - const InDet::BeamSpotData* bsd = m_trackToVertexTool->GetBeamSpotData (Gaudi::Hive::currentContext()); - std::unique_ptr<Trk::StraightLineSurface> bl = - m_trackToVertexTool->GetBeamLine (bsd); - return m_trackToVertexTool->trackAtBeamline (p, bl.get()); -} - - -/** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ -const Trk::TrackParameters* -TrackBeamlineParametersAssociationTool::get (const Rec::TrackParticle& p) -{ - return m_trackToVertexTool->trackAtBeamline (p); -} - - -/** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ -const Trk::TrackParameters* -TrackBeamlineParametersAssociationTool::get (const Trk::TrackParameters& p) -{ - const InDet::BeamSpotData* bsd = m_trackToVertexTool->GetBeamSpotData (Gaudi::Hive::currentContext()); - std::unique_ptr<Trk::StraightLineSurface> bl = - m_trackToVertexTool->GetBeamLine (bsd); - return m_trackToVertexTool->trackAtBeamline (p, bl.get()); -} - - -/** - * @brief Release an object retrieved from the association. - * @param p The object to release. - * - * Call this when you are done with the object returned by - * @c get(). The default implementation is a no-op, - * but if the association dynamically allocated the object which - * it returned, this gives it a chance to free it. - */ -void -TrackBeamlineParametersAssociationTool::releaseObject - (const Trk::TrackParameters* p) -{ - delete p; -} - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackBeamlineParametersAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackBeamlineParametersAssociationTool.h deleted file mode 100644 index 35b5b05ab7bbf32bd04aa654c03ff409ee76f88d..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackBeamlineParametersAssociationTool.h +++ /dev/null @@ -1,122 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id$ -/** - * @file InDetD3PDMaker/TrackBeamlineParametersAssociationTool.h - * @author scott snyder <snyder@bnl.gov> - * @date Jun, 2012 - * @brief Associate from a track to the corresponding parameters - * evaluated at the beamline. - * - * The input object can be any of @c Track, @c TrackParameters, - * or @c TrackParticle. - */ - - -#ifndef INDETD3PDMAKER_TRACKBEAMLINEPARAMETERSASSOCIATIONTOOL_H -#define INDETD3PDMAKER_TRACKBEAMLINEPARAMETERSASSOCIATIONTOOL_H - - -#include "D3PDMakerUtils/SingleAssociationTool.h" -#include "TrkParameters/TrackParameters.h" -#include "ITrackToVertex/ITrackToVertex.h" -#include "GaudiKernel/ToolHandle.h" -namespace Trk { - class Track; -} -namespace Rec { - class TrackParticle; -} - - -namespace D3PD { - - -/** - * @brief Associate from a track to the corresponding parameters - * evaluated at the beamline. - * - * The input object can be any of @c Track, @c TrackParameters, - * or @c TrackParticle. - */ -class TrackBeamlineParametersAssociationTool - : public SingleAssociationTool<Types<Trk::Track, - Trk::TrackParameters, - Rec::TrackParticle>, - Trk::TrackParameters> -{ -public: - typedef SingleAssociationTool<Types<Trk::Track, - Trk::TrackParameters, - Rec::TrackParticle>, - Trk::TrackParameters> Base; - - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - TrackBeamlineParametersAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - /// Standard Gaudi initialize method. - virtual StatusCode initialize(); - - - /** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ - virtual const Trk::TrackParameters* get (const Trk::Track& p); - - - /** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ - virtual const Trk::TrackParameters* get (const Rec::TrackParticle& p); - - - /** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ - virtual const Trk::TrackParameters* get (const Trk::TrackParameters& p); - - - /** - * @brief Release an object retrieved from the association. - * @param p The object to release. - * - * Call this when you are done with the object returned by - * @c get(). The default implementation is a no-op, - * but if the association dynamically allocated the object which - * it returned, this gives it a chance to free it. - */ - virtual void releaseObject (const Trk::TrackParameters* p); - - -private: - /// Vertex extrapolator. - ToolHandle<Reco::ITrackToVertex> m_trackToVertexTool; -}; - - -} // namespace D3PD - - -#endif // not INDETD3PDMAKER_TRACKBEAMLINEPARAMETERSASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackFitQualityFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackFitQualityFillerTool.cxx deleted file mode 100644 index d0ec2dd15f4a5c0900cdce48924b319b502fae15..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackFitQualityFillerTool.cxx +++ /dev/null @@ -1,75 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ -/** - * @file InDetD3PDMaker/src/TrackFitQualityFillerTool.cxx - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Block filler tool for generic fit quality. - */ -#include "TrackFitQualityFillerTool.h" -#include "TrkEventPrimitives/ParamDefs.h" -#include "TrkEventPrimitives/FitQuality.h" -#include "AthenaKernel/errorcheck.h" - - -namespace D3PD { - - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -TrackFitQualityFillerTool::TrackFitQualityFillerTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : BlockFillerTool<Trk::FitQuality> (type, name, parent) -{ - book().ignore(); // Avoid coverity warnings. -} - - -/** - * @brief Book variables for this block. - */ -StatusCode TrackFitQualityFillerTool::book() -{ - CHECK( addVariable ("chi2", m_chi2) ); - CHECK( addVariable ("ndof", m_ndof) ); - - return StatusCode::SUCCESS; -} - - -/** - * @brief Fill one block --- type-safe version. - * @param fq The input object. - * - * This is called once per object. The caller - * is responsible for arranging that all the pointers for booked variables - * are set appropriately upon entry. - */ -StatusCode TrackFitQualityFillerTool::fill (const Trk::FitQuality& fq) { - this->clearData(); - - *m_chi2 = fq.chiSquared(); - *m_ndof = fq.numberDoF(); - - return StatusCode::SUCCESS; -} - -/** - * @brief initialize the variables to default values - */ -void TrackFitQualityFillerTool::clearData(){ - - *m_chi2 = 0; - *m_ndof = 0; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackFitQualityFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackFitQualityFillerTool.h deleted file mode 100644 index 946328c3b54cee3d88d1edad180e14864639f1d8..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackFitQualityFillerTool.h +++ /dev/null @@ -1,72 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ -/** - * @file InDetD3PDMaker/src/TrackFitQualityFillerTool.h - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Block filler tool for generic fit quality. - */ -#ifndef INDETD3PDMAKER_TRACKFITQUALITYFILLERTOOL_H -#define INDETD3PDMAKER_TRACKFITQUALITYFILLERTOOL_H - -#include "D3PDMakerUtils/BlockFillerTool.h" - -namespace Trk { - class FitQuality; -} - - -namespace D3PD { - - -/** - * @brief Block filler tool for vertex position. - */ -class TrackFitQualityFillerTool - : public BlockFillerTool<Trk::FitQuality> -{ -public: - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - TrackFitQualityFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - /// Book variables for this block. - virtual StatusCode book(); - - - /** - * @brief Fill one block --- type-safe version. - * @param p The input object. - * - * This is called once per object. The caller - * is responsible for arranging that all the pointers for booked variables - * are set appropriately upon entry. - */ - virtual StatusCode fill (const Trk::FitQuality& p); - - -private: - - void clearData(); - - /// Variables: - float* m_chi2; - int* m_ndof; -}; - - -} // namespace D3PD - - -#endif // not INDETD3PDMAKER_TRACKFITQUALITYFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackInfoFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackInfoFillerTool.cxx deleted file mode 100644 index ccd6d0cb5828581f910cb9e73de6b7fd3ccb6d3b..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackInfoFillerTool.cxx +++ /dev/null @@ -1,88 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#include "TrackInfoFillerTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "TrkTrack/TrackInfo.h" - -#include <bitset> - -namespace D3PD { - - -TrackInfoFillerTool::TrackInfoFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ - book().ignore(); // Avoid coverity warnings. -} - -StatusCode TrackInfoFillerTool::initialize(){ - - CHECK( Base::initialize() ); - - return StatusCode::SUCCESS; -} - -StatusCode TrackInfoFillerTool::book() -{ - - // author information - CHECK( addVariable ("fitter", m_fitter) ); - CHECK( addVariable ("patternReco1", m_patternReco1) ); - CHECK( addVariable ("patternReco2", m_patternReco2) ); - // CHECK( addVariable ("patternReco", m_patternReco) ); - CHECK( addVariable ("trackProperties", m_trackProperties) ); - CHECK( addVariable ("particleHypothesis", m_particleHypothesis) ); - - return StatusCode::SUCCESS; -} - -StatusCode TrackInfoFillerTool::fill (const Trk::TrackInfo& info) -{ - - // track fitter - *m_fitter = info.trackFitter() ; - - // pattern reco info - int pattern = 0; - for(unsigned int i=0; i<32; i++){ - const Trk::TrackInfo::TrackPatternRecoInfo preco = (Trk::TrackInfo::TrackPatternRecoInfo)i; - if(info.patternRecoInfo(preco)) pattern = (pattern | (1 << i)); - } - *m_patternReco1 = pattern; - pattern = 0; - for(unsigned int i=32; i<Trk::TrackInfo::NumberOfTrackRecoInfo; i++){ - const Trk::TrackInfo::TrackPatternRecoInfo preco = (Trk::TrackInfo::TrackPatternRecoInfo)i; - if(info.patternRecoInfo(preco)) pattern = (pattern | (1 << (i-32))); - } - *m_patternReco2 = pattern; - - // *m_patternReco = 0; - // for(unsigned long i=0; i<Trk::TrackInfo::NumberOfTrackRecoInfo; i++){ - // long long int one = 1; - // const Trk::TrackInfo::TrackPatternRecoInfo preco = (Trk::TrackInfo::TrackPatternRecoInfo)i; - // if(info.patternReco(preco)) *m_patternReco = (*m_patternReco | (one << i)); - // } - - // track properties - *m_trackProperties = 0; - for(unsigned long i=0; i<Trk::TrackInfo::NumberOfTrackProperties; i++){ - int one = 1; - const Trk::TrackInfo::TrackProperties tprop = (Trk::TrackInfo::TrackProperties)i; - if(info.trackProperties(tprop)) *m_trackProperties = (*m_trackProperties | (one << i)); - } - - // particle hypothesis - *m_particleHypothesis = info.particleHypothesis(); - - return StatusCode::SUCCESS; -} - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackInfoFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackInfoFillerTool.h deleted file mode 100644 index 9461c4dd82d7380ac671b158c399b746fbeff351..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackInfoFillerTool.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#ifndef INDETD3PDMAKER_TRACKINFOFILLERTOOL_H -#define INDETD3PDMAKER_TRACKINFOFILLERTOOL_H - -#include "D3PDMakerUtils/BlockFillerTool.h" - -#include <vector> - -namespace Trk{ -class TrackInfo; -} - -namespace D3PD { - - -class TrackInfoFillerTool - : public BlockFillerTool<Trk::TrackInfo> -{ -public: - typedef BlockFillerTool<Trk::TrackInfo> Base; - - TrackInfoFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode fill (const Trk::TrackInfo& info); - -private: - - /* NTuple variables: **/ - // author information - int *m_fitter; - int *m_patternReco1; - int *m_patternReco2; - int *m_trackProperties; - int *m_particleHypothesis; - -}; // class TrackInfoFillerTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_TRACKINFOFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParametersErrorMatrixAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParametersErrorMatrixAssociationTool.cxx deleted file mode 100644 index 79ec627bb1e91d7b4d06b614cf28c99bdf8420ef..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParametersErrorMatrixAssociationTool.cxx +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ -/** - * @file InDetD3PDMaker/TrackParametersErrorMatrixAssociationTool.cxx - * @author scott snyder <snyder@bnl.gov> - * @date May, 2012 - * @brief Associate from TrackParameters to its associated ErrorMatrix, if any. - */ - - -#include "TrackParametersErrorMatrixAssociationTool.h" -#include "TrkParameters/TrackParameters.h" // typedef; can't be fwd declared -#include "AthenaKernel/errorcheck.h" - - -namespace D3PD { - - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -TrackParametersErrorMatrixAssociationTool::TrackParametersErrorMatrixAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ -} - - -/** - * @brief Return the target object. - * @param track The source object for the association. - * - * Return the target of the association, or 0. - */ - const AmgSymMatrix(5)* -TrackParametersErrorMatrixAssociationTool::get (const Trk::TrackParameters& p) -{ - return p.covariance(); -} - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParametersErrorMatrixAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParametersErrorMatrixAssociationTool.h deleted file mode 100644 index 69c7cb8fb7d56cca042b78e7684bbb18034859ea..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParametersErrorMatrixAssociationTool.h +++ /dev/null @@ -1,63 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ -/** - * @file InDetD3PDMaker/TrackParametersErrorMatrixAssociationTool.h - * @author scott snyder <snyder@bnl.gov> - * @date May, 2012 - * @brief Associate from TrackParameters to its associated ErrorMatrix, if any. - */ - - -#ifndef INDETD3PDMAKER_TRACKPARAMETERSERRORMATRIXASSOCIATIONTOOL_H -#define INDETD3PDMAKER_TRACKPARAMETERSERRORMATRIXASSOCIATIONTOOL_H - - - -#include "D3PDMakerUtils/SingleAssociationTool.h" -#include "TrkParameters/TrackParameters.h" // typedef; can't be fwd declared - - - -namespace D3PD { - - -/** - * @brief Associate from TrackParameters to its associated ErrorMatrix, if any. - */ -class TrackParametersErrorMatrixAssociationTool - : public SingleAssociationTool<Trk::TrackParameters, AmgSymMatrix(5)> -{ -public: - typedef SingleAssociationTool<Trk::TrackParameters, AmgSymMatrix(5)> Base; - - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - TrackParametersErrorMatrixAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - /** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ - virtual const AmgSymMatrix(5)* get (const Trk::TrackParameters& p); -}; - - -} // namespace D3PD - - - -#endif // not INDETD3PDMAKER_TRACKPARAMETERSERRORMATRIXASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParametersFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParametersFillerTool.cxx deleted file mode 100644 index 73b4f3f07975d9bcc4e54a31609f8ef8c74efc3e..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParametersFillerTool.cxx +++ /dev/null @@ -1,109 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id$ -/** - * @file InDetD3PDMaker/TrackParametersFillerTool.cxx - * @author scott snyder <snyder@bnl.gov> - * @date May, 2012 - * @brief Fill variables from track parameters. - */ - - -#include "TrackParametersFillerTool.h" -#include "TrkParameters/TrackParameters.h" -#include "AthenaKernel/errorcheck.h" - - -namespace D3PD { - - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -TrackParametersFillerTool::TrackParametersFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : D3PD::BlockFillerTool<Trk::TrackParameters> (type, name, parent) -{ - declareProperty ("LocalType", m_localType = "CYLINDRICAL", - "Type of local variables: " - "CYLINDRICAL -- d0/z0; CARTESIAN -- locX/loxY; " - "NONE -- not written."); - declareProperty ("FillThetaAndQoverP", m_fillThetaAndQoverP = true, - "Should theta and qoverp be filled?"); - declareProperty ("FillPhi", m_fillPhi=true, - "Should the phi variable be filled?"); - declareProperty ("DefaultValue", m_defaultValue = 0, - "Default value to which to set unfilled variables."); - - book().ignore(); // Silence coverity warnings -} - - -/** - * @brief Book variables for this block. - */ -StatusCode TrackParametersFillerTool::book() -{ - if (m_localType == "CYLINDRICAL") { - CHECK( addVariable ("d0", m_loc1, - "Local transverse impact", m_defaultValue) ); - CHECK( addVariable ("z0", m_loc2, - "Local longitudinal impact", m_defaultValue) ); - } - else if (m_localType == "CARTESIAN") { - CHECK( addVariable ("locX", m_loc1, "Local x coordinate", m_defaultValue) ); - CHECK( addVariable ("locY", m_loc2, "Local y coordinate", m_defaultValue) ); - } - else { - m_loc1 = 0; - m_loc2 = 0; - } - - if (m_fillPhi) - CHECK( addVariable ("phi", m_phi, "Azimuthal angle", m_defaultValue) ); - - if(m_fillThetaAndQoverP){ - CHECK( addVariable ("theta", m_theta, "Polar angle", m_defaultValue) ); - CHECK( addVariable ("qoverp", m_qoverp, - "Charge over momentum", m_defaultValue) ); - } - - return StatusCode::SUCCESS; -} - - -/** - * @brief Fill one block --- type-safe version. - * @param p The input object. - * - * This is called once per object. The caller - * is responsible for arranging that all the pointers for booked variables - * are set appropriately upon entry. - */ -StatusCode TrackParametersFillerTool::fill (const Trk::TrackParameters& p) -{ - // Either d0/z0 or locX/locY - if (m_loc1) { - *m_loc1 = p.parameters()[Trk::loc1]; - *m_loc2 = p.parameters()[Trk::loc2]; - } - - if (m_fillPhi) - *m_phi = p.parameters()[Trk::phi0]; - - if(m_fillThetaAndQoverP){ - *m_theta = p.parameters()[Trk::theta]; - *m_qoverp = p.parameters()[Trk::qOverP]; - } - - return StatusCode::SUCCESS; -} - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParametersFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParametersFillerTool.h deleted file mode 100644 index f6e4f792861fdaa79007c1f7ca83f43c1b1ef686..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParametersFillerTool.h +++ /dev/null @@ -1,98 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id$ -/** - * @file InDetD3PDMaker/TrackParametersFillerTool.h - * @author scott snyder <snyder@bnl.gov> - * @date May, 2012 - * @brief Fill variables from track parameters. - */ - - -#ifndef INDETD3PDMAKER_TRACKPARAMETERSFILLERTOOL_H -#define INDETD3PDMAKER_TRACKPARAMETERSFILLERTOOL_H - - -#include "D3PDMakerUtils/BlockFillerTool.h" -#include "TrkParameters/TrackParameters.h" // typedef; can't be fwd declared - - -namespace D3PD { - - -/** - * @brief Fill variables from track parameters. - */ -class TrackParametersFillerTool - : public D3PD::BlockFillerTool<Trk::TrackParameters> -{ -public: - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - TrackParametersFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - /** - * @brief Book variables for this block. - */ - virtual StatusCode book(); - - - /** - * @brief Fill one block --- type-safe version. - * @param p The input object. - * - * This is called once per object. The caller - * is responsible for arranging that all the pointers for booked variables - * are set appropriately upon entry. - */ - virtual StatusCode fill (const Trk::TrackParameters &p); - - -private: - /// Parameter: Type of local variables: - /// CYLINDRICAL -- d0/z0; CARTESIAN -- locX/loxY; NONE -- not written. - std::string m_localType; - - /// Parameter: Should theta and qoverp be filled? - bool m_fillThetaAndQoverP; - - /// Parameter: Should the phi variable be filled? - bool m_fillPhi; - - /// Parameter: Default value to which to set unfilled variables. - float m_defaultValue; - - - /// Variable: First local variable. - float* m_loc1; - - /// Variable: Second local variable. - float* m_loc2; - - /// Variable: aximuthal angle. - float* m_phi; - - /// Variable: polar angle. - float* m_theta; - - /// Variable: Charge over momentum. - float* m_qoverp; -}; - - -} // namespace D3PD - - - -#endif // not INDETD3PDMAKER_TRACKPARAMETERSFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleDetailedTruthAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleDetailedTruthAssociationTool.cxx deleted file mode 100644 index a4b8ec29d70bc622cdd07e4440174907af3c9f9c..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleDetailedTruthAssociationTool.cxx +++ /dev/null @@ -1,155 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#include "TrackParticleDetailedTruthAssociationTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "AtlasHepMC/GenParticle.h" -#include "AtlasHepMC/GenVertex.h" -#include "Particle/TrackParticle.h" -#include "TrkTrack/Track.h" -#include "TrkTrack/TrackCollection.h" -#include "TrkTruthData/DetailedTrackTruthCollection.h" -#include <map> - -namespace D3PD { - -TrackParticleDetailedTruthAssociationTool::TrackParticleDetailedTruthAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ - declareProperty ("MapKey", m_TruthMap = "TrackParticleTruthMap"); - declareProperty ("SGKey", m_TrkContainer = "TrackParticleCandidate"); - - book().ignore(); // Avoid coverity warnings. -} - - -StatusCode TrackParticleDetailedTruthAssociationTool::initialize() -{ - CHECK( Base::initialize() ); - return StatusCode::SUCCESS; -} - - -StatusCode TrackParticleDetailedTruthAssociationTool::book () -{ - - CHECK( Base::book() ); - - CHECK( addVariable ("nCommonPixHits", m_npixhits_common) ); - CHECK( addVariable ("nCommonSCTHits", m_nscthits_common) ); - CHECK( addVariable ("nCommonTRTHits", m_ntrthits_common) ); - - CHECK( addVariable ("nRecoPixHits", m_npixhits_reco) ); - CHECK( addVariable ("nRecoSCTHits", m_nscthits_reco) ); - CHECK( addVariable ("nRecoTRTHits", m_ntrthits_reco) ); - - CHECK( addVariable ("nTruthPixHits", m_npixhits_truth) ); - CHECK( addVariable ("nTruthSCTHits", m_nscthits_truth) ); - CHECK( addVariable ("nTruthTRTHits", m_ntrthits_truth) ); - - CHECK( addVariable ("begVtx_barcode", m_begVtx_barcode) ); - CHECK( addVariable ("endVtx_barcode", m_endVtx_barcode) ); - - CHECK( addVariable ("barcode", m_barcode) ); - - return StatusCode::SUCCESS; -} - -StatusCode TrackParticleDetailedTruthAssociationTool::invalidate(StatusCode sc){ - - m_itr = m_end; - return sc; -} - -StatusCode TrackParticleDetailedTruthAssociationTool::reset(const Rec::TrackParticle& track){ - - /// Get Track and TrackTruth Collections - - // -- TrackParticles: - const TrackCollection* tc; - StatusCode sc = evtStore()->retrieve(tc, m_TrkContainer); - if(sc.isFailure() || !tc) { - REPORT_MESSAGE (MSG::WARNING) << "Could not retrieve: " << m_TrkContainer; - return invalidate(StatusCode::SUCCESS); - } - // -- TrackParticleDetailedTruth: - const DetailedTrackTruthCollection* tm = nullptr; - sc = evtStore()->retrieve(tm, m_TruthMap); - if(sc.isFailure() || !tm) { - REPORT_MESSAGE (MSG::WARNING) << "Could not retrieve: " << m_TruthMap; - return invalidate(StatusCode::SUCCESS); - } - - const Trk::Track *originalTrack = track.originalTrack(); - - ElementLink<TrackCollection> tlink; - tlink.setElement(originalTrack); - tlink.setStorableObject(*tc); - DetailedTrackTruthCollection::const_iterator found = tm->find(tlink); - - if(found==tm->end()){ - return invalidate(StatusCode::SUCCESS); - } - - Range range = tm->equal_range(found->first); - - m_itr = range.first; - m_end = range.second; - - return StatusCode::SUCCESS; -} - -const HepMC::GenParticle *TrackParticleDetailedTruthAssociationTool::next (){ - - if(m_itr==m_end) return 0; - - const DetailedTrackTruth dtt = m_itr->second; - m_itr++; - - *m_npixhits_common = dtt.statsCommon()[SubDetHitStatistics::Pixel]; - *m_nscthits_common = dtt.statsCommon()[SubDetHitStatistics::SCT]; - *m_ntrthits_common = dtt.statsCommon()[SubDetHitStatistics::TRT]; - - *m_npixhits_reco = dtt.statsTrack()[SubDetHitStatistics::Pixel]; - *m_nscthits_reco = dtt.statsTrack()[SubDetHitStatistics::SCT]; - *m_ntrthits_reco = dtt.statsTrack()[SubDetHitStatistics::TRT]; - - *m_npixhits_truth = dtt.statsTruth()[SubDetHitStatistics::Pixel]; - *m_nscthits_truth = dtt.statsTruth()[SubDetHitStatistics::SCT]; - *m_ntrthits_truth = dtt.statsTruth()[SubDetHitStatistics::TRT]; - - const HepMcParticleLink& blink = *(dtt.trajectory().rbegin()); - const HepMcParticleLink& elink = *(dtt.trajectory().begin()); - - const HepMC::GenParticle* particle; - if(!blink.isValid()){ - particle = &m_dummy; - }else{ - particle = blink.cptr(); - *m_barcode = particle->barcode(); - HepMC::GenVertex *pv = particle->production_vertex(); - if(pv){ - *m_begVtx_barcode = pv->barcode(); - } - if(elink.isValid()){ - HepMC::GenVertex *epv = particle->end_vertex(); - if(epv){ - *m_endVtx_barcode = epv->barcode(); - } - } - } - - if(!particle){ - REPORT_MESSAGE (MSG::WARNING) << "Pointer to particle is not valid"; - } - - return particle; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleDetailedTruthAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleDetailedTruthAssociationTool.h deleted file mode 100644 index 1e59e60a1aadf737bf7e86d5256a7276feab76e6..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleDetailedTruthAssociationTool.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#ifndef INDETD3PDMAKER_TRACKPARTICLEDETAILEDTRUTHASSOCIATIONTOOL_H -#define INDETD3PDMAKER_TRACKPARTICLEDETAILEDTRUTHASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/MultiAssociationTool.h" - -#include "GaudiKernel/AlgTool.h" -#include "GaudiKernel/ToolHandle.h" - -#include "StoreGate/StoreGateSvc.h" -#include "TrkTruthData/DetailedTrackTruthCollection.h" -#include "AtlasHepMC/GenParticle.h" -#include <vector> - -namespace Rec { -class TrackParticle; -} - -namespace D3PD { - -class TrackParticleDetailedTruthAssociationTool - : public MultiAssociationTool<Rec::TrackParticle, HepMC::GenParticle> -{ -public: - typedef MultiAssociationTool<Rec::TrackParticle, HepMC::GenParticle> Base; - typedef std::pair<DetailedTrackTruthCollection::const_iterator,DetailedTrackTruthCollection::const_iterator> Range; - - TrackParticleDetailedTruthAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode reset (const Rec::TrackParticle& p); - virtual const HepMC::GenParticle* next(); - -private: - - StatusCode invalidate(StatusCode); - - DetailedTrackTruthCollection::const_iterator m_itr; - DetailedTrackTruthCollection::const_iterator m_end; - - /* StoreGate keys **/ - std::string m_TruthMap; - std::string m_TrkContainer; - - /* NTuple variables **/ - int* m_npixhits_common; - int* m_nscthits_common; - int* m_ntrthits_common; - - int* m_npixhits_reco; - int* m_nscthits_reco; - int* m_ntrthits_reco; - - int* m_npixhits_truth; - int* m_nscthits_truth; - int* m_ntrthits_truth; - - int* m_begVtx_barcode; - int* m_endVtx_barcode; - - int* m_barcode; - - HepMC::GenParticle m_dummy; - -}; // class TrackParticleDetailedTruthAssociationTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_TRACKPARTICLEDETAILEDTRUTHASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleFitQualityAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleFitQualityAssociationTool.cxx deleted file mode 100644 index 019ad7d12c8508581d9078544c35cf108e05c06a..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleFitQualityAssociationTool.cxx +++ /dev/null @@ -1,45 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ -/** - * @file InDetD3PDMaker/src/TrackParticleFitQualityAssociationTool.cxx - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a TrackParticle to its FitQuality. - */ - -#include "TrackParticleFitQualityAssociationTool.h" - -#include "Particle/TrackParticle.h" -#include "TrkEventPrimitives/FitQuality.h" - -namespace D3PD { - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -TrackParticleFitQualityAssociationTool::TrackParticleFitQualityAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ -} - -/** - * @brief Return the target object. - * @param track The source object for the association. - * - * Return the target of the association, or 0. - */ -const Trk::FitQuality *TrackParticleFitQualityAssociationTool::get (const Rec::TrackParticle& track) -{ - return track.fitQuality(); -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleFitQualityAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleFitQualityAssociationTool.h deleted file mode 100644 index 9ad9bbf604af6d125c637f68ab95a4678cfd8958..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleFitQualityAssociationTool.h +++ /dev/null @@ -1,62 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ -/** - * @file InDetD3PDMaker/src/TrackParticleFitQualityAssociationTool.h - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a TrackParticle to its FitQuality. - */ -#ifndef INDETD3PDMAKER_TRACKPARTICLEFITQUALITYATOOASSOCIATIONTOOL_H -#define INDETD3PDMAKER_TRACKPARTICLEFITQUALITYATOOASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/SingleAssociationTool.h" - -namespace Trk { - class FitQuality; -} - -namespace Rec { - class TrackParticle; -} - -namespace D3PD { - -/** - * @brief Associate from a TrackParticle to its FitQuality. - */ -class TrackParticleFitQualityAssociationTool - : public SingleAssociationTool<Rec::TrackParticle, Trk::FitQuality> -{ -public: - typedef SingleAssociationTool<Rec::TrackParticle, Trk::FitQuality> Base; - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - TrackParticleFitQualityAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - /** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ - virtual const Trk::FitQuality* get (const Rec::TrackParticle& p); -}; - - -} // namespace D3PD - - - -#endif // not INDETD3PDMAKER_TRACKPARTICLEFITQUALITYATOOASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleGetterTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleGetterTool.cxx deleted file mode 100644 index 5487f7ab50c0cdc76cc9916f0497171d643f1006..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleGetterTool.cxx +++ /dev/null @@ -1,104 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#include "TrackParticleGetterTool.h" - -#include "VxVertex/VxContainer.h" -#include "VxVertex/VxCandidate.h" -#include "VxVertex/PrimaryVertexSelector.h" - -namespace D3PD { - -TrackParticleGetterTool::TrackParticleGetterTool -(const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent), - m_vertex(0), - m_hasVertex(0), - m_trackSelector("") -{ - declareProperty ("VertexSGKey", m_vxCandidateSGKey = "VxPrimaryCandidate"); - declareProperty("TrackSelector", m_trackSelector); -} - -StatusCode TrackParticleGetterTool::initialize() -{ - CHECK( Base::initialize() ); - CHECK( m_trackSelector.retrieve() ); - return StatusCode::SUCCESS; -} - -StatusCode TrackParticleGetterTool::reset(bool allowMissing) -{ - - // tracks - const Rec::TrackParticleContainer* tracks = get(allowMissing); - - if (!tracks) { - m_trkItr = m_trkEnd; - if(allowMissing){ - return StatusCode::SUCCESS; - }else{ - return StatusCode::FAILURE; - } - } - - m_trkItr = tracks->begin(); - m_trkEnd = tracks->end(); - - // primary vertex - const VxContainer* vxContainer = 0; - StatusCode sc = evtStore()->retrieve(vxContainer, m_vxCandidateSGKey); - if (sc.isFailure() || !vxContainer) { - REPORT_MESSAGE (MSG::WARNING) << "Could not retrieve primary vertex container: " << m_vxCandidateSGKey; - m_hasVertex = false; - } else { - // use the primary vertex selector function - m_vertex = PrimaryVertexSelector(*vxContainer); - if (! m_vertex){ - //REPORT_MESSAGE (MSG::DEBUG) << "No primary vertices reconstructed"; - m_hasVertex = false; - } else - m_hasVertex = true; - } - - return StatusCode::SUCCESS; -} - -template<> -const void* CollectionGetterTool<Rec::TrackParticleContainer>::nextUntyped(){ - return 0; -} - -const void* TrackParticleGetterTool::nextUntyped() -{ - - const Rec::TrackParticle* track = 0; - - do{ - - if(m_trkItr == m_trkEnd){ - return 0; - } - - track = *(m_trkItr); - m_trkItr++; - - } while(!track || !selectTrack(track)); - - return track; -} - -bool TrackParticleGetterTool::selectTrack(const Rec::TrackParticle *track) -{ - - if(!m_hasVertex) return false; - - return m_trackSelector->decision(*track, &(m_vertex->recVertex())); -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleGetterTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleGetterTool.h deleted file mode 100644 index 1f6abec02c4deb975ed62d2191fd91d109591c08..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleGetterTool.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#ifndef INDETD3PDMAKER_TRACKPARTICLEGETTERTOOL_H -#define INDETD3PDMAKER_TRACKPARTICLEGETTERTOOL_H - -#include "D3PDMakerUtils/SGCollectionGetterTool.h" -#include "Particle/TrackParticle.h" -#include "Particle/TrackParticleContainer.h" -#include "TrkToolInterfaces/ITrackSelectorTool.h" -#include "GaudiKernel/ToolHandle.h" - -namespace Trk { - class VxCandidate; -} - -namespace D3PD { - -class TrackParticleGetterTool - : public D3PD::SGCollectionGetterTool<Rec::TrackParticleContainer> -{ -public: - typedef D3PD::SGCollectionGetterTool<Rec::TrackParticleContainer> Base; - - TrackParticleGetterTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - StatusCode initialize(); - StatusCode reset(bool=false); - const void* nextUntyped(); - -private: - - /* apply track selection */ - bool selectTrack(const Rec::TrackParticle *track); - - /* iterators **/ - Rec::TrackParticleContainer::const_iterator m_trkItr; - Rec::TrackParticleContainer::const_iterator m_trkEnd; - - /* for primary vertex **/ - std::string m_vxCandidateSGKey; - const Trk::VxCandidate *m_vertex; - bool m_hasVertex; - - /* track selector **/ - ToolHandle< Trk::ITrackSelectorTool > m_trackSelector; - -}; // class TrackParticleGetterTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_TRACKPARTICLEGETTERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleInfoAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleInfoAssociationTool.cxx deleted file mode 100644 index 8e28b1d5d94a9160020b2748484082562c3e5529..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleInfoAssociationTool.cxx +++ /dev/null @@ -1,45 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ -/** - * @file InDetD3PDMaker/src/TrackParticleInfoAssociationTool.cxx - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a TrackParticle to its Info. - */ - -#include "TrackParticleInfoAssociationTool.h" - -#include "Particle/TrackParticle.h" -#include "TrkTrack/TrackInfo.h" - -namespace D3PD { - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -TrackParticleInfoAssociationTool::TrackParticleInfoAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ -} - -/** - * @brief Return the target object. - * @param track The source object for the association. - * - * Return the target of the association, or 0. - */ -const Trk::TrackInfo *TrackParticleInfoAssociationTool::get (const Rec::TrackParticle& track) -{ - return &track.info(); -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleInfoAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleInfoAssociationTool.h deleted file mode 100644 index d737ce282eb7c8769a075d5f924c50ea6231cb5f..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleInfoAssociationTool.h +++ /dev/null @@ -1,62 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ -/** - * @file InDetD3PDMaker/src/TrackParticleInfoAssociationTool.h - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a TrackParticle to its TrackInfo. - */ -#ifndef INDETD3PDMAKER_TRACKPARTICLEINFOASSOCIATIONTOOL_H -#define INDETD3PDMAKER_TRACKPARTICLEINFOASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/SingleAssociationTool.h" - -namespace Trk { - class TrackInfo; -} - -namespace Rec { - class TrackParticle; -} - -namespace D3PD { - -/** - * @brief Associate from a TrackParticle to its TrackInfo. - */ -class TrackParticleInfoAssociationTool - : public SingleAssociationTool<Rec::TrackParticle, Trk::TrackInfo> -{ -public: - typedef SingleAssociationTool<Rec::TrackParticle, Trk::TrackInfo> Base; - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - TrackParticleInfoAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - /** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ - virtual const Trk::TrackInfo* get (const Rec::TrackParticle& p); -}; - - -} // namespace D3PD - - - -#endif // not INDETD3PDMAKER_TRACKPARTICLEINFOASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleLastParametersAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleLastParametersAssociationTool.cxx deleted file mode 100644 index fe80c0e0606116b3ba5406ae517928ae7b84561e..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleLastParametersAssociationTool.cxx +++ /dev/null @@ -1,62 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id$ -/** - * @file InDetD3PDMaker/TrackParticleLastParametersAssociationTool.cxx - * @author scott snyder <snyder@bnl.gov> - * @date May, 2012 - * @brief Associate from a track particle to the last set of parameters. - */ - - -#include "TrackParticleLastParametersAssociationTool.h" -#include "Particle/TrackParticle.h" -#include "TrkParameters/TrackParameters.h" -#include "AthenaKernel/errorcheck.h" - - -namespace D3PD { - - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -TrackParticleLastParametersAssociationTool::TrackParticleLastParametersAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ -} - - -/** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ -const Trk::TrackParameters* -TrackParticleLastParametersAssociationTool::get (const Rec::TrackParticle& p) -{ - const Trk::TrackParameters* lastValidTrkParametersBase = 0; - double radius = 0; - - for (const Trk::TrackParameters* base : p.trackParameters()) { - double tempR = base->position().perp(); - if( tempR > radius ) { - lastValidTrkParametersBase = base; - radius = tempR; - } - } - - return lastValidTrkParametersBase; -} - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleLastParametersAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleLastParametersAssociationTool.h deleted file mode 100644 index f41f1190f446a77b9204613026a27f5c040a05b0..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleLastParametersAssociationTool.h +++ /dev/null @@ -1,65 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id$ -/** - * @file InDetD3PDMaker/TrackParticleLastParametersAssociationTool.h - * @author scott snyder <snyder@bnl.gov> - * @date May, 2012 - * @brief Associate from a track particle to the last set of parameters. - */ - - -#ifndef INDETD3PDMAKER_TRACKPARTICLELASTPARAMETERSASSOCIATIONTOOL_H -#define INDETD3PDMAKER_TRACKPARTICLELASTPARAMETERSASSOCIATIONTOOL_H - - -#include "D3PDMakerUtils/SingleAssociationTool.h" -#include "TrkParameters/TrackParameters.h" // typedef; can't be fwd declared -namespace Rec { - class TrackParticle; -} - - -namespace D3PD { - - -/** - * @brief Associate from a track particle to the last set of parameters. - */ -class TrackParticleLastParametersAssociationTool - : public SingleAssociationTool<Rec::TrackParticle, Trk::TrackParameters> -{ -public: - typedef SingleAssociationTool<Rec::TrackParticle, Trk::TrackParameters> Base; - - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - TrackParticleLastParametersAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - /** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ - virtual const Trk::TrackParameters* get (const Rec::TrackParticle& p); -}; - - -} // namespace D3PD - - - -#endif // not INDETD3PDMAKER_TRACKPARTICLELASTPARAMETERSASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleMCClassifierFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleMCClassifierFillerTool.cxx deleted file mode 100644 index 8ba616ea3e8ab9d59699c9214f1a4b35e828a4c9..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleMCClassifierFillerTool.cxx +++ /dev/null @@ -1,87 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id$ -/** - * @file InDetD3PDMaker/src/TrackParticleMCClassifierFillerTool.cxx - * @author scott snyder - * @date Oct 2011 - * @brief Fill in MCTruthClassifier results for TrackParticle. - */ - - -#include "TrackParticleMCClassifierFillerTool.h" -#include "MCTruthClassifier/IMCTruthClassifier.h" -#include "xAODTracking/TrackParticle.h" -#include "AthenaKernel/errorcheck.h" - - -namespace D3PD { - - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -TrackParticleMCClassifierFillerTool::TrackParticleMCClassifierFillerTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent), - m_classifier ("MCTruthClassifier") -{ - declareProperty ("Classifier", m_classifier, "Classifier tool instance."); - - book().ignore(); // Avoid coverity warnings. -} - - -/** - * @brief Standard Gaudi initialize method. - */ -StatusCode TrackParticleMCClassifierFillerTool::initialize() -{ - CHECK( Base::initialize() ); - CHECK( m_classifier.retrieve() ); - return StatusCode::SUCCESS; -} - - -/** - * @brief Book variables for this block. - */ -StatusCode TrackParticleMCClassifierFillerTool::book() -{ - CHECK( addVariable ("type", m_type, - "MC particle type, from classifier tool.") ); - CHECK( addVariable ("origin", m_origin, - "MC particle origin, from classifier tool.") ); - - return StatusCode::SUCCESS; -} - - -/** - * @brief Fill one block --- type-safe version. - * @param p The input object. - * - * This is called once per object. The caller - * is responsible for arranging that all the pointers for booked variables - * are set appropriately upon entry. - */ -StatusCode -TrackParticleMCClassifierFillerTool::fill (const xAOD::TrackParticle& p) -{ - std::pair<unsigned int, unsigned int> cl = - m_classifier->particleTruthClassifier (&p); - *m_type = cl.first; - *m_origin = cl.second; - - return StatusCode::SUCCESS; -} - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleMCClassifierFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleMCClassifierFillerTool.h deleted file mode 100644 index af78c9ee52c0f42b8d06aa9005a21a56fcea1c10..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleMCClassifierFillerTool.h +++ /dev/null @@ -1,87 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id$ -/** - * @file InDetD3PDMaker/src/TrackParticleMCClassifierFillerTool.h - * @author scott snyder - * @date Oct 2011 - * @brief Fill in MCTruthClassifier results for TrackParticle. - */ - - -#ifndef INDETD3PDMAKER_TRACKPARTICLEMCCLASSIFIERFILLERTOOL_H -#define INDETD3PDMAKER_TRACKPARTICLEMCCLASSIFIERFILLERTOOL_H - - -#include "D3PDMakerUtils/BlockFillerTool.h" -#include "xAODTracking/TrackParticle.h" -#include "GaudiKernel/ToolHandle.h" - - -class IMCTruthClassifier; - - -namespace D3PD { - - -/** - * @brief Fill in MCTruthClassifier results for TrackParticle. - */ -class TrackParticleMCClassifierFillerTool - : public BlockFillerTool<xAOD::TrackParticle> -{ -public: - typedef BlockFillerTool<xAOD::TrackParticle> Base; - - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - TrackParticleMCClassifierFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - /// Standard Gaudi initialize method. - virtual StatusCode initialize(); - - - /// Book variables for this block. - virtual StatusCode book(); - - - /** - * @brief Fill one block --- type-safe version. - * @param p The input object. - * - * This is called once per object. The caller - * is responsible for arranging that all the pointers for booked variables - * are set appropriately upon entry. - */ - virtual StatusCode fill (const xAOD::TrackParticle& p); - - -private: - /// Property: Classifier tool. - ToolHandle<IMCTruthClassifier> m_classifier; - - - /// Variable: Particle type. - int* m_type; - - /// Variable: Particle origin. - int* m_origin; -}; - - -} // namespace D3PD - - -#endif // INDETD3PDMAKER_TRACKPARTICLEMCCLASSIFIERFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleParametersAtBLFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleParametersAtBLFillerTool.cxx deleted file mode 100644 index 343b3539f00d8174aa6ab6346a57913c29ec8600..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleParametersAtBLFillerTool.cxx +++ /dev/null @@ -1,149 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "TrackParticleParametersAtBLFillerTool.h" -#include "EventPrimitives/EventPrimitivesHelpers.h" - -#include "AthenaKernel/errorcheck.h" -#include "TrkParameters/TrackParameters.h" -#include "Particle/TrackParticle.h" - -namespace D3PD { - - -TrackParticleParametersAtBLFillerTool::TrackParticleParametersAtBLFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : D3PD::BlockFillerTool<Rec::TrackParticle> (type, name, parent), - m_trackToVertexTool("Reco::TrackToVertex") -{ - // Avoid coverity warnings. - m_levelOfDetails = 10; - m_fillThetaAndQoverP = true; - book().ignore(); - - declareProperty ("FillThetaAndQoverP", m_fillThetaAndQoverP=true); - declareProperty ("DefaultValue", m_defaultValue=0, - "Default value to which to set unfilled variables."); - declareProperty ("TrackToVertexTool", m_trackToVertexTool); - declareProperty ("levelOfDetails", m_levelOfDetails); -} - -StatusCode TrackParticleParametersAtBLFillerTool::initialize(){ - - CHECK( D3PD::BlockFillerTool<Rec::TrackParticle>::initialize() ); - - StatusCode sc = m_trackToVertexTool.retrieve(); - if(sc.isFailure()){ - REPORT_MESSAGE (MSG::ERROR) << "Could not retrieve TrackToVertexTool"; - return StatusCode::FAILURE; - } - - return StatusCode::SUCCESS; -} - -StatusCode TrackParticleParametersAtBLFillerTool::book() -{ - // track parameters at perigee - if(m_levelOfDetails > 0) { - CHECK( addVariable ("d0_wrtBL", m_d0, "", m_defaultValue) ); - CHECK( addVariable ("z0_wrtBL", m_z0, "", m_defaultValue) ); - CHECK( addVariable ("phi_wrtBL", m_phi, "", m_defaultValue) ); - if(m_fillThetaAndQoverP) { - CHECK( addVariable ("theta_wrtBL", m_theta, "", m_defaultValue) ); - CHECK( addVariable ("qoverp_wrtBL", m_qoverp, "", m_defaultValue) ); - } - - if(m_levelOfDetails > 1) { - - CHECK( addVariable ("d0_err_wrtBL", m_d0_err, "", m_defaultValue) ); - CHECK( addVariable ("z0_err_wrtBL", m_z0_err, "", m_defaultValue) ); - CHECK( addVariable ("phi_err_wrtBL", m_phi_err, "", m_defaultValue) ); - CHECK( addVariable ("theta_err_wrtBL", m_theta_err, "", m_defaultValue) ); - CHECK( addVariable ("qoverp_err_wrtBL", m_qoverp_err, "", m_defaultValue) ); - - if(m_levelOfDetails > 2) { - - CHECK( addVariable ("d0_z0_err_wrtBL", m_d0_z0_err_wrtBL, "", m_defaultValue) ); - CHECK( addVariable ("d0_phi_err_wrtBL", m_d0_phi_err_wrtBL, "", m_defaultValue) ); - CHECK( addVariable ("d0_theta_err_wrtBL", m_d0_theta_err_wrtBL, "", m_defaultValue) ); - CHECK( addVariable ("d0_qoverp_err_wrtBL", m_d0_qoverp_err_wrtBL, "", m_defaultValue) ); - CHECK( addVariable ("z0_phi_err_wrtBL", m_z0_phi_err_wrtBL, "", m_defaultValue) ); - CHECK( addVariable ("z0_theta_err_wrtBL", m_z0_theta_err_wrtBL, "", m_defaultValue) ); - CHECK( addVariable ("z0_qoverp_err_wrtBL", m_z0_qoverp_err_wrtBL, "", m_defaultValue) ); - CHECK( addVariable ("phi_theta_err_wrtBL", m_phi_theta_err_wrtBL, "", m_defaultValue) ); - CHECK( addVariable ("phi_qoverp_err_wrtBL", m_phi_qoverp_err_wrtBL, "", m_defaultValue) ); - CHECK( addVariable ("theta_qoverp_err_wrtBL", m_theta_qoverp_err_wrtBL, "", m_defaultValue) ); - } - } - } - return StatusCode::SUCCESS; -} - -StatusCode TrackParticleParametersAtBLFillerTool::fill (const Rec::TrackParticle& track) -{ - - // track parameters at ataline - if(m_levelOfDetails > 0) { - - // call the TrackToVertex Tool - const Trk::AtaStraightLine* ataline = - dynamic_cast<const Trk::AtaStraightLine*>(m_trackToVertexTool->trackAtBeamline(track)); - - if(!ataline) { -#if 0 - if(track.perigee()) { - REPORT_MESSAGE (MSG::DEBUG) << "Failed to extrapolate to beam line track of: " - << "pt = " << track.perigee()->pT() << " - " - << "eta = " << track.perigee()->eta() << " - " - << "phi = " << track.perigee()->parameters()[Trk::phi0]; - }else{ - REPORT_MESSAGE (MSG::DEBUG) << "Failed to extrapolate to beam line track with no valid perigee"; - } -#endif - return StatusCode::SUCCESS; - } - - *m_d0 = ataline->parameters()[Trk::d0]; - *m_z0 = ataline->parameters()[Trk::z0]; - *m_phi = ataline->parameters()[Trk::phi0]; - if(m_fillThetaAndQoverP){ - *m_theta = ataline->parameters()[Trk::theta]; - *m_qoverp = ataline->parameters()[Trk::qOverP]; - } - - if(m_levelOfDetails > 1) { - - const AmgSymMatrix(5)* err = ataline->covariance(); - if(!err) return StatusCode::SUCCESS; - - *m_d0_err = Amg::error( *err,Trk::d0); - *m_z0_err = Amg::error( *err,Trk::z0); - *m_phi_err = Amg::error( *err,Trk::phi0); - *m_theta_err = Amg::error( *err,Trk::theta); - *m_qoverp_err = Amg::error( *err,Trk::qOverP); - - if(m_levelOfDetails > 2) { - - *m_d0_z0_err_wrtBL = (*err)(Trk::d0, Trk::z0); - *m_d0_phi_err_wrtBL = (*err)(Trk::d0, Trk::phi0); - *m_d0_theta_err_wrtBL = (*err)(Trk::d0, Trk::theta); - *m_d0_qoverp_err_wrtBL = (*err)(Trk::d0, Trk::qOverP); - *m_z0_phi_err_wrtBL = (*err)(Trk::z0, Trk::phi0); - *m_z0_theta_err_wrtBL = (*err)(Trk::z0, Trk::theta); - *m_z0_qoverp_err_wrtBL = (*err)(Trk::z0, Trk::qOverP); - *m_phi_theta_err_wrtBL = (*err)(Trk::phi0, Trk::theta); - *m_phi_qoverp_err_wrtBL = (*err)(Trk::phi0, Trk::qOverP); - *m_theta_qoverp_err_wrtBL = (*err)(Trk::theta, Trk::qOverP); - } - } - - delete ataline; - } - - return StatusCode::SUCCESS; -} - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleParametersAtBLFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleParametersAtBLFillerTool.h deleted file mode 100644 index 3f129ea0e2f1e2245dad50d2868a871d2a62f7e7..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleParametersAtBLFillerTool.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMaker_TRACKPARTICLEPARAMETERSATBLFILLERTOOL_H -#define INDETD3PDMaker_TRACKPARTICLEPARAMETERSATBLFILLERTOOL_H - -#include "D3PDMakerUtils/BlockFillerTool.h" -#include "GaudiKernel/ToolHandle.h" -#include "ITrackToVertex/ITrackToVertex.h" - -namespace Rec{ -class TrackParticle; -} - -namespace D3PD { - -class TrackParticleParametersAtBLFillerTool - : public D3PD::BlockFillerTool<Rec::TrackParticle> -{ -public: - TrackParticleParametersAtBLFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - virtual StatusCode initialize(); - - virtual StatusCode book(); - - virtual StatusCode fill (const Rec::TrackParticle &p); - -private: - - bool m_fillThetaAndQoverP; - int m_levelOfDetails; - - /// Parameter: Value to which to set variables if they don't get filled. - float m_defaultValue; - - /* NTuple variables: **/ - // track parameters at perigee - float *m_d0; - float *m_z0; - float *m_phi; - float *m_theta; - float *m_qoverp; - - float *m_d0_err; - float *m_z0_err; - float *m_phi_err; - float *m_theta_err; - float *m_qoverp_err; - - float *m_d0_z0_err_wrtBL; - float *m_d0_phi_err_wrtBL; - float *m_d0_theta_err_wrtBL; - float *m_d0_qoverp_err_wrtBL; - float *m_z0_phi_err_wrtBL; - float *m_z0_theta_err_wrtBL; - float *m_z0_qoverp_err_wrtBL; - float *m_phi_theta_err_wrtBL; - float *m_phi_qoverp_err_wrtBL; - float *m_theta_qoverp_err_wrtBL; - - /* Track to vertex extrapolator **/ - ToolHandle<Reco::ITrackToVertex> m_trackToVertexTool; - -}; // class TrackParticleParametersAtBLFillerTool - -} // namespace D3PD - -#endif // not INDETD3PDMaker_TRKTRACKPARAMETERSATBLFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleTSOAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleTSOAssociationTool.cxx deleted file mode 100644 index 9cf1412dfbce2a3c7cd0b9317f1a1d7ba6181510..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleTSOAssociationTool.cxx +++ /dev/null @@ -1,80 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#include "TrackParticleTSOAssociationTool.h" - -#include <Particle/TrackParticle.h> -#include <TrkTrack/TrackStateOnSurface.h> -#include "AthenaKernel/errorcheck.h" -#include "AtlasDetDescr/AtlasDetectorID.h" -#include "InDetIdentifier/PixelID.h" - -namespace D3PD { - - -TrackParticleTSOAssociationTool::TrackParticleTSOAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent), - InDetTSOSAssociationHelper() -{ -// declareProperty("InDetHoleSearchTool", m_idHoleSearch); - for(std::map<std::string, bool>::iterator itr=m_getTypes.begin(); - itr!=m_getTypes.end(); itr++){ - declareProperty(itr->first, itr->second); - } -} - -StatusCode TrackParticleTSOAssociationTool::initialize(){ - - CHECK( Base::initialize() ); - -// if ( !m_idHoleSearch.empty() ) { -// if (m_idHoleSearch.retrieve().isFailure() ) { -// REPORT_MESSAGE (MSG::ERROR) << "Failed to retrieve InDet hole search tool " << m_idHoleSearch; -// return StatusCode::FAILURE; -// } else { -// REPORT_MESSAGE (MSG::INFO) << "Retrieved tool " << m_idHoleSearch; -// m_doHolesInDet = true; -// } -// } - - // need Atlas id-helper to identify sub-detectors, take it from detStore - if (detStore()->retrieve(m_idHelper, "AtlasID").isFailure()) { - REPORT_MESSAGE (MSG::ERROR) << "Could not get AtlasID helper"; - return StatusCode::FAILURE; - } - - // need Pixel helper to identify b-layer TSOS, take it from detStore - if (detStore()->retrieve(m_pixelId, "PixelID").isFailure()) { - REPORT_MESSAGE (MSG::ERROR) << "Could not get PixelID helper"; - return StatusCode::FAILURE; - } - - return StatusCode::SUCCESS; -} - -/** - * @brief Start the iteration for a new association. - * @param p The object from which to associate. - */ -StatusCode TrackParticleTSOAssociationTool::reset (const Rec::TrackParticle& p) -{ - - return doReset(p); -} - -/** - * @brief Return a pointer to the next element in the association. - * - * Return 0 when the association has been exhausted. - */ -const Trk::TrackStateOnSurface* TrackParticleTSOAssociationTool::next() -{ - - return getNext(); -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleTSOAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleTSOAssociationTool.h deleted file mode 100644 index c89f3f252dc1b2a1ef5e6cc4f41c326138c2fd88..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleTSOAssociationTool.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#ifndef INDETD3PD_TRACKPARTICLETSOASSOCIATIONTOOL_H -#define INDETD3PD_TRACKPARTICLETSOASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/MultiAssociationTool.h" -#include "InDetTSOSAssociationHelper.h" - -namespace Rec{ -class TrackParticle; -} - -namespace Trk{ - class TrackStateOnSurface; -} - -namespace D3PD { - -class TrackParticleTSOAssociationTool - : public MultiAssociationTool<Rec::TrackParticle, Trk::TrackStateOnSurface>, - InDetTSOSAssociationHelper -{ -public: - - typedef MultiAssociationTool<Rec::TrackParticle, Trk::TrackStateOnSurface> Base; - - TrackParticleTSOAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - - /** - * @brief Start the iteration for a new association. - * @param p The object from which to associate. - */ - virtual StatusCode reset (const Rec::TrackParticle& p); - - /** - * @brief Return a pointer to the next element in the association. - * - * Return 0 when the association has been exhausted. - */ - virtual const Trk::TrackStateOnSurface* next(); - -}; - - -} // namespace D3PD - - -#endif // not INDETD3PD_TRACKPARTICLETSOASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToPixelClusterAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToPixelClusterAssociationTool.cxx deleted file mode 100644 index b7ca8e013083c526d912408cf4368af740ba7436..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToPixelClusterAssociationTool.cxx +++ /dev/null @@ -1,492 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -//********************************************************/ -// @author <yuriy.pylypchenko@cern.ch> / -// @date Oct, 2010 / -// @brief setting up an association of clusters to tracks / -// represented by indices. / -//********************************************************/ - - -#include "TrackParticleToPixelClusterAssociationTool.h" -#include "AthenaKernel/errorcheck.h" -#include "Particle/TrackParticle.h" -#include "TrkTrack/Track.h" -#include "TrkTrack/TrackCollection.h" -#include "InDetPrepRawData/PixelClusterContainer.h" -#include "InDetPrepRawData/PixelClusterCollection.h" -#include <map> - -#include "TrkTrack/TrackStateOnSurface.h" -#include "Identifier/Identifier.h" -#include "TrkEventPrimitives/TrackStateDefs.h" -#include "AtlasDetDescr/AtlasDetectorID.h" - -#include "TrkCompetingRIOsOnTrack/CompetingRIOsOnTrack.h" -#include "TrkParameters/TrackParameters.h" - - - -#include "InDetIdentifier/PixelID.h" - -namespace D3PD { - - -TrackParticleToPixelClusterAssociationTool::TrackParticleToPixelClusterAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : TrackParticleToPixelClusterToTrackBase(type, name, parent), - m_idHelper(0), - m_pixelId(0) -{ - book().ignore(); // Avoid coverity warnings. -} - - -/// initialize method. -StatusCode TrackParticleToPixelClusterAssociationTool::initialize() -{ - - - // need Atlas id-helpers to identify sub-detectors, take them from detStore - if (detStore()->retrieve(m_idHelper, "AtlasID").isFailure()) { - REPORT_MESSAGE (MSG::ERROR) << "Could not get AtlasDetectorID helper"; - return StatusCode::FAILURE; - } - - if(detStore()->retrieve(m_pixelId,"PixelID").isFailure() ){ - REPORT_MESSAGE (MSG::FATAL) << "Could not retrieve Pixel helper"; - return StatusCode::FAILURE; - } - - - return TrackParticleToPixelClusterToTrackBase::initialize(); -} -/// booking btuple variables -StatusCode TrackParticleToPixelClusterAssociationTool::book() -{ - - CHECK( TrackParticleToPixelClusterToTrackBase::book() ); - - CHECK( addVariable( "clX" , m_clGlobX) ); - CHECK( addVariable( "clY" , m_clGlobY) ); - CHECK( addVariable( "clZ" , m_clGlobZ) ); - CHECK( addVariable( "clLocX" , m_clLocX) ); - CHECK( addVariable( "clLocY" , m_clLocY) ); - CHECK( addVariable( "clId" , m_id) ); - CHECK( addVariable( "clDetElementId" , m_detElementId) ); - CHECK( addVariable( "clDetType" , m_detType) ); - CHECK( addVariable( "clBEC" , m_bec) ); - CHECK( addVariable( "clLayer" , m_layer) ); - CHECK( addVariable( "locX" , m_locX) ); - CHECK( addVariable( "locY" , m_locY) ); - CHECK( addVariable( "errLocX" , m_err_locX) ); - CHECK( addVariable( "errLocY" , m_err_locY) ); - CHECK( addVariable( "covLocXY" , m_cov_locXY) ); - CHECK( addVariable( "x" , m_x) ); - CHECK( addVariable( "y" , m_y) ); - CHECK( addVariable( "z" , m_z) ); - CHECK( addVariable( "trkLocX" , m_trkLocX) ); - CHECK( addVariable( "trkLocY" , m_trkLocY) ); - CHECK( addVariable( "errTrkLocX" , m_err_trkLocX) ); - CHECK( addVariable( "errTrkLocY" , m_err_trkLocY) ); - CHECK( addVariable( "covTrkLocXY" , m_cov_trkLocXY) ); - CHECK( addVariable( "isCompetingRIO" , m_isCompetingRIO) ); - CHECK( addVariable( "size" , m_sizePhi) ); - CHECK( addVariable( "ToT" , m_ToT) ); - CHECK( addVariable( "locPhi" , m_locPhi) ); - CHECK( addVariable( "locTheta" , m_locTheta) ); - CHECK( addVariable( "tsosType" , m_tsosType) ); - - - return StatusCode::SUCCESS; -} - -/// -/// @brief Start the iteration for a new association. -/// @param p The object from which to associate. -/// -StatusCode TrackParticleToPixelClusterAssociationTool::reset (const Rec::TrackParticle& p) -{ - - const Trk::Track *track = p.originalTrack(); - if(!track){ - m_clusItr = m_clusEnd; - REPORT_MESSAGE (MSG::DEBUG) << "Could not access original track"; - return StatusCode::SUCCESS; - } - - /// extra ntuple variable - - m_clGlobX= 0; - m_clGlobY= 0; - m_clGlobZ= 0; - m_clLocX= 0; - m_clLocY= 0; - m_locX= 0; - m_locY= 0; - m_err_locX= 0; - m_err_locY= 0; - m_cov_locXY= 0; - m_x= 0; - m_y= 0; - m_z= 0; - m_trkLocX= 0; - m_trkLocY= 0; - m_err_trkLocX= 0; - m_err_trkLocY= 0; - m_cov_trkLocXY= 0; - m_isCompetingRIO= 0; - m_sizePhi= 0; - m_ToT = 0; - //m_sideModule = 0; - m_locPhi= 0; - m_locTheta= 0; - m_Pt= 0; - m_tsosType= 0; - m_id= 0; // unique identifier for a cluster - m_detElementId= 0; // unique identifier for a detector element - m_detType= 0; - m_bec= 0; - m_layer= 0; - - /* - m_locPhiOld = 0; - m_locThetaOld = 0; - m_locPhiOldNotCor = 0; - m_locThetaOldNotCor = 0; - */ - - m_pixelClusterForAssociation.clear(); - - const InDet::PixelClusterContainer* riocont; - if(!evtStore()->contains<InDet::PixelClusterContainer>("PixelClusters")){ - - REPORT_MESSAGE (MSG::WARNING) << "No pixel clusters...."; - - } - else { - StatusCode sc = evtStore()->retrieve(riocont, "PixelClusters"); - if(sc.isFailure()) { - REPORT_MESSAGE (MSG::WARNING) << "Could not get clusters...."; - } - } - - - std::vector< Identifier> pixelClusterIdentifier; - - const DataVector<const Trk::TrackStateOnSurface>* trackHits = track->trackStateOnSurfaces(); - - if (!trackHits){ - m_clusItr = m_clusEnd; - REPORT_MESSAGE (MSG::WARNING) << "TESTASSOC for current track measurementsOntrack == Null, no clusters will be associated with this track"; - return StatusCode::SUCCESS; - } - - DataVector<const Trk::TrackStateOnSurface>::const_iterator it = trackHits->begin(); - - for ( ; it != trackHits->end(); it++){ - - const InDet::SiClusterOnTrack *clus = dynamic_cast<const InDet::SiClusterOnTrack*>((*it)->measurementOnTrack()); - - if (clus){ - - //const Trk::TrkDetElementBase* detectorElement = clus->detectorElement(); - // Dynamic cast to Silicon element and do Pixel / SCT element test - //const InDetDD::SiDetectorElement* siliconDetectorElement = dynamic_cast< const InDetDD::SiDetectorElement* >(detectorElement); - - // Get Pointer to prepRawDataObject - const InDet::PixelCluster *RawDataClus = dynamic_cast<const InDet::PixelCluster*>(clus->prepRawData()); - - if (RawDataClus==0){ - REPORT_MESSAGE (MSG::DEBUG) << "TESTASSOC SiCluster WITHOUT prepRawData!!!!"; - } - - // check if Cluster is in Pixel ... - if (RawDataClus!=0){ - if (RawDataClus->detectorElement()->isPixel()){ - - REPORT_MESSAGE (MSG::DEBUG) << "TESTASSOC SiHIT via prepRawData"; - - Identifier pixelClusterID = RawDataClus->identify(); - - pixelClusterIdentifier.push_back(pixelClusterID); - - m_pixelClusterForAssociation.push_back(*it); - - REPORT_MESSAGE (MSG::DEBUG) << "(2)TESTASSOC TSoS-Type is: "<< (*it)->types().to_ulong(); - - } - } - } - } - - m_clusItr = m_pixelClusterForAssociation.begin(); //pixel::vector<cont InDet::PixelCluster>::const_iterator - m_clusEnd = m_pixelClusterForAssociation.end(); - - return StatusCode::SUCCESS; -} - -/** -* @brief Return a pointer to the next element in the association. -* -* Return 0 when the association has been exhausted. -*/ -const InDet::PixelCluster* TrackParticleToPixelClusterAssociationTool::next() - { - - const InDet::PixelCluster* RawDataClus = 0; - - // reached the end - if(m_clusItr==m_clusEnd){ - return 0; - } - else{ - } - - *m_clGlobX= -9999.; - *m_clGlobY= -9999.; - *m_clGlobZ= -9999.; - *m_clLocX= -9999.; - *m_clLocY= -9999.; - *m_locX= -9999.; - *m_locY= -9999.; - *m_err_locX= -9999.; - *m_err_locY= -9999.; - *m_cov_locXY= -9999.; - *m_x= -9999.; - *m_y= -9999.; - *m_z= -9999.; - *m_trkLocX= -9999.; - *m_trkLocY= -9999.; - *m_err_trkLocX= -9999.; - *m_err_trkLocY= -9999.; - *m_cov_trkLocXY= -9999.; - *m_isCompetingRIO= 0; - *m_sizePhi= 0.; - *m_ToT = -99999; - //*m_sideModule = -9999; - *m_locPhi= -9999.; - *m_locTheta= -9999.; - *m_Pt= -9999.; - *m_tsosType= (int)Trk::TrackStateOnSurface::Unknown; - - *m_id= 0; // unique identifier for a cluster - *m_detElementId= 0; // unique identifier for a detector element - *m_detType= Trk::TrackState::unidentified; - *m_bec= -9999.; - *m_layer= -1; - - /* - *m_locPhiOld = -9999.; - *m_locThetaOld = -9999.; - *m_locPhiOldNotCor = -9999.; - *m_locThetaOldNotCor = -9999.; - */ - - const Trk::TrackStateOnSurface* pTSoS = *m_clusItr; - long bitsetValue = (long)pTSoS->types().to_ulong(); - *m_tsosType = (int)bitsetValue; - - // TrackStateOnSurface part - - // measured hit/outlier - const Trk::MeasurementBase *measurement = pTSoS->measurementOnTrack(); - - // track parameters at wafer - const Trk::TrackParameters *tp = pTSoS->trackParameters(); - - // Fill the hit/oultier local/global position variables - if(measurement){ - - // local position - //for SCT only locX, locY ether not defined at all, i.e.-9999. - // or 0, when the second parameter defined - - //local parameters - const Trk::LocalParameters pars = measurement->localParameters(); - //local error matrix - const Amg::MatrixX& err = measurement->localCovariance(); - - //>fix1.. this produced FPE OVERFLOW last time - // *m_locX = (float)pars[Trk::locX]; - // *m_locY = (float)pars[Trk::locY]; - if ( pars.contains(Trk::locX) ){ - double locX = pars[Trk::locX]; - if ( !(std::isinf(locX) || std::isnan(locX)) ){ - *m_locX = (float)locX; - *m_err_locX = (float)sqrt( err(Trk::locX,Trk::locX) ); - } - } - if ( pars.contains(Trk::locY) ){ - double locY = pars.get(Trk::locY); - if ( !(std::isinf(locY) || std::isnan(locY)) ){ - if ( locY<1e-07 ) locY=0.; - *m_locY = (float)locY; - *m_err_locY = (float)sqrt( err(Trk::locY,Trk::locY) ); - } - } - if ( *m_locX > -9900 && *m_locY > -9900 ){ - double locXY = err(Trk::locX,Trk::locY); - if ( !(std::isinf(locXY) || std::isnan(locXY)) ) - *m_cov_locXY = (float)locXY; - } - //<fix1 - - // global position - Amg::Vector3D pos = measurement->globalPosition(); - *m_x = (float)pos.x(); - *m_y = (float)pos.y(); - *m_z = (float)pos.z(); - } - - // Fill the track local position at wafer - if(tp){ - - //const HepVector lp0 = tp->parameters(); - if ( tp->parameters().rows() > 1 ){ - *m_trkLocX=(float)tp->parameters()[Trk::locX]; //lp[Trk::locX]; - *m_trkLocY=(float)tp->parameters()[Trk::locY]; //lp[Trk::locY]; - - const AmgSymMatrix(5)* err = tp->covariance(); - - if(err){ - *m_err_trkLocX=(float)sqrt((*err)(Trk::locX,Trk::locX)); - *m_err_trkLocY=(float)sqrt((*err)(Trk::locY,Trk::locY)); - *m_cov_trkLocXY=(float)(*err)(Trk::locX, Trk::locY); - } - } - - } // if(tp) - - //*m_isCompetingRIO = 0; - const Trk::RIO_OnTrack *rio = dynamic_cast<const Trk::RIO_OnTrack*>(measurement); - if(!rio){ - const Trk::CompetingRIOsOnTrack *crot = dynamic_cast<const Trk::CompetingRIOsOnTrack*>(measurement); - if(crot){ - rio = &crot->rioOnTrack( crot->indexOfMaxAssignProb() ); - *m_isCompetingRIO = 1; - } - } - - - // Fill varaibles representing Pixel Cluster local and global coordinates - if(rio){ - - Identifier id = rio->identify(); - - const Trk::TrkDetElementBase *de = rio->detectorElement(); - if(de){ - Identifier detId = de->identify(); - - if ( detId.is_valid() ) { - *m_detElementId = detId.get_compact(); - - if (m_idHelper->is_pixel(detId)) { - *m_detType = (int)Trk::TrackState::Pixel; - *m_bec = (int)m_pixelId->barrel_ec(id); - *m_layer = (int)m_pixelId->layer_disk(id); - //*m_sideModule = (int)m_pixelId->side(id); - const InDet::PixelCluster *clus = dynamic_cast<const InDet::PixelCluster*>(rio->prepRawData()); - if(clus){ - const InDet::SiWidth cw = clus->width(); - *m_sizePhi = (int)cw.colRow().x(); //cw.colRow()[0]; - //Xiaoxiao - *m_ToT = (int)clus->totalToT(); - RawDataClus = clus; - *m_clGlobX = (float)RawDataClus->globalPosition().x(); - *m_clGlobY = (float)RawDataClus->globalPosition().y(); - *m_clGlobZ = (float)RawDataClus->globalPosition().z(); - const Amg::VectorX& locpos = RawDataClus->localPosition(); - - if ( !(std::isinf(locpos[Trk::locX]) || std::isnan(locpos[Trk::locX])) ) - *m_clLocX = (float)locpos[Trk::locX]; - - if ( !(std::isinf(locpos[Trk::locY]) || std::isnan(locpos[Trk::locY])) ){ - *m_clLocY = (float)locpos[Trk::locY]; - } - - } - } - } - else { - REPORT_MESSAGE (MSG::WARNING) << "Pointer to detector element is not valid"; - } - } - } // if rio - - - // Fill local incidence angles - if ( measurement && rio && tp ) { - - const Trk::TrkDetElementBase *de = rio->detectorElement(); - - if(de){ - Identifier detId = de->identify(); - - if ( detId.is_valid() ) { - if ( m_idHelper->is_pixel(detId)) { - - const InDetDD::SiDetectorElement *side = dynamic_cast<const InDetDD::SiDetectorElement *>(de); - if ( side ){ - - //fix 2 is the modification of loc inc. angles - //const InDet::PixelCluster *clus = dynamic_cast<const InDet::PixelCluster*>(rio->prepRawData()); - double sinAlpha = 0.; - if(RawDataClus){ - // local Stereo anlge of strip with respect to locY axis - // always 0. for Barrel modules - sinAlpha = side->sinStereoLocal(RawDataClus->localPosition()); - } - - // normal component of the wafer's local coordinate system - // (along global R for Barrel and global Z for Endcaps) - //HepVector3D mynormal = side->normal(); - Amg::Vector3D mynormal = side->normal(); - - // side->phiAxis() is the X component of wafer's local coordinates - //(goes across the strips in increasing global Phi direction) - // side->etaAxis() is the Y component of wafer's local coordinates - //(goes along the strips in increasing global Eta direction) - - // Here we rotate around local Z axis to account for strip local stereo angle if any (EC) - // "-" is because rotation is defined in the counter-clockwise sense, - // and we need to go back (clockwise) to align the local axes with the - //HepVector3D myphiax = rotationZOf(side->phiAxis(),asin(-sinAlpha)); - //HepVector3D myetaax = rotationZOf(side->etaAxis(),asin(-sinAlpha)); - - //HepVector3D mytrack = tp->momentum(); - Amg::Translation3D translation(0.,0.,0.); - Amg::Transform3D transform1 = translation * Amg::AngleAxis3D( asin(-sinAlpha), Amg::Vector3D(0.,0.,1.)); - - Amg::Vector3D myphiax = transform1.linear() * side->phiAxis(); - Amg::Vector3D myetaax = transform1.linear() * side->etaAxis(); - - Amg::Vector3D mytrack = tp->momentum(); - - float trketacomp = (float)mytrack.dot(myetaax); - float trkphicomp = (float)mytrack.dot(myphiax); - float trknormcomp = (float)mytrack.dot(mynormal); - if (fabs(trknormcomp*1e07)>0 ){ - const double inv_trknormcomp = 1. / trknormcomp; - *m_locPhi = (float)atan(trkphicomp * inv_trknormcomp); - *m_locTheta = (float)atan(trketacomp * inv_trknormcomp); - } - } - } - }else{ - REPORT_MESSAGE (MSG::WARNING) << "Pointer to detector element is not valid"; - } - } - } // if measurement && rio && tp - - m_clusItr++; // to go throuhg all the HitsOnTrack - - return RawDataClus; - - } - - } // namespace D3PD - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToPixelClusterAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToPixelClusterAssociationTool.h deleted file mode 100644 index 9d6dee822269f210a3a9d4290381f648b0d51bb5..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToPixelClusterAssociationTool.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -/** -* @file InDetD3PDMaker/src/TrackParticleToPixelClusterAssociationTool.cxx -* @author <yuriy.pylypchenko@cern.ch> -* @date Oct, 2010 -* @brief setting up an association of tracks to clusters -* represented by indices. -*/ -#ifndef TRACKPARTICLETOPIXELCLUSTERASSOCIATIONTOOL_H -#define TRACKPARTICLETOPIXELCLUSTERASSOCIATIONTOOL_H - - -#include "D3PDMakerUtils/MultiAssociationTool.h" -#include "GaudiKernel/AlgTool.h" -#include "GaudiKernel/ToolHandle.h" -#include "StoreGate/StoreGateSvc.h" -#include <vector> - -#include "InDetPrepRawData/PixelClusterContainer.h" -#include "InDetPrepRawData/PixelClusterCollection.h" -#include "InDetPrepRawData/PixelCluster.h" -#include "InDetRIO_OnTrack/SiClusterOnTrack.h" -#include "InDetPrepRawData/SiCluster.h" -#include "Identifier/Identifier.h" -#include "AthContainers/DataVector.h" - -class AtlasDetectorID; -class PixelID; - - -namespace Rec{ - class TrackParticle; -} - - -namespace Trk{ - class Track; - class TrackStateOnSurface; -} - -namespace InDet { - class PixelCluster; - class SiCluster; -} - - -namespace D3PD { - - - - /// - ///@brief Associate all clusters which belong to given track. - /// - /// This is a multiple association tool. - /// Given an @c InDet::PixelCluster object and a container of such objects, - /// return the all objects in the container wich identified with TrackStateOnSurface - /// (Measurements) of the input track. - /// - - -typedef D3PD::MultiAssociationTool<Rec::TrackParticle, InDet::PixelCluster> TrackParticleToPixelClusterToTrackBase; - -class TrackParticleToPixelClusterAssociationTool - : public TrackParticleToPixelClusterToTrackBase -{ -public: - - /// - /// @brief Standard Gaudi tool constructor. - /// @param type The name of the tool type. - /// @param name The tool name. - /// @param parent The tool's Gaudi parent. - /// - TrackParticleToPixelClusterAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - - /// Standard initialize method. - virtual StatusCode initialize(); - /// - /// @brief Create any needed tuple variables. - /// In principle we do not intend to get anything else then index - ///(=we don't create) variables - /// but for debugging and validation puproses it is nice to have this. - /// This is called at the start of the first event. - /// - virtual StatusCode book(); - - /// - /// @brief Start the iteration for a new association. - /// @param p The object from which to associate. - /// - virtual StatusCode reset (const Rec::TrackParticle& p); - - - /// - /// @brief Return a pointer to the next element in the association. - /// - /// Return 0 when the association has been exhausted. - /// - virtual const InDet::PixelCluster* next(); - - - - -private: - - const AtlasDetectorID* m_idHelper; - const PixelID* m_pixelId; - - std::vector<const Trk::TrackStateOnSurface*> m_pixelClusterForAssociation; - std::vector<const Trk::TrackStateOnSurface*>::const_iterator m_clusItr; - std::vector<const Trk::TrackStateOnSurface*>::const_iterator m_clusEnd; - - /// extra ntuple variable - float *m_clGlobX; - float *m_clGlobY; - float *m_clGlobZ; - float *m_clLocX; - float *m_clLocY; - float *m_locX; - float *m_locY; - float *m_err_locX; - float *m_err_locY; - float *m_cov_locXY; - float *m_x; - float *m_y; - float *m_z; - float *m_trkLocX; - float *m_trkLocY; - float *m_err_trkLocX; - float *m_err_trkLocY; - float *m_cov_trkLocXY; - int *m_isCompetingRIO; - int *m_sizePhi; - int *m_ToT; - //int *m_sideModule; - float *m_locPhi; - float *m_locTheta; - float *m_Pt; - int *m_tsosType; - - Identifier::value_type *m_id; // unique identifier for a cluster - Identifier::value_type *m_detElementId; // unique identifier for a detector element - int *m_detType; - int *m_bec; - int *m_layer; - - /* - float *m_locPhiOld; - float *m_locThetaOld; - float *m_locPhiOldNotCor; - float *m_locThetaOldNotCor; - */ - - - -}; // class TrackParticleToPixelClusterAssociationTool - - -} // namespace D3PD - -#endif // not TRACKPARTICLETOPIXELCLUSTERASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToPixelClusterAssociationToolLight.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToPixelClusterAssociationToolLight.cxx deleted file mode 100644 index 5c253e5c1a60a8361c4cfd64a176bac0091fdc3e..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToPixelClusterAssociationToolLight.cxx +++ /dev/null @@ -1,114 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "TrackParticleToPixelClusterAssociationToolLight.h" - -#include <Particle/TrackParticle.h> -#include "TrkTrack/Track.h" -#include <TrkTrack/TrackStateOnSurface.h> -#include "AthenaKernel/errorcheck.h" -#include "Identifier/Identifier.h" -#include "TrkEventPrimitives/TrackStateDefs.h" -#include "AtlasDetDescr/AtlasDetectorID.h" - - -namespace D3PD { - - -TrackParticleToPixelClusterAssociationToolLight::TrackParticleToPixelClusterAssociationToolLight - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent), - m_idHelper(0) -{ -} - -StatusCode TrackParticleToPixelClusterAssociationToolLight::initialize(){ - - CHECK( Base::initialize() ); - - // need Atlas id-helper to identify sub-detectors, take it from detStore - if (detStore()->retrieve(m_idHelper, "AtlasID").isFailure()) { - REPORT_MESSAGE (MSG::ERROR) << "Could not get AtlasID helper"; - return StatusCode::FAILURE; - } - - return StatusCode::SUCCESS; -} - -/** - * @brief Start the iteration for a new association. - * @param p The object from which to associate. - */ -StatusCode TrackParticleToPixelClusterAssociationToolLight::reset (const Rec::TrackParticle& p) -{ - - m_pixelClusterForAssociation.clear(); - - const Trk::Track *track = p.originalTrack(); - if(!track){ - m_clusItr = m_clusEnd; - REPORT_MESSAGE (MSG::DEBUG) << "Could not access original track"; - return StatusCode::SUCCESS; - } - - const DataVector<const Trk::TrackStateOnSurface> *TSOs = 0; - - - TSOs = track->trackStateOnSurfaces(); - - - if(!TSOs){ - m_clusItr = m_clusEnd; - REPORT_MESSAGE (MSG::WARNING) << "Could not access track state on surfaces"; - return StatusCode::SUCCESS; - } - - DataVector<const Trk::TrackStateOnSurface>::const_iterator it = TSOs->begin(); - for( ; it!=TSOs->end(); it++){ - - const InDet::SiClusterOnTrack *clus = dynamic_cast<const InDet::SiClusterOnTrack*>((*it)->measurementOnTrack()); - - if (clus){ - - // Get Pointer to prepRawDataObject - const InDet::PixelCluster *RawDataClus = dynamic_cast<const InDet::PixelCluster*>(clus->prepRawData()); - - if (RawDataClus!=0){ - if (RawDataClus->detectorElement()->isPixel()){ - - m_pixelClusterForAssociation.push_back(*it); - - } - } - } // if (clus) - } - - m_clusItr = m_pixelClusterForAssociation.begin(); //pixel::vector<cont InDet::PixelCluster>::const_iterator - m_clusEnd = m_pixelClusterForAssociation.end(); - - return StatusCode::SUCCESS; -} - -/** - * @brief Return a pointer to the next element in the association. - * - * Return 0 when the association has been exhausted. - */ -const Trk::TrackStateOnSurface* TrackParticleToPixelClusterAssociationToolLight::next() -{ - - // reached the end - if(m_clusItr == m_clusEnd) return 0; - - const Trk::TrackStateOnSurface *TSO = (*m_clusItr); - m_clusItr++; - - return TSO; -} - - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToPixelClusterAssociationToolLight.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToPixelClusterAssociationToolLight.h deleted file mode 100644 index 41beeabb9704bdb8b2dc894fc9fc30bdfa542bde..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToPixelClusterAssociationToolLight.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef TRACKD3PD_TRACKPARTICLETOPIXELCLUSTERASSOCIATIONTOOLLIGHT_H -#define TRACKD3PD_TRACKPARTICLETOPIXELCLUSTERASSOCIATIONTOOLLIGHT_H - -#include "D3PDMakerUtils/MultiAssociationTool.h" -#include "AthContainers/DataVector.h" -#include "GaudiKernel/ToolHandle.h" -#include "TrkToolInterfaces/ITrackHoleSearchTool.h" -#include "InDetRIO_OnTrack/SiClusterOnTrack.h" -#include "InDetPrepRawData/SiCluster.h" -#include "InDetPrepRawData/PixelCluster.h" - - - -#include <vector> -#include <map> - -class AtlasDetectorID; - -namespace Rec{ -class TrackParticle; -} - -namespace Trk{ - class TrackStateOnSurface; -} - -namespace D3PD { - -class TrackParticleToPixelClusterAssociationToolLight - : public MultiAssociationTool<Rec::TrackParticle, Trk::TrackStateOnSurface> -{ -public: - - typedef MultiAssociationTool<Rec::TrackParticle, Trk::TrackStateOnSurface> Base; - - TrackParticleToPixelClusterAssociationToolLight (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - - /** - * @brief Start the iteration for a new association. - * @param p The object from which to associate. - */ - virtual StatusCode reset (const Rec::TrackParticle& p); - - /** - * @brief Return a pointer to the next element in the association. - * - * Return 0 when the association has been exhausted. - */ - virtual const Trk::TrackStateOnSurface* next(); - - -private: - - - const AtlasDetectorID* m_idHelper; - - std::vector<const Trk::TrackStateOnSurface*> m_pixelClusterForAssociation; - - std::vector<const Trk::TrackStateOnSurface*>::const_iterator m_clusItr; - std::vector<const Trk::TrackStateOnSurface*>::const_iterator m_clusEnd; -}; - - -} // namespace D3PD - - -#endif // not TRACKD3PD_TRACKPARTICLETOPixelCLUSTERASSOCIATIONTOOLLIGHT_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToSCTClusterAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToSCTClusterAssociationTool.cxx deleted file mode 100644 index fc00cef0dc376ad40a413ef5fd8bb97f94efc5c8..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToSCTClusterAssociationTool.cxx +++ /dev/null @@ -1,492 +0,0 @@ -/* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -*/ - -//********************************************************/ -// @author <yuriy.pylypchenko@cern.ch> / -// @date Oct, 2010 / -// @brief setting up an association of clusters to tracks / -// represented by indices. / -//********************************************************/ - - -#include "TrackParticleToSCTClusterAssociationTool.h" -#include "AthenaKernel/errorcheck.h" -#include "Particle/TrackParticle.h" -#include "TrkTrack/Track.h" -#include "TrkTrack/TrackCollection.h" -#include "InDetPrepRawData/SCT_ClusterContainer.h" -#include "InDetPrepRawData/SCT_ClusterCollection.h" - -#include "TrkTrack/TrackStateOnSurface.h" -#include "Identifier/Identifier.h" -#include "TrkEventPrimitives/TrackStateDefs.h" -#include "AtlasDetDescr/AtlasDetectorID.h" - -#include "TrkCompetingRIOsOnTrack/CompetingRIOsOnTrack.h" -#include "TrkParameters/TrackParameters.h" - - - -#include "InDetIdentifier/SCT_ID.h" - -#include <cmath> -#include <map> - -namespace D3PD { - - -TrackParticleToSCTClusterAssociationTool::TrackParticleToSCTClusterAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : TrackParticleToSCTClusterToTrackBase(type, name, parent), - m_idHelper(0), - m_sctId(0) -{ - book().ignore(); // Avoid coverity warnings. -} - - -/// initialize method. -StatusCode TrackParticleToSCTClusterAssociationTool::initialize() -{ - - - // need Atlas id-helpers to identify sub-detectors, take them from detStore - if (detStore()->retrieve(m_idHelper, "AtlasID").isFailure()) { - REPORT_MESSAGE (MSG::ERROR) << "Could not get AtlasDetectorID helper"; - return StatusCode::FAILURE; - } - - if(detStore()->retrieve(m_sctId,"SCT_ID").isFailure() ){ - REPORT_MESSAGE (MSG::FATAL) << "Could not retrieve SCT helper"; - return StatusCode::FAILURE; - } - - if (m_SCTDetEleCollKey.initialize().isFailure()) { - REPORT_MESSAGE (MSG::FATAL) << "Could not initialize " << m_SCTDetEleCollKey.fullKey(); - return StatusCode::FAILURE; - } - - return TrackParticleToSCTClusterToTrackBase::initialize(); -} -/// booking btuple variables -StatusCode TrackParticleToSCTClusterAssociationTool::book() -{ - - CHECK( TrackParticleToSCTClusterToTrackBase::book() ); - - CHECK( addVariable( "clX" , m_clGlobX) ); - CHECK( addVariable( "clY" , m_clGlobY) ); - CHECK( addVariable( "clZ" , m_clGlobZ) ); - CHECK( addVariable( "clLocX" , m_clLocX) ); - CHECK( addVariable( "clLocY" , m_clLocY) ); - CHECK( addVariable( "clId" , m_id) ); - CHECK( addVariable( "clDetElementId" , m_detElementId) ); - CHECK( addVariable( "clDetType" , m_detType) ); - CHECK( addVariable( "clBEC" , m_bec) ); - CHECK( addVariable( "clLayer" , m_layer) ); - CHECK( addVariable( "locX" , m_locX) ); - CHECK( addVariable( "locY" , m_locY) ); - CHECK( addVariable( "errLocX" , m_err_locX) ); - CHECK( addVariable( "errLocY" , m_err_locY) ); - CHECK( addVariable( "covLocXY" , m_cov_locXY) ); - CHECK( addVariable( "x" , m_x) ); - CHECK( addVariable( "y" , m_y) ); - CHECK( addVariable( "z" , m_z) ); - CHECK( addVariable( "trkLocX" , m_trkLocX) ); - CHECK( addVariable( "trkLocY" , m_trkLocY) ); - CHECK( addVariable( "errTrkLocX" , m_err_trkLocX) ); - CHECK( addVariable( "errTrkLocY" , m_err_trkLocY) ); - CHECK( addVariable( "covTrkLocXY" , m_cov_trkLocXY) ); - CHECK( addVariable( "isCompetingRIO" , m_isCompetingRIO) ); - CHECK( addVariable( "size" , m_sizePhi) ); - CHECK( addVariable( "side" , m_sideModule) ); - CHECK( addVariable( "locPhi" , m_locPhi) ); - CHECK( addVariable( "locTheta" , m_locTheta) ); - CHECK( addVariable( "tsosType" , m_tsosType) ); - - - return StatusCode::SUCCESS; -} - -/// -/// @brief Start the iteration for a new association. -/// @param p The object from which to associate. -/// -StatusCode TrackParticleToSCTClusterAssociationTool::reset (const Rec::TrackParticle& p) -{ - - const Trk::Track *track = p.originalTrack(); - if(!track){ - m_clusItr = m_clusEnd; - //REPORT_MESSAGE (MSG::DEBUG) << "Could not access original track"; - return StatusCode::SUCCESS; - } - - /// extra ntuple variable - - m_clGlobX= 0; - m_clGlobY= 0; - m_clGlobZ= 0; - m_clLocX= 0; - m_clLocY= 0; - m_locX= 0; - m_locY= 0; - m_err_locX= 0; - m_err_locY= 0; - m_cov_locXY= 0; - m_x= 0; - m_y= 0; - m_z= 0; - m_trkLocX= 0; - m_trkLocY= 0; - m_err_trkLocX= 0; - m_err_trkLocY= 0; - m_cov_trkLocXY= 0; - m_isCompetingRIO= 0; - m_sizePhi= 0; - m_sideModule = 0; - m_locPhi= 0; - m_locTheta= 0; - m_tsosType= 0; - m_id= 0; // unique identifier for a cluster - m_detElementId= 0; // unique identifier for a detector element - m_detType= 0; - m_bec= 0; - m_layer= 0; - - m_sctClusterForAssociation.clear(); - - const InDet::SCT_ClusterContainer* riocont; - if(!evtStore()->contains<InDet::SCT_ClusterContainer>("SCT_Clusters")){ - - REPORT_MESSAGE (MSG::WARNING) << "No sct clusters...."; - - } - else { - StatusCode sc = evtStore()->retrieve(riocont, "SCT_Clusters"); - if(sc.isFailure()) { - REPORT_MESSAGE (MSG::WARNING) << "Could not get clusters...."; - } - } - - - std::vector< Identifier> sctClusterIdentifier; - - const DataVector<const Trk::TrackStateOnSurface>* trackHits = track->trackStateOnSurfaces(); - - if (!trackHits){ - m_clusItr = m_clusEnd; - REPORT_MESSAGE (MSG::WARNING) << "TESTASSOC for current track measurementsOntrack == Null, no clusters will be associated with this track"; - return StatusCode::SUCCESS; - } - - DataVector<const Trk::TrackStateOnSurface>::const_iterator it = trackHits->begin(); - - for ( ; it != trackHits->end(); it++){ - - const InDet::SiClusterOnTrack *clus = dynamic_cast<const InDet::SiClusterOnTrack*>((*it)->measurementOnTrack()); - - if (clus){ - - //const Trk::TrkDetElementBase* detectorElement = clus->detectorElement(); - // Dynamic cast to Silicon element and do Pixel / SCT element test - //const InDetDD::SiDetectorElement* siliconDetectorElement = dynamic_cast< const InDetDD::SiDetectorElement* >(detectorElement); - - // Get Pointer to prepRawDataObject - const InDet::SCT_Cluster *RawDataClus = dynamic_cast<const InDet::SCT_Cluster*>(clus->prepRawData()); - - if (RawDataClus==0){ - //REPORT_MESSAGE (MSG::DEBUG) << "TESTASSOC SiCluster WITHOUT prepRawData!!!!"; - } - - // check if Cluster is in SCT ... - if (RawDataClus!=0){ - if (RawDataClus->detectorElement()->isSCT()){ - - //REPORT_MESSAGE (MSG::DEBUG) << "TESTASSOC SiHIT via prepRawData"; - - Identifier sctClusterID = RawDataClus->identify(); - - sctClusterIdentifier.push_back(sctClusterID); - - m_sctClusterForAssociation.push_back(*it); - - //REPORT_MESSAGE (MSG::DEBUG) << "(2)TESTASSOC TSoS-Type is: "<< (*it)->types().to_ulong(); - - } - } - } - } - - m_clusItr = m_sctClusterForAssociation.begin(); //sct::vector<cont InDet::SCT_Cluster>::const_iterator - m_clusEnd = m_sctClusterForAssociation.end(); - - return StatusCode::SUCCESS; -} - -/** -* @brief Return a pointer to the next element in the association. -* -* Return 0 when the association has been exhausted. -*/ -const InDet::SCT_Cluster* TrackParticleToSCTClusterAssociationTool::next() - { - - const InDet::SCT_Cluster* RawDataClus = 0; - - // reached the end - if(m_clusItr==m_clusEnd){ - return 0; - } - else{ - } - - *m_clGlobX= -9999.; - *m_clGlobY= -9999.; - *m_clGlobZ= -9999.; - *m_clLocX= -9999.; - *m_clLocY= -9999.; - *m_locX= -9999.; - *m_locY= -9999.; - *m_err_locX= -9999.; - *m_err_locY= -9999.; - *m_cov_locXY= -9999.; - *m_x= -9999.; - *m_y= -9999.; - *m_z= -9999.; - *m_trkLocX= -9999.; - *m_trkLocY= -9999.; - *m_err_trkLocX= -9999.; - *m_err_trkLocY= -9999.; - *m_cov_trkLocXY= -9999.; - *m_isCompetingRIO= 0; - *m_sizePhi= 0.; - *m_sideModule = -9999; - *m_locPhi= -9999.; - *m_locTheta= -9999.; - *m_tsosType= (int)Trk::TrackStateOnSurface::Unknown; - - *m_id= 0; // unique identifier for a cluster - *m_detElementId= 0; // unique identifier for a detector element - *m_detType= Trk::TrackState::unidentified; - *m_bec= -9999.; - *m_layer= -1; - - /* - *m_locPhiOld = -9999.; - *m_locThetaOld = -9999.; - *m_locPhiOldNotCor = -9999.; - *m_locThetaOldNotCor = -9999.; - */ - - const Trk::TrackStateOnSurface* pTSoS = *m_clusItr; - long bitsetValue = (long)pTSoS->types().to_ulong(); - *m_tsosType = (int)bitsetValue; - - // TrackStateOnSurface part - - // measured hit/outlier - const Trk::MeasurementBase *measurement = pTSoS->measurementOnTrack(); - - // track parameters at wafer - const Trk::TrackParameters *tp = pTSoS->trackParameters(); - - // Fill the hit/oultier local/global position variables - if(measurement){ - - // local position - //for SCT only locX, locY ether not defined at all, i.e.-9999. - // or 0, when the second parameter defined - - //local parameters - const Trk::LocalParameters pars = measurement->localParameters(); - //local error matrix - const Amg::MatrixX& err = measurement->localCovariance(); - - //>fix1.. this produced FPE OVERFLOW last time - // *m_locX = (float)pars[Trk::locX]; - // *m_locY = (float)pars[Trk::locY]; - if ( pars.contains(Trk::locX) ){ - double locX = pars[Trk::locX]; - if ( !(std::isinf(locX) || std::isnan(locX)) ){ - *m_locX = (float)locX; - *m_err_locX = (float)sqrt( err(Trk::locX,Trk::locX) ); - } - } - if ( pars.contains(Trk::locY) ){ - double locY = pars.get(Trk::locY); - if ( !(std::isinf(locY) || std::isnan(locY)) ){ - if ( locY<1e-07 ) locY=0.; - *m_locY = (float)locY; - *m_err_locY = (float)sqrt( err(Trk::locY,Trk::locY) ); - } - } - if ( *m_locX > -9900 && *m_locY > -9900 ){ - double locXY = err(Trk::locX,Trk::locY); - if ( !(std::isinf(locXY) || std::isnan(locXY)) ) - *m_cov_locXY = (float)locXY; - } - //<fix1 - //<fix1 - - // global position - const Amg::Vector3D& pos = measurement->globalPosition(); - //*m_x = (float)pos[Trk::x]; - //*m_y = (float)pos[Trk::y]; - //*m_z = (float)pos[Trk::z]; - *m_x = (float)pos.x(); - *m_y = (float)pos.y(); - *m_z = (float)pos.z(); - } - - // Fill the track local position at wafer - if(tp){ - - //const HepVector lp0 = tp->parameters(); - if ( tp->parameters().rows() > 1 ){ - *m_trkLocX=(float)tp->parameters()[Trk::locX]; //lp[Trk::locX]; - *m_trkLocY=(float)tp->parameters()[Trk::locY]; //lp[Trk::locY]; - - const AmgSymMatrix(5)* err = tp->covariance(); - - if(err){ - *m_err_trkLocX=(float)sqrt((*err)(Trk::locX,Trk::locX)); - *m_err_trkLocY=(float)sqrt((*err)(Trk::locY,Trk::locY)); - *m_cov_trkLocXY=(float)(*err)(Trk::locX, Trk::locY); - } - } - } // if(tp) - - //*m_isCompetingRIO = 0; - const Trk::RIO_OnTrack *rio = dynamic_cast<const Trk::RIO_OnTrack*>(measurement); - if(!rio){ - const Trk::CompetingRIOsOnTrack *crot = dynamic_cast<const Trk::CompetingRIOsOnTrack*>(measurement); - if(crot){ - rio = &crot->rioOnTrack( crot->indexOfMaxAssignProb() ); - *m_isCompetingRIO = 1; - } - } - - - // Fill varaibles representing SCT Cluster local and global coordinates - if(rio){ - - Identifier id = rio->identify(); - - const Trk::TrkDetElementBase *de = rio->detectorElement(); - if(de){ - Identifier detId = de->identify(); - - if ( detId.is_valid() ) { - *m_detElementId = detId.get_compact(); - - if (m_idHelper->is_sct(detId)) { - *m_detType = (int)Trk::TrackState::SCT; - *m_bec = (int)m_sctId->barrel_ec(id); - *m_layer = (int)m_sctId->layer_disk(id); - *m_sideModule = (int)m_sctId->side(id); - const InDet::SCT_Cluster *clus = dynamic_cast<const InDet::SCT_Cluster*>(rio->prepRawData()); - if(clus){ - const InDet::SiWidth cw = clus->width(); - *m_sizePhi = (int)cw.colRow().x(); //cw.colRow()[0]; - RawDataClus = clus; - - *m_clGlobX = (float)RawDataClus->globalPosition().x(); - *m_clGlobY = (float)RawDataClus->globalPosition().y(); - *m_clGlobZ = (float)RawDataClus->globalPosition().z(); - - const Amg::VectorX& locpos = RawDataClus->localPosition(); - - if ( !(std::isinf(locpos[Trk::locX]) || std::isnan(locpos[Trk::locX])) ) - *m_clLocX = (float)locpos[Trk::locX]; - - if ( !(std::isinf(locpos[Trk::locY]) || std::isnan(locpos[Trk::locY])) ){ - if (locpos[Trk::locY]<1e-07) - *m_clLocY=0.; - else - *m_clLocY = (float)locpos[Trk::locY]; - } - } - } - } - else { - REPORT_MESSAGE (MSG::WARNING) << "Pointer to detector element is not valid"; - } - } - } // if rio - - - // Fill local incidence angles - if ( measurement && rio && tp ) { - - const Trk::TrkDetElementBase *de = rio->detectorElement(); - - if(de){ - Identifier detId = de->identify(); - - if ( detId.is_valid() ) { - if ( m_idHelper->is_sct(detId)) { - - const InDetDD::SiDetectorElement *side = dynamic_cast<const InDetDD::SiDetectorElement *>(de); - if ( side ){ - - //fix 2 is the modification of loc inc. angles - //const InDet::SCT_Cluster *clus = dynamic_cast<const InDet::SCT_Cluster*>(rio->prepRawData()); - double sinAlpha = 0.; - if(RawDataClus){ - // local Stereo anlge of strip with respect to locY axis - // always 0. for Barrel modules - sinAlpha = side->sinStereoLocal(RawDataClus->localPosition()); - } - - // normal component of the wafer's local coordinate system - // (along global R for Barrel and global Z for Endcaps) - Amg::Vector3D mynormal = side->normal(); - - // side->phiAxis() is the X component of wafer's local coordinates - //(goes across the strips in increasing global Phi direction) - // side->etaAxis() is the Y component of wafer's local coordinates - //(goes along the strips in increasing global Eta direction) - - // Here we rotate around local Z axis to account for strip local stereo angle if any (EC) - // "-" is because rotation is defined in the counter-clockwise sense, - // and we need to go back (clockwise) to align the local axes with the - //HepVector3D myphiax = rotationZOf(side->phiAxis(),asin(-sinAlpha)); - //HepVector3D myetaax = rotationZOf(side->etaAxis(),asin(-sinAlpha)); - - //HepVector3D mytrack = tp->momentum(); - Amg::Translation3D translation(0.,0.,0.); - Amg::Transform3D transform1 = translation * Amg::AngleAxis3D( asin(-sinAlpha), Amg::Vector3D(0.,0.,1.)); - - Amg::Vector3D myphiax = transform1.linear() * side->phiAxis(); - Amg::Vector3D myetaax = transform1.linear() * side->etaAxis(); - - Amg::Vector3D mytrack = tp->momentum(); - - float trketacomp = (float)mytrack.dot(myetaax); - float trkphicomp = (float)mytrack.dot(myphiax); - float trknormcomp = (float)mytrack.dot(mynormal); - if (std::abs(trknormcomp*1e07)>0. ){ - const double inv_trknormcomp = 1. / trknormcomp; - *m_locPhi = (float)atan(trkphicomp * inv_trknormcomp); - *m_locTheta = (float)atan(trketacomp * inv_trknormcomp); - } - } - } - } - else{ - REPORT_MESSAGE (MSG::WARNING) << "Pointer to detector element is not valid"; - } - } - } // if measurement && rio && tp - - m_clusItr++; // to go throuhg all the HitsOnTrack - - return RawDataClus; - - } - - } // namespace D3PD - diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToSCTClusterAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToSCTClusterAssociationTool.h deleted file mode 100644 index f89f6b23603901a868dd1b1e3c98dcab7a43a0c4..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToSCTClusterAssociationTool.h +++ /dev/null @@ -1,171 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/** -* @file InDetD3PDMaker/src/TrackParticleToSCTClusterAssociationTool.cxx -* @author <yuriy.pylypchenko@cern.ch> -* @date Oct, 2010 -* @brief setting up an association of tracks to clusters -* represented by indices. -*/ -#ifndef TRACKPARTICLETOSCTCLUSTERASSOCIATIONTOOL_H -#define TRACKPARTICLETOSCTCLUSTERASSOCIATIONTOOL_H - - -#include "D3PDMakerUtils/MultiAssociationTool.h" -#include "GaudiKernel/AlgTool.h" -#include "GaudiKernel/ToolHandle.h" -#include "StoreGate/ReadCondHandleKey.h" -#include "StoreGate/StoreGateSvc.h" -#include <vector> - -#include "InDetPrepRawData/SCT_ClusterContainer.h" -#include "InDetPrepRawData/SCT_ClusterCollection.h" -#include "InDetPrepRawData/SCT_Cluster.h" -#include "InDetReadoutGeometry/SiDetectorElementCollection.h" -#include "InDetRIO_OnTrack/SiClusterOnTrack.h" -#include "InDetPrepRawData/SiCluster.h" -#include "Identifier/Identifier.h" -#include "AthContainers/DataVector.h" - -class AtlasDetectorID; -class SCT_ID; - - -namespace Rec{ - class TrackParticle; -} - - -namespace Trk{ - class Track; - class TrackStateOnSurface; -} - -namespace InDet { - class SCT_Cluster; - class SiCluster; -} - - -namespace D3PD { - - - - /// - ///@brief Associate all clusters which belong to given track. - /// - /// This is a multiple association tool. - /// Given an @c InDet::SCT_Cluster object and a container of such objects, - /// return the all objects in the container wich identified with TrackStateOnSurface - /// (Measurements) of the input track. - /// - - -typedef D3PD::MultiAssociationTool<Rec::TrackParticle, InDet::SCT_Cluster> TrackParticleToSCTClusterToTrackBase; - -class TrackParticleToSCTClusterAssociationTool - : public TrackParticleToSCTClusterToTrackBase -{ -public: - - /// - /// @brief Standard Gaudi tool constructor. - /// @param type The name of the tool type. - /// @param name The tool name. - /// @param parent The tool's Gaudi parent. - /// - TrackParticleToSCTClusterAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - - /// Standard initialize method. - virtual StatusCode initialize(); - /// - /// @brief Create any needed tuple variables. - /// In principle we do not intend to get anything else then index - ///(=we don't create) variables - /// but for debugging and validation puproses it is nice to have this. - /// This is called at the start of the first event. - /// - virtual StatusCode book(); - - /// - /// @brief Start the iteration for a new association. - /// @param p The object from which to associate. - /// - virtual StatusCode reset (const Rec::TrackParticle& p); - - - /// - /// @brief Return a pointer to the next element in the association. - /// - /// Return 0 when the association has been exhausted. - /// - virtual const InDet::SCT_Cluster* next(); - - - - -private: - - const AtlasDetectorID* m_idHelper; - const SCT_ID* m_sctId; - - // For P->T converter of SCT_Clusters - SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> m_SCTDetEleCollKey{this, "SCTDetEleCollKey", "SCT_DetectorElementCollection", "Key of SiDetectorElementCollection for SCT"}; - - std::vector<const Trk::TrackStateOnSurface*> m_sctClusterForAssociation; - std::vector<const Trk::TrackStateOnSurface*>::const_iterator m_clusItr; - std::vector<const Trk::TrackStateOnSurface*>::const_iterator m_clusEnd; - - /// extra ntuple variable - float *m_clGlobX; - float *m_clGlobY; - float *m_clGlobZ; - float *m_clLocX; - float *m_clLocY; - float *m_locX; - float *m_locY; - float *m_err_locX; - float *m_err_locY; - float *m_cov_locXY; - float *m_x; - float *m_y; - float *m_z; - float *m_trkLocX; - float *m_trkLocY; - float *m_err_trkLocX; - float *m_err_trkLocY; - float *m_cov_trkLocXY; - int *m_isCompetingRIO; - int *m_sizePhi; - int *m_sideModule; - float *m_locPhi; - float *m_locTheta; - int *m_tsosType; - - Identifier::value_type *m_id; // unique identifier for a cluster - Identifier::value_type *m_detElementId; // unique identifier for a detector element - int *m_detType; - int *m_bec; - int *m_layer; - - /* - float *m_locPhiOld; - float *m_locThetaOld; - float *m_locPhiOldNotCor; - float *m_locThetaOldNotCor; - */ - - - -}; // class TrackParticleToSCTClusterAssociationTool - - -} // namespace D3PD - -#endif // not TRACKPARTICLETOSCTCLUSTERASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToSCTClusterAssociationToolLight.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToSCTClusterAssociationToolLight.cxx deleted file mode 100644 index 8ee43f88841ac2f5447b4157eb84ff61f2565de7..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToSCTClusterAssociationToolLight.cxx +++ /dev/null @@ -1,114 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "TrackParticleToSCTClusterAssociationToolLight.h" - -#include <Particle/TrackParticle.h> -#include "TrkTrack/Track.h" -#include <TrkTrack/TrackStateOnSurface.h> -#include "AthenaKernel/errorcheck.h" -#include "Identifier/Identifier.h" -#include "TrkEventPrimitives/TrackStateDefs.h" -#include "AtlasDetDescr/AtlasDetectorID.h" - - -namespace D3PD { - - -TrackParticleToSCTClusterAssociationToolLight::TrackParticleToSCTClusterAssociationToolLight - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent), - m_idHelper(0) -{ -} - -StatusCode TrackParticleToSCTClusterAssociationToolLight::initialize(){ - - CHECK( Base::initialize() ); - - // need Atlas id-helper to identify sub-detectors, take it from detStore - if (detStore()->retrieve(m_idHelper, "AtlasID").isFailure()) { - REPORT_MESSAGE (MSG::ERROR) << "Could not get AtlasID helper"; - return StatusCode::FAILURE; - } - - return StatusCode::SUCCESS; -} - -/** - * @brief Start the iteration for a new association. - * @param p The object from which to associate. - */ -StatusCode TrackParticleToSCTClusterAssociationToolLight::reset (const Rec::TrackParticle& p) -{ - - m_sctClusterForAssociation.clear(); - - const Trk::Track *track = p.originalTrack(); - if(!track){ - m_clusItr = m_clusEnd; - //REPORT_MESSAGE (MSG::DEBUG) << "Could not access original track"; - return StatusCode::SUCCESS; - } - - const DataVector<const Trk::TrackStateOnSurface> *TSOs = 0; - - - TSOs = track->trackStateOnSurfaces(); - - - if(!TSOs){ - m_clusItr = m_clusEnd; - REPORT_MESSAGE (MSG::WARNING) << "Could not access track state on surfaces"; - return StatusCode::SUCCESS; - } - - DataVector<const Trk::TrackStateOnSurface>::const_iterator it = TSOs->begin(); - for( ; it!=TSOs->end(); it++){ - - const InDet::SiClusterOnTrack *clus = dynamic_cast<const InDet::SiClusterOnTrack*>((*it)->measurementOnTrack()); - - if (clus){ - - // Get Pointer to prepRawDataObject - const InDet::SCT_Cluster *RawDataClus = dynamic_cast<const InDet::SCT_Cluster*>(clus->prepRawData()); - - if (RawDataClus!=0){ - if (RawDataClus->detectorElement()->isSCT()){ - - m_sctClusterForAssociation.push_back(*it); - - } - } - } // if (clus) - } - - m_clusItr = m_sctClusterForAssociation.begin(); //sct::vector<cont InDet::SCT_Cluster>::const_iterator - m_clusEnd = m_sctClusterForAssociation.end(); - - return StatusCode::SUCCESS; -} - -/** - * @brief Return a pointer to the next element in the association. - * - * Return 0 when the association has been exhausted. - */ -const Trk::TrackStateOnSurface* TrackParticleToSCTClusterAssociationToolLight::next() -{ - - // reached the end - if(m_clusItr == m_clusEnd) return 0; - - const Trk::TrackStateOnSurface *TSO = (*m_clusItr); - m_clusItr++; - - return TSO; -} - - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToSCTClusterAssociationToolLight.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToSCTClusterAssociationToolLight.h deleted file mode 100644 index 5a053cea5dc18fbcd690dc238cf92235ca1a98d4..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleToSCTClusterAssociationToolLight.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef TRACKD3PD_TRACKPARTICLETOSCTCLUSTERASSOCIATIONTOOLLIGHT_H -#define TRACKD3PD_TRACKPARTICLETOSCTCLUSTERASSOCIATIONTOOLLIGHT_H - -#include "D3PDMakerUtils/MultiAssociationTool.h" -#include "AthContainers/DataVector.h" -#include "GaudiKernel/ToolHandle.h" -#include "TrkToolInterfaces/ITrackHoleSearchTool.h" -#include "InDetRIO_OnTrack/SiClusterOnTrack.h" -#include "InDetPrepRawData/SiCluster.h" -#include "InDetPrepRawData/SCT_Cluster.h" - - - -#include <vector> -#include <map> - -class AtlasDetectorID; - -namespace Rec{ -class TrackParticle; -} - -namespace Trk{ - class TrackStateOnSurface; -} - -namespace D3PD { - -class TrackParticleToSCTClusterAssociationToolLight - : public MultiAssociationTool<Rec::TrackParticle, Trk::TrackStateOnSurface> -{ -public: - - typedef MultiAssociationTool<Rec::TrackParticle, Trk::TrackStateOnSurface> Base; - - TrackParticleToSCTClusterAssociationToolLight (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - - /** - * @brief Start the iteration for a new association. - * @param p The object from which to associate. - */ - virtual StatusCode reset (const Rec::TrackParticle& p); - - /** - * @brief Return a pointer to the next element in the association. - * - * Return 0 when the association has been exhausted. - */ - virtual const Trk::TrackStateOnSurface* next(); - - -private: - - - const AtlasDetectorID* m_idHelper; - - std::vector<const Trk::TrackStateOnSurface*> m_sctClusterForAssociation; - - std::vector<const Trk::TrackStateOnSurface*>::const_iterator m_clusItr; - std::vector<const Trk::TrackStateOnSurface*>::const_iterator m_clusEnd; -}; - - -} // namespace D3PD - - -#endif // not TRACKD3PD_TRACKPARTICLETOSCTCLUSTERASSOCIATIONTOOLLIGHT_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleTrackSummaryAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleTrackSummaryAssociationTool.cxx deleted file mode 100644 index ddce7ef041c33d8d270f3bfee3fb3c125894eefb..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleTrackSummaryAssociationTool.cxx +++ /dev/null @@ -1,47 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ -/** - * @file InDetD3PDMaker/src/TrackParticleTrackSummaryAssociationTool.cxx - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a TrackParticle to its default TrackSummary. - */ - -#include "TrackParticleTrackSummaryAssociationTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "Particle/TrackParticle.h" -#include "TrkTrackSummary/TrackSummary.h" - -namespace D3PD { - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -TrackParticleTrackSummaryAssociationTool::TrackParticleTrackSummaryAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ -} - - -/** - * @brief Return the target object. - * @param track The source object for the association. - * - * Return the target of the association, or 0. - */ -const Trk::TrackSummary *TrackParticleTrackSummaryAssociationTool::get (const Rec::TrackParticle& track) -{ - return track.trackSummary(); -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleTrackSummaryAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleTrackSummaryAssociationTool.h deleted file mode 100644 index 99d5eab74c1fd587458969eebae67970dd7e8af6..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleTrackSummaryAssociationTool.h +++ /dev/null @@ -1,63 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ -/** - * @file InDetD3PDMaker/src/TrackParticleTrackSummaryAssociationTool.h - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a TrackParticle to its TrackSummary. - */ -#ifndef INDETD3PDMAKER_TRACKPARTICLETRACKSUMMARYASSOCIATIONTOOL_H -#define INDETD3PDMAKER_TRACKPARTICLETRACKSUMMARYASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/SingleAssociationTool.h" - - -namespace Trk { - class TrackSummary; -} - -namespace Rec { - class TrackParticle; -} - -namespace D3PD { - -/** - * @brief Associate from a TrackParticle to its TrackSummary. - */ -class TrackParticleTrackSummaryAssociationTool - : public SingleAssociationTool<Rec::TrackParticle, Trk::TrackSummary> -{ -public: - typedef SingleAssociationTool<Rec::TrackParticle, Trk::TrackSummary> Base; - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - TrackParticleTrackSummaryAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - /** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ - virtual const Trk::TrackSummary* get (const Rec::TrackParticle& p); -}; - - -} // namespace D3PD - - - -#endif // not INDETD3PDMAKER_TRACKPARTICLETRACKSUMMARYASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleTruthAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleTruthAssociationTool.cxx deleted file mode 100644 index a4e8e908802967b66833528df7f23c587c7c3e7d..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleTruthAssociationTool.cxx +++ /dev/null @@ -1,79 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "TrackParticleTruthAssociationTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "AtlasHepMC/GenParticle.h" -#include "Particle/TrackParticle.h" -#include "Particle/TrackParticleContainer.h" -#include "ParticleTruth/TrackParticleTruthCollection.h" -#include <map> - -namespace D3PD { - -TrackParticleTruthAssociationTool::TrackParticleTruthAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ - declareProperty ("MapKey", m_TruthMap = "TrackParticleTruthMap"); - declareProperty ("SGKey", m_TPContainer = "TrackParticleCandidate"); - - book().ignore(); // Avoid coverity warnings. -} - - -StatusCode TrackParticleTruthAssociationTool::initialize() -{ - CHECK( Base::initialize() ); - return StatusCode::SUCCESS; -} - - -StatusCode TrackParticleTruthAssociationTool::book () -{ - CHECK( addVariable ("probability", m_trueProb) ); - CHECK( addVariable ("barcode", m_trueBarcode) ); - - return StatusCode::SUCCESS; -} - - -const HepMC::GenParticle* TrackParticleTruthAssociationTool::get (const Rec::TrackParticle& track) -{ - - /// Get Track and TrackTruth Collections - /// Should be using Getter tools intead of StoreGate - // -- TrackParticles: - const Rec::TrackParticleContainer* tp; - StatusCode sc = evtStore()->retrieve(tp, m_TPContainer); - if(sc.isFailure() || !tp) { - return 0; - } - // -- TrackParticleTruth: - const TrackParticleTruthCollection* tm = nullptr; - sc = evtStore()->retrieve(tm, m_TruthMap); - if(sc.isFailure() || !tm) { - return 0; - } - - const HepMC::GenParticle *particle = 0; - *m_trueProb = 0; - *m_trueBarcode = -1; - - ElementLink<Rec::TrackParticleContainer> tlink; - tlink.setElement(&track); - tlink.setStorableObject(*tp); - TrackParticleTruthCollection::const_iterator found = tm->find(tlink); - if(found != tm->end()) { - *m_trueProb = found->second.probability(); - *m_trueBarcode = found->second.particleLink().barcode(); - particle = found->second.particleLink().cptr(); - } - - return particle; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleTruthAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleTruthAssociationTool.h deleted file mode 100644 index 80a16397b683ca1e6850b0eacd7aa82e1a18d825..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackParticleTruthAssociationTool.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#ifndef INDETD3PDMAKER_TRACKPARTICLETRUTHASSOCIATIONTOOL_H -#define INDETD3PDMAKER_TRACKPARTICLETRUTHASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/SingleAssociationTool.h" - -#include "GaudiKernel/AlgTool.h" -#include "GaudiKernel/ToolHandle.h" - -#include "StoreGate/StoreGateSvc.h" - -#include "AtlasHepMC/GenParticle_fwd.h" - -namespace Rec { -class TrackParticle; -} - -namespace D3PD { - -class TrackParticleTruthAssociationTool - : public SingleAssociationTool<Rec::TrackParticle, HepMC::GenParticle> -{ -public: - typedef SingleAssociationTool<Rec::TrackParticle, HepMC::GenParticle> Base; - - TrackParticleTruthAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - virtual const HepMC::GenParticle* get (const Rec::TrackParticle& p); - -private: - /* StoreGate keys **/ - std::string m_TruthMap; - std::string m_TPContainer; - - /* NTuple variables **/ - float* m_trueProb; - int* m_trueBarcode; - -}; // class TrackParticleTruthAssociationTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_TRACKPARTICLETRUTHASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackStateOnSurfaceFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackStateOnSurfaceFillerTool.cxx deleted file mode 100644 index 2dc1301de87bab4e6392843b15bc02b017583415..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackStateOnSurfaceFillerTool.cxx +++ /dev/null @@ -1,691 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#include "TrackStateOnSurfaceFillerTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "TrkTrack/TrackStateOnSurface.h" -#include "InDetRIO_OnTrack/SiClusterOnTrack.h" -#include "InDetRIO_OnTrack/TRT_DriftCircleOnTrack.h" -#include "InDetReadoutGeometry/SiDetectorElement.h" -#include "TrkEventPrimitives/LocalParameters.h" -#include "TrkEventPrimitives/TrackStateDefs.h" -#include "TrkParameters/TrackParameters.h" -#include "AtlasDetDescr/AtlasDetectorID.h" -#include "InDetIdentifier/PixelID.h" -#include "InDetIdentifier/SCT_ID.h" -#include "InDetIdentifier/TRT_ID.h" -#include "MuonIdHelpers/MdtIdHelper.h" -#include "MuonIdHelpers/CscIdHelper.h" -#include "MuonIdHelpers/RpcIdHelper.h" -#include "MuonIdHelpers/TgcIdHelper.h" -#include "TRT_ConditionsServices/ITRT_CalDbTool.h" -#include "TRT_ConditionsServices/ITRT_StrawNeighbourSvc.h" -#include "TRT_DriftFunctionTool/ITRT_DriftFunctionTool.h" -#include "InDetPrepRawData/PixelCluster.h" -#include "InDetPrepRawData/SCT_Cluster.h" -#include "TrkCompetingRIOsOnTrack/CompetingRIOsOnTrack.h" -#include "TrkEventPrimitives/ResidualPull.h" -#include "TrkToolInterfaces/IResidualPullCalculator.h" - - - -namespace D3PD { - - -TrackStateOnSurfaceFillerTool::TrackStateOnSurfaceFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : D3PD::BlockFillerTool<Trk::TrackStateOnSurface> (type, name, parent), - m_idHelper(0), - m_pixId(0), - m_sctId(0), - m_trtId(0), - m_trtcaldbTool("TRT_CalDbTool",this), - m_neighbourSvc("TRT_StrawNeighbourSvc",name), - m_TRTStrawSummaryTool("TRT_StrawStatusSummaryTool",this), - m_driftFunctionTool("TRT_DriftFunctionTool") -{ - m_fillType["FillPixelHits"] = true; - m_fillType["FillSCTHits"] = true; - m_fillType["FillTRTHits"] = true; - m_fillType["FillMDTHits"] = true; - m_fillType["FillRPCHits"] = true; - m_fillType["FillTGCHits"] = true; - m_fillType["FillCSCHits"] = true; - m_fillType["FillPixelHoles"] = true; - m_fillType["FillSCTHoles"] = true; - m_fillType["FillTRTHoles"] = true; - m_fillType["FillMDTHoles"] = true; - m_fillType["FillCSCHoles"] = true; - m_fillType["FillTGCHoles"] = true; - m_fillType["FillRPCHoles"] = true; - m_fillType["FillPulls"] = true; - book().ignore(); // Avoid coverity warnings - - for(std::map<std::string, bool>::iterator itr=m_fillType.begin(); - itr!=m_fillType.end(); itr++) - { - itr->second = false; - declareProperty(itr->first, itr->second); - } - declareProperty("ITRT_CalDbTool",m_trtcaldbTool); - declareProperty("NeighbourSvc",m_neighbourSvc); - declareProperty("TRTStrawSummaryTool", m_TRTStrawSummaryTool); - declareProperty("TRTDriftFunctionTool", m_driftFunctionTool); - declareProperty("ResidualPullCalculator", m_residualPullCalculator); -} - -StatusCode TrackStateOnSurfaceFillerTool::initialize(){ - - CHECK( Base::initialize() ); - - // need Atlas id-helpers to identify sub-detectors, take them from detStore - if (detStore()->retrieve(m_idHelper, "AtlasID").isFailure()) { - REPORT_MESSAGE (MSG::ERROR) << "Could not get AtlasDetectorID helper"; - return StatusCode::FAILURE; - } - - if (detStore()->retrieve(m_pixId,"PixelID").isFailure() ){ - REPORT_MESSAGE (MSG::FATAL) << "Unable to retrieve pixel ID helper"; - return StatusCode::FAILURE; - } - - if(detStore()->retrieve(m_sctId,"SCT_ID").isFailure() ){ - REPORT_MESSAGE (MSG::FATAL) << "Could not retrieve SCT helper"; - return StatusCode::FAILURE; - } - - if(detStore()->retrieve(m_trtId,"TRT_ID").isFailure() ){ - REPORT_MESSAGE (MSG::FATAL) << "Could not retrieve TRT helper"; - return StatusCode::FAILURE; - } - - if(detStore()->retrieve(m_mdtId).isFailure() ){ - REPORT_MESSAGE (MSG::FATAL) << "Could not retrieve MDT helper"; - return StatusCode::FAILURE; - } - - if(detStore()->retrieve(m_cscId).isFailure() ){ - REPORT_MESSAGE (MSG::FATAL) << "Could not retrieve CSC helper"; - return StatusCode::FAILURE; - } - - if(detStore()->retrieve(m_rpcId).isFailure() ){ - REPORT_MESSAGE (MSG::FATAL) << "Could not retrieve RPC helper"; - return StatusCode::FAILURE; - } - - if(detStore()->retrieve(m_tgcId).isFailure() ){ - REPORT_MESSAGE (MSG::FATAL) << "Could not retrieve TGC helper"; - return StatusCode::FAILURE; - } - - if(m_fillType["FillPulls"]){ - CHECK(m_residualPullCalculator.retrieve()); - } - - CHECK(m_trtcaldbTool.retrieve()); - - CHECK(m_neighbourSvc.retrieve()); - - CHECK(m_TRTStrawSummaryTool.retrieve()); - - CHECK(m_driftFunctionTool.retrieve()); - - return StatusCode::SUCCESS; -} - -StatusCode TrackStateOnSurfaceFillerTool::book(){ - - synchronizeFlags(); - - if(getFillVariable("type")) CHECK( addVariable("type", m_type) ); - if(getFillVariable("id")) CHECK( addVariable("id", m_id) ); - if(getFillVariable("detElementId")) CHECK( addVariable("detElementId", m_detElementId) ); - if(getFillVariable("detType")) CHECK( addVariable("detType", m_detType) ); - if(getFillVariable("bec")) CHECK( addVariable("bec", m_bec) ); - if(getFillVariable("isArgonStraw")) CHECK( addVariable("isArgonStraw", m_isArgonStraw) ); - if(getFillVariable("chip")) CHECK( addVariable("chip", m_chip) ); - if(getFillVariable("board")) CHECK( addVariable("board", m_board) ); - if(getFillVariable("layer")) CHECK( addVariable("layer", m_layer) ); - if(getFillVariable("straw_layer")) CHECK( addVariable("straw_layer", m_straw_layer) ); - if(getFillVariable("straw")) CHECK( addVariable("straw", m_straw) ); - if(getFillVariable("charge")) CHECK( addVariable("charge", m_charge) ); - if(getFillVariable("sizePhi")) CHECK( addVariable("sizePhi", m_sizePhi) ); - if(getFillVariable("sizeZ")) CHECK( addVariable("sizeZ", m_sizeZ) ); - if(getFillVariable("size")) CHECK( addVariable("size", m_size) ); - if(getFillVariable("isFake")) CHECK( addVariable ("isFake", m_isFake) ); - if(getFillVariable("isGanged")) CHECK( addVariable ("isGanged", m_isGanged) ); - if(getFillVariable("isSplit")) CHECK( addVariable ("isSplit", m_isSplit) ); - if(getFillVariable("splitProb1")) CHECK( addVariable ("splitProb1", m_splitProb1) ); - if(getFillVariable("splitProb2")) CHECK( addVariable ("splitProb2", m_splitProb2) ); - if(getFillVariable("isCompetingRIO")) CHECK( addVariable("isCompetingRIO", m_isCompetingRIO) ); - if(getFillVariable("locX")) CHECK( addVariable("locX", m_locX) ); - if(getFillVariable("locY")) CHECK( addVariable("locY", m_locY) ); - if(getFillVariable("locR")) CHECK( addVariable("locR", m_locR) ); - if(getFillVariable("incidencePhi")) CHECK( addVariable("incidencePhi", m_incidencePhi) ); - if(getFillVariable("incidenceTheta")) CHECK( addVariable("incidenceTheta", m_incidenceTheta) ); - if(getFillVariable("err_locX")) CHECK( addVariable("err_locX", m_err_locX) ); - if(getFillVariable("err_locY")) CHECK( addVariable("err_locY", m_err_locY) ); - if(getFillVariable("cov_locXY")) CHECK( addVariable("cov_locXY", m_cov_locXY) ); - if(getFillVariable("err_locR")) CHECK( addVariable("err_locR", m_err_locR) ); - if(getFillVariable("x")) CHECK( addVariable("x", m_x) ); - if(getFillVariable("y")) CHECK( addVariable("y", m_y) ); - if(getFillVariable("z")) CHECK( addVariable("z", m_z) ); - if(getFillVariable("trkX")) CHECK( addVariable("trkX", m_trkX) ); - if(getFillVariable("trkY")) CHECK( addVariable("trkY", m_trkY) ); - if(getFillVariable("trkZ")) CHECK( addVariable("trkZ", m_trkZ) ); - if(getFillVariable("trkLocX")) CHECK( addVariable("trkLocX", m_trkLocX) ); - if(getFillVariable("trkLocY")) CHECK( addVariable("trkLocY", m_trkLocY) ); - if(getFillVariable("trkLocR")) CHECK( addVariable("trkLocR", m_trkLocR) ); - if(getFillVariable("trkLocPhi")) CHECK( addVariable("trkLocPhi", m_trkLocPhi) ); - if(getFillVariable("err_trkLocX")) CHECK( addVariable("err_trkLocX", m_err_trkLocX) ); - if(getFillVariable("err_trkLocY")) CHECK( addVariable("err_trkLocY", m_err_trkLocY) ); - if(getFillVariable("cov_trkLocXY")) CHECK( addVariable("cov_trkLocXY", m_cov_trkLocXY) ); - if(getFillVariable("err_trkLocR")) CHECK( addVariable("err_trkLocR", m_err_trkLocR) ); - if(getFillVariable("err_trkLocPhi")) CHECK( addVariable("err_trkLocPhi", m_err_trkLocPhi) ); - if(getFillVariable("cov_trkLocRPhi")) CHECK( addVariable("cov_trkLocRPhi", m_cov_trkLocRPhi) ); - if(getFillVariable("TOT")) CHECK( addVariable("TOT", m_TOT) ); - if(getFillVariable("driftTimeToTCorrection"))CHECK( addVariable("driftTimeToTCorrection", m_driftTimeToTCorrection) ); - if(getFillVariable("driftTimeHTCorrection")) CHECK( addVariable("driftTimeHTCorrection", m_driftTimeHTCorrection) ); - if(getFillVariable("t0")) CHECK( addVariable("t0", m_t0) ); - if(getFillVariable("bitPattern")) CHECK( addVariable("bitPattern", m_bitPattern) ); - if(getFillVariable("drifttime")) CHECK( addVariable("drifttime", m_drifttime) ); - if(getFillVariable("highThreshold")) CHECK( addVariable("highThreshold", m_highThreshold) ); - if(getFillVariable("trailingEdge")) CHECK( addVariable("trailingEdge", m_trailingEdge) ); - if(getFillVariable("leadingEdge")) CHECK( addVariable("leadingEdge", m_leadingEdge) ); - if(getFillVariable("phiModule")) CHECK( addVariable("phiModule", m_phiModule) ); - if(getFillVariable("highLevel")) CHECK( addVariable("highLevel", m_highLevel) ); - if(getFillVariable("locBiasedResidualX")) CHECK( addVariable("locBiasedResidualX", m_locBiasedResidualX) ); - if(getFillVariable("locBiasedResidualY")) CHECK( addVariable("locBiasedResidualY", m_locBiasedResidualY) ); - if(getFillVariable("locBiasedResidualR")) CHECK( addVariable("locBiasedResidualR", m_locBiasedResidualR) ); - if(getFillVariable("locBiasedPullX")) CHECK( addVariable("locBiasedPullX", m_locBiasedPullX) ); - if(getFillVariable("locBiasedPullY")) CHECK( addVariable("locBiasedPullY", m_locBiasedPullY) ); - if(getFillVariable("locBiasedPullR")) CHECK( addVariable("locBiasedPullR", m_locBiasedPullR) ); - if(getFillVariable("locUnbiasedResidualX")) CHECK( addVariable("locUnbiasedResidualX", m_locUnbiasedResidualX) ); - if(getFillVariable("locUnbiasedResidualY")) CHECK( addVariable("locUnbiasedResidualY", m_locUnbiasedResidualY) ); - if(getFillVariable("locUnbiasedResidualR")) CHECK( addVariable("locUnbiasedResidualR", m_locUnbiasedResidualR) ); - if(getFillVariable("locUnbiasedPullX")) CHECK( addVariable("locUnbiasedPullX", m_locUnbiasedPullX) ); - if(getFillVariable("locUnbiasedPullY")) CHECK( addVariable("locUnbiasedPullY", m_locUnbiasedPullY) ); - if(getFillVariable("locUnbiasedPullR")) CHECK( addVariable("locUnbiasedPullR", m_locUnbiasedPullR) ); - - return StatusCode::SUCCESS; -} - -StatusCode TrackStateOnSurfaceFillerTool::fill (const Trk::TrackStateOnSurface& tso) -{ - this->clearData(); - - if(getFillVariable("type")) *m_type = (int)tso.types().to_ulong(); - - const Trk::MeasurementBase *measurement = tso.measurementOnTrack(); - const Trk::TrackParameters *tp = tso.trackParameters(); - - if(measurement){ - // local position - const Trk::LocalParameters pars = measurement->localParameters(); - if(getFillVariable("locX")) *m_locX = pars[Trk::locX]; - if(getFillVariable("locY")) *m_locY = pars.contains(Trk::locY)?pars[Trk::locY]:-99999.; - if(getFillVariable("locR")) *m_locR = pars.contains(Trk::locR)?pars[Trk::locR]:-99999.; - - //local error matrix - const Amg::MatrixX& err = measurement->localCovariance(); - if(getFillVariable("err_locX")) *m_err_locX =sqrt( err(Trk::locX,Trk::locX) ); - if(getFillVariable("err_locY")) *m_err_locY = pars.contains(Trk::locY)?sqrt( err(Trk::locY,Trk::locY) ):-99999.; - if(getFillVariable("cov_locXY")) *m_cov_locXY = pars.contains(Trk::locY)?err(Trk::locX, Trk::locY):-99999.; - if(getFillVariable("err_locR")) *m_err_locR = sqrt( err(Trk::locR,Trk::locR) ); - - // global position - const Amg::Vector3D pos = measurement->globalPosition(); - if(getFillVariable("x")) *m_x = pos[Trk::x]; - if(getFillVariable("y")) *m_y = pos[Trk::y]; - if(getFillVariable("z")) *m_z = pos[Trk::z]; - } - - if(tp){ - Amg::VectorX lp = tp->parameters(); - if(getFillVariable("trkLocX")) *m_trkLocX=lp[Trk::locX]; - if(getFillVariable("trkLocY")) *m_trkLocY=lp[Trk::locY]; - if(getFillVariable("trkLocR")) *m_trkLocR=lp[Trk::locR]; - if(getFillVariable("trkLocPhi")) *m_trkLocPhi=lp[Trk::locPhi]; - - const AmgSymMatrix(5)* err = tp->covariance(); - - if(err){ - if(getFillVariable("err_trkLocX")) *m_err_trkLocX=sqrt((*err)(Trk::locX,Trk::locX)); - if(getFillVariable("err_trkLocY")) *m_err_trkLocY=sqrt((*err)(Trk::locY,Trk::locY)); - if(getFillVariable("cov_trkLocXY")) *m_cov_trkLocXY=(*err)(Trk::locX, Trk::locY); - if(getFillVariable("err_trkLocR")) *m_err_trkLocR=sqrt((*err)(Trk::locR,Trk::locR)); - if(getFillVariable("err_trkLocPhi")) *m_err_trkLocPhi=sqrt((*err)(Trk::locPhi,Trk::locPhi)); - if(getFillVariable("cov_trkLocRPhi")) *m_cov_trkLocRPhi=(*err)(Trk::locR,Trk::locPhi); - } - } - - if(tp && measurement){ - if(m_fillType["FillPulls"]){ - const Trk::ResidualPull *biased = m_residualPullCalculator->residualPull(measurement, tp, Trk::ResidualPull::Biased); - const Trk::ResidualPull *unbiased = m_residualPullCalculator->residualPull(measurement, tp, Trk::ResidualPull::Unbiased); - if(getFillVariable("locBiasedResidualX") && biased) *m_locBiasedResidualX = (biased->dimension()>Trk::locX ? biased->residual()[Trk::locX] : -99999); - if(getFillVariable("locBiasedResidualY") && biased) *m_locBiasedResidualY = (biased->dimension()>Trk::locY ? biased->residual()[Trk::locY] : -99999); - if(getFillVariable("locBiasedResidualR") && biased) *m_locBiasedResidualR = (biased->dimension()>Trk::locR ? biased->residual()[Trk::locR] : -99999); - if(getFillVariable("locBiasedPullX") && biased) *m_locBiasedPullX = (biased->dimension()>Trk::locX ? biased->pull()[Trk::locX] : -99999); - if(getFillVariable("locBiasedPullY") && biased) *m_locBiasedPullY = (biased->dimension()>Trk::locY ? biased->pull()[Trk::locY] : -99999); - if(getFillVariable("locBiasedPullR") && biased) *m_locBiasedPullR = (biased->dimension()>Trk::locR ? biased->pull()[Trk::locR] : -99999); - if(getFillVariable("locUnbiasedResidualX") && unbiased) *m_locUnbiasedResidualX = (unbiased->dimension()>Trk::locX ? unbiased->residual()[Trk::locX] : -99999); - if(getFillVariable("locUnbiasedResidualY") && unbiased) *m_locUnbiasedResidualY = (unbiased->dimension()>Trk::locY ? unbiased->residual()[Trk::locY] : -99999); - if(getFillVariable("locUnbiasedResidualR") && unbiased) *m_locUnbiasedResidualR = (unbiased->dimension()>Trk::locR ? unbiased->residual()[Trk::locR] : -99999); - if(getFillVariable("locUnbiasedPullX") && unbiased) *m_locUnbiasedPullX = (unbiased->dimension()>Trk::locX ? unbiased->pull()[Trk::locX] : -99999); - if(getFillVariable("locUnbiasedPullY") && unbiased) *m_locUnbiasedPullY = (unbiased->dimension()>Trk::locY ? unbiased->pull()[Trk::locY] : -99999); - if(getFillVariable("locUnbiasedPullR") && unbiased) *m_locUnbiasedPullR = (unbiased->dimension()>Trk::locR ? unbiased->pull()[Trk::locR] : -99999); - delete biased; - delete unbiased; - } - } - - if(getFillVariable("isCompetingRIO")) *m_isCompetingRIO = 0; - const Trk::RIO_OnTrack *rio = dynamic_cast<const Trk::RIO_OnTrack*>(measurement); - if(!rio){ - const Trk::CompetingRIOsOnTrack *crot = dynamic_cast<const Trk::CompetingRIOsOnTrack*>(measurement); - if(crot){ - rio = &crot->rioOnTrack( crot->indexOfMaxAssignProb() ); - if(getFillVariable("isCompetingRIO")) *m_isCompetingRIO = 1; - } - } - - if(rio){ - - Identifier id = rio->identify(); - if(getFillVariable("id")) *m_id = id.get_compact(); - - const Trk::TrkDetElementBase *de = rio->detectorElement(); - if(de){ - Identifier detId = de->identify(); - - if ( detId.is_valid() ) { - if(getFillVariable("detElementId")) *m_detElementId = detId.get_compact(); - if (m_idHelper->is_pixel(detId) ) { - if(getFillVariable("detType")) *m_detType = Trk::TrackState::Pixel; - if(getFillVariable("bec")) *m_bec = (int)m_pixId->barrel_ec(id); - if(getFillVariable("layer")) *m_layer = (int)m_pixId->layer_disk(id); - const InDet::PixelCluster *clus = dynamic_cast<const InDet::PixelCluster*>(rio->prepRawData()); - if(clus){ - const InDet::SiWidth cw = clus->width(); - if(getFillVariable("sizePhi")) *m_sizePhi = (int)cw.colRow()[0]; - if(getFillVariable("sizeZ")) *m_sizeZ = (int)cw.colRow()[1]; - if(getFillVariable("size")) *m_size = (int)clus->rdoList().size(); - if(getFillVariable("charge")) *m_charge = clus->totalCharge(); - if(getFillVariable("isFake")) *m_isFake = (int)clus->isFake(); - if(getFillVariable("isGanged")) *m_isGanged = (int)clus->gangedPixel(); - if(getFillVariable("isSplit")) *m_isSplit = (int)clus->isSplit(); - if(getFillVariable("splitProb1")) *m_splitProb1= clus->splitProbability1(); - if(getFillVariable("splitProb2")) *m_splitProb2 = clus->splitProbability2(); - if(getFillVariable("TOT")) *m_TOT = clus->totalToT(); - } - } else if (m_idHelper->is_sct(detId)) { - if(getFillVariable("detType")) *m_detType = Trk::TrackState::SCT; - if(getFillVariable("bec")) *m_bec = (int)m_sctId->barrel_ec(id); - if(getFillVariable("layer")) *m_layer = (int)m_sctId->layer_disk(id); - const InDet::SCT_Cluster *clus = dynamic_cast<const InDet::SCT_Cluster*>(rio->prepRawData()); - if(clus){ - const InDet::SiWidth cw = clus->width(); - if(getFillVariable("sizePhi")) *m_sizePhi = (int)cw.colRow()[0]; - } - } else if (m_idHelper->is_trt(detId)) { - if(getFillVariable("detType")) *m_detType = Trk::TrackState::TRT; - if(getFillVariable("trkX")) *m_trkX = de->center(id).x(); - if(getFillVariable("trkY")) *m_trkY = de->center(id).y(); - if(getFillVariable("trkZ")) *m_trkZ = de->center(id).z(); - if(getFillVariable("bec")) *m_bec = (int)m_trtId->barrel_ec(id); - if(getFillVariable("layer")) *m_layer = (int)m_trtId->layer_or_wheel(id); - if(getFillVariable("straw_layer")) *m_straw_layer = (int)m_trtId->straw_layer(id); - if(getFillVariable("straw")) *m_straw = (int)m_trtId->straw(id); - int chip=0; - int board=-1; - m_neighbourSvc->getChip(id,chip); - if(abs((int)m_trtId->barrel_ec(id))<2){ - board=m_neighbourSvc->chipToBoardBarrel(chip,m_trtId->layer_or_wheel(id)); - } - else { - if (chip<12) - board=0; - else { - chip=chip-20; - board=1; - } - } - if(getFillVariable("board")) *m_board = board; - if(getFillVariable("chip")) *m_chip = chip; - if(getFillVariable("isArgonStraw")) { - if (!m_TRTStrawSummaryTool.empty()) { - if (m_TRTStrawSummaryTool->getStatusHT(id) != TRTCond::StrawStatus::Good) { - *m_isArgonStraw = true; - } - } - } - if(getFillVariable("phiModule")) *m_phiModule = (int)m_trtId->phi_module(id); - const InDet::TRT_DriftCircle *driftCircle = dynamic_cast<const InDet::TRT_DriftCircle *>(rio->prepRawData()); - - if(driftCircle){ - unsigned int word = driftCircle->getWord(); - Identifier surfaceID = rio->identify(); - TRTCond::RtRelation const *rtr = m_trtcaldbTool->getRtRelation(surfaceID); - double tot = driftCircle->timeOverThreshold(); - if(getFillVariable("TOT")) *m_TOT = tot; - if(getFillVariable("driftTimeToTCorrection")) *m_driftTimeToTCorrection = m_driftFunctionTool->driftTimeToTCorrection(tot,surfaceID); - if(getFillVariable("driftTimeHTCorrection")){ - if(driftCircle->highLevel()) *m_driftTimeHTCorrection = m_driftFunctionTool->driftTimeHTCorrection(surfaceID); - else *m_driftTimeHTCorrection = 0; - } - if(getFillVariable("highLevel")) *m_highLevel = driftCircle->highLevel(); - if(getFillVariable("highThreshold")) { - unsigned int theWord = word & 0x04020100; //HT bits mask - *m_highThreshold = 0; - //this is the agreed-upon binning for HT bit patterns... - if (theWord == 0x04000000) //pattern 1 - *m_highThreshold = 1; - else if (theWord == 0x00020000) //pattern 2 - *m_highThreshold = 2; - else if (theWord == 0x00000100) //pattern 3 - *m_highThreshold = 3; - else if (theWord == 0x04020000) //pattern 4 - *m_highThreshold = 4; - else if (theWord == 0x00020100) //pattern 5 - *m_highThreshold = 5; - else if (theWord == 0x04000100) //pattern 6 - *m_highThreshold = 6; - else if (theWord == 0x04020100) //pattern 7 - *m_highThreshold = 7; - } - if(getFillVariable("bitPattern")) *m_bitPattern = word; - if(getFillVariable("leadingEdge")) *m_leadingEdge = driftCircle->rawDriftTime(); - if(getFillVariable("trailingEdge")) *m_trailingEdge = driftCircle->rawDriftTime()+tot; - if(getFillVariable("t0")) { - if(tp){ - Identifier surfaceID = rio->identify(); - *m_t0 = m_trtcaldbTool->getT0(surfaceID); - } - } - if(getFillVariable("drifttime")){ - if(tp){ - *m_drifttime = rtr->drifttime(fabs(*m_locR)); - } - } - } - } else if (m_idHelper->is_mdt(detId)) { - if(getFillVariable("detType")) *m_detType = Trk::TrackState::MDT; - } else if (m_idHelper->is_csc(detId)) { - if(getFillVariable("detType")) *m_detType = Trk::TrackState::CSC; - } else if (m_idHelper->is_rpc(detId)) { - if(getFillVariable("detType")) *m_detType = Trk::TrackState::RPC; - } else if (m_idHelper->is_tgc(detId)) { - if(getFillVariable("detType")) *m_detType = Trk::TrackState::TGC; - } - } - }else{ - REPORT_MESSAGE (MSG::WARNING) << "Pointer to detector element is not valid"; - } - } - - if(tp){ - if(tso.types()[Trk::TrackStateOnSurface::Hole]){ - const Trk::Surface& surface = tp->associatedSurface(); - const Trk::TrkDetElementBase* detElement = surface.associatedDetectorElement(); - if(detElement){ - Identifier holeId = detElement->identify(); - if (m_idHelper->is_pixel(holeId) ) { - if(getFillVariable("detType")) *m_detType = Trk::TrackState::Pixel; - if(getFillVariable("bec")) *m_bec = (int)m_pixId->barrel_ec(holeId); - if(getFillVariable("layer")) *m_layer = (int)m_pixId->layer_disk(holeId); - }else if (m_idHelper->is_sct(holeId)) { - if(getFillVariable("detType")) *m_detType = Trk::TrackState::SCT; - if(getFillVariable("bec")) *m_bec = (int)m_sctId->barrel_ec(holeId); - if(getFillVariable("layer")) *m_layer = (int)m_sctId->layer_disk(holeId); - }else if (m_idHelper->is_trt(holeId)) { - if(getFillVariable("detType")) *m_detType = Trk::TrackState::TRT; - if(getFillVariable("bec")) *m_bec = (int)m_trtId->barrel_ec(holeId); - if(getFillVariable("layer")) *m_layer = (int)m_trtId->layer_or_wheel(holeId); - if(getFillVariable("straw_layer")) *m_straw_layer = (int)m_trtId->straw_layer(holeId); - if(getFillVariable("straw")) *m_straw = (int)m_trtId->straw(holeId); - if(getFillVariable("phiModule")) *m_phiModule = (int)m_trtId->phi_module(holeId); - } else if (m_idHelper->is_mdt(holeId)) { - if(getFillVariable("detType")) *m_detType = Trk::TrackState::MDT; - } else if (m_idHelper->is_csc(holeId)) { - if(getFillVariable("detType")) *m_detType = Trk::TrackState::CSC; - } else if (m_idHelper->is_rpc(holeId)) { - if(getFillVariable("detType")) *m_detType = Trk::TrackState::RPC; - } else if (m_idHelper->is_tgc(holeId)) { - if(getFillVariable("detType")) *m_detType = Trk::TrackState::TGC; - } - } - } - } - - if(measurement && tp && rio){ - const Trk::TrkDetElementBase *de = rio->detectorElement(); - if(de){ - Identifier detId = de->identify(); - if ( detId.is_valid() ) { - if (m_idHelper->is_pixel(detId) || m_idHelper->is_sct(detId)) { - const InDetDD::SiDetectorElement *side = dynamic_cast<const InDetDD::SiDetectorElement *>(de); - if(side){ - Amg::Vector3D mytrack = tp->momentum(); - Amg::Vector3D mynormal = side->normal(); - Amg::Vector3D myphiax = side->phiAxis(); - Amg::Vector3D myetaax = side->etaAxis(); - float trketacomp = mytrack.dot(myetaax); - float trkphicomp = mytrack.dot(myphiax); - float trknormcomp = mytrack.dot(mynormal); - if(getFillVariable("incidencePhi")) *m_incidencePhi = atan2(trkphicomp,trknormcomp); - if(getFillVariable("incidenceTheta")) *m_incidenceTheta = atan2(trketacomp,trknormcomp); - } - } - } - }else{ - REPORT_MESSAGE (MSG::WARNING) << "Pointer to detector element is not valid"; - } - } - - return StatusCode::SUCCESS; -} - -void TrackStateOnSurfaceFillerTool::clearData(){ - - if(getFillVariable("type")) *m_type = 0; - if(getFillVariable("id")) *m_id = 0; - if(getFillVariable("detElementId")) *m_detElementId = 0; - if(getFillVariable("detType")) *m_detType = Trk::TrackState::unidentified; - if(getFillVariable("bec")) *m_bec = -999; - if(getFillVariable("board")) *m_board = 0; - if(getFillVariable("chip")) *m_chip = 0; - if(getFillVariable("isArgonStraw")) *m_isArgonStraw = 0; - if(getFillVariable("layer")) *m_layer = -1; - if(getFillVariable("charge")) *m_charge = 0; - if(getFillVariable("sizePhi")) *m_sizePhi = 0; - if(getFillVariable("sizeZ")) *m_sizeZ = 0; - if(getFillVariable("size")) *m_size = 0; - if(getFillVariable("isFake")) *m_isFake = 0; - if(getFillVariable("isGanged")) *m_isGanged = 0; - if(getFillVariable("isSplit")) *m_isSplit = 0; - if(getFillVariable("splitProb1")) *m_splitProb1 = 0; - if(getFillVariable("splitProb2")) *m_splitProb2 = 0; - if(getFillVariable("isCompetingRIO")) *m_isCompetingRIO = 0; - if(getFillVariable("locX")) *m_locX = -99999.; - if(getFillVariable("locY")) *m_locY = -99999.; - if(getFillVariable("locR")) *m_locR = -99999.; - if(getFillVariable("incidencePhi")) *m_incidencePhi = -999.; - if(getFillVariable("incidenceTheta")) *m_incidenceTheta = -999.; - if(getFillVariable("err_locX")) *m_err_locX = -999.; - if(getFillVariable("err_locY")) *m_err_locY = -999.; - if(getFillVariable("cov_locXY")) *m_cov_locXY = -999.; - if(getFillVariable("err_locR")) *m_err_locR = -999.; - if(getFillVariable("x")) *m_x = -99999.; - if(getFillVariable("y")) *m_y = -99999.; - if(getFillVariable("z")) *m_z = -99999.; - if(getFillVariable("trkX")) *m_trkX = -99999.; - if(getFillVariable("trkY")) *m_trkY = -99999.; - if(getFillVariable("trkZ")) *m_trkZ = -99999.; - if(getFillVariable("trkLocX")) *m_trkLocX = -99999.; - if(getFillVariable("trkLocY")) *m_trkLocY = -99999.; - if(getFillVariable("trkLocR")) *m_trkLocR = -99999.; - if(getFillVariable("trkLocPhi")) *m_trkLocPhi = -99999.; - if(getFillVariable("err_trkLocX")) *m_err_trkLocX = -999.; - if(getFillVariable("err_trkLocY")) *m_err_trkLocY = -999.; - if(getFillVariable("cov_trkLocXY")) *m_cov_trkLocXY = -999.; - if(getFillVariable("err_trkLocR")) *m_err_trkLocR = -999.; - if(getFillVariable("err_trkLocPhi")) *m_err_trkLocPhi = -999.; - if(getFillVariable("cov_trkLocRPhi")) *m_cov_trkLocRPhi = -999.; - if(getFillVariable("TOT")) *m_TOT = 0; - if(getFillVariable("driftTimeToTCorrection"))*m_driftTimeToTCorrection = 0; - if(getFillVariable("driftTimeHTCorrection")) *m_driftTimeHTCorrection = 0; - if(getFillVariable("t0")) *m_t0 = 0; - if(getFillVariable("bitPattern")) *m_bitPattern = 0; - if(getFillVariable("drifttime")) *m_drifttime = 0; - if(getFillVariable("highThreshold")) *m_highThreshold = 0; - if(getFillVariable("trailingEdge")) *m_trailingEdge = 0; - if(getFillVariable("leadingEdge")) *m_leadingEdge = 0; - if(getFillVariable("phiModule")) *m_phiModule = 0; - if(getFillVariable("highLevel")) *m_highLevel = 0; - if(getFillVariable("locBiasedResidualX")) *m_locBiasedResidualX = -99999; - if(getFillVariable("locBiasedResidualY")) *m_locBiasedResidualY = -99999; - if(getFillVariable("locBiasedResidualR")) *m_locBiasedResidualR = -99999; - if(getFillVariable("locBiasedPullX")) *m_locBiasedPullX = -99999; - if(getFillVariable("locBiasedPullY")) *m_locBiasedPullY = -99999; - if(getFillVariable("locBiasedPullR")) *m_locBiasedPullR = -99999; - if(getFillVariable("locUnbiasedResidualX")) *m_locUnbiasedResidualX = -99999; - if(getFillVariable("locUnbiasedResidualY")) *m_locUnbiasedResidualY = -99999; - if(getFillVariable("locUnbiasedResidualR")) *m_locUnbiasedResidualR = -99999; - if(getFillVariable("locUnbiasedPullX")) *m_locUnbiasedPullX = -99999; - if(getFillVariable("locUnbiasedPullY")) *m_locUnbiasedPullY = -99999; - if(getFillVariable("locUnbiasedPullR")) *m_locUnbiasedPullR = -99999; -} - -void TrackStateOnSurfaceFillerTool::synchronizeFlags(){ - - unsigned int numHitTypesFilled=0; - bool fillPixelHits = m_fillType["FillPixelHits"]; if (fillPixelHits) numHitTypesFilled++; - bool fillSCTHits = m_fillType["FillSCTHits"]; if (fillSCTHits) numHitTypesFilled++; - bool fillTRTHits = m_fillType["FillTRTHits"]; if (fillTRTHits) numHitTypesFilled++; - bool fillMDTHits = m_fillType["FillMDTHits"]; if (fillMDTHits) numHitTypesFilled++; - bool fillCSCHits = m_fillType["FillCSCHits"]; if (fillCSCHits) numHitTypesFilled++; - bool fillRPCHits = m_fillType["FillRPCHits"]; if (fillRPCHits) numHitTypesFilled++; - bool fillTGCHits = m_fillType["FillTGCHits"]; if (fillTGCHits) numHitTypesFilled++; - bool fillPixelHoles = m_fillType["FillPixelHoles"]; - bool fillSCTHoles = m_fillType["FillSCTHoles"]; - bool fillTRTHoles = m_fillType["FillTRTHoles"]; - bool fillMDTHoles = m_fillType["FillMDTHoles"]; - bool fillCSCHoles = m_fillType["FillCSCHoles"]; - bool fillRPCHoles = m_fillType["FillRPCHoles"]; - bool fillTGCHoles = m_fillType["FillTGCHoles"]; - - bool fillPulls = m_fillType["FillPulls"]; - - bool fillHits = numHitTypesFilled>0; - //fillPixelHits || fillSCTHits || fillTRTHits || fillMDTHits || fillCSCHits || fillRPCHits || fillTGCHits; - bool fillHoles = fillPixelHoles || fillSCTHoles || fillTRTHoles || fillMDTHoles || fillCSCHoles || fillRPCHoles || fillTGCHoles; - - bool fillPixel = fillPixelHits || fillPixelHoles; - bool fillSCT = fillSCTHits || fillSCTHoles; - bool fillTRT = fillTRTHits || fillTRTHoles; - bool fillMDT = fillMDTHits || fillMDTHoles; - bool fillCSC = fillCSCHits || fillCSCHoles; - bool fillRPC = fillRPCHits || fillRPCHoles; - bool fillTGC = fillTGCHits || fillTGCHoles; - - bool fillSilicon = fillPixel || fillSCT; - bool fillMuonStrips = fillCSC || fillRPC || fillTGC; - - setFillVariable("type", fillHits && fillHoles); - setFillVariable("id", fillHits); - setFillVariable("detElementId", fillHoles || fillHits); - setFillVariable("detType", numHitTypesFilled>0); - setFillVariable("bec", fillHoles || fillHits); - setFillVariable("board", fillHoles || fillHits); - setFillVariable("chip", fillHoles || fillHits); - setFillVariable("isArgonStraw", fillHoles || fillHits); - setFillVariable("straw_layer", fillHoles || fillHits); - setFillVariable("straw", fillHoles || fillHits); - setFillVariable("layer", fillHoles || fillHits); - setFillVariable("charge", fillPixel && fillHits); - setFillVariable("sizePhi", fillSilicon && fillHits); - setFillVariable("sizeZ", fillPixel && fillHits); - setFillVariable("size", fillPixel && fillHits); - setFillVariable("isFake", fillPixel && fillHits); - setFillVariable("isGanged", fillPixel && fillHits); - setFillVariable("isSplit", fillPixel && fillHits); - setFillVariable("splitProb1", fillPixel && fillHits); - setFillVariable("splitProb2", fillPixel && fillHits); - setFillVariable("isCompetingRIO", fillHits); - setFillVariable("locX", (fillSilicon || fillMuonStrips || fillTRT) && fillHits); - setFillVariable("locY", (fillSilicon || fillMuonStrips || fillTRT) && fillHits); - setFillVariable("locR", (fillTRT || fillMDT) && fillHits); - setFillVariable("incidencePhi", fillSilicon && fillHits); - setFillVariable("incidenceTheta", fillSilicon && fillHits); - setFillVariable("err_locX", (fillSilicon || fillMuonStrips || fillTRT) && fillHits); - setFillVariable("err_locY", (fillSilicon || fillMuonStrips || fillTRT) && fillHits); - setFillVariable("cov_locXY", (fillSilicon || fillMuonStrips) && fillHits); - setFillVariable("err_locR", (fillTRT || fillMDT) && fillHits); - setFillVariable("TOT", fillTRT && fillHits); - setFillVariable("driftTimeToTCorrection", fillTRT && fillHits); - setFillVariable("driftTimeHTCorrection", fillTRT && fillHits); - setFillVariable("t0", fillTRT && fillHits); - setFillVariable("bitPattern", fillTRT && fillHits); - setFillVariable("drifttime", fillTRT && fillHits); - setFillVariable("highThreshold", fillTRT && fillHits); - setFillVariable("trailingEdge", fillTRT && fillHits); - setFillVariable("leadingEdge", fillTRT && fillHits); - setFillVariable("phiModule", fillTRT && fillHits); - setFillVariable("highLevel", fillTRT && fillHits); - setFillVariable("x", (fillSilicon || fillMuonStrips || fillTRT) && fillHits); - setFillVariable("y", (fillSilicon || fillMuonStrips || fillTRT) && fillHits); - setFillVariable("z", (fillSilicon || fillMuonStrips || fillTRT) && fillHits); - setFillVariable("trkX", (fillSilicon || fillMuonStrips || fillTRT) && (fillHoles || fillHits)); - setFillVariable("trkY", (fillSilicon || fillMuonStrips || fillTRT) && (fillHoles || fillHits)); - setFillVariable("trkZ", (fillSilicon || fillMuonStrips || fillTRT) && (fillHoles || fillHits)); - setFillVariable("trkLocX", (fillSilicon || fillMuonStrips || fillTRT) && (fillHoles || fillHits)); - setFillVariable("trkLocY", (fillSilicon || fillMuonStrips || fillTRT) && (fillHoles || fillHits)); - setFillVariable("trkLocR", (fillTRT || fillMDT) && (fillHoles || fillHits)); - setFillVariable("trkLocPhi", fillTRT && (fillHoles || fillHits)); - setFillVariable("err_trkLocX", (fillSilicon || fillMuonStrips || fillTRT) && (fillHoles || fillHits)); - setFillVariable("err_trkLocY", (fillSilicon || fillMuonStrips || fillTRT) && (fillHoles || fillHits)); - setFillVariable("cov_trkLocXY", (fillSilicon || fillMuonStrips || fillTRT) && (fillHoles || fillHits)); - setFillVariable("err_trkLocR", (fillTRT || fillMDT) && (fillHoles || fillHits)); - setFillVariable("err_trkLocPhi", (fillTRT || fillMDT) && (fillHoles || fillHits)); - setFillVariable("cov_trkLocRPhi", (fillTRT || fillMDT) && (fillHoles || fillHits)); - setFillVariable("locBiasedResidualX", (fillSilicon) && fillHits && fillPulls); - setFillVariable("locBiasedResidualY", fillSilicon && fillHits && fillPulls); - setFillVariable("locBiasedResidualR", (fillTRT||fillMDT) && fillHits && fillPulls); - setFillVariable("locBiasedPullX", (fillSilicon) && fillHits && fillPulls); - setFillVariable("locBiasedPullY", fillSilicon && fillHits && fillPulls); - setFillVariable("locBiasedPullR", (fillTRT||fillMDT) && fillHits && fillPulls); - setFillVariable("locUnbiasedResidualX", (fillSilicon) && fillHits && fillPulls); - setFillVariable("locUnbiasedResidualY", fillSilicon && fillHits && fillPulls); - setFillVariable("locUnbiasedResidualR", (fillTRT||fillMDT) && fillHits && fillPulls); - setFillVariable("locUnbiasedPullX", (fillSilicon) && fillHits && fillPulls); - setFillVariable("locUnbiasedPullY", fillSilicon && fillHits && fillPulls); - setFillVariable("locUnbiasedPullR", (fillTRT||fillMDT) && fillHits && fillPulls); -} - -void TrackStateOnSurfaceFillerTool::setFillVariable(std::string varname, bool dofill){ - - std::map<std::string, bool>::iterator itr = m_variables.find(varname); - if(itr!=m_variables.end()){ - itr->second = dofill; - }else{ - m_variables.insert(std::make_pair(varname, dofill)); - } -} - -bool TrackStateOnSurfaceFillerTool::getFillVariable(std::string varname){ - - std::map<std::string, bool>::iterator itr = m_variables.find(varname); - if(itr!=m_variables.end()){ - return itr->second; - } - return false; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackStateOnSurfaceFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackStateOnSurfaceFillerTool.h deleted file mode 100644 index bb934f7be04ac9e331daecea344f38c97625c842..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackStateOnSurfaceFillerTool.h +++ /dev/null @@ -1,158 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#ifndef INDETD3PDMAKER_TRACKSTATEONSURFACEFILLERTOOL_H -#define INDETD3PDMAKER_TRACKSTATEONSURFACEFILLERTOOL_H - -#include "D3PDMakerUtils/BlockFillerTool.h" -#include "TRT_ConditionsServices/ITRT_StrawNeighbourSvc.h" -#include "TRT_ConditionsServices/ITRT_StrawStatusSummaryTool.h" -#include "Identifier/Identifier.h" -#include "GaudiKernel/ServiceHandle.h" -#include "GaudiKernel/ToolHandle.h" -#include "TrkToolInterfaces/IResidualPullCalculator.h" -#include "TRT_ConditionsServices/ITRT_CalDbTool.h" -#include "TRT_DriftFunctionTool/ITRT_DriftFunctionTool.h" - -class AtlasDetectorID; -class PixelID; -class SCT_ID; -class TRT_ID; -class MdtIdHelper; -class CscIdHelper; -class RpcIdHelper; -class TgcIdHelper; - -namespace Trk { - class TrackStateOnSurface; -} - - -namespace D3PD { - -class TrackStateOnSurfaceFillerTool - : public D3PD::BlockFillerTool<Trk::TrackStateOnSurface> -{ -public: - typedef D3PD::BlockFillerTool<Trk::TrackStateOnSurface> Base; - - TrackStateOnSurfaceFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode fill (const Trk::TrackStateOnSurface &p); - -private: - - void clearData(); - - void synchronizeFlags(); - - void setFillVariable(std::string varname, bool dofill); - bool getFillVariable(std::string varname); - - std::map<std::string, bool> m_variables; - - const AtlasDetectorID* m_idHelper; - const PixelID* m_pixId; - const SCT_ID* m_sctId; - const TRT_ID* m_trtId; - const MdtIdHelper* m_mdtId; - const CscIdHelper* m_cscId; - const RpcIdHelper* m_rpcId; - const TgcIdHelper* m_tgcId; - - ToolHandle<ITRT_CalDbTool> m_trtcaldbTool; - ServiceHandle<ITRT_StrawNeighbourSvc> m_neighbourSvc ; - ToolHandle<ITRT_StrawStatusSummaryTool> m_TRTStrawSummaryTool; - ToolHandle < Trk::IResidualPullCalculator > m_residualPullCalculator; - ToolHandle < ITRT_DriftFunctionTool > m_driftFunctionTool; - - /* steering **/ - std::map<std::string, bool> m_fillType; - - /* NTuple variables: **/ - int *m_type; // Measurement: 0, Outlier: 5, Hole: 6. - Identifier::value_type *m_id; // unique identifier for a cluster - Identifier::value_type *m_detElementId; // unique identifier for a detector element - int *m_detType; - int *m_bec; - int *m_board; - int *m_chip; - bool *m_isArgonStraw; - int *m_straw_layer; - int *m_straw; - int *m_phiModule; - int *m_layer; - float *m_charge; // defined for Pixel only - int *m_sizePhi; // defined for Si only - int *m_sizeZ; // defined for Si only - int *m_size; // defined for Si only - int *m_isFake; // defined for Pixel only - int *m_isGanged; // defined for Pixel only - int *m_isSplit; // defined for Pixel only - float *m_splitProb1; // defined for Pixel only - float *m_splitProb2; // defined for Pixel only - int *m_isCompetingRIO; - float *m_locX; - float *m_locY; - float *m_locR; - float *m_incidencePhi; - float *m_incidenceTheta; - float *m_err_locX; - float *m_err_locY; - float *m_cov_locXY; - float *m_err_locR; - float *m_x; - float *m_y; - float *m_z; - float *m_trkX; - float *m_trkY; - float *m_trkZ; - float *m_trkLocX; - float *m_trkLocY; - float *m_trkLocR; - float *m_trkLocPhi; - float *m_err_trkLocX; - float *m_err_trkLocY; - float *m_cov_trkLocXY; - float *m_err_trkLocR; - float *m_err_trkLocPhi; - float *m_cov_trkLocRPhi; - float *m_TOT; - float *m_driftTimeToTCorrection; - float *m_driftTimeHTCorrection; - float *m_t0; - int *m_highThreshold; - int *m_bitPattern; - float *m_drifttime; - float *m_trailingEdge; - float *m_leadingEdge; - int *m_highLevel; - float *m_locBiasedResidualX; - float *m_locBiasedResidualY; - float *m_locBiasedResidualR; - float *m_locBiasedPullX; - float *m_locBiasedPullY; - float *m_locBiasedPullR; - float *m_locUnbiasedResidualX; - float *m_locUnbiasedResidualY; - float *m_locUnbiasedResidualR; - float *m_locUnbiasedPullX; - float *m_locUnbiasedPullY; - float *m_locUnbiasedPullR; - - - - -}; // class TrackTrackStateOnSurfaceFillerTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_TRACKSTATEONSURFACEFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackTrackSummaryFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackTrackSummaryFillerTool.cxx deleted file mode 100644 index fb4f729ebfa5d92a8a0e8305987fd7945df4f09c..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackTrackSummaryFillerTool.cxx +++ /dev/null @@ -1,324 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#include "TrackTrackSummaryFillerTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "TrkTrackSummary/TrackSummary.h" -#include "TrkTrackSummary/InDetTrackSummary.h" -#include <bitset> - - -namespace D3PD { - - -namespace TrackSum { - - -enum SumType { - HitSum, - HoleSum, - IDHits, - IDHoles, - IDSharedHits, - IDOutliers, - PixelInfoPlus, - SCTInfoPlus, - TRTInfoPlus, - InfoPlus, - ExpectBLayer, - MuonHits, - MuonHoles -}; - -const unsigned int HitSumMask = (1<<HitSum); -const unsigned int HoleSumMask = (1<<HoleSum); -const unsigned int IDHitsMask = (1<<IDHits); -const unsigned int IDHolesMask = (1<<IDHoles); -const unsigned int IDSharedHitsMask = (1<<IDSharedHits); -const unsigned int IDOutliersMask = (1<<IDOutliers); -const unsigned int PixelInfoPlusMask = (1<<PixelInfoPlus); -const unsigned int SCTInfoPlusMask = (1<<SCTInfoPlus); -const unsigned int TRTInfoPlusMask = (1<<TRTInfoPlus); -const unsigned int InfoPlusMask = (1<<InfoPlus); -const unsigned int ExpectBLayerMask = (1<<ExpectBLayer); -const unsigned int MuonHitsMask = (1<<MuonHits); -const unsigned int MuonHolesMask = (1<<MuonHoles); - -struct Var { - unsigned int type; - std::string name; - Trk::SummaryType key; -}; - - -Var vars[] = { - // ID hits - { IDHitsMask, "nBLHits", Trk::numberOfInnermostPixelLayerHits }, - { IDHitsMask | HitSumMask, "nPixHits", Trk::numberOfPixelHits }, - { IDHitsMask | HitSumMask, "nSCTHits", Trk::numberOfSCTHits }, - { IDHitsMask | HitSumMask, "nTRTHits", Trk::numberOfTRTHits }, - { IDHitsMask, "nTRTHighTHits", Trk::numberOfTRTHighThresholdHits }, - { IDHitsMask, "nTRTXenonHits", Trk::numberOfTRTXenonHits }, - // ID holes + dead sensors - needed for appropriate cutting - { IDHolesMask | HoleSumMask, "nPixHoles", Trk::numberOfPixelHoles }, - { IDHolesMask | HoleSumMask, "nSCTHoles", Trk::numberOfSCTHoles }, - { IDHolesMask | HoleSumMask, "nTRTHoles", Trk::numberOfTRTHoles }, - { IDHolesMask, "nPixelDeadSensors", Trk::numberOfPixelDeadSensors }, - { IDHolesMask, "nSCTDeadSensors", Trk::numberOfSCTDeadSensors }, - // ID shared & Split hits - { IDSharedHitsMask, "nBLSharedHits", Trk::numberOfInnermostPixelLayerSharedHits}, - { IDSharedHitsMask, "nPixSharedHits", Trk::numberOfPixelSharedHits}, - { IDSharedHitsMask, "nSCTSharedHits", Trk::numberOfSCTSharedHits }, - { IDSharedHitsMask, "nBLayerSplitHits", Trk::numberOfInnermostLayerSplitHits}, - { IDSharedHitsMask, "nPixSplitHits", Trk::numberOfPixelSplitHits}, - // ID outliers - { IDOutliersMask, "nBLayerOutliers", Trk::numberOfInnermostPixelLayerOutliers }, - { IDOutliersMask, "nPixelOutliers", Trk::numberOfPixelOutliers }, - { IDOutliersMask, "nSCTOutliers", Trk::numberOfSCTOutliers }, - { IDOutliersMask, "nTRTOutliers", Trk::numberOfTRTOutliers}, - { IDOutliersMask, "nTRTHighTOutliers", Trk::numberOfTRTHighThresholdOutliers}, - // Pixel info plus - { PixelInfoPlusMask, "nContribPixelLayers", Trk::numberOfContribPixelLayers }, - { PixelInfoPlusMask, "nGangedPixels", Trk::numberOfGangedPixels }, - { PixelInfoPlusMask, "nGangedFlaggedFakes", Trk::numberOfGangedFlaggedFakes }, - { PixelInfoPlusMask, "nPixelSpoiltHits", Trk::numberOfPixelSpoiltHits }, - // SCT info plus - { SCTInfoPlusMask, "nSCTDoubleHoles", Trk::numberOfSCTDoubleHoles }, - { SCTInfoPlusMask, "nSCTSpoiltHits", Trk::numberOfSCTSpoiltHits }, - // TRT info plus - { TRTInfoPlusMask, "nTRTDeadStraws", Trk::numberOfTRTDeadStraws }, - { TRTInfoPlusMask, "nTRTTubeHits", Trk::numberOfTRTTubeHits }, - // Info plus - { InfoPlusMask, "nOutliersOnTrack", Trk::numberOfOutliersOnTrack }, - { InfoPlusMask, "standardDeviationOfChi2OS", Trk::standardDeviationOfChi2OS }, - // Expect BLayer hit - { ExpectBLayerMask, "expectInnermostPixelLayerHit", Trk::expectInnermostPixelLayerHit }, - // Muon hits - { MuonHitsMask | HitSumMask, "nMDTHits", Trk::numberOfMdtHits }, - { MuonHitsMask | HitSumMask, "nCSCEtaHits", Trk::numberOfCscEtaHits }, - { MuonHitsMask | HitSumMask, "nCSCPhiHits", Trk::numberOfCscPhiHits }, - { MuonHitsMask | HitSumMask, "nRPCEtaHits", Trk::numberOfRpcEtaHits }, - { MuonHitsMask | HitSumMask, "nRPCPhiHits", Trk::numberOfRpcPhiHits }, - { MuonHitsMask | HitSumMask, "nTGCEtaHits", Trk::numberOfTgcEtaHits }, - { MuonHitsMask | HitSumMask, "nTGCPhiHits", Trk::numberOfTgcPhiHits }, - // Muon holes - { MuonHolesMask | HoleSumMask, "nMdtHoles", Trk::numberOfMdtHoles }, - { MuonHolesMask | HoleSumMask, "nCscEtaHoles", Trk::numberOfCscEtaHoles }, - { MuonHolesMask | HoleSumMask, "nCscPhiHoles", Trk::numberOfCscPhiHoles }, - { MuonHolesMask | HoleSumMask, "nRpcEtaHoles", Trk::numberOfRpcEtaHoles }, - { MuonHolesMask | HoleSumMask, "nRpcPhiHoles", Trk::numberOfRpcPhiHoles }, - { MuonHolesMask | HoleSumMask, "nTgcEtaHoles", Trk::numberOfTgcEtaHoles }, - { MuonHolesMask | HoleSumMask, "nTgcPhiHoles", Trk::numberOfTgcPhiHoles } -}; - -const size_t nvars = sizeof(vars) / sizeof(vars[0]); - - -} // namespace TrackSum - - -TrackTrackSummaryFillerTool::TrackTrackSummaryFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent), - m_typeMask (0) -{ - // summaries - declareProperty ("IDHits", m_doIDHits = true); - declareProperty ("IDHoles", m_doIDHoles = true); - declareProperty ("IDSharedHits", m_doIDSharedHits = true); - declareProperty ("IDOutliers", m_doIDOutliers = false); - declareProperty ("PixelInfoPlus", m_doPixelInfoPlus = false); - declareProperty ("SCTInfoPlus", m_doSCTInfoPlus = false); - declareProperty ("TRTInfoPlus", m_doTRTInfoPlus = false); - declareProperty ("InfoPlus", m_doInfoPlus = false); - declareProperty ("MuonHits", m_doMuonHits = true); - declareProperty ("MuonHoles", m_doMuonHoles = false); - declareProperty ("ExpectBLayer", m_doExpectBLayer = true); - - // extras - declareProperty ("HitSum", m_doHitSum = true); - declareProperty ("HoleSum", m_doHoleSum = true); - declareProperty ("HitPattern", m_doHitPattern = true); - declareProperty ("SiHits", m_doSiHits = false); - declareProperty ("TRTRatio", m_doTRTRatio = true); - declareProperty ("PixeldEdx", m_doPixeldEdx = true); - declareProperty ("ElectronPID", m_doElectronPID = false); - - // Avoid coverity warnings. - m_storeFullSummary = true; - book().ignore(); - - // full summary - declareProperty ("FullInfo", m_storeFullSummary = false); -} - -StatusCode TrackTrackSummaryFillerTool::initialize() -{ - m_typeMask = 0; - if (m_doIDHits) m_typeMask |= TrackSum::IDHitsMask; - if (m_doIDHoles) m_typeMask |= TrackSum::IDHolesMask; - if (m_doIDSharedHits) m_typeMask |= TrackSum::IDSharedHitsMask; - if (m_doIDOutliers) m_typeMask |= TrackSum::IDOutliersMask; - if (m_doPixelInfoPlus) m_typeMask |= TrackSum::PixelInfoPlusMask; - if (m_doSCTInfoPlus) m_typeMask |= TrackSum::SCTInfoPlusMask; - if (m_doTRTInfoPlus) m_typeMask |= TrackSum::TRTInfoPlusMask; - if (m_doInfoPlus) m_typeMask |= TrackSum::InfoPlusMask; - if (m_doExpectBLayer) m_typeMask |= TrackSum::ExpectBLayerMask; - if (m_doMuonHits) m_typeMask |= TrackSum::MuonHitsMask; - if (m_doMuonHoles) m_typeMask |= TrackSum::MuonHolesMask; - - return StatusCode::SUCCESS; -} - - -StatusCode TrackTrackSummaryFillerTool::book() -{ - // track summaries - size_t ivar = 0; - for (size_t i = 0; i < TrackSum::nvars; i++) - if ( (m_typeMask & TrackSum::vars[i].type) || - m_storeFullSummary ) ++ivar; - m_vars.resize (ivar); - - ivar = 0; - for (size_t i = 0; i < TrackSum::nvars; i++) { - if ( (m_typeMask & TrackSum::vars[i].type) || - m_storeFullSummary) - CHECK( addVariable (TrackSum::vars[i].name, m_vars[ivar++]) ); - } - assert (ivar == m_vars.size()); - - // extra information - if (m_doHitSum || m_storeFullSummary) CHECK( addVariable ("nHits", m_nHits) ); - if (m_doHoleSum || m_storeFullSummary) CHECK( addVariable ("nHoles", m_nHoles) ); - if (m_doHitPattern || m_storeFullSummary) CHECK( addVariable ("hitPattern", m_hitPattern) ); - if (m_doSiHits || m_storeFullSummary) CHECK (addVariable ("nSiHits", m_nSiHits) ); - if (m_doTRTRatio || m_storeFullSummary) { - CHECK (addVariable ("TRTHighTHitsRatio", m_TRTHighTHitsRatio) ); - CHECK (addVariable ("TRTHighTOutliersRatio", m_TRTHighTOutliersRatio) ); - } - if (m_doPixeldEdx || m_storeFullSummary){ - CHECK (addVariable ("pixeldEdx", m_pixeldEdx) ); - CHECK (addVariable ("nGoodHitsPixeldEdx", m_nGoodHitsPixeldEdx) ); - CHECK (addVariable ("massPixeldEdx", m_massPixeldEdx) ); - CHECK (addVariable ("likelihoodsPixeldEdx", m_likelihoodsPixeldEdx) ); - } - - if (m_doElectronPID || m_storeFullSummary) { - CHECK (addVariable ("eProbabilityComb", m_eProbabilityComb) ); - CHECK (addVariable ("eProbabilityHT", m_eProbabilityHT) ); - CHECK (addVariable ("eProbabilityToT", m_eProbabilityToT) ); - CHECK (addVariable ("eProbabilityBrem", m_eProbabilityBrem) ); - } - - return StatusCode::SUCCESS; -} - -StatusCode TrackTrackSummaryFillerTool::fill (const Trk::TrackSummary& ts) -{ - - this->clearData(); - - // track summaries - size_t ivar = 0; - for (size_t i = 0; i < TrackSum::nvars; i++) { - const TrackSum::Var& v = TrackSum::vars[i]; - int count = ts.get (v.key); - if ( (m_typeMask & v.type) || m_storeFullSummary) { - *m_vars[ivar++] = count; - } - if (count < 0) count = 0; - if ((m_doHitSum && (v.type & TrackSum::HitSumMask)) || m_storeFullSummary) *m_nHits += count; - if ((m_doHoleSum && (v.type & TrackSum::HoleSumMask)) || m_storeFullSummary) *m_nHoles += count; - } - assert (ivar == m_vars.size()); - - // extras: - - // hit pattern - if (m_doHitPattern || m_storeFullSummary) { - std::bitset<Trk::numberOfDetectorTypes> pattern; - for(unsigned int i=0; i<pattern.size(); i++){ - const Trk::DetectorType detType = (Trk::DetectorType)i; - pattern.set(i, ts.isHit(detType)); - } - *m_hitPattern = (int)pattern.to_ulong(); - } - // Si hits - if (m_doSiHits || m_storeFullSummary) - *m_nSiHits = ts.get(Trk::numberOfPixelHits) + ts.get(Trk::numberOfSCTHits); - // TRT ratios - if (m_doTRTRatio || m_storeFullSummary) { - int nhightrt = ts.get (Trk::numberOfTRTHighThresholdHits); - int ntrt = ts.get (Trk::numberOfTRTHits); - int ntrtxenon = ts.get(Trk::numberOfTRTXenonHits); - if (ntrt > 0) - *m_TRTHighTHitsRatio = (float)nhightrt / (float)ntrt; - - int nhightrt_outl = ts.get (Trk::numberOfTRTHighThresholdOutliers); - int ntrt_outl = ts.get (Trk::numberOfTRTOutliers); - - // since we only save one value for number of xenon straws crossed, this is the correct one - // above variable (without outliers) shouldn't be used, anyway - if (ntrtxenon > 0) - *m_TRTHighTOutliersRatio = (float)(nhightrt + nhightrt_outl) / (float)(ntrtxenon); - else if (ntrtxenon < 0 && (ntrt + ntrt_outl) > 0) { - // Backwards compatibility if xenon information isn't present. - *m_TRTHighTOutliersRatio = - (float)(nhightrt + nhightrt_outl) / (float)(ntrt + ntrt_outl); - } - } - // Pixel dEdX - if (m_doPixeldEdx || m_storeFullSummary){ - *m_pixeldEdx = ts.getPixeldEdx(); - *m_nGoodHitsPixeldEdx = ts.numberOfUsedHitsdEdx(); - const Trk::InDetTrackSummary* inDetTS = ts.indetTrackSummary(); - if (inDetTS){ - *m_massPixeldEdx = inDetTS->massPixeldEdx(); - std::vector<float> likelihoods = inDetTS->likelihoodsPixeldEdx(); - m_likelihoodsPixeldEdx->assign(likelihoods.begin(),likelihoods.end()); - } - } - // electron PID - if(m_doElectronPID || m_storeFullSummary) { - *m_eProbabilityComb = ts.getPID(Trk::eProbabilityComb); - *m_eProbabilityHT = ts.getPID(Trk::eProbabilityHT); - *m_eProbabilityToT = ts.getPID(Trk::eProbabilityToT); - *m_eProbabilityBrem = ts.getPID(Trk::eProbabilityBrem); - } - - return StatusCode::SUCCESS; -} - -void TrackTrackSummaryFillerTool::clearData(){ - - size_t ivar = 0; - for (size_t i = 0; i < TrackSum::nvars; i++) { - const TrackSum::Var& v = TrackSum::vars[i]; - if ((m_typeMask & v.type) || m_storeFullSummary ) { - *m_vars[ivar++] = 0; - } - } - if (m_doHitSum || m_storeFullSummary) *m_nHits = 0; - if (m_doHoleSum || m_storeFullSummary) *m_nHoles = 0; - if (m_doHitPattern || m_storeFullSummary) *m_hitPattern = 0; - if (m_doSiHits || m_storeFullSummary) *m_nSiHits = 0; - if (m_doTRTRatio || m_storeFullSummary) *m_TRTHighTHitsRatio = 0; - if (m_doPixeldEdx || m_storeFullSummary){ - *m_pixeldEdx = 0; - *m_nGoodHitsPixeldEdx = 0; - *m_massPixeldEdx = -1; - m_likelihoodsPixeldEdx->clear(); - } - if (m_doElectronPID || m_storeFullSummary) *m_eProbabilityComb = 0; - if (m_doElectronPID || m_storeFullSummary) *m_eProbabilityHT = 0; - if (m_doElectronPID || m_storeFullSummary) *m_eProbabilityToT = 0; - if (m_doElectronPID || m_storeFullSummary) *m_eProbabilityBrem = 0; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackTrackSummaryFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackTrackSummaryFillerTool.h deleted file mode 100644 index 08c3109e597b89b271989c15f034a080f13c3f16..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrackTrackSummaryFillerTool.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#ifndef INDETD3PDMAKER_TRACKTRACKSUMMARYFILLERTOOL_H -#define INDETD3PDMAKER_TRACKTRACKSUMMARYFILLERTOOL_H - -#include "D3PDMakerUtils/BlockFillerTool.h" -#include "GaudiKernel/ToolHandle.h" -#include <vector> - -namespace Trk{ -class TrackSummary; -} - -namespace D3PD { - -class TrackTrackSummaryFillerTool - : public D3PD::BlockFillerTool<Trk::TrackSummary> -{ -public: - typedef D3PD::BlockFillerTool<Trk::TrackSummary> Base; - - TrackTrackSummaryFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode fill (const Trk::TrackSummary& p); - -private: - - void clearData(); - - // flag to store full info - bool m_storeFullSummary; - - // track summary flags - bool m_doIDHits; - bool m_doIDHoles; - bool m_doIDSharedHits; - bool m_doIDOutliers; - bool m_doPixelInfoPlus; - bool m_doSCTInfoPlus; - bool m_doTRTInfoPlus; - bool m_doInfoPlus; - bool m_doMuonHits; - bool m_doMuonHoles; - bool m_doExpectBLayer; - // extra info flags - bool m_doHitSum; - bool m_doHoleSum; - bool m_doHitPattern; - bool m_doSiHits; - bool m_doTRTRatio; - bool m_doPixeldEdx; - bool m_doElectronPID; - - unsigned int m_typeMask; - - /* NTuple variables: **/ - // hits on track information - int *m_nHits; - int *m_nHoles; - int *m_hitPattern; - int *m_nSiHits; - float *m_TRTHighTHitsRatio; - float *m_TRTHighTOutliersRatio; - float *m_pixeldEdx; - int *m_nGoodHitsPixeldEdx; - float *m_massPixeldEdx; - std::vector<float> *m_likelihoodsPixeldEdx; - float *m_eProbabilityComb; - float *m_eProbabilityHT; - float *m_eProbabilityToT; - float *m_eProbabilityBrem; - - std::vector<int*> m_vars; - -}; // class TrackSummaryFillerTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_TRACKTRACKSUMMARYFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkPrepRawDataGenParticleAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkPrepRawDataGenParticleAssociationTool.cxx deleted file mode 100644 index 7a6f6d647a0086d2645388376ce9070790df7610..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkPrepRawDataGenParticleAssociationTool.cxx +++ /dev/null @@ -1,81 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "TrkPrepRawDataGenParticleAssociationTool.h" - -#include "AthenaKernel/errorcheck.h" - -namespace D3PD { - -TrkPrepRawDataGenParticleAssociationTool::TrkPrepRawDataGenParticleAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ - declareProperty ("MapKey", m_mapKey = "PRD_MultiTruthPixel"); - declareProperty ("StoreBarcode", m_storeBarcode = false); - - book().ignore(); // Avoid coverity warnings. -} - -StatusCode TrkPrepRawDataGenParticleAssociationTool::initialize() -{ - CHECK( Base::initialize() ); - return StatusCode::SUCCESS; -} - - -StatusCode TrkPrepRawDataGenParticleAssociationTool::book () -{ - - CHECK( Base::book() ); - if(m_storeBarcode) CHECK( addVariable ("barcode", m_barcode) ); - - return StatusCode::SUCCESS; -} - -StatusCode TrkPrepRawDataGenParticleAssociationTool::reset(const Trk::PrepRawData& prd){ - - if(m_storeBarcode) m_barcode->clear(); - - const PRD_MultiTruthCollection* prdmap=0; - - if( evtStore()->retrieve(prdmap, m_mapKey).isFailure() ){ - REPORT_MESSAGE (MSG::WARNING) << "Could not retrieve " << m_mapKey; - m_itr = m_end; - return StatusCode::SUCCESS; - } - - Identifier id = prd.identify(); - - std::pair<PRDTruthLink, PRDTruthLink> links = prdmap->equal_range(id); - m_itr = links.first; - m_end = links.second; - - return StatusCode::SUCCESS; -} - -const HepMC::GenParticle *TrkPrepRawDataGenParticleAssociationTool::next (){ - - if(m_itr == m_end) return 0; - - int barcode = 0; - - const HepMC::GenParticle *particle = 0; - - if(m_itr->second.isValid()){ - particle = &(*(m_itr->second)); - barcode = particle->barcode(); - }else{ - particle = &m_dummy; - } - - if(m_storeBarcode) m_barcode->push_back(barcode); - - m_itr++; - - return particle; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkPrepRawDataGenParticleAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkPrepRawDataGenParticleAssociationTool.h deleted file mode 100644 index 98505283c7776f147264ccbb3ce6b5388d0f0bf1..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkPrepRawDataGenParticleAssociationTool.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_TRKPREPRAWDATAGENPARTICLEASSOCIATIONTOOL_H -#define INDETD3PDMAKER_TRKPREPRAWDATAGENPARTICLEASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/MultiAssociationTool.h" - -#include "GaudiKernel/ToolHandle.h" -#include "AtlasHepMC/GenParticle.h" -#include "Identifier/Identifier.h" -#include "TrkTruthData/PRD_MultiTruthCollection.h" -#include "TrkPrepRawData/PrepRawData.h" -#include "InDetPrepRawData/PixelCluster.h" -#include "AthenaKernel/BaseInfo.h" -#include <map> - -SG_BASE(InDet::PixelCluster, Trk::PrepRawData); - -namespace D3PD { - -class TrkPrepRawDataGenParticleAssociationTool - : public MultiAssociationTool<Trk::PrepRawData, HepMC::GenParticle> -{ -public: - typedef MultiAssociationTool<Trk::PrepRawData, HepMC::GenParticle> Base; - typedef std::multimap<Identifier, HepMcParticleLink>::const_iterator PRDTruthLink; - - TrkPrepRawDataGenParticleAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode reset (const Trk::PrepRawData& p); - virtual const HepMC::GenParticle* next(); - -private: - - /* Iterators **/ - PRDTruthLink m_itr; - PRDTruthLink m_end; - - /* StoreGate keys **/ - std::string m_mapKey; - - /* Flags **/ - bool m_storeBarcode; - - /* NTuple variables **/ - std::vector<int> *m_barcode; - - /* Need this in case we match to a null particle before reaching the end **/ - HepMC::GenParticle m_dummy; - -}; // class TrkPrepRawDataGenParticleAssociationTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_TRKPREPRAWDATAGENPARTICLEASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackDetailedTruthAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackDetailedTruthAssociationTool.cxx deleted file mode 100644 index 5fccc41bd2dbb33f8e5716e197308ab189ea4f8f..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackDetailedTruthAssociationTool.cxx +++ /dev/null @@ -1,137 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "TrkTrackDetailedTruthAssociationTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "AtlasHepMC/GenParticle.h" -#include "TrkTrack/Track.h" -#include "TrkTrack/TrackCollection.h" -#include "TrkTruthData/DetailedTrackTruthCollection.h" -#include <map> - -namespace D3PD { - -TrkTrackDetailedTruthAssociationTool::TrkTrackDetailedTruthAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ - declareProperty ("MapKey", m_TruthMap = "DetailedTrackTruthMap"); - declareProperty ("SGKey", m_TrkContainer = "Tracks"); - - book().ignore(); // Avoid coverity warnings. -} - - -StatusCode TrkTrackDetailedTruthAssociationTool::initialize() -{ - CHECK( Base::initialize() ); - return StatusCode::SUCCESS; -} - - -StatusCode TrkTrackDetailedTruthAssociationTool::book () -{ - - CHECK( Base::book() ); - - CHECK( addVariable ("nCommonPixHits", m_npixhits_common) ); - CHECK( addVariable ("nCommonSCTHits", m_nscthits_common) ); - CHECK( addVariable ("nCommonTRTHits", m_ntrthits_common) ); - - CHECK( addVariable ("nRecoPixHits", m_npixhits_reco) ); - CHECK( addVariable ("nRecoSCTHits", m_nscthits_reco) ); - CHECK( addVariable ("nRecoTRTHits", m_ntrthits_reco) ); - - CHECK( addVariable ("nTruthPixHits", m_npixhits_truth) ); - CHECK( addVariable ("nTruthSCTHits", m_nscthits_truth) ); - CHECK( addVariable ("nTruthTRTHits", m_ntrthits_truth) ); - - CHECK( addVariable ("barcode", m_barcode) ); - - return StatusCode::SUCCESS; -} - -StatusCode TrkTrackDetailedTruthAssociationTool::invalidate(StatusCode sc){ - - m_itr = m_end; - return sc; -} - -StatusCode TrkTrackDetailedTruthAssociationTool::reset(const Trk::Track& track){ - - /// Get Track and TrackTruth Collections - - // -- TrkTracks: - const TrackCollection* tc; - StatusCode sc = evtStore()->retrieve(tc, m_TrkContainer); - if(sc.isFailure() || !tc) { - REPORT_MESSAGE (MSG::WARNING) << "Could not retrieve: " << m_TrkContainer; - return invalidate(StatusCode::SUCCESS); - } - // -- TrkTrackDetailedTruth: - const DetailedTrackTruthCollection* tm = nullptr; - sc = evtStore()->retrieve(tm, m_TruthMap); - if(sc.isFailure() || !tm) { - REPORT_MESSAGE (MSG::WARNING) << "Could not retrieve: " << m_TruthMap; - return invalidate(StatusCode::SUCCESS); - } - - ElementLink<TrackCollection> tlink; - tlink.setElement(&track); - tlink.setStorableObject(*tc); - DetailedTrackTruthCollection::const_iterator found = tm->find(tlink); - - if(found==tm->end()){ - return invalidate(StatusCode::SUCCESS); - } - - Range range = tm->equal_range(found->first); - - m_itr = range.first; - m_end = range.second; - - return StatusCode::SUCCESS; -} - -const HepMC::GenParticle *TrkTrackDetailedTruthAssociationTool::next () -{ - - if(m_itr==m_end) return 0; - - const DetailedTrackTruth dtt = m_itr->second; - m_itr++; - - *m_npixhits_common = dtt.statsCommon()[SubDetHitStatistics::Pixel]; - *m_nscthits_common = dtt.statsCommon()[SubDetHitStatistics::SCT]; - *m_ntrthits_common = dtt.statsCommon()[SubDetHitStatistics::TRT]; - - *m_npixhits_reco = dtt.statsTrack()[SubDetHitStatistics::Pixel]; - *m_nscthits_reco = dtt.statsTrack()[SubDetHitStatistics::SCT]; - *m_ntrthits_reco = dtt.statsTrack()[SubDetHitStatistics::TRT]; - - *m_npixhits_truth = dtt.statsTruth()[SubDetHitStatistics::Pixel]; - *m_nscthits_truth = dtt.statsTruth()[SubDetHitStatistics::SCT]; - *m_ntrthits_truth = dtt.statsTruth()[SubDetHitStatistics::TRT]; - - const HepMcParticleLink& link = *(dtt.trajectory().rbegin()); - - const HepMC::GenParticle* particle; - if(!link.isValid()){ - particle = &m_dummy; - *m_barcode = -1; - }else{ - *m_barcode = link.barcode(); - particle = link.cptr(); - } - - if(!particle){ - REPORT_MESSAGE (MSG::WARNING) << "Pointer to particle is not valid"; - } - - return particle; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackDetailedTruthAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackDetailedTruthAssociationTool.h deleted file mode 100644 index ca8b925d3824e4de0350982dbb63c9965439e95e..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackDetailedTruthAssociationTool.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMaker_TRKTRACKDETAILEDTRUTHASSOCIATIONTOOL_H -#define INDETD3PDMaker_TRKTRACKDETAILEDTRUTHASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/MultiAssociationTool.h" - -#include "GaudiKernel/AlgTool.h" -#include "GaudiKernel/ToolHandle.h" - -#include "StoreGate/StoreGateSvc.h" -#include "TrkTruthData/DetailedTrackTruthCollection.h" -#include "AtlasHepMC/GenParticle.h" -#include <vector> - -namespace Trk { -class Track; -} - -namespace D3PD { - -class TrkTrackDetailedTruthAssociationTool - : public MultiAssociationTool<Trk::Track, HepMC::GenParticle> -{ -public: - typedef MultiAssociationTool<Trk::Track, HepMC::GenParticle> Base; - typedef std::pair<DetailedTrackTruthCollection::const_iterator,DetailedTrackTruthCollection::const_iterator> Range; - - TrkTrackDetailedTruthAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode reset (const Trk::Track& p); - virtual const HepMC::GenParticle* next(); - -private: - - StatusCode invalidate(StatusCode); - - DetailedTrackTruthCollection::const_iterator m_itr; - DetailedTrackTruthCollection::const_iterator m_end; - - /* StoreGate keys **/ - std::string m_TruthMap; - std::string m_TrkContainer; - - /* NTuple variables **/ - int* m_npixhits_common; - int* m_nscthits_common; - int* m_ntrthits_common; - - int* m_npixhits_reco; - int* m_nscthits_reco; - int *m_ntrthits_reco; - - int *m_npixhits_truth; - int *m_nscthits_truth; - int *m_ntrthits_truth; - - int *m_barcode; - - HepMC::GenParticle m_dummy; - -}; // class TrkTrackDetailedTruthAssociationTool - -} // namespace D3PD - -#endif // not INDETD3PDMaker_TRKTRACKDETAILEDTRUTHASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackFitQualityAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackFitQualityAssociationTool.cxx deleted file mode 100644 index 67d0d4f6ca5da187613815d0db20fea20001b805..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackFitQualityAssociationTool.cxx +++ /dev/null @@ -1,45 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: TrkTrackFitQualityAssociationTool.cxx 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/TrkTrackFitQualityAssociationTool.cxx - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a TrkTrack to its FitQuality. - */ - -#include "TrkTrackFitQualityAssociationTool.h" - -#include "TrkTrack/Track.h" -#include "TrkEventPrimitives/FitQuality.h" - -namespace D3PD { - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -TrkTrackFitQualityAssociationTool::TrkTrackFitQualityAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ -} - -/** - * @brief Return the target object. - * @param track The source object for the association. - * - * Return the target of the association, or 0. - */ -const Trk::FitQuality *TrkTrackFitQualityAssociationTool::get (const Trk::Track& track) -{ - return track.fitQuality(); -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackFitQualityAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackFitQualityAssociationTool.h deleted file mode 100644 index d2e2c507ce87c54273c34ee2cc4c8a8d94643230..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackFitQualityAssociationTool.h +++ /dev/null @@ -1,60 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: TrkTrackFitQualityAssociationTool.h 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/TrkTrackFitQualityAssociationTool.h - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a TrkTrack to its FitQuality. - */ -#ifndef INDETD3PDMaker_TRKTRACKFITQUALITYASSOCIATIONTOOL_H -#define INDETD3PDMaker_TRKTRACKFITQUALITYASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/SingleAssociationTool.h" - -namespace Trk { - class Track; - class FitQuality; -} - -namespace D3PD { - -/** - * @brief Associate from a Trk::Track to its FitQuality. - */ -class TrkTrackFitQualityAssociationTool - : public SingleAssociationTool<Trk::Track, Trk::FitQuality> -{ -public: - typedef SingleAssociationTool<Trk::Track, Trk::FitQuality> Base; - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - TrkTrackFitQualityAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - /** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ - virtual const Trk::FitQuality* get (const Trk::Track& p); -}; - - -} // namespace D3PD - - - -#endif // not INDETD3PDMaker_TRKTRACKFITQUALITYASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackGetterTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackGetterTool.cxx deleted file mode 100644 index da0f03bdfb14b16a780fbf9017d8b3646536995e..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackGetterTool.cxx +++ /dev/null @@ -1,100 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "TrkTrackGetterTool.h" -#include "VxVertex/VxContainer.h" -#include "VxVertex/VxCandidate.h" -#include "VxVertex/PrimaryVertexSelector.h" - - -namespace D3PD { - -TrkTrackGetterTool::TrkTrackGetterTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent), - m_vertex(0), - m_hasVertex(0), - m_trackSelector("") -{ - declareProperty ("VertexSGKey", m_vxCandidateSGKey = "VxPrimaryCandidate"); - declareProperty("TrackSelector", m_trackSelector); -} - -StatusCode TrkTrackGetterTool::initialize() -{ - - CHECK( Base::initialize() ); - - CHECK( m_trackSelector.retrieve() ); - - return StatusCode::SUCCESS; -} - -StatusCode TrkTrackGetterTool::reset(bool allowMissing) -{ - - // tracks - const TrackCollection* tracks = get(allowMissing); - - if (!tracks) { - m_trkItr = m_trkEnd; - if(allowMissing){ - return StatusCode::SUCCESS; - }else{ - return StatusCode::FAILURE; - } - } - - m_trkItr = tracks->begin(); - m_trkEnd = tracks->end(); - - // primary vertex - const VxContainer* vxContainer = 0; - StatusCode sc = evtStore()->retrieve(vxContainer, m_vxCandidateSGKey); - if (sc.isFailure() || !vxContainer) { - REPORT_MESSAGE (MSG::WARNING) << "Could not retrieve primary vertex container: " << m_vxCandidateSGKey; - m_hasVertex = false; - }else{ - // use the primary vertex selector function - m_vertex = PrimaryVertexSelector(*vxContainer); - if (! m_vertex){ - REPORT_MESSAGE (MSG::WARNING) << "No primary vertices reconstructed"; - m_hasVertex = false; - } else - m_hasVertex = true; - } - - return StatusCode::SUCCESS; -} - -const void* TrkTrackGetterTool::nextUntyped() -{ - - const Trk::Track* track = 0; - - do{ - - if(m_trkItr == m_trkEnd){ - return 0; - } - - track = *(m_trkItr); - m_trkItr++; - - } while(!track || !selectTrack(track)); - - return track; -} - -bool TrkTrackGetterTool::selectTrack(const Trk::Track *track) -{ - - if(!m_hasVertex) return false; - - return m_trackSelector->decision(*track, &(m_vertex->recVertex())); -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackGetterTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackGetterTool.h deleted file mode 100644 index 538c70f67ec6087274531c8d441250094a3e8b4f..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackGetterTool.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_TRKTRACKGETTERTOOL_H -#define INDETD3PDMAKER_TRKTRACKGETTERTOOL_H - -#include "D3PDMakerUtils/SGCollectionGetterTool.h" -#include "TrkTrack/Track.h" -#include "TrkTrack/TrackCollection.h" -#include "TrkToolInterfaces/ITrackSelectorTool.h" -#include "GaudiKernel/ToolHandle.h" - -namespace Trk { - class VxCandidate; -} - -namespace D3PD { - -class TrkTrackGetterTool - : public D3PD::SGCollectionGetterTool<TrackCollection> -{ -public: - typedef D3PD::SGCollectionGetterTool<TrackCollection> Base; - - TrkTrackGetterTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - StatusCode initialize(); - StatusCode reset(bool=false); - const void* nextUntyped(); - -private: - - /* apply track selection */ - bool selectTrack(const Trk::Track *track); - - /* iterators **/ - TrackCollection::const_iterator m_trkItr; - TrackCollection::const_iterator m_trkEnd; - - /* for primary vertex **/ - std::string m_vxCandidateSGKey; - const Trk::VxCandidate *m_vertex; - bool m_hasVertex; - - /* track selector **/ - ToolHandle< Trk::ITrackSelectorTool > m_trackSelector; - -}; // class TrkTrackGetterTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_TRKTRACKGETTERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackInfoAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackInfoAssociationTool.cxx deleted file mode 100644 index d4697390b4a1f7e69e68ffe4649fecc283e4727f..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackInfoAssociationTool.cxx +++ /dev/null @@ -1,45 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: TrkTrackInfoAssociationTool.cxx 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/TrkTrackInfoAssociationTool.cxx - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a TrkTrack to its Info. - */ - -#include "TrkTrackInfoAssociationTool.h" - -#include "TrkTrack/TrackInfo.h" -#include "TrkTrack/Track.h" - -namespace D3PD { - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -TrkTrackInfoAssociationTool::TrkTrackInfoAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ -} - -/** - * @brief Return the target object. - * @param track The source object for the association. - * - * Return the target of the association, or 0. - */ -const Trk::TrackInfo *TrkTrackInfoAssociationTool::get (const Trk::Track& track) -{ - return &track.info(); -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackInfoAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackInfoAssociationTool.h deleted file mode 100644 index 13ef718d2e23ea5d7efdeb3296ac585a5b9c8f16..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackInfoAssociationTool.h +++ /dev/null @@ -1,60 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: TrkTrackInfoAssociationTool.h 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/TrkTrackInfoAssociationTool.h - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a TrkTrack to its TrackInfo. - */ -#ifndef INDETD3PDMaker_TRKTRACKINFOASSOCIATIONTOOL_H -#define INDETD3PDMaker_TRKTRACKINFOASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/SingleAssociationTool.h" - -namespace Trk { - class Track; - class TrackInfo; -} - -namespace D3PD { - -/** - * @brief Associate from a TrkTrack to its TrackInfo. - */ -class TrkTrackInfoAssociationTool - : public SingleAssociationTool<Trk::Track, Trk::TrackInfo> -{ -public: - typedef SingleAssociationTool<Trk::Track, Trk::TrackInfo> Base; - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - TrkTrackInfoAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - /** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ - virtual const Trk::TrackInfo* get (const Trk::Track& p); -}; - - -} // namespace D3PD - - - -#endif // not INDETD3PDMaker_TRKTRACKINFOASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackParametersAtBLFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackParametersAtBLFillerTool.cxx deleted file mode 100644 index 266c60d86707d6156b836d7a395fa929aba8a145..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackParametersAtBLFillerTool.cxx +++ /dev/null @@ -1,143 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#include "TrkTrackParametersAtBLFillerTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "TrkParameters/TrackParameters.h" -#include "TrkTrack/Track.h" - -namespace D3PD { - - -TrkTrackParametersAtBLFillerTool::TrkTrackParametersAtBLFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : D3PD::BlockFillerTool<Trk::Track> (type, name, parent), - m_trackToVertexTool("Reco::TrackToVertex") -{ - m_levelOfDetails = 10; - m_fillThetaAndQoverP = true; - book().ignore(); // Avoid coverity warnings. - - declareProperty ("FillThetaAndQoverP", m_fillThetaAndQoverP=true); - declareProperty ("DefaultValue", m_defaultValue=0, - "Default value to which to set unfilled variables."); - declareProperty ("TrackToVertexTool", m_trackToVertexTool); - declareProperty ("levelOfDetails", m_levelOfDetails); -} - -StatusCode TrkTrackParametersAtBLFillerTool::initialize() -{ - CHECK( D3PD::BlockFillerTool<Trk::Track>::initialize() ); - CHECK( m_trackToVertexTool.retrieve() ); - return StatusCode::SUCCESS; -} - -StatusCode TrkTrackParametersAtBLFillerTool::book() -{ - // track parameters at perigee - if(m_levelOfDetails > 0) { - CHECK( addVariable ("d0_wrtBL", m_d0, "", m_defaultValue) ); - CHECK( addVariable ("z0_wrtBL", m_z0, "", m_defaultValue) ); - CHECK( addVariable ("phi_wrtBL", m_phi, "", m_defaultValue) ); - if(m_fillThetaAndQoverP) { - CHECK( addVariable ("theta_wrtBL", m_theta, "", m_defaultValue) ); - CHECK( addVariable ("qoverp_wrtBL", m_qoverp, "", m_defaultValue) ); - } - - if(m_levelOfDetails > 1) { - - CHECK( addVariable ("d0_err_wrtBL", m_d0_err, "", m_defaultValue) ); - CHECK( addVariable ("z0_err_wrtBL", m_z0_err, "", m_defaultValue) ); - CHECK( addVariable ("phi_err_wrtBL", m_phi_err, "", m_defaultValue) ); - CHECK( addVariable ("theta_err_wrtBL", m_theta_err, "", m_defaultValue) ); - CHECK( addVariable ("qoverp_err_wrtBL", m_qoverp_err, "", m_defaultValue) ); - - if(m_levelOfDetails > 2) { - - CHECK( addVariable ("d0_z0_err_wrtBL", m_d0_z0_err_wrtBL, "", m_defaultValue) ); - CHECK( addVariable ("d0_phi_err_wrtBL", m_d0_phi_err_wrtBL, "", m_defaultValue) ); - CHECK( addVariable ("d0_theta_err_wrtBL", m_d0_theta_err_wrtBL, "", m_defaultValue) ); - CHECK( addVariable ("d0_qoverp_err_wrtBL", m_d0_qoverp_err_wrtBL, "", m_defaultValue) ); - CHECK( addVariable ("z0_phi_err_wrtBL", m_z0_phi_err_wrtBL, "", m_defaultValue) ); - CHECK( addVariable ("z0_theta_err_wrtBL", m_z0_theta_err_wrtBL, "", m_defaultValue) ); - CHECK( addVariable ("z0_qoverp_err_wrtBL", m_z0_qoverp_err_wrtBL, "", m_defaultValue) ); - CHECK( addVariable ("phi_theta_err_wrtBL", m_phi_theta_err_wrtBL, "", m_defaultValue) ); - CHECK( addVariable ("phi_qoverp_err_wrtBL", m_phi_qoverp_err_wrtBL, "", m_defaultValue) ); - CHECK( addVariable ("theta_qoverp_err_wrtBL", m_theta_qoverp_err_wrtBL, "", m_defaultValue) ); - } - } - } - - return StatusCode::SUCCESS; -} - -StatusCode TrkTrackParametersAtBLFillerTool::fill (const Trk::Track& track) -{ - - if(m_levelOfDetails > 0) { - - // call the TrackToVertex Tool - const InDet::BeamSpotData* bsd = m_trackToVertexTool->GetBeamSpotData (Gaudi::Hive::currentContext()); - std::unique_ptr<Trk::StraightLineSurface> bl = - m_trackToVertexTool->GetBeamLine (bsd); - const Trk::TrackParameters* ataline = m_trackToVertexTool->trackAtBeamline (track, bl.get()); - - if(!ataline) { -#if 0 - if(track.perigeeParameters()) { - REPORT_MESSAGE (MSG::DEBUG) << "Failed to extrapolate to beam line track of: " - << "pt = " << track.perigeeParameters()->pT() << " - " - << "eta = " << track.perigeeParameters()->eta() << " - " - << "phi = " << track.perigeeParameters()->parameters()[Trk::phi0]; - }else{ - REPORT_MESSAGE (MSG::DEBUG) << "Failed to extrapolate to beam line track with no valid perigee"; - } -#endif - return StatusCode::SUCCESS; - } - - *m_d0 = ataline->parameters()[Trk::d0]; - *m_z0 = ataline->parameters()[Trk::z0]; - *m_phi = ataline->parameters()[Trk::phi0]; - if(m_fillThetaAndQoverP){ - *m_theta = ataline->parameters()[Trk::theta]; - *m_qoverp = ataline->parameters()[Trk::qOverP]; - } - - const AmgSymMatrix(5)* err = ataline->covariance(); - - if(m_levelOfDetails > 1 && err) { - - - *m_d0_err = sqrt((*err)(Trk::d0,Trk::d0)); - *m_z0_err = sqrt((*err)(Trk::z0,Trk::z0)); - *m_phi_err = sqrt((*err)(Trk::phi0,Trk::phi0)); - *m_theta_err = sqrt((*err)(Trk::theta,Trk::theta)); - *m_qoverp_err = sqrt((*err)(Trk::qOverP,Trk::qOverP)); - - if(m_levelOfDetails > 2) { - - *m_d0_z0_err_wrtBL =(*err)(Trk::d0, Trk::z0); - *m_d0_phi_err_wrtBL =(*err)(Trk::d0, Trk::phi0); - *m_d0_theta_err_wrtBL =(*err)(Trk::d0, Trk::theta); - *m_d0_qoverp_err_wrtBL =(*err)(Trk::d0, Trk::qOverP); - *m_z0_phi_err_wrtBL =(*err)(Trk::z0, Trk::phi0); - *m_z0_theta_err_wrtBL =(*err)(Trk::z0, Trk::theta); - *m_z0_qoverp_err_wrtBL =(*err)(Trk::z0, Trk::qOverP); - *m_phi_theta_err_wrtBL =(*err)(Trk::phi0, Trk::theta); - *m_phi_qoverp_err_wrtBL =(*err)(Trk::phi0, Trk::qOverP); - *m_theta_qoverp_err_wrtBL =(*err)(Trk::theta, Trk::qOverP); - } - } - - delete ataline; - } - - return StatusCode::SUCCESS; -} - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackParametersAtBLFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackParametersAtBLFillerTool.h deleted file mode 100644 index f770aff43af63a6a1f15bbe8134d6b2797f89d27..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackParametersAtBLFillerTool.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMaker_TRKTRACKPARAMETERSATBLFILLERTOOL_H -#define INDETD3PDMaker_TRKTRACKPARAMETERSATBLFILLERTOOL_H - -#include "D3PDMakerUtils/BlockFillerTool.h" -#include "GaudiKernel/ToolHandle.h" -#include "ITrackToVertex/ITrackToVertex.h" - -namespace Trk{ -class Track; -} - -namespace D3PD { - -class TrkTrackParametersAtBLFillerTool - : public D3PD::BlockFillerTool<Trk::Track> -{ -public: - TrkTrackParametersAtBLFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - virtual StatusCode initialize(); - - virtual StatusCode book(); - - virtual StatusCode fill (const Trk::Track &p); - -private: - - bool m_fillThetaAndQoverP; - int m_levelOfDetails; - - /// Parameter: Value to which to set variables if they don't get filled. - float m_defaultValue; - - /* NTuple variables: **/ - // track parameters at perigee - float *m_d0; - float *m_z0; - float *m_phi; - float *m_theta; - float *m_qoverp; - - float *m_d0_err; - float *m_z0_err; - float *m_phi_err; - float *m_theta_err; - float *m_qoverp_err; - - float *m_d0_z0_err_wrtBL; - float *m_d0_phi_err_wrtBL; - float *m_d0_theta_err_wrtBL; - float *m_d0_qoverp_err_wrtBL; - float *m_z0_phi_err_wrtBL; - float *m_z0_theta_err_wrtBL; - float *m_z0_qoverp_err_wrtBL; - float *m_phi_theta_err_wrtBL; - float *m_phi_qoverp_err_wrtBL; - float *m_theta_qoverp_err_wrtBL; - - /* Track to vertex extrapolator **/ - ToolHandle<Reco::ITrackToVertex> m_trackToVertexTool; - -}; // class TrkTrackParametersAtBLFillerTool - -} // namespace D3PD - -#endif // not INDETD3PDMaker_TRKTRACKPARAMETERSATBLFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackPerigeeAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackPerigeeAssociationTool.cxx deleted file mode 100644 index 175154a92d1c837ab96c6e6c32d7ae39a4d13c2b..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackPerigeeAssociationTool.cxx +++ /dev/null @@ -1,44 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: TrkTrackPerigeeAssociationTool.cxx 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/TrkTrackPerigeeAssociationTool.cxx - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a TrkTrack to its default Perigee. - */ - -#include "TrkTrackPerigeeAssociationTool.h" - -#include "TrkTrack/Track.h" - -namespace D3PD { - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -TrkTrackPerigeeAssociationTool::TrkTrackPerigeeAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ -} - -/** - * @brief Return the target object. - * @param track The source object for the association. - * - * Return the target of the association, or 0. - */ -const Trk::Perigee *TrkTrackPerigeeAssociationTool::get (const Trk::Track& track) -{ - return track.perigeeParameters(); -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackPerigeeAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackPerigeeAssociationTool.h deleted file mode 100644 index dcd65d3cce9573f8c8c32bda216295ed9970dc79..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackPerigeeAssociationTool.h +++ /dev/null @@ -1,61 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: TrkTrackPerigeeAtOOAssociationTool.h 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/TrkTrackPerigeeAssociationTool.h - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a TrkTrack to its default Perigee. - */ -#ifndef INDETD3PDMaker_TRKTRACKPERIGEEASSOCIATIONTOOL_H -#define INDETD3PDMaker_TRKTRACKPERIGEEASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/SingleAssociationTool.h" -#include "TrkParameters/TrackParameters.h" - - -namespace Trk { - class Track; -} - -namespace D3PD { - -/** - * @brief Associate from a TrkTrack to its default Perigee. - */ -class TrkTrackPerigeeAssociationTool - : public SingleAssociationTool<Trk::Track, Trk::Perigee> -{ -public: - typedef SingleAssociationTool<Trk::Track, Trk::Perigee> Base; - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - TrkTrackPerigeeAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - /** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ - virtual const Trk::Perigee* get (const Trk::Track& p); -}; - - -} // namespace D3PD - - - -#endif // not INDETD3PDMaker_TRKTRACKPERIGEEASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackPerigeeAtBSAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackPerigeeAtBSAssociationTool.cxx deleted file mode 100644 index 5a4762353643fc4f9cc3672420e052a111ffad50..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackPerigeeAtBSAssociationTool.cxx +++ /dev/null @@ -1,92 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: TrkTrackPerigeeAtBSAssociationTool.cxx 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/TrkTrackPerigeeAtBSAssociationTool.cxx - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a TrkTrack to its perigee at the beam spot. - */ - -#include "TrkTrackPerigeeAtBSAssociationTool.h" - -#include "TrkTrack/Track.h" -#include "AthenaKernel/errorcheck.h" - -namespace D3PD { - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -TrkTrackPerigeeAtBSAssociationTool::TrkTrackPerigeeAtBSAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent), - m_iBeamCondSvc(0), - m_trackToVertexTool("Reco::TrackToVertex") -{ - declareProperty ("TrackToVertexTool", m_trackToVertexTool); - declareProperty("BeamCondSvcName", m_beamCondSvcName = "BeamCondSvc"); -} - -StatusCode TrkTrackPerigeeAtBSAssociationTool::initialize(){ - - CHECK( Base::initialize() ); - - // Pick up the BeamConditionService - StatusCode sc = service(m_beamCondSvcName, m_iBeamCondSvc); - if (sc.isFailure() || m_iBeamCondSvc == 0) { - REPORT_MESSAGE (MSG::WARNING) << "Could not find BeamCondSvc: " << m_beamCondSvcName; - REPORT_MESSAGE (MSG::WARNING) << "Will use nominal beamspot at (0,0,0)"; - } - - // Pick up the TrackToVertex tool - sc = m_trackToVertexTool.retrieve(); - if(sc.isFailure()){ - REPORT_MESSAGE (MSG::ERROR) << "Could not retrieve TrackToVertexTool"; - return StatusCode::FAILURE; - } - - return StatusCode::SUCCESS; -} - -/** - * @brief Return the target object. - * @param track The source object for the association. - * - * Return the target of the association, or 0. - */ -const Trk::TrackParameters *TrkTrackPerigeeAtBSAssociationTool::get (const Trk::Track& track) -{ - - /// Pick up the beamspot - Amg::Vector3D beamSpot(0,0,0); - if (m_iBeamCondSvc) { - beamSpot = m_iBeamCondSvc->beamVtx().position(); - } - const Trk::TrackParameters *perigee = m_trackToVertexTool->perigeeAtVertex(track, beamSpot); - - return perigee; -} - -/** - * @brief Release an object retrieved from the association. - * @param p The object to release. - * - * Call this when you are done with the object returned by - * @c get(). The default implementation is a no-op, - * but if the association dynamically allocates the object which - * it returned, this gives it a chance to free it. - */ -void TrkTrackPerigeeAtBSAssociationTool::releaseObject (const Trk::TrackParameters* p) -{ - if(p) delete p; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackPerigeeAtBSAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackPerigeeAtBSAssociationTool.h deleted file mode 100644 index 72c2ec12018b514b116ad3e5b3a803a914d187e8..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackPerigeeAtBSAssociationTool.h +++ /dev/null @@ -1,77 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: TrkTrackPerigeeAtBSAssociationTool.h 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/TrkTrackPerigeeAtBSAssociationTool.h - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a TrkTrack to its perigee at the beam spot. - */ -#ifndef INDETD3PDMaker_TRKTRACKPERIGEEATBSASSOCIATIONTOOL_H -#define INDETD3PDMaker_TRKTRACKPERIGEEATBSASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/SingleAssociationTool.h" -#include "ITrackToVertex/ITrackToVertex.h" -#include "GaudiKernel/ToolHandle.h" -#include "InDetBeamSpotService/IBeamCondSvc.h" -#include "TrkParameters/TrackParameters.h" -#include <vector> - -namespace Trk { - class Track; -} - -namespace D3PD { - -/** - * @brief Associate from a VxCandidate to its perigee at the beam spot. - */ -class TrkTrackPerigeeAtBSAssociationTool - : public SingleAssociationTool<Trk::Track, Trk::TrackParameters> -{ -public: - typedef SingleAssociationTool<Trk::Track, Trk::TrackParameters> Base; - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - TrkTrackPerigeeAtBSAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - StatusCode initialize(); - - /** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ - virtual const Trk::TrackParameters* get (const Trk::Track& p); - virtual void releaseObject (const Trk::TrackParameters* p); - - private: - - /* the beam condition service **/ - IBeamCondSvc* m_iBeamCondSvc; - std::string m_beamCondSvcName; - - /* Track to vertex extrapolator **/ - ToolHandle<Reco::ITrackToVertex> m_trackToVertexTool; - -}; - - -} // namespace D3PD - - - -#endif // not INDETD3PDMaker_TRKTRACKPERIGEEATBSASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackPerigeeAtPVAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackPerigeeAtPVAssociationTool.cxx deleted file mode 100644 index 066d1a107beea0136811b3e740aeb0e5ff1d5619..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackPerigeeAtPVAssociationTool.cxx +++ /dev/null @@ -1,87 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: TrkTrackPerigeeAtPVAssociationTool.cxx 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/TrkTrackPerigeeAtPVAssociationTool.cxx - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a TrkTrack to its perigee at PV. - */ - -#include "TrkTrackPerigeeAtPVAssociationTool.h" - -#include "TrkTrack/Track.h" -#include "AthenaKernel/errorcheck.h" -#include "VxVertex/VxCandidate.h" -#include "VxVertex/VxContainer.h" - -namespace D3PD { - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -TrkTrackPerigeeAtPVAssociationTool::TrkTrackPerigeeAtPVAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent), - m_trackToVertexTool("Reco::TrackToVertex") -{ - declareProperty ("SGKey", m_vxCandidate = "VxPrimaryCandidate"); - declareProperty ("TrackToVertexTool", m_trackToVertexTool); -} - -StatusCode TrkTrackPerigeeAtPVAssociationTool::initialize() -{ - CHECK( Base::initialize() ); - CHECK( m_trackToVertexTool.retrieve() ); - return StatusCode::SUCCESS; -} - -/** - * @brief Return the target object. - * @param track The source object for the association. - * - * Return the target of the association, or 0. - */ -const Trk::TrackParameters *TrkTrackPerigeeAtPVAssociationTool::get (const Trk::Track& track) -{ - - const VxContainer* vxContainer = 0; - StatusCode sc = evtStore()->retrieve(vxContainer, m_vxCandidate); - if (sc.isFailure() || !vxContainer) { - REPORT_MESSAGE (MSG::WARNING) << "Could not retrieve primary vertex container: " << m_vxCandidate; - return 0; - } - - if(vxContainer->size()<1){ - REPORT_MESSAGE (MSG::WARNING) << "No primary vertices reconstructed"; - return 0; - } - - VxContainer::const_iterator vxI = vxContainer->begin(); - const Trk::TrackParameters* perigee = m_trackToVertexTool->perigeeAtVertex(track, (*vxI)->recVertex().position()); - - return perigee; -} - -/** - * @brief Release an object retrieved from the association. - * @param p The object to release. - * - * Call this when you are done with the object returned by - * @c get(). The default implementation is a no-op, - * but since the association dynamically allocates the object which - * it returned, this gives it a chance to free it. - */ -void TrkTrackPerigeeAtPVAssociationTool::releaseObject (const Trk::TrackParameters* p) -{ - if(p) delete p; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackPerigeeAtPVAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackPerigeeAtPVAssociationTool.h deleted file mode 100644 index d01ea53640d6c3cc4d56cb5b6d5c561b02b358f5..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackPerigeeAtPVAssociationTool.h +++ /dev/null @@ -1,75 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: TrkTrackPerigeeAtPVAssociationTool.h 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/TrkTrackPerigeeAtPVAssociationTool.h - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a TrkTrack to its perigee at PV. - */ -#ifndef INDETD3PDMaker_TRKTRACKPERIGEEATPVASSOCIATIONTOOL_H -#define INDETD3PDMaker_TRKTRACKPERIGEEATPVASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/SingleAssociationTool.h" -#include "ITrackToVertex/ITrackToVertex.h" -#include "GaudiKernel/ToolHandle.h" -#include "TrkParameters/TrackParameters.h" -#include <vector> - -namespace Trk { - class Track; -} - -namespace D3PD { - -/** - * @brief Associate from a TrkTrack to its perigee at PV. - */ -class TrkTrackPerigeeAtPVAssociationTool - : public SingleAssociationTool<Trk::Track, Trk::TrackParameters> -{ -public: - typedef SingleAssociationTool<Trk::Track, Trk::TrackParameters> Base; - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - TrkTrackPerigeeAtPVAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - StatusCode initialize(); - - /** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ - virtual const Trk::TrackParameters* get (const Trk::Track& p); - virtual void releaseObject (const Trk::TrackParameters* p); - - private: - - /* StoreGate keys **/ - std::string m_vxCandidate; - - /* Track to vertex extrapolator **/ - ToolHandle<Reco::ITrackToVertex> m_trackToVertexTool; - -}; - - -} // namespace D3PD - - - -#endif // not INDETD3PDMaker_TRKTRACKPERIGEEATPVASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackTSOAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackTSOAssociationTool.cxx deleted file mode 100644 index 9365b1b9f0ec1820aa445e866bd9b1d6fe7df1e9..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackTSOAssociationTool.cxx +++ /dev/null @@ -1,80 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#include "TrkTrackTSOAssociationTool.h" - -#include "TrkTrack/Track.h" -#include "TrkTrack/TrackStateOnSurface.h" -#include "AthenaKernel/errorcheck.h" -#include "AtlasDetDescr/AtlasDetectorID.h" -#include "InDetIdentifier/PixelID.h" - - -namespace D3PD { - -TrkTrackTSOAssociationTool::TrkTrackTSOAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent), - InDetTSOSAssociationHelper() -{ -// declareProperty("InDetHoleSearchTool", m_idHoleSearch); - for(std::map<std::string, bool>::iterator itr=m_getTypes.begin(); - itr!=m_getTypes.end(); itr++){ - declareProperty(itr->first, itr->second); - } -} - -StatusCode TrkTrackTSOAssociationTool::initialize(){ - - CHECK( Base::initialize() ); - - // if ( !m_idHoleSearch.empty() ) { - // if (m_idHoleSearch.retrieve().isFailure() ) { - // REPORT_MESSAGE (MSG::ERROR) << "Failed to retrieve InDet hole search tool " << m_idHoleSearch; - // return StatusCode::FAILURE; - // } else { - // REPORT_MESSAGE (MSG::INFO) << "Retrieved tool " << m_idHoleSearch; - // m_doHolesInDet = true; - // } - // } - - // need Atlas id-helper to identify sub-detectors, take it from detStore - if (detStore()->retrieve(m_idHelper, "AtlasID").isFailure()) { - REPORT_MESSAGE (MSG::ERROR) << "Could not get AtlasID helper"; - return StatusCode::FAILURE; - } - - // need Pixel helper to identify b-layer TSOS, take it from detStore - if (detStore()->retrieve(m_pixelId, "PixelID").isFailure()) { - REPORT_MESSAGE (MSG::ERROR) << "Could not get PixelID helper"; - return StatusCode::FAILURE; - } - - return StatusCode::SUCCESS; -} - -/** - * @brief Start the iteration for a new association. - * @param p The object from which to associate. - */ -StatusCode TrkTrackTSOAssociationTool::reset (const Trk::Track& p) -{ - - return doReset(p); -} - -/** - * @brief Return a pointer to the next element in the association. - * - * Return 0 when the association has been exhausted. - */ -const Trk::TrackStateOnSurface* TrkTrackTSOAssociationTool::next() -{ - - return getNext(); -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackTSOAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackTSOAssociationTool.h deleted file mode 100644 index 81758568a13347d7b3383415ab93dc28c9b7b17c..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackTSOAssociationTool.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_TRKTRACKTSOASSOCIATIONTOOL_H -#define INDETD3PDMAKER_TRKTRACKTSOASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/MultiAssociationTool.h" -#include "InDetTSOSAssociationHelper.h" - -namespace Trk{ - class Track; - class TrackStateOnSurface; -} - -namespace D3PD { - -class TrkTrackTSOAssociationTool - : public MultiAssociationTool<Trk::Track, Trk::TrackStateOnSurface>, - InDetTSOSAssociationHelper -{ -public: - - typedef MultiAssociationTool<Trk::Track, Trk::TrackStateOnSurface> Base; - - TrkTrackTSOAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - - /** - * @brief Start the iteration for a new association. - * @param p The object from which to associate. - */ - virtual StatusCode reset (const Trk::Track& p); - - /** - * @brief Return a pointer to the next element in the association. - * - * Return 0 when the association has been exhausted. - */ - virtual const Trk::TrackStateOnSurface* next(); - -}; - - -} // namespace D3PD - - -#endif // not INDETD3PDMAKER_TRKTRACKTSOASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackTrackSummaryAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackTrackSummaryAssociationTool.cxx deleted file mode 100644 index 0d63a5628beeb67bfa466cf00402453f0e4fda92..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackTrackSummaryAssociationTool.cxx +++ /dev/null @@ -1,46 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: TrkTrackTrackSummaryAssociationTool.cxx 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/TrkTrackTrackSummaryAssociationTool.cxx - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a TrkTrack to its default TrackSummary. - */ - -#include "TrkTrackTrackSummaryAssociationTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "TrkTrack/Track.h" -#include "TrkTrackSummary/TrackSummary.h" - -namespace D3PD { - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -TrkTrackTrackSummaryAssociationTool::TrkTrackTrackSummaryAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ -} - -/** - * @brief Return the target object. - * @param track The source object for the association. - * - * Return the target of the association, or 0. - */ -const Trk::TrackSummary *TrkTrackTrackSummaryAssociationTool::get (const Trk::Track& track) -{ - return track.trackSummary(); -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackTrackSummaryAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackTrackSummaryAssociationTool.h deleted file mode 100644 index c10c43154b5aea6f478b179450f669a01b60c45f..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackTrackSummaryAssociationTool.h +++ /dev/null @@ -1,63 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: TrkTrackTrackSummaryAssociationTool.h 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/TrkTrackTrackSummaryAssociationTool.h - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a TrkTrack to its TrackSummary. - */ -#ifndef INDETD3PDMaker_TRACKTRACKTRACKSUMMARYASSOCIATIONTOOL_H -#define INDETD3PDMaker_TRACKTRACKTRACKSUMMARYASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/SingleAssociationTool.h" - -namespace Trk { - class TrackSummary; -} - -namespace Trk { - class Track; -} - -namespace D3PD { - -/** - * @brief Associate from a TrkTrack to its TrackSummary. - */ -class TrkTrackTrackSummaryAssociationTool - : public SingleAssociationTool<Trk::Track, Trk::TrackSummary> -{ -public: - typedef SingleAssociationTool<Trk::Track, Trk::TrackSummary> Base; - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - TrkTrackTrackSummaryAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - /** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ - virtual const Trk::TrackSummary* get (const Trk::Track& p); -}; - - -} // namespace D3PD - - - -#endif // not INDETD3PDMaker_TRACKTRACKTRACKSUMMARYASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackTruthAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackTruthAssociationTool.cxx deleted file mode 100644 index f3591a132813f8fe684e1aeec94439ff6041fcc8..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackTruthAssociationTool.cxx +++ /dev/null @@ -1,98 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id$ - -// Gaudi/Athena include(s): -#include "AthenaKernel/errorcheck.h" - -// EDM include(s): -#include "TrkTrack/TrackCollection.h" -#include "TrkTruthData/TrackTruthCollection.h" - -// Local include(s): -#include "TrkTrackTruthAssociationTool.h" - -namespace D3PD { - -TrkTrackTruthAssociationTool::TrkTrackTruthAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ - declareProperty ("MapKey", m_TruthMap = "TrackTruthMap"); - declareProperty ("SGKey", m_TrkContainer = "Tracks"); - - book().ignore(); // Avoid coverity warnings. -} - - -StatusCode TrkTrackTruthAssociationTool::initialize() -{ - - CHECK( Base::initialize() ); - - return StatusCode::SUCCESS; -} - - -StatusCode TrkTrackTruthAssociationTool::book () -{ - CHECK( addVariable ("probability", m_trueProb) ); - CHECK( addVariable ("barcode", m_trueBarcode) ); - - return StatusCode::SUCCESS; -} - - -const HepMC::GenParticle* TrkTrackTruthAssociationTool::get (const Trk::Track& track) -{ - - // Check if the track collection is available: - if( ! evtStore()->contains< TrackCollection >( m_TrkContainer ) ) { - return 0; - } - - // Check if the truth collection is available: - if( ! evtStore()->contains< TrackTruthCollection >( m_TruthMap ) ) { - return 0; - } - - /// Get Track and TrackTruth Collections - /// Should be using Getter tools intead of StoreGate - // -- TrackParticles: - const TrackCollection* tc = 0; - if( evtStore()->retrieve( tc, m_TrkContainer ).isFailure() ) { - REPORT_MESSAGE( MSG::WARNING ) - << "No TrackCollection with SG key \"" << m_TrkContainer - << "\" found, even though StoreGateSvc::contains said it should be there!"; - return 0; - } - // -- TrackTruth: - const TrackTruthCollection* tm = 0; - if( evtStore()->retrieve( tm, m_TruthMap ).isFailure() ) { - REPORT_MESSAGE( MSG::WARNING ) - << "No TrackTruthCollection with SG key \"" << m_TruthMap - << "\" found, even though StoreGateSvc::contains said it should be there!"; - return 0; - } - - const HepMC::GenParticle *particle = 0; - *m_trueProb = 0; - *m_trueBarcode = -1; - - ElementLink<TrackCollection> tlink; - tlink.setElement(&track); - tlink.setStorableObject(*tc); - TrackTruthCollection::const_iterator found = tm->find(tlink); - if(found != tm->end()) { - *m_trueProb = found->second.probability(); - *m_trueBarcode = found->second.particleLink().barcode(); - particle = found->second.particleLink().cptr(); - } - - return particle; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackTruthAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackTruthAssociationTool.h deleted file mode 100644 index bf81fb87d9aede0a96a17379fd0a29f50b18b3a7..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackTruthAssociationTool.h +++ /dev/null @@ -1,48 +0,0 @@ -// Dear emacs, this is -*- c++ -*- - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id$ -#ifndef INDETD3PDMaker_TRKTRACKTRUTHASSOCIATIONTOOL_H -#define INDETD3PDMaker_TRKTRACKTRUTHASSOCIATIONTOOL_H - -// EDM include(s): -#include "TrkTrack/Track.h" -#include "AtlasHepMC/GenParticle.h" - -// D3PDMaker include(s): -#include "D3PDMakerUtils/SingleAssociationTool.h" - -namespace D3PD { - -class TrkTrackTruthAssociationTool - : public SingleAssociationTool<Trk::Track, HepMC::GenParticle> -{ -public: - typedef SingleAssociationTool<Trk::Track, HepMC::GenParticle> Base; - - TrkTrackTruthAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode initialize(); - virtual StatusCode book(); - - virtual const HepMC::GenParticle* get (const Trk::Track& p); - -private: - /* StoreGate keys **/ - std::string m_TruthMap; - std::string m_TrkContainer; - - /* NTuple variables **/ - float* m_trueProb; - int* m_trueBarcode; - -}; // class TrkTrackTruthAssociationTool - -} // namespace D3PD - -#endif // not INDETD3PDMaker_TRKTRACKTRUTHASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackVertexAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackVertexAssociationTool.cxx deleted file mode 100644 index 6ccd90fe99f83a40f65f29925097ca5e9b75c9dd..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackVertexAssociationTool.cxx +++ /dev/null @@ -1,112 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: TrkTrackVertexAssociationTool.cxx 502118 2012-05-23 19:10:19Z ssnyder $ -/** - * @file InDetD3PDMaker/src/TrkTrackVertexAssociationTool.cxx - * @author Remi Zaidan <zaidan@cern.ch> - * @date Mar, 2011 - * @brief Associate from a TrkTrack to its reconstructed vertex. - */ - -#include "AthenaKernel/errorcheck.h" -#include "TrkTrackVertexAssociationTool.h" -#include "TrkTrack/Track.h" -#include "VxVertex/VxCandidate.h" -#include "Particle/TrackParticle.h" -#include <TrkParticleBase/LinkToTrackParticleBase.h> -#include <VxVertex/VxTrackAtVertex.h> - -namespace D3PD { - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -TrkTrackVertexAssociationTool::TrkTrackVertexAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ - declareProperty ("VxSGKey", m_targetSGKey="VxPrimaryCandidate"); - declareProperty ("Fast", m_fast = false); - - book().ignore(); // Avoid coverity warnings. -} - -/** - * @brief Standard Gaudi initialize method. - */ -StatusCode TrkTrackVertexAssociationTool::initialize() -{ - return Base::initialize(); -} - -/** - * @brief book ntuple variables - */ -StatusCode TrkTrackVertexAssociationTool::book(){ - - CHECK( addVariable("weight", m_weight) ); - - return Base::book(); -} - -/** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ -const Trk::VxCandidate *TrkTrackVertexAssociationTool::get (const Trk::Track& p) -{ - - *m_weight = 0; - - const VxContainer* vxContainer = 0; - StatusCode sc = evtStore()->retrieve(vxContainer, m_targetSGKey); - if (sc.isFailure() || !vxContainer) { - REPORT_MESSAGE (MSG::WARNING) << "Could not retrieve primary vertex container: " << m_targetSGKey; - return 0; - } - - int nVx = vxContainer->size(); - if(nVx < 1){ - return 0; - } - - for(int v=0; v<nVx-1; v++){ - const Trk::VxCandidate* vx = vxContainer->at(v); - const std::vector<Trk::VxTrackAtVertex*>* tracks = vx->vxTrackAtVertex(); - int nTracks = 0; - if(tracks) nTracks = tracks->size(); - for(int t=0; t<nTracks; t++) { - Trk::VxTrackAtVertex* track = tracks->at(t); - if(track){ - Trk::ITrackLink* link = track->trackOrParticleLink(); - if (link) { - Trk::LinkToTrackParticleBase* linkToTrackParticle = dynamic_cast<Trk::LinkToTrackParticleBase*>(link); - if(linkToTrackParticle){ - const Trk::TrackParticleBase *particleBase = **linkToTrackParticle; - if(particleBase){ - const Trk::Track *originalTtrack = particleBase->originalTrack(); - if(originalTtrack == &p){ - *m_weight = track->weight(); - return vx; - } - } - } - } - } - } - } - - return vxContainer->at(nVx-1); -} - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackVertexAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackVertexAssociationTool.h deleted file mode 100644 index 25a71f4479a0ccb75530227770cd28865a405ae1..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TrkTrackVertexAssociationTool.h +++ /dev/null @@ -1,73 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: TrkTrackVertexAssociationTool.h 502118 2012-05-23 19:10:19Z ssnyder $ -/** - * @file InDetD3PDMaker/src/TrkTrackVertexAssociationTool.h - * @author Remi Zaidan <zaidan@cern.ch> - * @date Mar, 2011 - * @brief Associate from a Trk::Track to its reconstructed vertex. - */ -#ifndef INDETD3PDMaker_TRKTRACKVERTEXASSOCIATIONTOOL_H -#define INDETD3PDMaker_TRKTRACKVERTEXASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/SingleAssociationTool.h" -#include "StoreGate/StoreGateSvc.h" - -namespace Trk { - class VxCandidate; - class Track; -} - -namespace D3PD { - -/** - * @brief Associate from a TrkTrack to its reconstructed vertex. - */ -class TrkTrackVertexAssociationTool - : public SingleAssociationTool<Trk::Track,Trk::VxCandidate> -{ -public: - typedef SingleAssociationTool<Trk::Track,Trk::VxCandidate> Base; - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - TrkTrackVertexAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - /// Standard Gaudi initialize method. - virtual StatusCode initialize(); - virtual StatusCode book(); - - /** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ - virtual const Trk::VxCandidate* get (const Trk::Track& p); - -private: - - /** SG key for target collection. */ - std::string m_targetSGKey; - - /** needed for common python interface with TrackParticleVertexAssociationTool */ - bool m_fast; - - /** weight of the track at the associated vertex */ - float *m_weight; - -}; // class TrkTrackVertexAssociationTool - -} // namespace D3PD - -#endif // not INDETD3PDMaker_TRKTRACKVERTEXASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthTrackFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthTrackFillerTool.cxx deleted file mode 100644 index 2c3a5484fcd391e9714caa78c1f57ac416e31b83..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthTrackFillerTool.cxx +++ /dev/null @@ -1,122 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#include "TruthTrackFillerTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "AtlasHepMC/GenParticle.h" -#include "AtlasHepMC/GenVertex.h" - -namespace D3PD { - -TruthTrackFillerTool::TruthTrackFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent), - m_particleDataTable(0) -{ - book().ignore(); // Avoid coverity warnings. -} - -StatusCode TruthTrackFillerTool::initialize(){ - - CHECK( Base::initialize() ); - - // Get Particle Data Table - IPartPropSvc* partPropSvc; - StatusCode sc = service("PartPropSvc", partPropSvc, true); - if(sc.isFailure()) { - REPORT_MESSAGE (MSG::ERROR) << "Could not initialize Particle Properties Service"; - return StatusCode::FAILURE; - } - m_particleDataTable = partPropSvc->PDT(); - - return StatusCode::SUCCESS; -} - -StatusCode TruthTrackFillerTool::book() -{ - // truth id - CHECK( addVariable ("charge", m_charge) ); - CHECK( addVariable ("child_n", m_child_n) ); - CHECK( addVariable ("child_barcode", m_child_barcode) ); - CHECK( addVariable ("child_pdg", m_child_pdg) ); - // origin vertex - CHECK( addVariable ("begVtx_x", m_begVtx_x) ); - CHECK( addVariable ("begVtx_y", m_begVtx_y) ); - CHECK( addVariable ("begVtx_z", m_begVtx_z) ); - CHECK( addVariable ("begVtx_barcode", m_begVtx_barcode) ); - // end vertex - CHECK( addVariable ("endVtx_x", m_endVtx_x) ); - CHECK( addVariable ("endVtx_y", m_endVtx_y) ); - CHECK( addVariable ("endVtx_z", m_endVtx_z) ); - CHECK( addVariable ("endVtx_barcode", m_endVtx_barcode) ); - - - return StatusCode::SUCCESS; -} - -StatusCode TruthTrackFillerTool::fill (const HepMC::GenParticle& particle) -{ - - this->clearData(); - - // origin - HepMC::GenVertex *pv = particle.production_vertex(); - if(!pv){ - //REPORT_MESSAGE (MSG::DEBUG) << "Pointer to production vertex is NULL"; - }else{ - *m_begVtx_x = pv->position().x(); - *m_begVtx_y = pv->position().y(); - *m_begVtx_z = pv->position().z(); - *m_begVtx_barcode = pv->barcode(); - } - - int pdg = particle.pdg_id(); - const HepPDT::ParticleData* pdata = m_particleDataTable->particle(HepPDT::ParticleID(abs(pdg))); - if(pdata) { - int sign = pdg/abs(pdg); - *m_charge = sign*pdata->charge(); - } else { - //REPORT_MESSAGE (MSG::DEBUG) << "Pointer to particle data is NULL"; - } - - // end - HepMC::GenVertex *epv = particle.end_vertex(); - if(!epv){ - //REPORT_MESSAGE (MSG::DEBUG) << "Pointer to end vertex is NULL"; - }else{ - *m_endVtx_x = epv->position().x(); - *m_endVtx_y = epv->position().y(); - *m_endVtx_z = epv->position().z(); - *m_endVtx_barcode = epv->barcode(); - *m_child_n = epv->particles_out_size(); - HepMC::GenVertex::particles_out_const_iterator itr = epv->particles_out_const_begin(); - HepMC::GenVertex::particles_out_const_iterator end = epv->particles_out_const_end(); - for(; itr!=end; itr++){ - m_child_barcode->push_back((*itr)->barcode()); - m_child_pdg->push_back((*itr)->pdg_id()); - } - } - - return StatusCode::SUCCESS; -} - -void TruthTrackFillerTool::clearData(){ - - *m_charge = 1; - *m_child_n = 0; - m_child_barcode->clear(); - m_child_pdg->clear(); - *m_begVtx_x = 0; - *m_begVtx_y = 0; - *m_begVtx_z = 0; - *m_endVtx_x = 0; - *m_endVtx_y = 0; - *m_endVtx_z = 0; -} - -} // namespace MinBiasD3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthTrackFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthTrackFillerTool.h deleted file mode 100644 index 47031a8c33e1a60c410f95cbd2dc464b6b8bf3d2..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthTrackFillerTool.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#ifndef INDETD3PDMAKER_TRUTHTRACKFILLERTOOL_H -#define INDETD3PDMAKER_TRUTHTRACKFILLERTOOL_H - -#include "D3PDMakerUtils/BlockFillerTool.h" -#include "GaudiKernel/IPartPropSvc.h" -#include "HepPDT/ParticleDataTable.hh" - -#include "AtlasHepMC/GenParticle_fwd.h" - -namespace D3PD { - -class TruthTrackFillerTool - : public D3PD::BlockFillerTool<HepMC::GenParticle> -{ -public: - typedef D3PD::BlockFillerTool<HepMC::GenParticle> Base; - - TruthTrackFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode fill (const HepMC::GenParticle& p); - -private: - - void clearData(); - - /* Helper used to get the charge of a particle from it's pdgId **/ - const HepPDT::ParticleDataTable* m_particleDataTable; - - /* NTuple variables: **/ - // truth id - float *m_charge; - int *m_child_n; - std::vector<int> *m_child_barcode; - std::vector<int> *m_child_pdg; - // origin vertex - float *m_begVtx_x; - float *m_begVtx_y; - float *m_begVtx_z; - float *m_begVtx_barcode; - // end vertex - float *m_endVtx_x; - float *m_endVtx_y; - float *m_endVtx_z; - float *m_endVtx_barcode; - -}; // class TruthTrackFillerTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_TRUTHTRACKFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthTrackGetterTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthTrackGetterTool.cxx deleted file mode 100644 index 2b68d1d0201bfc9e72f9817c916cfb82408804e8..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthTrackGetterTool.cxx +++ /dev/null @@ -1,202 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#include "TruthTrackGetterTool.h" - -#include "GaudiKernel/IPartPropSvc.h" - -namespace D3PD { - -TruthTrackGetterTool::TruthTrackGetterTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent), - m_particleDataTable(0) -{ - declareProperty("KeepOnlyPrimaryParticles", m_keepOnlyPrimaryParticles = false); - declareProperty("KeepOnlyChargedParticles", m_keepOnlyChargedParticles = true); - declareProperty("KeepV0", m_keepV0 = true); - declareProperty("TrueTrackPtCut", m_trueTrackPtCut = 1000.); - declareProperty("TrueTrackEtaCut", m_trueTrackEtaCut = 3.); - declareProperty("MaxRAll", m_maxRAll = 360); - declareProperty("MaxZAll", m_maxZAll = 2000); - declareProperty("MaxRPrimary", m_maxRPrimary = 25); - declareProperty("MaxZPrimary", m_maxZPrimary = 200); -} - -StatusCode TruthTrackGetterTool::initialize() -{ - CHECK( Base::initialize() ); - - // Get Particle Data Table - IPartPropSvc* partPropSvc; - StatusCode sc = service("PartPropSvc", partPropSvc, true); - if(sc.isFailure()) { - REPORT_MESSAGE (MSG::ERROR) << "Could not initialize Particle Properties Service"; - return StatusCode::FAILURE; - } - m_particleDataTable = partPropSvc->PDT(); - - return StatusCode::SUCCESS; -} - -const std::type_info& TruthTrackGetterTool::typeinfo() const -{ - return typeid(McEventCollection); -} - - -const std::type_info& TruthTrackGetterTool::elementTypeinfo() const -{ - return typeid(HepMC::GenParticle); -} - - -size_t TruthTrackGetterTool::sizeHint(bool allowMissing) -{ - // fix me... - const McEventCollection* mcTracks = get(allowMissing); - - if (!mcTracks) { - return 0; - } - - const HepMC::GenEvent* genEvent = *(mcTracks->begin()); - - return genEvent->particles_size(); -} - - -StatusCode TruthTrackGetterTool::reset(bool allowMissing) -{ - - const McEventCollection* mcEvent = get(allowMissing); - - if (!mcEvent) { - m_evtItr = m_evtEnd; - m_partItr = m_partEnd; - return StatusCode::FAILURE; - } - - m_evtItr = mcEvent->begin(); - m_evtEnd = mcEvent->end(); - - if(m_evtItr == m_evtEnd){ - m_partItr = m_partEnd; - return StatusCode::SUCCESS; - } - - m_partItr = (*m_evtItr)->particles_begin(); - m_partEnd = (*m_evtItr)->particles_end(); - - return StatusCode::SUCCESS; -} - -const void* TruthTrackGetterTool::nextUntyped() -{ - - const HepMC::GenParticle* particle = 0; - - do{ - - if(m_evtItr == m_evtEnd){ - return 0; - } - - if (m_partItr == m_partEnd) - particle = 0; - else { - particle = *m_partItr; - m_partItr++; - } - - if(m_partItr == m_partEnd){ - m_evtItr++; - if(m_evtItr != m_evtEnd){ - m_partItr = (*m_evtItr)->particles_begin(); - m_partEnd = (*m_evtItr)->particles_end(); - } - } - - } while(!particle || !selectParticle(particle)); - - return particle; - -} - -bool TruthTrackGetterTool::selectParticle(const HepMC::GenParticle* particle) -{ - - // stables only - if(1!=particle->status()%1000){ - return false; - } - - // must have a valid production vertex - if(particle->production_vertex() == NULL){ - return false; - } - - // require track origin inside ID: relaxed - if ( fabs(particle->production_vertex()->position().perp()) > m_maxRAll || - fabs(particle->production_vertex()->position().z()) > m_maxZAll ){ - return false; - } - - // require track origin inside beam pipe (primary): optional - if ( m_keepOnlyPrimaryParticles && - ( fabs(particle->production_vertex()->position().perp()) > m_maxRPrimary || - fabs(particle->production_vertex()->position().z()) > m_maxZPrimary ) ){ - return false; - } - - int pdg = particle->pdg_id(); - - // ignore nuclei from hadronic interactions - if (abs(pdg) > 1000000000 ){ - return false; - } - - const HepPDT::ParticleData* pd = m_particleDataTable->particle(abs(pdg)); - - if (!pd) { - //REPORT_MESSAGE (MSG::DEBUG) << "Could not get particle data for pdg = " << pdg; - return false; - } - float charge = pd->charge(); - - // require charge: optional - if(fabs(charge)<0.5 && m_keepOnlyChargedParticles){ - // keep V0: optional - if(m_keepV0){ - HepMC::GenVertex *epv = particle->end_vertex(); - if( !epv || epv->particles_out_size() != 2 ) { - return false; - } - }else{ - return false; - } - } - - ////// particle properties - double pt = particle->momentum().perp(); - double eta = particle->momentum().pseudoRapidity(); - - // pt cut - if(fabs(pt)<m_trueTrackPtCut){ - return false; - } - - // eta cut - if(fabs(eta)>m_trueTrackEtaCut){ - return false; - } - - return true; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthTrackGetterTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthTrackGetterTool.h deleted file mode 100644 index 85792a23d7be0a3be20035162291fedd4c87affd..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthTrackGetterTool.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#ifndef INDETD3PDMAKER_TRUTHTRACKGETTERTOOL_H -#define INDETD3PDMAKER_TRUTHTRACKGETTERTOOL_H - -#include "D3PDMakerUtils/SGCollectionGetterTool.h" -#include "GeneratorObjects/McEventCollection.h" -#include "HepPDT/ParticleDataTable.hh" -#include "AtlasHepMC/GenEvent.h" -#include "AtlasHepMC/GenParticle.h" - -namespace D3PD { - -class TruthTrackGetterTool - : public D3PD::SGCollectionGetterTool<McEventCollection> -{ -public: - typedef D3PD::SGCollectionGetterTool<McEventCollection> Base; - - TruthTrackGetterTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - StatusCode initialize(); - size_t sizeHint(bool=false); - StatusCode reset(bool=false); - const void* nextUntyped(); - - const std::type_info& typeinfo() const; - const std::type_info& elementTypeinfo() const; - -private: - - bool selectParticle(const HepMC::GenParticle* particle); - - /* Event iterators **/ - McEventCollection::const_iterator m_evtItr; - McEventCollection::const_iterator m_evtEnd; - - /* Particle iterators **/ - HepMC::GenEvent::particle_const_iterator m_partItr; - HepMC::GenEvent::particle_const_iterator m_partEnd; - - /* Helper used to get the charge of a particle from it's pdgId **/ - const HepPDT::ParticleDataTable* m_particleDataTable; - - /* selection settings **/ - bool m_keepOnlyChargedParticles; - bool m_keepOnlyPrimaryParticles; - bool m_keepV0; - float m_trueTrackPtCut; - float m_trueTrackEtaCut; - float m_maxRAll; - float m_maxZAll; - float m_maxRPrimary; - float m_maxZPrimary; - -}; // class TruthTrackGetterTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_TRUTHTRACKGETTERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthVertexFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthVertexFillerTool.cxx deleted file mode 100644 index 341f146db25b5a863c7ad498298f96721a41c270..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthVertexFillerTool.cxx +++ /dev/null @@ -1,63 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#include "TruthVertexFillerTool.h" -#include "AthenaKernel/errorcheck.h" - -namespace D3PD { - - -TruthVertexFillerTool::TruthVertexFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : TruthVertexFillerBase (type, name, parent) -{ - book().ignore(); // Avoid coverity warnings. -} - -StatusCode TruthVertexFillerTool::initialize(){ - - CHECK( TruthVertexFillerBase::initialize() ); - - return StatusCode::SUCCESS; -} - -StatusCode TruthVertexFillerTool::book() -{ - // position - CHECK( addVariable ("x", m_x) ); - CHECK( addVariable ("y", m_y) ); - CHECK( addVariable ("z", m_z) ); - - return StatusCode::SUCCESS; -} - -StatusCode TruthVertexFillerTool::fill (const TruthVertexFillerObjectType& vertex) -{ - - this->clearData(); - - // position - *m_x = vertex.position().x(); - *m_y = vertex.position().y(); - *m_z = vertex.position().z(); - - REPORT_MESSAGE (MSG::VERBOSE) << "Filling simulated vertex branches: " - << "x = " << *m_x << " " - << "y = " << *m_y << " " - << "z = " << *m_z; - - return StatusCode::SUCCESS; -} - -void TruthVertexFillerTool::clearData(){ - - *m_x = 0; - *m_y = 0; - *m_z = 0; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthVertexFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthVertexFillerTool.h deleted file mode 100644 index 8e63da443a325f7e75de4e4b6bca2ca911c73ee4..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthVertexFillerTool.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#ifndef INDETD3PDMAKER_TRUTHVERTEXFILLERTOOL_H -#define INDETD3PDMAKER_TRUTHVERTEXFILLERTOOL_H - -#include "D3PDMakerUtils/BlockFillerTool.h" -#include "AtlasHepMC/GenVertex.h" - -namespace D3PD { - -typedef HepMC::GenVertex TruthVertexFillerObjectType; -typedef D3PD::BlockFillerTool<TruthVertexFillerObjectType> TruthVertexFillerBase; - -class TruthVertexFillerTool - : public TruthVertexFillerBase -{ -public: - TruthVertexFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode fill (const TruthVertexFillerObjectType& p); - -private: - - void clearData(); - - /* NTuple variables **/ - // position - float *m_x; - float *m_y; - float *m_z; - -}; // class TruthVertexFillerTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_TRUTHVERTEXFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthVertexGetterTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthVertexGetterTool.cxx deleted file mode 100644 index 25d2a0ad98e374125cca556acf1a1496cc31e31c..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthVertexGetterTool.cxx +++ /dev/null @@ -1,164 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#include "TruthVertexGetterTool.h" - -namespace D3PD { - -TruthVertexGetterTool::TruthVertexGetterTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : TruthVertexGetterBase - (type, name, parent) -{ - declareProperty("KeepOnlyPrimaryVertices", m_keepOnlyPrimaryVertices = true); - declareProperty("KeepPileUpVertices", m_keepPileUpVertices = true); -} - -StatusCode TruthVertexGetterTool::initialize() -{ - CHECK( TruthVertexGetterBase::initialize() ); - - return StatusCode::SUCCESS; -} - -const std::type_info& TruthVertexGetterTool::typeinfo() const -{ - return typeid(TruthVertexGetterCollectionType); -} - - -const std::type_info& TruthVertexGetterTool::elementTypeinfo() const -{ - return typeid(TruthVertexGetterElementType); -} - - -size_t TruthVertexGetterTool::sizeHint(bool allowMissing) -{ - const McEventCollection* mcEvent = get(allowMissing); - - if (!mcEvent) { - return 0; - } - - int size_hint = 0; - McEventCollection::const_iterator evt_itr = mcEvent->begin(); - McEventCollection::const_iterator evt_end = mcEvent->end(); - for(; evt_itr!=evt_end; evt_itr++){ - - const HepMC::GenEvent* genEvent = (*evt_itr); - if(!genEvent) break; - - HepMC::GenEvent::vertex_const_iterator vx_itr = genEvent->vertices_begin(); - HepMC::GenEvent::vertex_const_iterator vx_end = genEvent->vertices_end(); - for(; vx_itr!=vx_end;vx_itr++){ - size_hint++; - } - } - - return size_hint; -} - - -StatusCode TruthVertexGetterTool::reset(bool allowMissing) -{ - - const McEventCollection* mcEvent = get(allowMissing); - - if (!mcEvent) { - m_evtItr = m_evtEnd; - m_vxItr = m_vxEnd; - return StatusCode::FAILURE; - } - - m_evtItr = mcEvent->begin(); - m_evtEnd = mcEvent->end(); - - if(m_evtItr == m_evtEnd){ - m_vxItr = m_vxEnd; - return StatusCode::SUCCESS; - } - - m_vxItr = (*m_evtItr)->vertices_begin(); - m_vxEnd = (*m_evtItr)->vertices_end(); - - if(m_vxItr==m_vxEnd){ - REPORT_MESSAGE (MSG::VERBOSE) << "====> First generated event seems to be empty..."; - } - - return StatusCode::SUCCESS; -} - -const void* TruthVertexGetterTool::nextUntyped() -{ - if(m_evtItr == m_evtEnd) return 0; - - // if the event is a separator then we quit (signal and intime pile up will be BEFORE any separator) - if ((*m_evtItr)->event_number() < 0) return 0; - - const HepMC::GenVertex* vertex = 0; - - if (m_keepOnlyPrimaryVertices && !m_keepPileUpVertices) - { - vertex = *m_vxItr; - m_evtItr = m_evtEnd; - } - else if (m_keepOnlyPrimaryVertices && m_keepPileUpVertices) - { - while (m_evtItr != m_evtEnd && (*m_evtItr)->vertices_size() <= 0) - { - m_evtItr++; - // we need to check and exit if next event is a separator ... - if ((*m_evtItr)->event_number() < 0) return 0; - } - - if(m_evtItr != m_evtEnd){ - m_vxItr = (*m_evtItr)->vertices_begin(); - vertex = (*m_vxItr); - } - - m_evtItr++; - } - else if (!m_keepOnlyPrimaryVertices && !m_keepPileUpVertices) - { - if (m_vxItr != m_vxEnd) { - vertex = *m_vxItr; - m_vxItr++; - } // if m_vxItr == m_vxEnd then vertex stays 0 and it will stop by itself - } - else if (!m_keepOnlyPrimaryVertices && m_keepPileUpVertices) - { - while (m_evtItr != m_evtEnd && (*m_evtItr)->vertices_size() <= 0) - { - m_evtItr++; - // we need to check and exit if next event is a separator ... - if ((*m_evtItr)->event_number() < 0) return 0; - } - - if(m_evtItr != m_evtEnd) { - if (m_vxItr != m_vxEnd) - { - vertex = (*m_vxItr); - m_vxItr++; - } - } - - if (m_vxItr == m_vxEnd) - { - m_evtItr++; - if (m_evtItr != m_evtEnd) - { - m_vxItr = (*m_evtItr)->vertices_begin(); - m_vxEnd = (*m_evtItr)->vertices_end(); - } - } - } - return vertex; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthVertexGetterTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthVertexGetterTool.h deleted file mode 100644 index 83c3f3287c409f97e5e948d3002a5e2ec917eecd..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/TruthVertexGetterTool.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ - -#ifndef INDETD3PDMAKER_TRUTHVERTEXGETTERTOOL_H -#define INDETD3PDMAKER_TRUTHVERTEXGETTERTOOL_H - -#include "D3PDMakerUtils/SGCollectionGetterTool.h" -#include "AtlasHepMC/GenEvent.h" -#include "AtlasHepMC/GenVertex.h" -#include "GeneratorObjects/McEventCollection.h" - -namespace D3PD { - -typedef McEventCollection TruthVertexGetterCollectionType; -typedef HepMC::GenVertex TruthVertexGetterElementType; -typedef D3PD::SGCollectionGetterTool<TruthVertexGetterCollectionType> TruthVertexGetterBase; - -class TruthVertexGetterTool - : public TruthVertexGetterBase -{ -public: - TruthVertexGetterTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - StatusCode initialize(); - size_t sizeHint(bool=false); - StatusCode reset(bool=false); - const void* nextUntyped(); - - const std::type_info& typeinfo() const; - const std::type_info& elementTypeinfo() const; - -private: - - /* Event iterators **/ - McEventCollection::const_iterator m_evtItr; - McEventCollection::const_iterator m_evtEnd; - - /* Vertex iterators **/ - HepMC::GenEvent::vertex_const_iterator m_vxItr; - HepMC::GenEvent::vertex_const_iterator m_vxEnd; - - /* Settings **/ - bool m_keepOnlyPrimaryVertices; - bool m_keepPileUpVertices; - -}; // class TruthVertexGetterTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_TRUTHVERTEXGETTERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/V0CandidateFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/V0CandidateFillerTool.cxx deleted file mode 100644 index ad9a364f71ccd98ce30de437ebce87b9cb53acd2..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/V0CandidateFillerTool.cxx +++ /dev/null @@ -1,326 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -// ********************************************************************** -// V0CandidateFillerTool.cxx -// AUTHORS: Till Eifert, Roberto Di Nardo -// ********************************************************************** - -#include "V0CandidateFillerTool.h" -#include "AthenaKernel/errorcheck.h" -#include "TrkV0Vertex/V0Hypothesis.h" -#include "TrkV0Vertex/V0Candidate.h" -#include "TrkParticleBase/TrackParticleBase.h" -#include "TrkParameters/TrackParameters.h" -#include "Particle/TrackParticle.h" - - -using CLHEP::Hep3Vector; - - -namespace D3PD { - -V0CandidateFillerTool::V0CandidateFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : BlockFillerTool<Trk::V0Candidate> (type, name, parent), - m_iBeamCondSvc(0) -{ - declareProperty("BeamCondSvcName", m_beamCondSvcName = "BeamCondSvc"); - - book().ignore(); // Avoid coverity warnings. -} - -StatusCode V0CandidateFillerTool::initialize() -{ - // m_v0Tools = ToolHandle<Trk::V0Tools>("Trk::V0Tools"); - // Pick up the BeamConditionService - StatusCode sc = service(m_beamCondSvcName, m_iBeamCondSvc); - if (sc.isFailure() || m_iBeamCondSvc == 0) { - REPORT_MESSAGE (MSG::WARNING) << "Could not find BeamCondSvc: " << m_beamCondSvcName; - REPORT_MESSAGE (MSG::WARNING) << "Will use nominal beamspot at (0,0,0)"; - } - return sc; -} - -StatusCode V0CandidateFillerTool::book() -{ - - CHECK( addVariable ("ksMass", m_ksMass) ); - CHECK( addVariable ("lambda1Mass", m_lambda1Mass) ); - CHECK( addVariable ("lambda2Mass", m_lambda2Mass) ); - CHECK( addVariable ("vertexProb", m_vertexProb) ); - CHECK( addVariable ("vertexChi2", m_vertexChi2) ); - CHECK( addVariable ("ksPt", m_ksPt) ); - CHECK( addVariable ("ksPx", m_ksPx) ); - CHECK( addVariable ("ksPy", m_ksPy) ); - CHECK( addVariable ("ksEta", m_ksEta) ); - CHECK( addVariable ("ksPhi", m_ksPhi) ); - CHECK( addVariable ("ksMomentum", m_ksMomentum) ); - - CHECK( addVariable ("flightX", m_flightX) ); - CHECK( addVariable ("flightY", m_flightY) ); - CHECK( addVariable ("cosThetaPointing" , m_cosThetaPointing) ); - CHECK( addVariable ("totalFlightDistance" , m_totalFlightDistance) ); - CHECK( addVariable ("properDecayTime" , m_properDecayTime) ); - CHECK( addVariable ("properFlightDist" , m_properFlightDist) ); - - CHECK( addVariable ("flightX_BS", m_flightX_BS) ); - CHECK( addVariable ("flightY_BS", m_flightY_BS) ); - CHECK( addVariable ("cosThetaPointing_BS" , m_cosThetaPointing_BS) ); - CHECK( addVariable ("totalFlightDistance_BS" , m_totalFlightDistance_BS) ); - CHECK( addVariable ("properDecayTime_BS" , m_properDecayTime_BS) ); - CHECK( addVariable ("properFlightDist_BS" , m_properFlightDist_BS) ); - - CHECK( addVariable ("radius" , m_radius) ); - - CHECK( addVariable ("thetaPiPlus" , m_thetaPiPlus) ); - CHECK( addVariable ("thetaPiMinus", m_thetaPiMinus) ); - CHECK( addVariable ("trk_L" , m_trk_L) ); - CHECK( addVariable ("trk_T", m_trk_T) ); - - CHECK( addVariable ("thetaStarPiPlus", m_thetaStarPiPlus) ); - CHECK( addVariable ("thetaStarPiMinus", m_thetaStarPiMinus) ); - - CHECK( addVariable ("trkPt_SV" , m_trkPt_SV) ); - CHECK( addVariable ("trkEta_SV" , m_trkEta_SV) ); - CHECK( addVariable ("trkPhi_SV" , m_trkPhi_SV) ); - - return StatusCode::SUCCESS; -} - -StatusCode V0CandidateFillerTool::fill (const Trk::V0Candidate& /*theV0Candidate*/ ) -{ - - this->clearData(); - - //const double piMass = 139.57018; // MeV - const double ksMassPDG = 497.648; // MeV - //const double protonMassPDG = 938.272013; // MeV - const double c_speed = 299792458.0; // meters per sec - - //const Trk::V0Hypothesis* myV0Hypothesis = 0; //m_v0Tools->v0Unconstr( &theV0Candidate ); - - CLHEP::Hep3Vector ksMomentumVector ;//= m_v0Tools->V04Momentum( (const Trk::ExtendedVxCandidate*)myV0Hypothesis, ksMassPDG ).vect(); - - //K and lambda masses - *m_ksMass = 0;//m_v0Tools->invariantMass( (const Trk::ExtendedVxCandidate*)myV0Hypothesis, piMass, piMass ); - *m_lambda1Mass= 0;//m_v0Tools->invariantMass( (const Trk::ExtendedVxCandidate*)myV0Hypothesis, protonMassPDG, piMass ) ; - *m_lambda2Mass= 0;//m_v0Tools->invariantMass( (const Trk::ExtendedVxCandidate*)myV0Hypothesis, piMass, protonMassPDG ) ; - *m_vertexProb= 0;//m_v0Tools->vertexProbability( (const Trk::ExtendedVxCandidate*)myV0Hypothesis ) ; - *m_vertexChi2= 0;//m_v0Tools->chisq( (const Trk::ExtendedVxCandidate*)myV0Hypothesis ) ; - - //K prop - *m_ksPt = ksMomentumVector.perp() ; - *m_ksMomentum = ksMomentumVector.mag() ; - *m_ksPx = ksMomentumVector.x() ; - *m_ksPy = ksMomentumVector.y() ; - *m_ksEta = 0;//m_v0Tools->V04Momentum((const Trk::ExtendedVxCandidate*)myV0Hypothesis,ksMassPDG).pseudoRapidity() ; - *m_ksPhi = 0;//m_v0Tools->V04Momentum((const Trk::ExtendedVxCandidate*)myV0Hypothesis,ksMassPDG).phi() ; - - const VxContainer* vertices = 0; - StatusCode scv = evtStore()->retrieve(vertices,"VxPrimaryCandidate"); - if (scv.isFailure()) { - ATH_MSG_DEBUG( "No VxPrimaryCandidate Collection found in StoreGate" ); - return StatusCode::SUCCESS; - } else { - ATH_MSG_DEBUG( "Collection with name VxPrimaryCandidate found in StoreGate" ); - } - - const Trk::RecVertex *primaryVertex=&((*(vertices->begin()))->recVertex()); - - //double transverseFlightDistance; - CLHEP::Hep3Vector flightVector; - if(primaryVertex!=NULL) { - //m_v0Tools->lxy((const Trk::ExtendedVxCandidate*)myV0Hypothesis,*primaryVertex); - flightVector = CLHEP::Hep3Vector(); //m_v0Tools->vtx((const Trk::ExtendedVxCandidate*)myV0Hypothesis)-primaryVertex->position(); - } - else { - //m_v0Tools->rxy((const Trk::ExtendedVxCandidate*)myV0Hypothesis); - flightVector = CLHEP::Hep3Vector(); //m_v0Tools->vtx((const Trk::ExtendedVxCandidate*)myV0Hypothesis); - } - float tp = ( ( ksMomentumVector.x()*flightVector.x()+ - ksMomentumVector.y()*flightVector.y() )/ - sqrt( ksMomentumVector.x()*ksMomentumVector.x()+ - ksMomentumVector.y()*ksMomentumVector.y() )/ - sqrt( flightVector.x()*flightVector.x()+ - flightVector.y()*flightVector.y() ) ); - - *m_cosThetaPointing = tp; - *m_flightX= flightVector.x() ; - *m_flightY= flightVector.y() ; - - if (tp > 0.) { // put sign on flight distance - *m_totalFlightDistance = flightVector.mag() ; - }else{ - *m_totalFlightDistance =( -1.*flightVector.mag() ); - } - - *m_properDecayTime = ( (1.0e12 / (1000 * c_speed)) * ksMassPDG / ksMomentumVector.mag() * (*m_totalFlightDistance)); - *m_properFlightDist = ( ksMassPDG / ksMomentumVector.mag() * (*m_totalFlightDistance) ); // mm - - - //Flight Dist, decay Time costhetapoint wrt BS - - /// Pick up the beamspot - Amg::Vector3D beamSpot(0,0,0); - //Trk::RecVertex* bsVertex; - if (m_iBeamCondSvc) { - //bsVertex=new Trk::RecVertex(m_iBeamCondSvc->beamVtx()); - beamSpot = m_iBeamCondSvc->beamVtx().position(); - }else{ - ATH_MSG_WARNING( " Cannot get beamSpot center from iBeamCondSvc. Using (0,0,0)... " ); - //bsVertex=new Trk::RecVertex(Amg::Vector3D(0,0,0)); - } - - - - // *primaryVertex=&((m_iBeamCondSvc->beamVtx())); - - - - if(primaryVertex!=NULL) { - //m_v0Tools->lxy((const Trk::ExtendedVxCandidate*)myV0Hypothesis,*bsVertex); - flightVector = CLHEP::Hep3Vector();//m_v0Tools->vtx((const Trk::ExtendedVxCandidate*)myV0Hypothesis)-beamSpot; - } - else { - //m_v0Tools->rxy((const Trk::ExtendedVxCandidate*)myV0Hypothesis); - flightVector = CLHEP::Hep3Vector();//m_v0Tools->vtx((const Trk::ExtendedVxCandidate*)myV0Hypothesis); - } - tp = ( ( ksMomentumVector.x()*flightVector.x()+ - ksMomentumVector.y()*flightVector.y() )/ - sqrt( ksMomentumVector.x()*ksMomentumVector.x()+ - ksMomentumVector.y()*ksMomentumVector.y() )/ - sqrt( flightVector.x()*flightVector.x()+ - flightVector.y()*flightVector.y() ) ); - - *m_cosThetaPointing_BS= tp; - *m_flightX_BS= flightVector.x() ; - *m_flightY_BS= flightVector.y() ; - - if (tp > 0.) { // put sign on flight distance - *m_totalFlightDistance_BS = flightVector.mag() ; - }else{ - *m_totalFlightDistance_BS =( -1.*flightVector.mag() ); - } - - *m_properDecayTime_BS = ( (1.0e12 / 1000 / c_speed) * ksMassPDG / ksMomentumVector.mag() * (*m_totalFlightDistance_BS) ); - *m_properFlightDist_BS = ( ksMassPDG / ksMomentumVector.mag() * (*m_totalFlightDistance_BS) ); // mm - - - - - // V0 position - *m_radius = 0;//m_v0Tools->rxy((const Trk::ExtendedVxCandidate*)myV0Hypothesis); - - - // V0 kinematics - pi ipot - - CLHEP::HepLorentzVector v1 ;//= m_v0Tools->positiveTrack4Momentum((const Trk::ExtendedVxCandidate*)myV0Hypothesis,piMass); - CLHEP::HepLorentzVector v2 ;//= m_v0Tools->negativeTrack4Momentum((const Trk::ExtendedVxCandidate*)myV0Hypothesis,piMass); - CLHEP::HepLorentzVector v0 = v1 + v2; - - *m_thetaPiPlus = ( v0.angle( v1.vect() )); - *m_thetaPiMinus = ( v0.angle( v2.vect() )); - - // get longitudinal and transverse components of both track 3D-vectors wrt V0 3D-vector - CLHEP::Hep3Vector trk1vec3 = v1.vect(); - CLHEP::Hep3Vector trk2vec3 = v2.vect(); - CLHEP::Hep3Vector v0UnitVec3 = (v0.vect()).unit(); - float trkPos_L = ( trk1vec3.dot( v0UnitVec3 ) ); - float trkPos_T = ( trk1vec3.perp( v0UnitVec3 ) ); - float trkNeg_L = ( trk2vec3.dot( v0UnitVec3 ) ); - float trkNeg_T = ( trk2vec3.perp( v0UnitVec3 ) ); - - CLHEP::Hep3Vector boost = v0.boostVector(); //v0.boostVector(); - boost *= -1.0; // change direction of boost (to get into rest-frame) - v1.boost( boost ); - v2.boost( boost ); - - *m_thetaStarPiPlus = ( v0.angle( v1.vect() )); - *m_thetaStarPiMinus = ( v0.angle( v2.vect() )); - - float posTrkPt_SV = ( v1.perp() ); - float posTrkEta_SV = ( v1.pseudoRapidity() ); - float posTrkPhi_SV = ( v1.phi() ); - - float negTrkPt_SV = ( v2.perp() ); - float negTrkEta_SV = ( v2.pseudoRapidity() ); - float negTrkPhi_SV = ( v2.phi() ); - - int pos_idx = 0; - int neg_idx = 1; - - m_trk_L->at(pos_idx) = trkPos_L; - m_trk_T->at(pos_idx) = trkPos_T; - - m_trk_L->at(neg_idx) = trkNeg_L; - m_trk_T->at(neg_idx) = trkNeg_T; - - m_trkPt_SV->at(pos_idx) = posTrkPt_SV; - m_trkEta_SV->at(pos_idx) = posTrkEta_SV; - m_trkPhi_SV->at(pos_idx) = posTrkPhi_SV; - - m_trkPt_SV->at(neg_idx) = negTrkPt_SV; - m_trkEta_SV->at(neg_idx) = negTrkEta_SV; - m_trkPhi_SV->at(neg_idx) = negTrkPhi_SV; - - return StatusCode::SUCCESS; -} - -void V0CandidateFillerTool::clearData(){ - - *m_ksMass = 0; - *m_lambda1Mass = 0; - *m_lambda2Mass = 0; - *m_vertexProb = 0; - *m_vertexChi2 = 0; - *m_ksPt = 0; - *m_ksPx = 0; - *m_ksPy = 0; - *m_ksEta = 0; - *m_ksPhi = 0; - *m_ksMomentum = 0; - - *m_flightX = 0; - *m_flightY = 0; - *m_cosThetaPointing = 0; - *m_totalFlightDistance = 0; - *m_properDecayTime = 0; - *m_properFlightDist = 0; - - *m_flightX_BS = 0; - *m_flightY_BS = 0; - *m_cosThetaPointing_BS = 0; - *m_totalFlightDistance_BS = 0; - *m_properDecayTime_BS = 0; - *m_properFlightDist_BS = 0; - - *m_radius = 0; - - *m_thetaPiPlus = 0; - *m_thetaPiMinus = 0; - - *m_thetaStarPiPlus = 0; - *m_thetaStarPiMinus = 0; - - m_trk_L->clear(); - m_trk_T->clear(); - m_trkEta_SV->clear(); - m_trkPhi_SV->clear(); - - m_trk_L->push_back(0); - m_trk_L->push_back(0); - m_trk_T->push_back(0); - m_trk_T->push_back(0); - m_trkPt_SV->push_back(0); - m_trkPt_SV->push_back(0); - m_trkEta_SV->push_back(0); - m_trkEta_SV->push_back(0); - m_trkPhi_SV->push_back(0); - m_trkPhi_SV->push_back(0); -} - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/V0CandidateFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/V0CandidateFillerTool.h deleted file mode 100644 index a9029a1131384cfbadc33e33bd6b76f45037d065..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/V0CandidateFillerTool.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_V0CANDIDATEFILLERTOOL_H -#define INDETD3PDMAKER_V0CANDIDATEFILLERTOOL_H - -#include "D3PDMakerUtils/BlockFillerTool.h" -#include "GaudiKernel/ToolHandle.h" -#include "D3PDMakerUtils/SGCollectionGetterTool.h" -#include "TrkV0Vertex/V0Container.h" -//#include "TrkVertexAnalysisUtils/V0Tools.h" -#include "InDetBeamSpotService/IBeamCondSvc.h" - -namespace Trk{ - class V0Candidate; -} - -namespace D3PD { - -/* ************************* - * Getter class * - * Not needed in principle * - ***************************/ -class V0ContainerGetterTool - : public SGCollectionGetterTool<V0Container> -{ -public: - V0ContainerGetterTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : SGCollectionGetterTool<V0Container> - (type, name, parent){} -}; -/***************************/ - -class V0CandidateFillerTool : public BlockFillerTool<Trk::V0Candidate> -{ - public: - typedef BlockFillerTool<Trk::V0Candidate> Base; - V0CandidateFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode fill (const Trk::V0Candidate& p); - - private: - - void clearData(); - - //ToolHandle<Trk::V0Tools> m_v0Tools; - IBeamCondSvc* m_iBeamCondSvc; - std::string m_beamCondSvcName; - - float *m_ksMass; - float *m_lambda1Mass; - float *m_lambda2Mass; - float *m_vertexProb; - float *m_vertexChi2; - float *m_ksPt; - float *m_ksPx; - float *m_ksPy; - float *m_ksEta; - float *m_ksPhi; - float *m_ksMomentum; - - float *m_flightX; - float *m_flightY; - float *m_cosThetaPointing; - float *m_totalFlightDistance; - float *m_properDecayTime; - float *m_properFlightDist; - - float *m_flightX_BS; - float *m_flightY_BS; - float *m_cosThetaPointing_BS; - float *m_totalFlightDistance_BS; - float *m_properDecayTime_BS; - float *m_properFlightDist_BS; - - float *m_radius; - - float *m_thetaPiPlus; - float *m_thetaPiMinus; - - std::vector<float> *m_trk_L; - std::vector<float> *m_trk_T; - - float *m_thetaStarPiPlus; - float *m_thetaStarPiMinus; - - std::vector<float> *m_trkPt_SV; - std::vector<float> *m_trkEta_SV; - std::vector<float> *m_trkPhi_SV; - -}; // class V0CandidateFillerTool - -} // namespace D3PD - -#endif diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/V0CandidateVxCandidateAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/V0CandidateVxCandidateAssociationTool.cxx deleted file mode 100644 index ffd04b8fcf2b26fca1a705a165e7df09a4d81a9d..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/V0CandidateVxCandidateAssociationTool.cxx +++ /dev/null @@ -1,57 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: V0CandidateVxCandidateAssociationTool.cxx 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/V0CandidateVxCandidateAssociationTool.cxx - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a V0Candidate to a VxCandidate. - */ - -#include "V0CandidateVxCandidateAssociationTool.h" -#include "AthenaKernel/errorcheck.h" - -#include <VxVertex/VxCandidate.h> -#include <TrkV0Vertex/V0Candidate.h> - -namespace D3PD { - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -V0CandidateVxCandidateAssociationTool::V0CandidateVxCandidateAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ -} - - -StatusCode V0CandidateVxCandidateAssociationTool::initialize(){ - - CHECK ( Base::initialize() ); - - //m_v0Tools = ToolHandle<Trk::V0Tools> ("Trk::V0Tools"); - - return StatusCode::SUCCESS; -} - -/** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ -const Trk::VxCandidate *V0CandidateVxCandidateAssociationTool::get (const Trk::V0Candidate& /*v0*/) -{ - - return 0;//(const Trk::VxCandidate *) m_v0Tools->v0Unconstr( &v0 ); -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/V0CandidateVxCandidateAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/V0CandidateVxCandidateAssociationTool.h deleted file mode 100644 index 1e04c360a57509892ee664868aab7b62fae17f42..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/V0CandidateVxCandidateAssociationTool.h +++ /dev/null @@ -1,69 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: V0CandidateVxCandidateAssociationTool.h 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file EventCommonD3PDMaker/src/V0CandidateVxCandidateAssociationTool.h - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a VxCandidate to its FitQuality. - */ -#ifndef INDETD3PDMAKER_V0CANDIDATEVXCANDIDATEASSOCIATIONTOOL_H -#define INDETD3PDMAKER_V0CANDIDATEVXCANDIDATEASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/SingleAssociationTool.h" -#include "GaudiKernel/ToolHandle.h" -//#include "TrkVertexAnalysisUtils/V0Tools.h" - -namespace Trk { -class V0Candidate; -class VxCandidate; -} - -namespace D3PD { - -/** - * @brief Associate from a V0Candidate to a VxCandidate. - */ -class V0CandidateVxCandidateAssociationTool - : public SingleAssociationTool<Trk::V0Candidate, Trk::VxCandidate> -{ -public: - typedef SingleAssociationTool<Trk::V0Candidate, Trk::VxCandidate> Base; - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - V0CandidateVxCandidateAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - virtual StatusCode initialize(); - - /** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ - virtual const Trk::VxCandidate* get (const Trk::V0Candidate& v0); - - private: - - //ToolHandle<Trk::V0Tools> m_v0Tools; - -}; - - -} // namespace D3PD - - - -#endif // not INDETD3PDMAKER_V0CANDIDATEVXCANDIDATEASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexFitQualityAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexFitQualityAssociationTool.cxx deleted file mode 100644 index f159b44e28a0be30fde617fc2767bf5b99e16f7d..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexFitQualityAssociationTool.cxx +++ /dev/null @@ -1,45 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: VertexFitQualityAssociationTool.cxx 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/VertexFitQualityAssociationTool.cxx - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a VxCandidate to its FitQuality. - */ - -#include "VertexFitQualityAssociationTool.h" - -#include <VxVertex/VxCandidate.h> -#include <TrkEventPrimitives/FitQuality.h> - -namespace D3PD { - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -VertexFitQualityAssociationTool::VertexFitQualityAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ -} - -/** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ -const Trk::FitQuality *VertexFitQualityAssociationTool::get (const Trk::VxCandidate& p) -{ - return &(p.recVertex().fitQuality()); -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexFitQualityAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexFitQualityAssociationTool.h deleted file mode 100644 index 32450c750fc0f205fe20ceb09d77e2f5a450c1b4..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexFitQualityAssociationTool.h +++ /dev/null @@ -1,60 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: VertexFitQualityAssociationTool.h 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/VertexFitQualityAssociationTool.h - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a VxCandidate to its FitQuality. - */ -#ifndef INDETD3PDMAKER_VERTEXFITQUALITYASSOCIATIONTOOL_H -#define INDETD3PDMAKER_VERTEXFITQUALITYASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/SingleAssociationTool.h" - -namespace Trk { -class VxCandidate; -class FitQuality; -} - -namespace D3PD { - -/** - * @brief Associate from a TrackParticle to its MeasuredPerigee. - */ -class VertexFitQualityAssociationTool - : public SingleAssociationTool<Trk::VxCandidate, Trk::FitQuality> -{ -public: - typedef SingleAssociationTool<Trk::VxCandidate, Trk::FitQuality> Base; - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - VertexFitQualityAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - /** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ - virtual const Trk::FitQuality* get (const Trk::VxCandidate& p); -}; - - -} // namespace D3PD - - - -#endif // not INDETD3PDMAKER_VERTEXFITQUALITYASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexPositionFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexPositionFillerTool.cxx deleted file mode 100644 index c6067cac37d5c324cb619e9ad240251c7e8a629c..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexPositionFillerTool.cxx +++ /dev/null @@ -1,69 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: VertexPositionFillerTool.cxx 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/VertexPositionFillerTool.cxx - * @author maarten boonekamp <maarten.boonekamp@cea.fr> - * @date Sep, 2009 - * @brief Block filler tool for vertex position. - */ - - -#include "VertexPositionFillerTool.h" -#include "VxVertex/VxCandidate.h" -#include "AthenaKernel/errorcheck.h" - - -namespace D3PD { - - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -VertexPositionFillerTool::VertexPositionFillerTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : BlockFillerTool<Trk::VxCandidate> (type, name, parent) -{ - book().ignore(); // Avoid coverity warnings. -} - - -/** - * @brief Book variables for this block. - */ -StatusCode VertexPositionFillerTool::book() -{ - CHECK( addVariable ("x", m_x) ); - CHECK( addVariable ("y", m_y) ); - CHECK( addVariable ("z", m_z) ); - - return StatusCode::SUCCESS; -} - - -/** - * @brief Fill one block --- type-safe version. - * @param p The input object. - * - * This is called once per object. The caller - * is responsible for arranging that all the pointers for booked variables - * are set appropriately upon entry. - */ -StatusCode VertexPositionFillerTool::fill (const Trk::VxCandidate& p) -{ - const Amg::Vector3D& pos = p.recVertex().position(); - *m_x = pos.x(); - *m_y = pos.y(); - *m_z = pos.z(); - return StatusCode::SUCCESS; -} - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexPositionFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexPositionFillerTool.h deleted file mode 100644 index 89a1ccd7d7da08aea679dd998942b28b2f43f41e..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexPositionFillerTool.h +++ /dev/null @@ -1,73 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: VertexPositionFillerTool.h 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/VertexPositionFillerTool.h - * @author maarten boonekamp <maarten.boonekamp@cea.fr> - * @date Sep, 2009 - * @brief Block filler tool for vertex position. - */ - -#ifndef INDETD3PDMAKER_VERTEXPOSITIONFILLERTOOL_H -#define INDETD3PDMAKER_VERTEXPOSITIONFILLERTOOL_H - - -#include "D3PDMakerUtils/BlockFillerTool.h" -namespace Trk { - class VxCandidate; -} - - -namespace D3PD { - - -/** - * @brief Block filler tool for vertex position. - */ -class VertexPositionFillerTool - : public BlockFillerTool<Trk::VxCandidate> -{ -public: - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - VertexPositionFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - /// Book variables for this block. - virtual StatusCode book(); - - - /** - * @brief Fill one block --- type-safe version. - * @param p The input object. - * - * This is called once per object. The caller - * is responsible for arranging that all the pointers for booked variables - * are set appropriately upon entry. - */ - virtual StatusCode fill (const Trk::VxCandidate& p); - - -private: - /// Variables: Vertex position. - float* m_x; - float* m_y; - float* m_z; - -}; - - -} // namespace D3PD - - -#endif // not INDETD3PDMAKER_VERTEXPOSITIONFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexPurityFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexPurityFillerTool.cxx deleted file mode 100644 index fbc6e9200c071151ba30d3a05d303450d469a6d5..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexPurityFillerTool.cxx +++ /dev/null @@ -1,97 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "VertexPurityFillerTool.h" -#include "AthenaKernel/errorcheck.h" -#include "VxVertex/VxContainer.h" -#include "VxVertex/VxCandidate.h" - -#include "TrkVertexFitterValidationUtils/TrkPriVxPurityTool.h" -#include "TrkVertexFitterValidationUtils/TrkPriVxPurity.h" - -namespace D3PD { - -VertexPurityFillerTool::VertexPurityFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : VertexPurityFillerBase (type, name, parent), - m_purityTool("Trk::TrkPriVxPurityTool") -{ - declareProperty("PurityTool", m_purityTool); - - book().ignore(); // Avoid coverity warnings. -} - -StatusCode VertexPurityFillerTool::initialize() -{ - CHECK( VertexPurityFillerBase::initialize() ); - CHECK( m_purityTool.retrieve() ); - return StatusCode::SUCCESS; -} - -StatusCode VertexPurityFillerTool::book() -{ - // purity - CHECK( addVariable ("sumWeightInliers", m_sum_in) ); - CHECK( addVariable ("sumWeightOutliers", m_sum_out) ); - CHECK( addVariable ("sumWeightPileup", m_sum_pu) ); - CHECK( addVariable ("sumWeightFakes", m_sum_nt) ); - CHECK( addVariable ("nInliers", m_n_in) ); - CHECK( addVariable ("nOutliers", m_n_out) ); - CHECK( addVariable ("nPileUp", m_n_pu) ); - CHECK( addVariable ("nFakes", m_n_nt) ); - CHECK( addVariable ("purity", m_purity) ); - - return StatusCode::SUCCESS; -} - -StatusCode VertexPurityFillerTool::fill (const VertexPurityFillerObjectType& vertex) -{ - - this->clearData(); - - //vertex purity - const Trk::TrkPriVxPurity * pv_purity = m_purityTool->purity(&vertex); - - if(pv_purity !=0){ - const std::vector<double> inl = pv_purity->inlierWeights(); - const std::vector<double> outl = pv_purity->outlierWeights(); - const std::vector<double> puv = pv_purity->pileUpWeights(); - const std::vector<double> nt = pv_purity->noTruthFound(); - - *m_n_in = inl.size(); - *m_n_out = outl.size(); - *m_n_pu = puv.size(); - *m_n_nt = nt.size(); - - for(std::vector<double>::const_iterator i = inl.begin(); i != inl.end(); ++i) *m_sum_in += *i; - for(std::vector<double>::const_iterator i = outl.begin();i !=outl.end(); ++i) *m_sum_out += *i; - for(std::vector<double>::const_iterator i = puv.begin(); i !=puv.end(); ++i) *m_sum_pu += *i; - for(std::vector<double>::const_iterator i = nt.begin(); i !=nt.end(); ++i) *m_sum_nt += *i; - - int den = *m_sum_in + *m_sum_out + *m_sum_pu + *m_sum_nt; - if (den > 0) - *m_purity = (*m_sum_in - *m_sum_out - *m_sum_pu - *m_sum_nt) / den; - - delete pv_purity; - - }//end of non-zero purity check - - return StatusCode::SUCCESS; -} - -void VertexPurityFillerTool::clearData(){ - - *m_sum_in = 0; - *m_sum_out = 0; - *m_sum_pu = 0; - *m_sum_nt = 0; - *m_n_in = 0; - *m_n_out = 0; - *m_n_pu = 0; - *m_n_nt = 0; - *m_purity = 0; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexPurityFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexPurityFillerTool.h deleted file mode 100644 index 42df35de88385a89930ad20b0a72ded6c23a4ae1..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexPurityFillerTool.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_VERTEXPURITYFILLERTOOL_H -#define INDETD3PDMAKER_VERTEXPURITYFILLERTOOL_H - -#include "D3PDMakerUtils/BlockFillerTool.h" -#include "GaudiKernel/ToolHandle.h" -#include "TrkVertexFitterValidationUtils/TrkPriVxPurityTool.h" - -namespace Trk{ -class VxCandidate; -} - -namespace D3PD { - -typedef Trk::VxCandidate VertexPurityFillerObjectType; -typedef D3PD::BlockFillerTool<VertexPurityFillerObjectType> VertexPurityFillerBase; - -class VertexPurityFillerTool - : public VertexPurityFillerBase -{ -public: - VertexPurityFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - StatusCode initialize(); - virtual StatusCode book(); - - virtual StatusCode fill (const VertexPurityFillerObjectType& p); - -private: - - void clearData(); - - //purity tool - ToolHandle < Trk::TrkPriVxPurityTool > m_purityTool; - - /* NTuple variables **/ - // vertex purity - float *m_sum_in; - float *m_sum_out; - float *m_sum_pu; - float *m_sum_nt; - int *m_n_in; - int *m_n_out; - int *m_n_pu; - int *m_n_nt; - float *m_purity; - -}; // class VertexPurityFillerTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_VERTEXPURITYFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexTrackAssociationFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexTrackAssociationFillerTool.cxx deleted file mode 100644 index def4ea753f219b5e4a24d6a4320f780a7f154a88..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexTrackAssociationFillerTool.cxx +++ /dev/null @@ -1,70 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "VertexTrackAssociationFillerTool.h" - -#include "AthenaKernel/errorcheck.h" -#include "VxVertex/VxTrackAtVertex.h" -#include "TrkEventPrimitives/FitQuality.h" -#include "TrkEventPrimitives/ParamDefs.h" -#include "TrkParameters/TrackParameters.h" -#include <cassert> - -namespace D3PD { - - -VertexTrackAssociationFillerTool::VertexTrackAssociationFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ - book().ignore(); // Avoid coverity warnings. -} - -StatusCode VertexTrackAssociationFillerTool::book() -{ - - CHECK ( addVariable ("chi2", m_chi2) ); - - CHECK ( addVariable ("d0", m_d0) ); - CHECK ( addVariable ("z0", m_z0) ); - CHECK ( addVariable ("phi", m_phi) ); - CHECK ( addVariable ("theta", m_theta) ); - - return StatusCode::SUCCESS; -} - -StatusCode VertexTrackAssociationFillerTool::fill (const Trk::VxTrackAtVertex& track) -{ - - this->clearData(); - - const Trk::FitQuality fq = track.trackQuality(); - *m_chi2 = fq.chiSquared(); - - const Trk::TrackParameters *parameters = track.perigeeAtVertex(); - if(!parameters){ - REPORT_MESSAGE (MSG::WARNING) << "Perigee at vertex not filled"; - }else{ - assert (parameters->parameters().rows() >= (int)Trk::theta); - *m_d0 = parameters->parameters()[Trk::d0]; - *m_z0 = parameters->parameters()[Trk::z0]; - *m_phi = parameters->parameters()[Trk::phi0]; - *m_theta = parameters->parameters()[Trk::theta]; - } - - return StatusCode::SUCCESS; -} - -void VertexTrackAssociationFillerTool::clearData(){ - - *m_chi2 = 0; - - *m_d0 = 0; - *m_z0 = 0; - *m_phi = 0; - *m_theta = 0; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexTrackAssociationFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexTrackAssociationFillerTool.h deleted file mode 100644 index 566733a05f22cf49109189c1218570a0d4b37386..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexTrackAssociationFillerTool.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef INDETD3PDMAKER_VERTEXTRACKASSOCIATIONFILLERTOOL_H -#define INDETD3PDMAKER_VERTEXTRACKASSOCIATIONFILLERTOOL_H - -#include "D3PDMakerUtils/BlockFillerTool.h" - -namespace Trk{ -class VxTrackAtVertex; -} - -namespace D3PD { - -class VertexTrackAssociationFillerTool - : public BlockFillerTool<Trk::VxTrackAtVertex> -{ -public: - typedef BlockFillerTool<Trk::VxTrackAtVertex> Base; - - VertexTrackAssociationFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - virtual StatusCode book(); - - virtual StatusCode fill (const Trk::VxTrackAtVertex &track); - -private: - - void clearData(); - - /* NTuple variables: **/ - float *m_chi2; - - float *m_d0; - float *m_z0; - float *m_phi; - float *m_theta; - -}; // class VertexTrackAssociationFillerTool - -} // namespace D3PD - -#endif // not INDETD3PDMAKER_VERTEXTRACKASSOCIATIONFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexTypeFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexTypeFillerTool.cxx deleted file mode 100644 index 909c0e4d45255ebb7ecc85fac049e684871ea4cf..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexTypeFillerTool.cxx +++ /dev/null @@ -1,62 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: VertexTypeFillerTool.cxx 502118 2012-05-23 19:10:19Z ssnyder $ -/** - * @file InDetD3PDMaker/src/VertexTypeFillerTool.cxx - * @author Andreas Wildauer - * @date Aug, 2011 - * @brief Block filler tool for vertex type. The vertex type does not fit into any other filler tool. Hence it gets its own. - */ - - -#include "VertexTypeFillerTool.h" -#include "AthenaKernel/errorcheck.h" - - -namespace D3PD { - - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -VertexTypeFillerTool::VertexTypeFillerTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : BlockFillerTool<Trk::VxCandidate> (type, name, parent) -{ - book().ignore(); // Avoid coverity warnings. -} - - -/** - * @brief Book variables for this block. - */ -StatusCode VertexTypeFillerTool::book() -{ - CHECK( addVariable ("type", m_type) ); - return StatusCode::SUCCESS; -} - - -/** - * @brief Fill one block --- type-safe version. - * @param p The input object. - * - * This is called once per object. The caller - * is responsible for arranging that all the pointers for booked variables - * are set appropriately upon entry. - */ -StatusCode VertexTypeFillerTool::fill (const Trk::VxCandidate& p) -{ - *m_type = (int)p.vertexType(); - return StatusCode::SUCCESS; -} - - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexTypeFillerTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexTypeFillerTool.h deleted file mode 100644 index 37749d5945b3daecc7f1f422656682c906f96ea1..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VertexTypeFillerTool.h +++ /dev/null @@ -1,68 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: VertexTypeFillerTool.h 456341 2011-08-31 11:33:30Z wildauer $ -/** - * @file InDetD3PDMaker/src/VertexTypeFillerTool.h - * @author Andreas Wildauer - * @date Aug, 2011 - * @brief Block filler tool for vertex type. The vertex type does not fit into any other filler tool. Hence it gets its own. - */ - -#ifndef INDETD3PDMAKER_VERTEXTYPEFILLERTOOL_H -#define INDETD3PDMAKER_VERTEXTYPEFILLERTOOL_H - - -#include "D3PDMakerUtils/BlockFillerTool.h" - -#include "VxVertex/VxCandidate.h" - -namespace D3PD { - - -/** - * @brief Block filler tool for vertex type. The vertex type does not fit into any other filler tool. Hence it gets its own. - */ -class VertexTypeFillerTool - : public BlockFillerTool<Trk::VxCandidate> -{ -public: - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - VertexTypeFillerTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - - /// Book variables for this block. - virtual StatusCode book(); - - - /** - * @brief Fill one block --- type-safe version. - * @param p The input object. - * - * This is called once per object. The caller - * is responsible for arranging that all the pointers for booked variables - * are set appropriately upon entry. - */ - virtual StatusCode fill (const Trk::VxCandidate& p); - - -private: - - int* m_type; -}; - - -} // namespace D3PD - - -#endif // not INDETD3PDMAKER_VERTEXTYPEFILLERTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VxTrackAtVertexTrackParticleAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VxTrackAtVertexTrackParticleAssociationTool.cxx deleted file mode 100644 index 2d91469b762c1d1b2be42864a9d6cba12f618d31..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VxTrackAtVertexTrackParticleAssociationTool.cxx +++ /dev/null @@ -1,68 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: VxTrackAtVertexTrackParticleAssociationTool.cxx 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/VxTrackAtVertexTrackParticleAssociationTool.cxx - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a VxTrackAtVertex to a TrackParticle. - */ - -#include "VxTrackAtVertexTrackParticleAssociationTool.h" - -#include <VxVertex/VxTrackAtVertex.h> -#include <Particle/TrackParticle.h> -#include <TrkParticleBase/LinkToTrackParticleBase.h> -#include "AthenaKernel/errorcheck.h" - -namespace D3PD { - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -VxTrackAtVertexTrackParticleAssociationTool::VxTrackAtVertexTrackParticleAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ -} - -/** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ -const Rec::TrackParticle *VxTrackAtVertexTrackParticleAssociationTool::get (const Trk::VxTrackAtVertex& track) -{ - - const Trk::LinkToTrackParticleBase *link = dynamic_cast<const Trk::LinkToTrackParticleBase *>(track.trackOrParticleLink()); - if(0 == link){ // it's not a link to TrackParticle - REPORT_MESSAGE (MSG::WARNING) << "Trying to associate a TrackParticle to a vertex" - << " while the vertex was not fitted using TrackParticles"; - return 0; - } - - const Trk::TrackParticleBase *particle_base = **link; - if(0 == particle_base){ - REPORT_MESSAGE (MSG::WARNING) << "link from VxCandidate to TrackParticle is broken"; - return 0; - } - - const Rec::TrackParticle* particle = dynamic_cast<const Rec::TrackParticle*>(particle_base); - - if(0 == particle){ - REPORT_MESSAGE (MSG::WARNING) << "dynamic cast from Trk::TrackParticleBase to Rec::TrackParticle failed"; - return 0; - } - - return particle; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VxTrackAtVertexTrackParticleAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VxTrackAtVertexTrackParticleAssociationTool.h deleted file mode 100644 index 22f92ebb2d6d2bc63e3b000766a62563c8e7d2d7..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VxTrackAtVertexTrackParticleAssociationTool.h +++ /dev/null @@ -1,62 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: VxTrackAtVertexTrackParticleAssociationTool.h 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/VxTrackAtVertexTrackParticleAssociationTool.h - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a VxTrackAtVertex to a TrackParticle. - */ -#ifndef INDETD3PDMAKER_VXTRACKATVERTEXTRACKPARTICLEASSOCIATIONTOOL_H -#define INDETD3PDMAKER_VXTRACKATVERTEXTRACKPARTICLEASSOCIATIONTOOL_H - -#include "D3PDMakerUtils/SingleAssociationTool.h" - -namespace Rec { - class TrackParticle; -} - -namespace Trk { - class VxTrackAtVertex; -} - -namespace D3PD { - -/** - * @brief Associate from a VxTrackAtVertex to a TrackParticle. - */ -class VxTrackAtVertexTrackParticleAssociationTool - : public SingleAssociationTool<Trk::VxTrackAtVertex, Rec::TrackParticle> -{ -public: - typedef SingleAssociationTool<Trk::VxTrackAtVertex, Rec::TrackParticle> Base; - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - VxTrackAtVertexTrackParticleAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - /** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ - virtual const Rec::TrackParticle* get (const Trk::VxTrackAtVertex& p); -}; - - -} // namespace D3PD - - - -#endif // not INDETD3PDMAKER_VXTRACKATVERTEXTRACKPARTICLEASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VxTrackAtVertexTrkTrackAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VxTrackAtVertexTrkTrackAssociationTool.cxx deleted file mode 100644 index bd9208f88183764f40f0dcd3c5fe9f6f2fc8e469..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VxTrackAtVertexTrkTrackAssociationTool.cxx +++ /dev/null @@ -1,61 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: VxTrackAtVertexTrkTrackAssociationTool.cxx 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/VxTrackAtVertexTrkTrackAssociationTool.cxx - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a VxTrackAtVertex to a TrkTrack. - */ - -#include "VxTrackAtVertexTrkTrackAssociationTool.h" - -#include <VxVertex/VxTrackAtVertex.h> -#include <TrkTrack/Track.h> -#include <TrkTrack/LinkToTrack.h> -#include "AthenaKernel/errorcheck.h" - -namespace D3PD { - -/** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ -VxTrackAtVertexTrkTrackAssociationTool::VxTrackAtVertexTrkTrackAssociationTool - (const std::string& type, - const std::string& name, - const IInterface* parent) - : Base (type, name, parent) -{ -} - -/** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ -const Trk::Track *VxTrackAtVertexTrkTrackAssociationTool::get (const Trk::VxTrackAtVertex& track) -{ - - const Trk::LinkToTrack *link = dynamic_cast<const Trk::LinkToTrack*>(track.trackOrParticleLink()); - if(0 == link){ // it's not a link to TrkTrack - REPORT_MESSAGE (MSG::WARNING) << "Trying to associate a Trk::Track to a vertex" - << " while the vertex was not fitted using Trk::Track"; - return 0; - } - - const Trk::Track *trktrack = **link; - if(0 == trktrack){ - REPORT_MESSAGE (MSG::WARNING) << "link from VxCandidate to TrkTrack is broken"; - return 0; - } - - return trktrack; -} - -} // namespace D3PD diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VxTrackAtVertexTrkTrackAssociationTool.h b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VxTrackAtVertexTrkTrackAssociationTool.h deleted file mode 100644 index a430acfd9ac292459f73c691ec248075930de3b0..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/VxTrackAtVertexTrkTrackAssociationTool.h +++ /dev/null @@ -1,61 +0,0 @@ -// This file's extension implies that it's C, but it's really -*- C++ -*-. - -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -// $Id: VxTrackAtVertexTrkTrackAssociationTool.h 281348 2010-02-24 23:15:11Z zaidan $ -/** - * @file InDetD3PDMaker/src/VxTrackAtVertexTrkTrackAssociationTool.h - * @author remi zaidan <remi.zaidan@cern.ch> - * @date Feb, 2010 - * @brief Associate from a VxTrackAtVertex to a TrkTrack. - */ -#ifndef INDETD3PDMAKER_VXTRACKATVERTEXTRKTRACKASSOCIATIONTOOL_H -#define INDETD3PDMAKER_VXTRACKATVERTEXTRKTRACKASSOCIATIONTOOL_H - -#include "VxVertex/VxTrackAtVertex.h" -#include "D3PDMakerUtils/SingleAssociationTool.h" - - -namespace Trk { - class Track; - class VxTrackAtVertex; -} - -namespace D3PD { - -/** - * @brief Associate from a TrkTrack to its MeasuredPerigee. - */ -class VxTrackAtVertexTrkTrackAssociationTool - : public SingleAssociationTool<Trk::VxTrackAtVertex, Trk::Track> -{ -public: - typedef SingleAssociationTool<Trk::VxTrackAtVertex, Trk::Track> Base; - - /** - * @brief Standard Gaudi tool constructor. - * @param type The name of the tool type. - * @param name The tool name. - * @param parent The tool's Gaudi parent. - */ - VxTrackAtVertexTrkTrackAssociationTool (const std::string& type, - const std::string& name, - const IInterface* parent); - - /** - * @brief Return the target object. - * @param p The source object for the association. - * - * Return the target of the association, or 0. - */ - virtual const Trk::Track* get (const Trk::VxTrackAtVertex& p); -}; - - -} // namespace D3PD - - - -#endif // not INDETD3PDMAKER_VXTRACKATVERTEXTRKTRACKASSOCIATIONTOOL_H diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/components/InDetD3PDMaker_entries.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/components/InDetD3PDMaker_entries.cxx deleted file mode 100644 index 62fca558fe76703f56ca489bae85ce6acbcadaa8..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/components/InDetD3PDMaker_entries.cxx +++ /dev/null @@ -1,149 +0,0 @@ -#include "../ClusterAssocFillerTool.h" -#include "../ClusterAssocPixelFillerTool.h" -#include "../PixelClusterPixelRDOAssociationTool.h" -#include "../PixelClusterToTrackParticleAssociationTool.h" -#include "../PixelRDOClusterAssociationTool.h" -#include "../PixelRDOCollectionGetterTool.h" -#include "../PixelRDOFillerTool.h" -#include "../SCTByteStreamErrorFillerTool.h" -#include "../SCTClusterCollectionGetterTool.h" -#include "../SCTClusterFillerTool.h" -#include "../SCTClusterSCTRDOAssociationTool.h" -#include "../SCTClusterToTrackParticleAssociationTool.h" -#include "../SCTRDOClusterAssociationTool.h" -#include "../SCTRDOCollectionGetterTool.h" -#include "../SCTRDOFillerTool.h" -#include "../SCTTrackParticleToMuonAssociationTool.h" -#include "../SiHitFillerTool.h" -#include "../SiHitTruthAssociationTool.h" -#include "../TRTPhaseFillerTool.h" -#include "../TRTUncompressedHitFillerTool.h" -#include "../TSOSPixelClusterAssociationTool.h" -#include "../TrackParticleToPixelClusterAssociationTool.h" -#include "../TrackParticleToPixelClusterAssociationToolLight.h" -#include "../TrackParticleToSCTClusterAssociationTool.h" -#include "../TrackParticleToSCTClusterAssociationToolLight.h" -#include "../TrkPrepRawDataGenParticleAssociationTool.h" -#include "../TrkTrackGetterTool.h" -#include "../PixelClusterCollectionGetterTool.h" -#include "../PixelClusterFillerTool.h" -#include "../TrackBeamlineParametersAssociationTool.h" -#include "../TrackParticleLastParametersAssociationTool.h" -#include "../ErrorMatrixCovarianceFillerTool.h" -#include "../ErrorMatrixErrorFillerTool.h" -#include "../TrackParametersFillerTool.h" -#include "../TrkTrackPerigeeAssociationTool.h" -#include "../TrkTrackPerigeeAtPVAssociationTool.h" -#include "../TrkTrackPerigeeAtBSAssociationTool.h" -#include "../TrkTrackFitQualityAssociationTool.h" -#include "../TrkTrackTrackSummaryAssociationTool.h" -#include "../TrkTrackInfoAssociationTool.h" -#include "../TrkTrackTSOAssociationTool.h" -#include "../TrkTrackVertexAssociationTool.h" -#include "../TrkTrackTruthAssociationTool.h" -#include "../TrkTrackDetailedTruthAssociationTool.h" -#include "../TrkTrackParametersAtBLFillerTool.h" -#include "../TrackParticleParametersAtBLFillerTool.h" -#include "../V0CandidateFillerTool.h" -#include "../V0CandidateVxCandidateAssociationTool.h" -#include "../VertexFitQualityAssociationTool.h" -#include "../VxTrackAtVertexTrkTrackAssociationTool.h" -#include "../VertexTrackAssociationFillerTool.h" -#include "../VertexPurityFillerTool.h" -#include "../VxTrackAtVertexTrackParticleAssociationTool.h" -#include "../VertexPositionFillerTool.h" -#include "../VertexTypeFillerTool.h" -#include "../TrackParticleDetailedTruthAssociationTool.h" -#include "../TrackParticleTruthAssociationTool.h" -#include "../TrackParticleTSOAssociationTool.h" -#include "../TrackParametersErrorMatrixAssociationTool.h" -#include "../TrackParticleInfoAssociationTool.h" -#include "../TrackParticleTrackSummaryAssociationTool.h" -#include "../TrackTrackSummaryFillerTool.h" -#include "../TrackParticleFitQualityAssociationTool.h" -#include "../TrackFitQualityFillerTool.h" -#include "../TrackInfoFillerTool.h" -#include "../TSOFitQualityAssociationTool.h" -#include "../TrackStateOnSurfaceFillerTool.h" -#include "../TrackParticleGetterTool.h" -#include "../BeamSpotGetterTool.h" -#include "../BeamSpotFillerTool.h" -#include "../TruthTrackFillerTool.h" -#include "../TruthVertexFillerTool.h" -#include "../TruthTrackGetterTool.h" -#include "../TruthVertexGetterTool.h" - - -DECLARE_COMPONENT( D3PD::ClusterAssocFillerTool ) -DECLARE_COMPONENT( D3PD::ClusterAssocPixelFillerTool ) -DECLARE_COMPONENT( D3PD::PixelClusterPixelRDOAssociationTool ) -DECLARE_COMPONENT( D3PD::PixelClusterToTrackParticleAssociationTool ) -DECLARE_COMPONENT( D3PD::PixelRDOClusterAssociationTool ) -DECLARE_COMPONENT( D3PD::PixelRDOCollectionGetterTool ) -DECLARE_COMPONENT( D3PD::PixelRDOFillerTool ) -DECLARE_COMPONENT( D3PD::SCTByteStreamErrorFillerTool ) -DECLARE_COMPONENT( D3PD::SCTClusterCollectionGetterTool ) -DECLARE_COMPONENT( D3PD::SCTClusterFillerTool ) -DECLARE_COMPONENT( D3PD::SCTClusterSCTRDOAssociationTool ) -DECLARE_COMPONENT( D3PD::SCTClusterToTrackParticleAssociationTool ) -DECLARE_COMPONENT( D3PD::SCTRDOClusterAssociationTool ) -DECLARE_COMPONENT( D3PD::SiHitFillerTool ) -DECLARE_COMPONENT( D3PD::SiHitTruthAssociationTool ) -DECLARE_COMPONENT( D3PD::TRTPhaseFillerTool ) -DECLARE_COMPONENT( D3PD::TRTUncompressedHitContainerGetterTool ) -DECLARE_COMPONENT( D3PD::TRTUncompressedHitFillerTool ) -DECLARE_COMPONENT( D3PD::TSOSPixelClusterAssociationTool ) -DECLARE_COMPONENT( D3PD::TrackParticleToPixelClusterAssociationTool ) -DECLARE_COMPONENT( D3PD::TrackParticleToPixelClusterAssociationToolLight ) -DECLARE_COMPONENT( D3PD::TrackParticleToSCTClusterAssociationTool ) -DECLARE_COMPONENT( D3PD::TrackParticleToSCTClusterAssociationToolLight ) -DECLARE_COMPONENT( D3PD::TrkPrepRawDataGenParticleAssociationTool ) -DECLARE_COMPONENT( D3PD::TrkTrackGetterTool ) -DECLARE_COMPONENT( D3PD::PixelClusterCollectionGetterTool ) -DECLARE_COMPONENT( D3PD::PixelClusterFillerTool ) -DECLARE_COMPONENT( D3PD::TrackBeamlineParametersAssociationTool ) -DECLARE_COMPONENT( D3PD::TrackParticleLastParametersAssociationTool ) -DECLARE_COMPONENT( D3PD::ErrorMatrixCovarianceFillerTool ) -DECLARE_COMPONENT( D3PD::ErrorMatrixErrorFillerTool ) -DECLARE_COMPONENT( D3PD::TrackParametersFillerTool ) -DECLARE_COMPONENT( D3PD::TrkTrackPerigeeAssociationTool ) -DECLARE_COMPONENT( D3PD::TrkTrackPerigeeAtPVAssociationTool ) -DECLARE_COMPONENT( D3PD::TrkTrackPerigeeAtBSAssociationTool ) -DECLARE_COMPONENT( D3PD::TrkTrackFitQualityAssociationTool ) -DECLARE_COMPONENT( D3PD::TrkTrackTrackSummaryAssociationTool ) -DECLARE_COMPONENT( D3PD::TrkTrackInfoAssociationTool ) -DECLARE_COMPONENT( D3PD::TrkTrackTSOAssociationTool ) -DECLARE_COMPONENT( D3PD::TrkTrackTruthAssociationTool ) -DECLARE_COMPONENT( D3PD::TrkTrackVertexAssociationTool ) -DECLARE_COMPONENT( D3PD::TrkTrackDetailedTruthAssociationTool ) -DECLARE_COMPONENT( D3PD::TrkTrackParametersAtBLFillerTool ) -DECLARE_COMPONENT( D3PD::TrackParticleParametersAtBLFillerTool ) -DECLARE_COMPONENT( D3PD::V0CandidateVxCandidateAssociationTool ) -DECLARE_COMPONENT( D3PD::V0CandidateFillerTool ) -DECLARE_COMPONENT( D3PD::V0ContainerGetterTool ) -DECLARE_COMPONENT( D3PD::VertexFitQualityAssociationTool ) -DECLARE_COMPONENT( D3PD::VxTrackAtVertexTrkTrackAssociationTool ) -DECLARE_COMPONENT( D3PD::VertexTrackAssociationFillerTool ) -DECLARE_COMPONENT( D3PD::VertexPurityFillerTool ) -DECLARE_COMPONENT( D3PD::VxTrackAtVertexTrackParticleAssociationTool ) -DECLARE_COMPONENT( D3PD::VertexPositionFillerTool ) -DECLARE_COMPONENT( D3PD::VertexTypeFillerTool ) -DECLARE_COMPONENT( D3PD::TrackParametersErrorMatrixAssociationTool ) -DECLARE_COMPONENT( D3PD::TrackParticleTSOAssociationTool ) -DECLARE_COMPONENT( D3PD::TrackParticleDetailedTruthAssociationTool ) -DECLARE_COMPONENT( D3PD::TrackParticleTruthAssociationTool ) -DECLARE_COMPONENT( D3PD::TrackParticleInfoAssociationTool ) -DECLARE_COMPONENT( D3PD::TrackParticleTrackSummaryAssociationTool ) -DECLARE_COMPONENT( D3PD::TrackTrackSummaryFillerTool ) -DECLARE_COMPONENT( D3PD::TrackParticleFitQualityAssociationTool ) -DECLARE_COMPONENT( D3PD::TrackFitQualityFillerTool ) -DECLARE_COMPONENT( D3PD::TrackInfoFillerTool ) -DECLARE_COMPONENT( D3PD::TSOFitQualityAssociationTool ) -DECLARE_COMPONENT( D3PD::TrackStateOnSurfaceFillerTool ) -DECLARE_COMPONENT( D3PD::TrackParticleGetterTool ) -DECLARE_COMPONENT( D3PD::BeamSpotGetterTool ) -DECLARE_COMPONENT( D3PD::BeamSpotFillerTool ) -DECLARE_COMPONENT( D3PD::TruthTrackGetterTool ) -DECLARE_COMPONENT( D3PD::TruthTrackFillerTool ) -DECLARE_COMPONENT( D3PD::TruthVertexGetterTool ) -DECLARE_COMPONENT( D3PD::TruthVertexFillerTool ) diff --git a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/indetInheritance.cxx b/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/indetInheritance.cxx deleted file mode 100644 index 5f725520d16d286085f9434e667986c0f22d61b8..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/D3PDMaker/InDetD3PDMaker/src/indetInheritance.cxx +++ /dev/null @@ -1,20 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ -/* - */ -/** - * @file InDetD3PDMaker/src/indetInheritance.cxx - * @author Serhan Mete, scott snyder <snyder@bnl.gov> - * @date Aug, 2009 - * @brief Declare inheritance relationships for tracking classes. - * - * Eventually, these should be moved to the EDM classes. - */ - -#include "TrkV0Vertex/V0Container.h" -#include "AthenaKernel/BaseInfo.h" - - -SG_ADD_BASE (V0Container, DataVector<Trk::V0Candidate>); - diff --git a/Projects/Athena/package_filters.txt b/Projects/Athena/package_filters.txt index c8378cf2bc850ba68542527a9026a0885ef86692..a193110e30bd7ac8b17bd78d35d6018831277d05 100644 --- a/Projects/Athena/package_filters.txt +++ b/Projects/Athena/package_filters.txt @@ -52,9 +52,6 @@ #- DataQuality/DataQualityConfigurations #- DataQuality/DCSCalculator2 -# Huge D3PD librarys not really useful any more -- PhysicsAnalysis/D3PDMaker/InDetD3PDMaker - # Don't build PerfMonVTune which has external Intel tool dependency - Control/PerformanceMonitoring/PerfMonVTune