Skip to content
Snippets Groups Projects

Multitrack seeding improvement and fix to KF track refit

Merged Dave Casper requested to merge master-overlayrdo into master
21 files
+ 1354
38
Compare changes
  • Side-by-side
  • Inline
Files
21
@@ -29,6 +29,8 @@ parser.add_argument("-r", "--reco", default="",
@@ -29,6 +29,8 @@ parser.add_argument("-r", "--reco", default="",
help="Specify reco tag (to append to output filename)")
help="Specify reco tag (to append to output filename)")
parser.add_argument("-n", "--nevents", type=int, default=-1,
parser.add_argument("-n", "--nevents", type=int, default=-1,
help="Specify number of events to process (default: all)")
help="Specify number of events to process (default: all)")
 
parser.add_argument("--skip", type=int, default=0,
 
help="Specify number of events to skip (default: none)")
parser.add_argument("-v", "--verbose", action='store_true',
parser.add_argument("-v", "--verbose", action='store_true',
help="Turn on DEBUG output")
help="Turn on DEBUG output")
parser.add_argument("--isMC", action='store_true',
parser.add_argument("--isMC", action='store_true',
@@ -37,6 +39,8 @@ parser.add_argument("--MC_calibTag", default="",
@@ -37,6 +39,8 @@ parser.add_argument("--MC_calibTag", default="",
help="Specify tag used to reconstruct MC calo energy: (WAVE-Calibration-01-LG-nofilt, WAVE-Calibration-01-LG, WAVE-Calibration-01-HG-nofilt, or WAVE-Calibration-01-HG) ")
help="Specify tag used to reconstruct MC calo energy: (WAVE-Calibration-01-LG-nofilt, WAVE-Calibration-01-LG, WAVE-Calibration-01-HG-nofilt, or WAVE-Calibration-01-HG) ")
parser.add_argument("--testBeam", action='store_true',
parser.add_argument("--testBeam", action='store_true',
help="Set geometry for 2021 test beam")
help="Set geometry for 2021 test beam")
 
parser.add_argument("--isOverlay", action='store_true',
 
help="Set overlaid data input")
args = parser.parse_args()
args = parser.parse_args()
@@ -81,6 +85,8 @@ else:
@@ -81,6 +85,8 @@ else:
print(f"Starting reconstruction of {filepath.name} with type {runtype}")
print(f"Starting reconstruction of {filepath.name} with type {runtype}")
if args.nevents > 0:
if args.nevents > 0:
print(f"Reconstructing {args.nevents} events by command-line option")
print(f"Reconstructing {args.nevents} events by command-line option")
 
if args.skip > 0:
 
print(f"Skipping {args.skip} events by command-line option")
# Start reconstruction
# Start reconstruction
@@ -103,6 +109,8 @@ else:
@@ -103,6 +109,8 @@ else:
ConfigFlags.Input.ProjectName = "data20"
ConfigFlags.Input.ProjectName = "data20"
ConfigFlags.GeoModel.Align.Dynamic = False
ConfigFlags.GeoModel.Align.Dynamic = False
 
ConfigFlags.Exec.SkipEvents = args.skip
 
# Flags for later
# Flags for later
useCKF = True
useCKF = True
useCal = False
useCal = False
@@ -173,7 +181,7 @@ acc.merge(PoolWriteCfg(ConfigFlags))
@@ -173,7 +181,7 @@ acc.merge(PoolWriteCfg(ConfigFlags))
#
#
# Set up RAW data access
# Set up RAW data access
if args.isMC:
if args.isMC or args.isOverlay:
from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
acc.merge(PoolReadCfg(ConfigFlags))
acc.merge(PoolReadCfg(ConfigFlags))
else:
else:
@@ -185,21 +193,23 @@ else:
@@ -185,21 +193,23 @@ else:
from FaserGeoModel.FaserGeoModelConfig import FaserGeometryCfg
from FaserGeoModel.FaserGeoModelConfig import FaserGeometryCfg
acc.merge(FaserGeometryCfg(ConfigFlags))
acc.merge(FaserGeometryCfg(ConfigFlags))
if useLHC:
if useLHC and not args.isOverlay:
from LHCDataAlgs.LHCDataAlgConfig import LHCDataAlgCfg
from LHCDataAlgs.LHCDataAlgConfig import LHCDataAlgCfg
acc.merge(LHCDataAlgCfg(ConfigFlags))
acc.merge(LHCDataAlgCfg(ConfigFlags))
# Set up algorithms
# Set up algorithms
from WaveRecAlgs.WaveRecAlgsConfig import WaveformReconstructionCfg
if not args.isOverlay:
acc.merge(WaveformReconstructionCfg(ConfigFlags))
from WaveRecAlgs.WaveRecAlgsConfig import WaveformReconstructionCfg
 
acc.merge(WaveformReconstructionCfg(ConfigFlags))
# Calorimeter Energy reconstruction
# Calorimeter Energy reconstruction
if useCal:
if useCal:
from CaloRecAlgs.CaloRecAlgsConfig import CalorimeterReconstructionCfg
from CaloRecAlgs.CaloRecAlgsConfig import CalorimeterReconstructionCfg
acc.merge(CalorimeterReconstructionCfg(ConfigFlags, MC_calibTag=args.MC_calibTag))
acc.merge(CalorimeterReconstructionCfg(ConfigFlags, MC_calibTag=args.MC_calibTag))
# Tracker clusters
# Tracker clusters
from TrackerPrepRawDataFormation.TrackerPrepRawDataFormationConfig import FaserSCT_ClusterizationCfg
from TrackerPrepRawDataFormation.TrackerPrepRawDataFormationConfig import FaserSCT_ClusterizationCfg
 
# acc.merge(FaserSCT_ClusterizationCfg(ConfigFlags, DataObjectName="Pos_SCT_RDOs"))
acc.merge(FaserSCT_ClusterizationCfg(ConfigFlags, DataObjectName="SCT_RDOs"))
acc.merge(FaserSCT_ClusterizationCfg(ConfigFlags, DataObjectName="SCT_RDOs"))
#
#
@@ -226,7 +236,8 @@ if useCKF:
@@ -226,7 +236,8 @@ if useCKF:
#
#
# Kalman Filter for tracking
# Kalman Filter for tracking
from FaserActsKalmanFilter.CKF2Config import CKF2Cfg
from FaserActsKalmanFilter.CKF2Config import CKF2Cfg
acc.merge(CKF2Cfg(ConfigFlags, noDiagnostics=True))
if not args.isOverlay:
 
acc.merge(CKF2Cfg(ConfigFlags, noDiagnostics=True))
# Add tracking collection with no IFT
# Add tracking collection with no IFT
acc.merge(CKF2Cfg(ConfigFlags, maskedLayers=[0, 1, 2], name="CKF_woIFT",
acc.merge(CKF2Cfg(ConfigFlags, maskedLayers=[0, 1, 2], name="CKF_woIFT",
@@ -246,10 +257,10 @@ itemList = [ "xAOD::EventInfo#*"
@@ -246,10 +257,10 @@ itemList = [ "xAOD::EventInfo#*"
, "TrackCollection#*"
, "TrackCollection#*"
]
]
#
#
if useLHC:
if useLHC and not args.isOverlay:
itemList.extend( ["xAOD::FaserLHCData#*", "xAOD::FaserLHCDataAux#*"] )
itemList.extend( ["xAOD::FaserLHCData#*", "xAOD::FaserLHCDataAux#*"] )
if args.isMC:
if args.isMC and not args.isOverlay:
# Make xAOD versions of truth
# Make xAOD versions of truth
from Reconstruction.xAODTruthCnvAlgConfig import xAODTruthCnvAlgCfg
from Reconstruction.xAODTruthCnvAlgConfig import xAODTruthCnvAlgCfg
acc.merge(xAODTruthCnvAlgCfg(ConfigFlags))
acc.merge(xAODTruthCnvAlgCfg(ConfigFlags))
@@ -266,13 +277,14 @@ tagBuilder = CompFactory.EventInfoTagBuilder()
@@ -266,13 +277,14 @@ tagBuilder = CompFactory.EventInfoTagBuilder()
tagBuilder.PropagateInput=False
tagBuilder.PropagateInput=False
acc.addEventAlgo(tagBuilder)
acc.addEventAlgo(tagBuilder)
# Waveform reconstruction output
if not args.isOverlay:
from WaveRecAlgs.WaveRecAlgsConfig import WaveformReconstructionOutputCfg
# Waveform reconstruction output
acc.merge(WaveformReconstructionOutputCfg(ConfigFlags))
from WaveRecAlgs.WaveRecAlgsConfig import WaveformReconstructionOutputCfg
 
acc.merge(WaveformReconstructionOutputCfg(ConfigFlags))
# Calorimeter reconstruction output
# Calorimeter reconstruction output
from CaloRecAlgs.CaloRecAlgsConfig import CalorimeterReconstructionOutputCfg
from CaloRecAlgs.CaloRecAlgsConfig import CalorimeterReconstructionOutputCfg
acc.merge(CalorimeterReconstructionOutputCfg(ConfigFlags))
acc.merge(CalorimeterReconstructionOutputCfg(ConfigFlags))
# Check what we have
# Check what we have
print( "Writing out xAOD objects:" )
print( "Writing out xAOD objects:" )
Loading