diff --git a/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredNewTrackingCuts.py b/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredNewTrackingCuts.py index f79ea6bfb50ce8d5a79cc2f3f7a691b923afde84..4b9299c2858907a33584c6e060eb89c09bda3df6 100755 --- a/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredNewTrackingCuts.py +++ b/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredNewTrackingCuts.py @@ -78,6 +78,7 @@ class ConfiguredNewTrackingCuts : self.__phiWidthBrem = 0.3 # default is 0.3 self.__etaWidthBrem = 0.2 # default is 0.3 + # --- Z Boundary Seeding self.__doZBoundary = False @@ -229,6 +230,13 @@ class ConfiguredNewTrackingCuts : self.__maxSecondarySCTHoles = 5 self.__maxSecondaryDoubleHoles = 2 + if self.__indetflags.doInnerDetectorCommissioning(): + self.__minClusters = 6 + self.__nWeightedClustersMin = 6 + self.__minSiNotShared = 5 + self.__rejectShortExtensions = False + + # if rec.Commissioning(): # self.__minClusters = 7 # Igor 6, was 7 # self.__maxHoles = 5 # was 5 @@ -405,6 +413,7 @@ class ConfiguredNewTrackingCuts : self.__maxPrimaryImpact = 1000. * Units.mm self.__maxZImpact = 10000. * Units.mm self.__minClusters = 4 + self.__minSiNotShared = 4 self.__maxHoles = 3 self.__maxPixelHoles = 3 self.__maxSctHoles = 3 @@ -496,6 +505,25 @@ class ConfiguredNewTrackingCuts : self.__Xi2maxNoAdd = 100.0 self.__nWeightedClustersMin = 6 + + if mode == "PixelPrdAssociation": + self.__extension = "PixelPrdAssociation" # this runs after NewTracking + self.__minPT = 5.0 * Units.GeV + self.__minClusters = 4 + self.__maxHoles = 0 + self.__maxPixelHoles = 0 + self.__maxSctHoles = 0 + self.__maxDoubleHoles = 0 + self.__minSiNotShared = 3 + self.__maxShared = 0 + self.__seedFilterLevel = 2 + self.__nHolesMax = self.__maxHoles + self.__nHolesGapMax = self.__maxHoles + self.__useSCT = False + self.__useTRT = False + self.__maxEta = 2.2 + + # --- changes for SCT segments if mode == "SCT": self.__extension = "SCT" # this runs parallel to NewTracking @@ -531,7 +559,12 @@ class ConfiguredNewTrackingCuts : self.__Xi2max = 60.0 self.__Xi2maxNoAdd = 100.0 self.__nWeightedClustersMin = 6 - + + if self.__indetflags.doInnerDetectorCommissioning(): + self.__minClusters = 4 + self.__minSiNotShared = 4 + self.__nWeightedClustersMin = 4 + # --- TRT subdetector tracklet cuts if mode == "TRT": self.__minPT = 0.4 * Units.GeV @@ -570,8 +603,14 @@ class ConfiguredNewTrackingCuts : self.__Xi2max = 60.0 self.__Xi2maxNoAdd = 100.0 self.__nWeightedClustersMin = 6 + + if self.__indetflags.doInnerDetectorCommissioning(): + self.__minClusters = 4 + self.__nWeightedClustersMin = 4 + self.__minSiNotShared = 4 + self.__rejectShortExtensions = False -# elif rec.Commissioning(): +# elif rec.Commissioning(): # self.__minClusters = 7 # Igor 6, was 7 # self.__maxHoles = 5 # was 5 # self.__maxSctHoles = 5 # was 5 diff --git a/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredVertexingCuts.py b/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredVertexingCuts.py index 39a8841b454afb6375ccaec2453bea4d7a7db898..52d8958cd216a242a0a3100a2751046612bdac9f 100644 --- a/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredVertexingCuts.py +++ b/InnerDetector/InDetExample/InDetRecExample/python/ConfiguredVertexingCuts.py @@ -41,6 +41,9 @@ class ConfiguredVertexingCuts : # of tracks for the vertex reconstruction. # +# Cut level for the track selection tool. + self.__TrackCutLevel = "NoCut" + # this is cutLevel = 1 self.__minPT = 400. * Units.MeV self.__IPd0Max = 10. @@ -54,10 +57,9 @@ class ConfiguredVertexingCuts : #cluster and track quality cuts self.__useTrackSummaryInfo = True - self.__nHitBLayer = 0 + self.__nHitInnermostLayer = 0 self.__nHitPix = 1 self.__nHolesPix = 1 - self.__nHitBLayerPlusPix = 0 self.__nHitSct = 4 self.__nHitSi = 6 self.__nHitTrt = 0 @@ -131,6 +133,13 @@ class ConfiguredVertexingCuts : self.__nHolesPix = 0 +#-------------- RUN2 TightPrimary Options--------------------- +# Additional TrackSelectionTool options for RUN2 +# + if self.__indetflags.priVtxCutLevel() == 3 : + self.__TrackCutLevel = "TightPrimary" + + #-------------"MinBias running mode"----------------------------------- # Looser pT cut on input tracks; tighter cut on sigma IP d0 if mode == "LowPt": @@ -195,6 +204,9 @@ class ConfiguredVertexingCuts : def extension( self ) : return self.__extension + def TrackCutLevel( self ) : + return self.__TrackCutLevel + def minPT( self ) : return self.__minPT @@ -225,15 +237,12 @@ class ConfiguredVertexingCuts : def useTrackSummaryInfo( self ) : return self.__useTrackSummaryInfo - def nHitBLayer( self ) : - return self.__nHitBLayer + def nHitInnermostLayer( self ) : + return self.__nHitInnermostLayer def nHitPix( self ): return self.__nHitPix - def nHitBLayerPlusPix( self ): - return self.__nHitBLayerPlusPix - def nHitSct( self ): return self.__nHitSct @@ -281,7 +290,9 @@ class ConfiguredVertexingCuts : print '****** Inner Detector Primary Vertex Reconstruction Cuts ****************************' print '*' print '* mode is : ', self.__mode - print '* cut level for primary vertexig is : ', self.__indetflags.priVtxCutLevel() + print '* cut level for primary vertexing is : ', self.__indetflags.priVtxCutLevel() + print '*' + print '* Track Cut Level : ', self.__TrackCutLevel print '*' print '* min pT : ', self.__minPT, ' MeV' print '* Max IP d0 : ', self.__IPd0Max @@ -295,10 +306,9 @@ class ConfiguredVertexingCuts : #cluster and track quality cuts print '* Use TrackSummary : ', self.__useTrackSummaryInfo - print '* Min N B Layer Hits : ', self.__nHitBLayer + print '* Min N Innermost Layer Hits : ', self.__nHitInnermostLayer print '* Min N Pix Hit : ', self.__nHitPix print '* Max N Pix Holes : ', self.__nHolesPix - print '* Min N B Layer + Pix : ', self.__nHitBLayerPlusPix print '* Min N SCT Hits : ', self.__nHitSct print '* Min N Si Hits : ', self.__nHitSi print '* Min N TRT Hits : ', self.__nHitTrt diff --git a/InnerDetector/InDetExample/InDetRecExample/python/InDetJobProperties.py b/InnerDetector/InDetExample/InDetRecExample/python/InDetJobProperties.py index 993680b3f2310e4d0e2638a3d1c2a41fb86d3066..c9b4439d69b1e5a725293b53ef22ab2fbbaf1b0d 100644 --- a/InnerDetector/InDetExample/InDetRecExample/python/InDetJobProperties.py +++ b/InnerDetector/InDetExample/InDetRecExample/python/InDetJobProperties.py @@ -266,7 +266,13 @@ class doCaloSeededBrem(InDetFlagsJobProperty): statusOn = True allowedTypes = ['bool'] StoredValue = True - + +class doHadCaloSeededSSS(InDetFlagsJobProperty): + """Use Recover SSS to Calo ROIs""" + statusOn = True + allowedTypes = ['bool'] + StoredValue = False + class doBeamGas(InDetFlagsJobProperty): """Turn running of BeamGas second pass on and off""" statusOn = True @@ -521,8 +527,8 @@ class priVtxCutLevel(InDetFlagsJobProperty): """ statusOn = True allowedTypes = ['int'] - allowedValues= [1,2] - StoredValue = 2 + allowedValues= [1,2,3] + StoredValue = 3 class vertexSeedFinder(InDetFlagsJobProperty): """ string to store the type of seed finder, possible types: 'SlidingWindowMultiSeedFinder', 'HistogrammingMultiSeedFinder', 'DivisiveMultiSeedFinder' """ @@ -618,6 +624,12 @@ class doStandardPlots(InDetFlagsJobProperty): allowedTypes = ['bool'] StoredValue = False +class doPhysValMon(InDetFlagsJobProperty): + """ Use to turn on Physics Validation Monitoring """ + statusOn = True + allowedTypes = ['bool'] + StoredValue = False + class materialInteractions(InDetFlagsJobProperty): """ """ statusOn = True @@ -842,13 +854,43 @@ class pixelClusterSplittingType(InDetFlagsJobProperty): allowedTypes = ['str'] allowedValues= ['NeuralNet','AnalogClus'] StoredValue = 'NeuralNet' - + +class pixelClusterSplitProb1 (InDetFlagsJobProperty): + """ Cut value for splitting clusters into two parts """ + statusOn = True + allowedTypes = ['float'] + StoredValue = 0.35 + +class pixelClusterSplitProb2 (InDetFlagsJobProperty): + """ Cut value for splitting clusters into three parts """ + statusOn = True + allowedTypes = ['float'] + StoredValue = 0.4 + +class pixelClusterSplitMinPt (InDetFlagsJobProperty): + """ Min pt for tracks to try and split hits """ + statusOn = True + allowedTypes = ['float'] + StoredValue = 1000 + class useBroadClusterErrors(InDetFlagsJobProperty): """ Use broad cluster errors for Pixel/SCT """ statusOn = True allowedTypes = ['bool'] StoredValue = False +class useBroadPixClusterErrors(InDetFlagsJobProperty): + """ Use broad cluster errors for Pixel""" + statusOn = True + allowedTypes = ['NoneType','bool'] + StoredValue = None + +class useBroadSCTClusterErrors(InDetFlagsJobProperty): + """ Use broad cluster errors for SCT""" + statusOn = True + allowedTypes = ['NoneType','bool'] + StoredValue = None + class writeRDOs(InDetFlagsJobProperty): """ Write RDOs into ESD """ statusOn = True @@ -909,6 +951,42 @@ class doCaloSeededTRTSegments(InDetFlagsJobProperty): allowedTypes = ['bool'] StoredValue = False +class doInnerDetectorCommissioning(InDetFlagsJobProperty): + """ Switch for running looser settings in ID for commissioning """ + statusOn = True + allowedTypes = ['bool'] + StoredValue = False + +class doTIDE_Ambi(InDetFlagsJobProperty): + """ Switch for running TIDE Ambi """ + statusOn = True + allowedTypes = ['bool'] + StoredValue = True + +class doSSSfilter(InDetFlagsJobProperty): + """ Switch for running SSS filter""" + statusOn = True + allowedTypes = ['bool'] + StoredValue = True + +class pT_SSScut(InDetFlagsJobProperty): + """ Pt cut for SSS filter [GeV]""" + statusOn = True + allowedTypes = ['float'] + StoredValue = -1 + +class ForceCoraCool(InDetFlagsJobProperty): + """ Use old (non CoolVectorPayload) SCT Conditions """ + statusOn = True + allowedTypes = ['bool'] + StoredValue = False + +class doTrackSegmentsPixelPrdAssociation(InDetFlagsJobProperty): + """Turn running of track segment creation in pixel after NewTracking, and with PRD association, on and off""" + statusOn = True + allowedTypes = ['bool'] + StoredValue = False + ##----------------------------------------------------------------------------- ## 2nd step ## Definition of the InDet flag container @@ -945,7 +1023,7 @@ class InDetJobProperties(JobPropertyContainer): from AthenaCommon.BeamFlags import jobproperties print "InDetJobProperties::setupDefaults(): jobproperties.Beam.beamType() is "+jobproperties.Beam.beamType()+" bunch spacing is "+str(jobproperties.Beam.bunchSpacing()) - if (jobproperties.Beam.beamType()=="collisions" and jobproperties.Beam.bunchSpacing()==25): + if ( jobproperties.Beam.beamType()=="collisions" and not rec.Commissioning() ): self.checkThenSet(self.InDet25nsec , True) if (jobproperties.Beam.beamType()=="singlebeam"): @@ -990,9 +1068,9 @@ class InDetJobProperties(JobPropertyContainer): self.checkThenSet(self.doSimpleV0Finder , False) self.checkThenSet(self.doSecVertexFinder , False ) self.checkThenSet(self.doConversions , False ) - self.checkThenSet(self.doTrackSegmentsPixel , False) - self.checkThenSet(self.doTrackSegmentsSCT , False) - self.checkThenSet(self.doTrackSegmentsTRT , False) + #self.checkThenSet(self.doTrackSegmentsPixel , False) + #self.checkThenSet(self.doTrackSegmentsSCT , False) + #self.checkThenSet(self.doTrackSegmentsTRT , False) self.checkThenSet(self.doLowBetaFinder , False) self.checkThenSet(self.doCosmics , True ) self.checkThenSet(self.preProcessing , True ) @@ -1063,6 +1141,7 @@ class InDetJobProperties(JobPropertyContainer): self.checkThenSet(self.doSGDeletion , True ) # TEMPORARY FIX TO STOP SEG FAULT self.checkThenSet(self.doPixelClusterSplitting, False) + self.checkThenSet(self.doTIDE_Ambi, False) elif (self.doIBL()): print "----> InDetJobProperties for IBL" @@ -1149,6 +1228,7 @@ class InDetJobProperties(JobPropertyContainer): # --- turn off brem self.checkThenSet(self.doBremRecovery , False) self.checkThenSet(self.doCaloSeededBrem , False) + self.checkThenSet(self.doHadCaloSeededSSS , False) # --- turn off TRT DetFlags.makeRIO.TRT_setOff() DetFlags.TRT_setOff() @@ -1192,6 +1272,8 @@ class InDetJobProperties(JobPropertyContainer): self.checkThenSet(self.doMonitoringAlignment , False ) self.checkThenSet(self.doBremRecovery , False) self.checkThenSet(self.doCaloSeededBrem , False) + self.checkThenSet(self.doHadCaloSeededSSS , False) + # --- collisions, this is the main one ! elif (jobproperties.Beam.beamType()=="collisions"): @@ -1215,6 +1297,8 @@ class InDetJobProperties(JobPropertyContainer): # --- turn off brem self.checkThenSet(self.doBremRecovery , False) self.checkThenSet(self.doCaloSeededBrem, False) + self.checkThenSet(self.doHadCaloSeededSSS , False) + # --- primary vertex setup self.checkThenSet(self.primaryVertexSetup , "IterativeFinding") self.checkThenSet(self.primaryVertexCutSetup , "Offline") @@ -1236,6 +1320,8 @@ class InDetJobProperties(JobPropertyContainer): # --- turn off brem self.checkThenSet(self.doBremRecovery , False) self.checkThenSet(self.doCaloSeededBrem, False) + self.checkThenSet(self.doHadCaloSeededSSS , False) + # --- primary vertex setup self.checkThenSet(self.primaryVertexSetup , "IterativeFinding") self.checkThenSet(self.primaryVertexCutSetup, "LowPt") @@ -1254,12 +1340,20 @@ class InDetJobProperties(JobPropertyContainer): if not jobproperties.Beam.beamType()=="collisions": self.checkThenSet(self.doBremRecovery , False) self.checkThenSet(self.doCaloSeededBrem, False) + self.checkThenSet(self.doHadCaloSeededSSS , False) - # --- omissioning steering independent of cosmics/collisions/... - # if (rec.Commissioning()): - # self.checkThenSet(self.useBroadClusterErrors , True) - # self.checkThenSet(self.doSlimming , False) + # --- comissioning steering independent of cosmics/collisions/... + #if (rec.Commissioning()): + # self.checkThenSet(self.doInnerDetectorCommissioning, True) + if (self.doInnerDetectorCommissioning()): + self.checkThenSet(self.useBroadClusterErrors , True) + self.checkThenSet(self.doSlimming , False) + self.checkThenSet(self.doTrackSegmentsPixel, True ) + self.checkThenSet(self.doTrackSegmentsSCT , True ) + self.checkThenSet(self.doTrackSegmentsTRT , True ) + self.checkThenSet(self.doPixelClusterSplitting, False) + self.checkThenSet(self.doTIDE_Ambi, False) def init(self): #Method to do the final setup of the flags according to user input before. @@ -1397,6 +1491,8 @@ class InDetJobProperties(JobPropertyContainer): self.doStatistics = self.postProcessing() and self.doStatistics() # control to run Standard Plots self.doStandardPlots = self.postProcessing() and self.doStandardPlots() + # control to run Standard Plots + self.doPhysValMon = self.postProcessing() and self.doPhysValMon() # # -------------------------------------------------------------------- # ---- ntuple creation @@ -1598,6 +1694,7 @@ class InDetJobProperties(JobPropertyContainer): self.doLowPt = False self.doVeryLowPt = False self.doForwardTracks = False + self.doHadCaloSeededSSS = False self.doxKalman = False self.doiPatRec = False @@ -1617,6 +1714,7 @@ class InDetJobProperties(JobPropertyContainer): if self.disableInDetReco(): self.doCaloSeededBrem = False # disables ROI creation self.preProcessing = False + self.doHadCaloSeededSSS = False #self.doPRDFormation = False #self.doSpacePointFormation = False self.disableTracking = True @@ -1701,6 +1799,11 @@ class InDetJobProperties(JobPropertyContainer): print '*' print '* --------------------> Single collision vertex reco' print '*' + if self.doInnerDetectorCommissioning: + print '*' + print '* --------------------> Loose setting for Commissioning' + print '*' + # ----------------------------------------- print '*' @@ -1715,8 +1818,15 @@ class InDetJobProperties(JobPropertyContainer): if self.doPRDFormation() : print '* run PrepRawDataFormation' if self.doPixelClusterSplitting(): - print '* - run new Pixel clustering with splitting using analog information' - print '* splitting technique: ', self.pixelClusterSplittingType() + if self.doTIDE_Ambi(): + print '* - run TIDE ambi with pixel cluster splitting' + print '* splitting technique: ', self.pixelClusterSplittingType() + print '* split prob1 cut: ', self.pixelClusterSplitProb1() + print '* split prob2 cut: ', self.pixelClusterSplitProb2() + print '* Min split pt: [MeV]', self.pixelClusterSplitMinPt() + else: + print '* - run new Pixel clustering with splitting using analog information' + print '* splitting technique: ', self.pixelClusterSplittingType() if self.selectSCTIntimeHits(): if self.InDet25nsec(): print '* - use 01X masking for SCT readout in reconstruction' @@ -1873,6 +1983,8 @@ class InDetJobProperties(JobPropertyContainer): print '* run statistics packages' if self.doStandardPlots() : print '* run Standard Plots package' + if self.doPhysValMon() : + print '* run Physics Validation Monitoring' if self.doNtupleCreation(): ntupleString = '* Ntuple cluster/drift circle trees activated:' if self.doPixelClusterNtuple(): @@ -2058,8 +2170,8 @@ jobproperties.add_Container(InDetJobProperties) _list_InDetJobProperties = [Enabled, doPrintConfigurables, doNewTracking, - doPseudoTracking, - doSplitReco, + doPseudoTracking, + doSplitReco, doxKalman, doiPatRec, preProcessing, @@ -2084,6 +2196,7 @@ _list_InDetJobProperties = [Enabled, priVtxCutLevel, doBremRecovery, doCaloSeededBrem, + doHadCaloSeededSSS, doBeamGas, doBeamHalo, doVtxLumi, @@ -2140,6 +2253,7 @@ _list_InDetJobProperties = [Enabled, doConversions, doStatistics, doStandardPlots, + doPhysValMon, materialInteractions, materialInteractionsType, doPixelClusterNtuple, @@ -2176,17 +2290,28 @@ _list_InDetJobProperties = [Enabled, disableInDetReco, doPixelClusterSplitting, pixelClusterSplittingType, + pixelClusterSplitProb1, + pixelClusterSplitProb2, + pixelClusterSplitMinPt, useBroadClusterErrors, + useBroadPixClusterErrors, + useBroadSCTClusterErrors, writeRDOs, writePRDs, doMinBias, doLowMuRunSetup, doRobustReco, - doSingleCollisionVertexReco, + doSingleCollisionVertexReco, useMBTSTimeDiff, useNewSiSPSeededTF, doxAOD, - doCaloSeededTRTSegments + doCaloSeededTRTSegments, + doInnerDetectorCommissioning, + doTIDE_Ambi, + doSSSfilter, + pT_SSScut, + ForceCoraCool, + doTrackSegmentsPixelPrdAssociation ] for j in _list_InDetJobProperties: jobproperties.InDetJobProperties.add_JobProperty(j) diff --git a/InnerDetector/InDetExample/InDetRecExample/python/InDetKeys.py b/InnerDetector/InDetExample/InDetRecExample/python/InDetKeys.py index 20eeef6d0a868b9e09fec1bf08ae7a35e3698e75..18ae46427e40a04d3f63e72df5836a84d5afd565 100644 --- a/InnerDetector/InDetExample/InDetRecExample/python/InDetKeys.py +++ b/InnerDetector/InDetExample/InDetRecExample/python/InDetKeys.py @@ -369,6 +369,12 @@ class SiSpSeededPixelTracks(JobProperty): allowedTypes = ['str'] StoredValue = 'SiSPSeededPixelTracks' +class SiSpSeededPixelPrdAssociationTracks(JobProperty): + """StoreGate key for SP seeded pixel tracks run after new tracking on remaining PRDs""" + statusOn = True + allowedTypes = ['str'] + StoredValue = 'SiSPSeededPixelPrdAssociationTracks' + class SiSpSeededSCTTracks(JobProperty): """StoreGate key for SP seeded SCT standalone tracks """ statusOn = True @@ -381,6 +387,12 @@ class PixelTracks(JobProperty): allowedTypes = ['str'] StoredValue = 'ResolvedPixelTracks' +class PixelPrdAssociationTracks(JobProperty): + """StoreGate key for resolved pixel tracks run after New Tracking on remaining PRDs""" + statusOn = True + allowedTypes = ['str'] + StoredValue = 'ResolvedPixelPrdAssociationTracks' + class SCTTracks(JobProperty): """StoreGate key for resolved SCT standalone tracks """ statusOn = True @@ -682,6 +694,12 @@ class StandardPlotHistName(JobProperty): allowedTypes = ['str'] StoredValue = "InDetStandardPlots.root" +class PhysValMonHistName(JobProperty): + """Name of Histogram file for the Physics Validation Monitoring""" + statusOn = True + allowedTypes = ['str'] + StoredValue = "InDetPhysValMonitoringPlots.root" + class OutputRDOFileName(JobProperty): """Name of output RDO file""" statusOn = True @@ -725,6 +743,24 @@ class CaloClusterROIContainer(JobProperty): allowedTypes = ['str'] StoredValue = 'InDetCaloClusterROIs' +class HadCaloClusterContainer(JobProperty): + """Brem Reco: Container of EM clusters""" + statusOn = True + allowedTypes = ['str'] + StoredValue = 'CaloCalTopoCluster' + +class HadCaloCellContainer(JobProperty): + """Brem Reco: Container of calo cell""" + statusOn = True + allowedTypes = ['str'] + StoredValue = 'AllCalo' + +class HadCaloClusterROIContainer(JobProperty): + """Brem Reco: Container of calo cluster ROIs""" + statusOn = True + allowedTypes = ['str'] + StoredValue = 'InDetHadCaloClusterROIs' + class xAODTrackParticleContainer(JobProperty): """xAOD TrackParticle""" statusOn = True @@ -737,17 +773,71 @@ class xAODVertexContainer(JobProperty): allowedTypes = ['str'] StoredValue = "PrimaryVertices" +class xAODV0VertexContainer(JobProperty): + """xAOD Vertex V0""" + statusOn = True + allowedTypes = ['str'] + StoredValue = "V0UnconstrVertices" + +class xAODKshortVertexContainer(JobProperty): + """xAOD Vertex Kshort""" + statusOn = True + allowedTypes = ['str'] + StoredValue = "V0KshortVertices" + +class xAODLambdaVertexContainer(JobProperty): + """xAOD Vertex Lambda""" + statusOn = True + allowedTypes = ['str'] + StoredValue = "V0LambdaVertices" + +class xAODLambdabarVertexContainer(JobProperty): + """xAOD Vertex Lambdabar""" + statusOn = True + allowedTypes = ['str'] + StoredValue = "V0LambdabarVertices" + class xAODForwardTrackParticleContainer(JobProperty): """xAOD TrackParticle from Forward Tracking""" statusOn = True allowedTypes = ['str'] - StoredValue = "InDetTrackParticlesForward" + StoredValue = "InDetForwardTrackParticles" class xAODLowBetaTrackParticleContainer(JobProperty): """xAOD TrackParticle from Low Beta Finder""" statusOn = True allowedTypes = ['str'] - StoredValue = "InDetTrackParticlesLowBeta" + StoredValue = "InDetLowBetaTrackParticles" + +class xAODPseudoTrackParticleContainer(JobProperty): + """xAOD Pseduo TrackParticle""" + statusOn = True + allowedTypes = ['str'] + StoredValue = "InDetPseudoTrackParticles" + +class xAODPixelTrackParticleContainer(JobProperty): + """xAOD PixelTrackParticle""" + statusOn = True + allowedTypes = ['str'] + StoredValue = "InDetPixelTrackParticles" + +class xAODSCTTrackParticleContainer(JobProperty): + """xAOD SCTTrackParticle""" + statusOn = True + allowedTypes = ['str'] + StoredValue = "InDetSCTTrackParticles" + +class xAODTRTTrackParticleContainer(JobProperty): + """xAOD TRTTrackParticle""" + statusOn = True + allowedTypes = ['str'] + StoredValue = "InDetTRTTrackParticles" + +class xAODPixelPrdAssociationTrackParticleContainer(JobProperty): + """xAOD PixelTrackParticle with PRD association""" + statusOn = True + allowedTypes = ['str'] + StoredValue = "InDetPixelPrdAssociationTrackParticles" ##----------------------------------------------------------------------------- ## 2nd step @@ -833,8 +923,10 @@ jobproperties.InDetContainerKeys.add_JobProperty(PseudoTracks) jobproperties.InDetContainerKeys.add_JobProperty(PseudoDetailedTracksTruth) jobproperties.InDetContainerKeys.add_JobProperty(PseudoTracksTruth) jobproperties.InDetContainerKeys.add_JobProperty(SiSpSeededPixelTracks) +jobproperties.InDetContainerKeys.add_JobProperty(SiSpSeededPixelPrdAssociationTracks) jobproperties.InDetContainerKeys.add_JobProperty(SiSpSeededSCTTracks) jobproperties.InDetContainerKeys.add_JobProperty(PixelTracks) +jobproperties.InDetContainerKeys.add_JobProperty(PixelPrdAssociationTracks) jobproperties.InDetContainerKeys.add_JobProperty(SCTTracks) jobproperties.InDetContainerKeys.add_JobProperty(TRTTracks) jobproperties.InDetContainerKeys.add_JobProperty(TRTTracks_NewT) @@ -858,6 +950,10 @@ jobproperties.InDetContainerKeys.add_JobProperty(ExtendedHaloTracks) jobproperties.InDetContainerKeys.add_JobProperty(ResolvedSiCosmicTracks) jobproperties.InDetContainerKeys.add_JobProperty(CombinedCosmicTracks) jobproperties.InDetContainerKeys.add_JobProperty(PrimaryVertices) +jobproperties.InDetContainerKeys.add_JobProperty(xAODV0VertexContainer) +jobproperties.InDetContainerKeys.add_JobProperty(xAODKshortVertexContainer) +jobproperties.InDetContainerKeys.add_JobProperty(xAODLambdaVertexContainer) +jobproperties.InDetContainerKeys.add_JobProperty(xAODLambdabarVertexContainer) jobproperties.InDetContainerKeys.add_JobProperty(PrimaryVerticesWithoutBeamConstraint) jobproperties.InDetContainerKeys.add_JobProperty(PrimaryVerticesSplitStream) jobproperties.InDetContainerKeys.add_JobProperty(TrackParticles) @@ -882,6 +978,7 @@ jobproperties.InDetContainerKeys.add_JobProperty(LowBetaCandidates) jobproperties.InDetContainerKeys.add_JobProperty(trkValidationNtupleName) jobproperties.InDetContainerKeys.add_JobProperty(trkD3PDFileName) jobproperties.InDetContainerKeys.add_JobProperty(StandardPlotHistName) +jobproperties.InDetContainerKeys.add_JobProperty(PhysValMonHistName) jobproperties.InDetContainerKeys.add_JobProperty(OutputRDOFileName) jobproperties.InDetContainerKeys.add_JobProperty(OutputESDFileName) jobproperties.InDetContainerKeys.add_JobProperty(OutputAODFileName) @@ -889,10 +986,22 @@ jobproperties.InDetContainerKeys.add_JobProperty(McEventCollection) jobproperties.InDetContainerKeys.add_JobProperty(CaloClusterContainer) jobproperties.InDetContainerKeys.add_JobProperty(CaloCellContainer) jobproperties.InDetContainerKeys.add_JobProperty(CaloClusterROIContainer) +jobproperties.InDetContainerKeys.add_JobProperty(HadCaloClusterContainer) +jobproperties.InDetContainerKeys.add_JobProperty(HadCaloCellContainer) +jobproperties.InDetContainerKeys.add_JobProperty(HadCaloClusterROIContainer) jobproperties.InDetContainerKeys.add_JobProperty(xAODTrackParticleContainer) jobproperties.InDetContainerKeys.add_JobProperty(xAODVertexContainer) +jobproperties.InDetContainerKeys.add_JobProperty(xAODV0VertexContainer) +jobproperties.InDetContainerKeys.add_JobProperty(xAODKshortVertexContainer) +jobproperties.InDetContainerKeys.add_JobProperty(xAODLambdaVertexContainer) +jobproperties.InDetContainerKeys.add_JobProperty(xAODLambdabarVertexContainer) jobproperties.InDetContainerKeys.add_JobProperty(xAODForwardTrackParticleContainer) jobproperties.InDetContainerKeys.add_JobProperty(xAODLowBetaTrackParticleContainer) +jobproperties.InDetContainerKeys.add_JobProperty(xAODPseudoTrackParticleContainer) +jobproperties.InDetContainerKeys.add_JobProperty(xAODPixelTrackParticleContainer) +jobproperties.InDetContainerKeys.add_JobProperty(xAODSCTTrackParticleContainer) +jobproperties.InDetContainerKeys.add_JobProperty(xAODTRTTrackParticleContainer) +jobproperties.InDetContainerKeys.add_JobProperty(xAODPixelPrdAssociationTrackParticleContainer) ##----------------------------------------------------------------------------- ## 5th step ## short-cut for lazy people diff --git a/InnerDetector/InDetExample/InDetRecExample/share/ConfiguredInDetPreProcessingTRT.py b/InnerDetector/InDetExample/InDetRecExample/share/ConfiguredInDetPreProcessingTRT.py index a0da9ba5dd2c437ad72fb6bc49ad2906eac606ff..28077f2a73715ba612e55443d9300750fb37ed29 100644 --- a/InnerDetector/InDetExample/InDetRecExample/share/ConfiguredInDetPreProcessingTRT.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/ConfiguredInDetPreProcessingTRT.py @@ -64,13 +64,19 @@ class ConfiguredInDetPreProcessingTRT: # for now, no values for argon. This is OK (?) for 50 ns. What about 25ns? MinTrailingEdge = 17.0*ns MaxDriftTime = 66.0*ns - LowGate = 19.0*ns - HighGate = 44.0*ns + LowGate = 26.0*ns + HighGate = 54.125*ns + if InDetFlags.doCosmics(): + LowGate = 19.0*ns + HighGate = 44.0*ns if globalflags.DataSource == 'data': MinTrailingEdge = 11.0*ns MaxDriftTime = 60.0*ns - LowGate = 19.0*ns - HighGate = 44.0*ns + LowGate = 18.0*ns + HighGate = 46.125*ns + if InDetFlags.doCosmics(): + LowGate = 19.0*ns + HighGate = 44.0*ns InDetTRT_DriftCircleTool = InDet__TRT_DriftCircleTool(name = prefix+"DriftCircleTool", TRTDriftFunctionTool = InDetTRT_DriftFunctionTool, @@ -79,11 +85,11 @@ class ConfiguredInDetPreProcessingTRT: #used to be InDetTRTConditionsSummaryService, UseConditionsStatus = True, UseConditionsHTStatus = True, - SimpleOutOfTimePileupSupression = True, + SimpleOutOfTimePileupSupression = InDetFlags.doCosmics(), RejectIfFirstBit = False, # fixes 50 nsec issue MinTrailingEdge = MinTrailingEdge, MaxDriftTime = MaxDriftTime, - ValidityGateSuppression = False, + ValidityGateSuppression = not InDetFlags.doCosmics(), LowGate = LowGate, HighGate = HighGate, MaskFirstHTBit = False, diff --git a/InnerDetector/InDetExample/InDetRecExample/share/ConfiguredNewTrackingSiPattern.py b/InnerDetector/InDetExample/InDetRecExample/share/ConfiguredNewTrackingSiPattern.py index 94a92945190a0b56537346e0b9d4aab5644dfadd..979c3cc437f8cd3e30d4ecc9b6670b51ae325741 100644 --- a/InnerDetector/InDetExample/InDetRecExample/share/ConfiguredNewTrackingSiPattern.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/ConfiguredNewTrackingSiPattern.py @@ -23,7 +23,7 @@ class ConfiguredNewTrackingSiPattern: # # --- decide if use the association tool # - if (len(InputCollections) > 0) and (NewTrackingCuts.mode() == "LowPt" or NewTrackingCuts.mode() == "VeryLowPt" or NewTrackingCuts.mode() == "BeamGas" or NewTrackingCuts.mode() == "ForwardTracks" or NewTrackingCuts.mode() == "ForwardSLHCTracks"): + if (len(InputCollections) > 0) and (NewTrackingCuts.mode() == "LowPt" or NewTrackingCuts.mode() == "VeryLowPt" or NewTrackingCuts.mode() == "BeamGas" or NewTrackingCuts.mode() == "ForwardTracks" or NewTrackingCuts.mode() == "ForwardSLHCTracks" or NewTrackingCuts.mode() == "PixelPrdAssociation"): usePrdAssociationTool = True else: usePrdAssociationTool = False @@ -139,14 +139,15 @@ class ConfiguredNewTrackingSiPattern: usePixel = NewTrackingCuts.usePixel(), PixManagerLocation = InDetKeys.PixelManager(), useSCT = NewTrackingCuts.useSCT(), - SCTManagerLocation = InDetKeys.SCT_Manager(), + SCTManagerLocation = InDetKeys.SCT_Manager(), RoadWidth = NewTrackingCuts.RoadWidth()) + #InDetSiDetElementsRoadMaker.OutputLevel = VERBOSE ToolSvc += InDetSiDetElementsRoadMaker if (InDetFlags.doPrintConfigurables()): print InDetSiDetElementsRoadMaker # - # --- Local track finding using space point seed + # --- Local track finding using sdCaloSeededSSSpace point seed # useBremMode = NewTrackingCuts.mode() == "Offline" or NewTrackingCuts.mode() == "SLHC" @@ -156,6 +157,7 @@ class ConfiguredNewTrackingSiPattern: CombinatorialTrackFinder = InDetSiComTrackFinder, pTmin = NewTrackingCuts.minPT(), pTminBrem = NewTrackingCuts.minPTBrem(), + pTminSSS = InDetFlags.pT_SSScut(), nClustersMin = NewTrackingCuts.minClusters(), nHolesMax = NewTrackingCuts.nHolesMax(), nHolesGapMax = NewTrackingCuts.nHolesGapMax(), @@ -165,12 +167,15 @@ class ConfiguredNewTrackingSiPattern: nWeightedClustersMin = NewTrackingCuts.nWeightedClustersMin(), CosmicTrack = InDetFlags.doCosmics(), Xi2maxMultiTracks = NewTrackingCuts.Xi2max(), # was 3. + useSSSseedsFilter = InDetFlags.doSSSfilter(), doMultiTracksProd = True, useBremModel = InDetFlags.doBremRecovery() and useBremMode, # only for NewTracking the brem is debugged !!! doCaloSeededBrem = InDetFlags.doCaloSeededBrem(), + doHadCaloSeedSSS = InDetFlags.doHadCaloSeededSSS(), phiWidth = NewTrackingCuts.phiWidthBrem(), etaWidth = NewTrackingCuts.etaWidthBrem(), InputClusterContainerName = InDetKeys.CaloClusterROIContainer(), # "InDetCaloClusterROIs" + InputHadClusterContainerName = InDetKeys.HadCaloClusterROIContainer(), # "InDetCaloClusterROIs" UseAssociationTool = usePrdAssociationTool) @@ -237,7 +242,7 @@ class ConfiguredNewTrackingSiPattern: useZBoundFinding = NewTrackingCuts.doZBoundary()) - + #InDetSiSPSeededTrackFinder.OutputLevel =VERBOSE topSequence += InDetSiSPSeededTrackFinder if (InDetFlags.doPrintConfigurables()): print InDetSiSPSeededTrackFinder @@ -269,18 +274,36 @@ class ConfiguredNewTrackingSiPattern: # # --- load InnerDetector TrackSelectionTool # - from InDetAmbiTrackSelectionTool.InDetAmbiTrackSelectionToolConf import InDet__InDetAmbiTrackSelectionTool - InDetAmbiTrackSelectionTool = InDet__InDetAmbiTrackSelectionTool(name = 'InDetAmbiTrackSelectionTool'+NewTrackingCuts.extension(), - AssociationTool = InDetPrdAssociationTool, - DriftCircleCutTool = InDetTRTDriftCircleCut, - minHits = NewTrackingCuts.minClusters(), - minNotShared = NewTrackingCuts.minSiNotShared(), - maxShared = NewTrackingCuts.maxShared(), - minTRTHits = 0, # used for Si only tracking !!! - sharedProbCut = 0.10, - UseParameterization = False, - Cosmics = InDetFlags.doCosmics(), - doPixelSplitting = InDetFlags.doPixelClusterSplitting()) + + + if InDetFlags.doTIDE_Ambi() and not (NewTrackingCuts.mode() == "ForwardSLHCTracks" or NewTrackingCuts.mode() == "ForwardTracks" or NewTrackingCuts.mode() == "PixelPrdAssociation"): + from InDetAmbiTrackSelectionTool.InDetAmbiTrackSelectionToolConf import InDet__InDetDenseEnvAmbiTrackSelectionTool as AmbiTrackSelectionTool + else: + from InDetAmbiTrackSelectionTool.InDetAmbiTrackSelectionToolConf import InDet__InDetAmbiTrackSelectionTool as AmbiTrackSelectionTool + InDetAmbiTrackSelectionTool = AmbiTrackSelectionTool(name = 'InDetAmbiTrackSelectionTool'+NewTrackingCuts.extension(), + AssociationTool = InDetPrdAssociationTool, + DriftCircleCutTool = InDetTRTDriftCircleCut, + minHits = NewTrackingCuts.minClusters(), + minNotShared = NewTrackingCuts.minSiNotShared(), + maxShared = NewTrackingCuts.maxShared(), + minTRTHits = 0, # used for Si only tracking !!! + sharedProbCut = 0.10, + UseParameterization = False, + Cosmics = InDetFlags.doCosmics(), + doPixelSplitting = InDetFlags.doPixelClusterSplitting()) + + if InDetFlags.doTIDE_Ambi() and not (NewTrackingCuts.mode() == "ForwardSLHCTracks" or NewTrackingCuts.mode() == "ForwardTracks" or NewTrackingCuts.mode() == "PixelPrdAssociation"): + InDetAmbiTrackSelectionTool.sharedProbCut = InDetFlags.pixelClusterSplitProb1() + InDetAmbiTrackSelectionTool.sharedProbCut2 = InDetFlags.pixelClusterSplitProb2() + InDetAmbiTrackSelectionTool.minSiHitsToAllowSplitting = 9 #For run 1 layouts this should 8 hits not 9 + InDetAmbiTrackSelectionTool.minUniqueSCTHits = 4 + InDetAmbiTrackSelectionTool.minTrackChi2ForSharedHits = 3 + InDetAmbiTrackSelectionTool.InputHadClusterContainerName = InDetKeys.HadCaloClusterROIContainer() + InDetAmbiTrackSelectionTool.doHadCaloSeed = False #Only split in cluster in region of interest + InDetAmbiTrackSelectionTool.minPtSplit = InDetFlags.pixelClusterSplitMinPt() #Only allow split clusters on track withe pt greater than this MeV + InDetAmbiTrackSelectionTool.phiWidth = 0.2 #Split cluster ROI size + InDetAmbiTrackSelectionTool.etaWidth = 0.2 #Split cluster ROI size + # if NewTrackingCuts.mode() == "ForwardTracks": # InDetAmbiTrackSelectionTool.OutputLevel = VERBOSE @@ -333,16 +356,25 @@ class ConfiguredNewTrackingSiPattern: # --- load Ambiguity Processor # useBremMode = NewTrackingCuts.mode() == "Offline" or NewTrackingCuts.mode() == "SLHC" - from TrkAmbiguityProcessor.TrkAmbiguityProcessorConf import Trk__SimpleAmbiguityProcessorTool - InDetAmbiguityProcessor = Trk__SimpleAmbiguityProcessorTool(name = 'InDetAmbiguityProcessor'+NewTrackingCuts.extension(), - Fitter = InDetTrackFitter, - ScoringTool = InDetAmbiScoringTool, - SelectionTool = InDetAmbiTrackSelectionTool, - SuppressHoleSearch = False, - tryBremFit = InDetFlags.doBremRecovery() and useBremMode, # only for NewTracking the brem is debugged !!! - caloSeededBrem = InDetFlags.doCaloSeededBrem(), - pTminBrem = NewTrackingCuts.minPTBrem(), - RefitPrds = not InDetFlags.refitROT()) + + if InDetFlags.doTIDE_Ambi() and not (NewTrackingCuts.mode() == "ForwardSLHCTracks" or NewTrackingCuts.mode() == "ForwardTracks" or NewTrackingCuts.mode() == "PixelPrdAssociation"): + from TrkAmbiguityProcessor.TrkAmbiguityProcessorConf import Trk__DenseEnvironmentsAmbiguityProcessorTool as ProcessorTool + else: + from TrkAmbiguityProcessor.TrkAmbiguityProcessorConf import Trk__SimpleAmbiguityProcessorTool as ProcessorTool + InDetAmbiguityProcessor = ProcessorTool(name = 'InDetAmbiguityProcessor'+NewTrackingCuts.extension(), + Fitter = InDetTrackFitter, + ScoringTool = InDetAmbiScoringTool, + SelectionTool = InDetAmbiTrackSelectionTool, + SuppressHoleSearch = False, + tryBremFit = InDetFlags.doBremRecovery() and useBremMode, # only for NewTracking the brem is debugged !!! + caloSeededBrem = InDetFlags.doCaloSeededBrem(), + pTminBrem = NewTrackingCuts.minPTBrem(), + RefitPrds = not InDetFlags.refitROT()) + if InDetFlags.doTIDE_Ambi() and not (NewTrackingCuts.mode() == "ForwardSLHCTracks" or NewTrackingCuts.mode() == "ForwardTracks" or NewTrackingCuts.mode() == "PixelPrdAssociation"): + InDetAmbiguityProcessor.sharedProbCut = InDetFlags.pixelClusterSplitProb1() + InDetAmbiguityProcessor.sharedProbCut2 = InDetFlags.pixelClusterSplitProb2() + InDetAmbiguityProcessor.SplitClusterAmbiguityMap = InDetKeys.SplitClusterAmbiguityMap() + if NewTrackingCuts.mode() == "Pixel": InDetAmbiguityProcessor.SuppressHoleSearch = True if NewTrackingCuts.mode() == "LowPt" or NewTrackingCuts.mode() == "VeryLowPt" or (NewTrackingCuts.mode() == "Pixel" and InDetFlags.doMinBias()): diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecCabling.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecCabling.py index 57bc15c5b63515f0d2865aeeacd8cddfaf7e02cb..460d4d3cdec6214337aeb8fd288d66ddecf9bb27 100755 --- a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecCabling.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecCabling.py @@ -28,6 +28,18 @@ if DetFlags.detdescr.pixel_on() and not 'PixelCabling' in dir(): # --- SCT cabling # if DetFlags.detdescr.SCT_on() and not 'SCT_CablingSvc' in dir(): + SCTCablingDataSource='CORACOOL' + SCTConfigurationFolderPath='/SCT/DAQ/Configuration/' + #if its CONDBR2, use new folders... + if (conddb.dbdata == "CONDBR2"): + SCTConfigurationFolderPath='/SCT/DAQ/Config/' + #...but now check if we want to override that decision with explicit flag (if there is one) + try: + if InDetFlags.ForceCoraCool(): + SCTConfigurationFolderPath='/SCT/DAQ/Configuration/' + except: + pass + #to read SCT cabling from db from SCT_Cabling.SCT_CablingConf import SCT_CablingSvc SCT_CablingSvc = SCT_CablingSvc(DataSource = "CORACOOL") @@ -35,15 +47,19 @@ if DetFlags.detdescr.SCT_on() and not 'SCT_CablingSvc' in dir(): ServiceMgr += SCT_CablingSvc if (InDetFlags.doPrintConfigurables()): print SCT_CablingSvc - - if not conddb.folderRequested('/SCT/DAQ/Configuration/ROD'): - conddb.addFolderSplitMC("SCT","/SCT/DAQ/Configuration/ROD","/SCT/DAQ/Configuration/ROD") - if not conddb.folderRequested('/SCT/DAQ/Configuration/MUR'): - conddb.addFolderSplitMC("SCT","/SCT/DAQ/Configuration/MUR","/SCT/DAQ/Configuration/MUR") - if not conddb.folderRequested('/SCT/DAQ/Configuration/RODMUR'): - conddb.addFolderSplitMC("SCT","/SCT/DAQ/Configuration/RODMUR","/SCT/DAQ/Configuration/RODMUR") - if not conddb.folderRequested('/SCT/DAQ/Configuration/Geog'): - conddb.addFolderSplitMC("SCT","/SCT/DAQ/Configuration/Geog","/SCT/DAQ/Configuration/Geog") + SCTRodConfigPath=SCTConfigurationFolderPath+'ROD' + SCTMurConfigPath=SCTConfigurationFolderPath+'MUR' + SCTRodMurConfigPath=SCTConfigurationFolderPath+'RODMUR' + SCTGeogConfigPath=SCTConfigurationFolderPath+'Geog' + # + if not conddb.folderRequested(SCTRodConfigPath): + conddb.addFolderSplitMC("SCT",SCTRodConfigPath,SCTRodConfigPath) + if not conddb.folderRequested(SCTMurConfigPath): + conddb.addFolderSplitMC("SCT",SCTMurConfigPath,SCTMurConfigPath) + if not conddb.folderRequested(SCTRodMurConfigPath): + conddb.addFolderSplitMC("SCT",SCTRodMurConfigPath,SCTRodMurConfigPath) + if not conddb.folderRequested(SCTGeogConfigPath): + conddb.addFolderSplitMC("SCT",SCTGeogConfigPath,SCTGeogConfigPath) # # --- TRT cabling diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecCaloSeededROISelection.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecCaloSeededROISelection.py index dc91e285d583522113705d675ba38f36b1074875..5b4881527da77ccc350009c98c89fc282a42773d 100644 --- a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecCaloSeededROISelection.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecCaloSeededROISelection.py @@ -4,19 +4,11 @@ # # ------------------------------------------------------------ -# -# --- load the CaloNoiseTool -# -from CaloTools.CaloNoiseToolDefault import CaloNoiseToolDefault -InDetCaloNoiseTool = CaloNoiseToolDefault() -ToolSvc += InDetCaloNoiseTool - # # --- load the isolation tool # from egammaCaloTools.egammaCaloToolsConf import egammaIso -InDetROIegammaIsoTool = egammaIso(name = "InDetROIegammaIso", - CaloNoiseTool = InDetCaloNoiseTool) +InDetROIegammaIsoTool = egammaIso(name = "InDetROIegammaIso") ToolSvc+=InDetROIegammaIsoTool if (InDetFlags.doPrintConfigurables()): diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecConditionsAccess.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecConditionsAccess.py index c574602dc515047d410d018a30595790d482d5b1..3ae45d064a9edaf02c38999f5a66d079a0f25f82 100644 --- a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecConditionsAccess.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecConditionsAccess.py @@ -144,15 +144,27 @@ if DetFlags.haveRIO.pixel_on(): # --- Load SCT Conditions Services # if DetFlags.haveRIO.SCT_on(): - + SCTConfigurationFolderPath='/SCT/DAQ/Configuration/' + #if its CONDBR2, use new folders... + if (conddb.dbdata == "CONDBR2"): + SCTConfigurationFolderPath='/SCT/DAQ/Config/' + #...but now check if we want to override that decision with explicit flag (if there is one) + try: + if InDetFlags.ForceCoraCool(): + SCTConfigurationFolderPath='/SCT/DAQ/Configuration/' + except: + pass # Load folders that have to exist for both MC and Data - if not conddb.folderRequested('/SCT/DAQ/Configuration/Chip'): - conddb.addFolderSplitMC("SCT","/SCT/DAQ/Configuration/Chip","/SCT/DAQ/Configuration/Chip") - if not conddb.folderRequested('/SCT/DAQ/Configuration/Module'): - conddb.addFolderSplitMC("SCT","/SCT/DAQ/Configuration/Module","/SCT/DAQ/Configuration/Module") + SCTChipConfigurationPath=SCTConfigurationFolderPath+'Chip' + SCTModuleConfigurationPath=SCTConfigurationFolderPath+'Module' + SCTMurConfigurationPath=SCTConfigurationFolderPath+'MUR' + if not conddb.folderRequested(SCTChipConfigurationPath): + conddb.addFolderSplitMC("SCT",SCTChipConfigurationPath,SCTChipConfigurationPath) + if not conddb.folderRequested(SCTModuleConfigurationPath): + conddb.addFolderSplitMC("SCT",SCTModuleConfigurationPath,SCTModuleConfigurationPath) - if not conddb.folderRequested('/SCT/DAQ/Configuration/MUR'): - conddb.addFolderSplitMC("SCT","/SCT/DAQ/Configuration/MUR","/SCT/DAQ/Configuration/MUR") + if not conddb.folderRequested(SCTMurConfigurationPath): + conddb.addFolderSplitMC("SCT",SCTMurConfigurationPath,SCTMurConfigurationPath) if not conddb.folderRequested('/SCT/DAQ/Calibration/NPtGainDefects'): conddb.addFolderSplitMC("SCT","/SCT/DAQ/Calibration/NPtGainDefects","/SCT/DAQ/Calibration/NPtGainDefects") @@ -345,8 +357,11 @@ if DetFlags.haveRIO.TRT_on(): # InDetTRT_DAQ_ConditionsSvc = None if (InDetFlags.doMonitoringTRT() and globalflags.DataSource() == 'data'): + tdaqFolder = '/TDAQ/EnabledResources/ATLAS/TRT/Robins' + if (conddb.dbdata == "CONDBR2"): + tdaqFolder = '/TDAQ/Resources/ATLAS/TRT/Robins' # TDAQ Enabled Service (only for monitoring on data) - conddb.addFolder('TDAQ_ONL',"/TDAQ/EnabledResources/ATLAS/TRT/Robins") + conddb.addFolder('TDAQ_ONL',tdaqFolder) from TRT_ConditionsServices.TRT_ConditionsServicesConf import TRT_DAQ_ConditionsSvc InDetTRT_DAQ_ConditionsSvc = TRT_DAQ_ConditionsSvc( name = "InDetTRT_DAQ_ConditionsSvc" ) ServiceMgr += InDetTRT_DAQ_ConditionsSvc diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecHadCaloSeededROISelection.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecHadCaloSeededROISelection.py new file mode 100644 index 0000000000000000000000000000000000000000..d6f750a9f434e8797d4a3f37c02f9708107aad88 --- /dev/null +++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecHadCaloSeededROISelection.py @@ -0,0 +1,60 @@ +# ------------------------------------------------------------ +# +# ----------- loading the selection tools for Calo Seeded Brem +# +# ------------------------------------------------------------ + + +# +# --- load the isolation tool +# +from egammaCaloTools.egammaCaloToolsConf import egammaIso +InDetHadROIegammaIsoTool = egammaIso(name = "InDetHadROIegammaIso") + +ToolSvc+=InDetHadROIegammaIsoTool +if (InDetFlags.doPrintConfigurables()): + print InDetHadROIegammaIsoTool + +# +# --- load the tool to check the energy deposits +# +from egammaTools.egammaToolsConf import egammaCheckEnergyDepositTool +InDetHadROICheckEnergyDepositTool = egammaCheckEnergyDepositTool(name = "InDetHadROICheckEnergyDepositTool", + UseThrFmax = True, + ThrF0max = 0.9, + ThrF1max = 0.8, + ThrF2max = 0.98, + ThrF3max = 0.8) +ToolSvc+=InDetHadROICheckEnergyDepositTool +if (InDetFlags.doPrintConfigurables()): + print InDetHadROICheckEnergyDepositTool + +# +# --- get the builder tool +# +from InDetCaloClusterROIBuilder.InDetCaloClusterROIBuilderConf import InDet__CaloClusterROI_Builder +InDetCaloClusterROIBuilder = InDet__CaloClusterROI_Builder(name = "InDetCaloClusterROIBuilder") + +ToolSvc+=InDetCaloClusterROIBuilder +if (InDetFlags.doPrintConfigurables()): + print InDetCaloClusterROIBuilder + +# +# --- now load the algorithm +# +from InDetCaloClusterROISelector.InDetCaloClusterROISelectorConf import InDet__CaloClusterROI_Selector +InDetHadCaloClusterROISelector = InDet__CaloClusterROI_Selector (name = "InDetHadCaloClusterROISelector", + InputClusterContainerName = InDetKeys.HadCaloClusterContainer(), # "LArClusterEM" + CellsName = InDetKeys.HadCaloCellContainer(), # "AllCalo" + OutputClusterContainerName = InDetKeys.HadCaloClusterROIContainer(), # "InDetCaloClusterROIs" + CheckHadronicEnergy = False, + CheckReta = False, + CheckEMSamples = False, + ClusterEtCut = 25000, + CaloClusterROIBuilder = InDetCaloClusterROIBuilder, + egammaCheckEnergyDepositTool = InDetHadROICheckEnergyDepositTool, + EMCaloIsolationTool = InDetHadROIegammaIsoTool) +topSequence += InDetHadCaloClusterROISelector +if (InDetFlags.doPrintConfigurables()): + print InDetHadCaloClusterROISelector + diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecLoadTools.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecLoadTools.py index 9271a3afa7b798238890acdc80b3c3ed9c188be8..71db10bcd44f0d78c8e5df0ea9c97380c8028682 100755 --- a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecLoadTools.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecLoadTools.py @@ -4,8 +4,20 @@ # # ------------------------------------------------------------ +use_broad_cluster_any = InDetFlags.useBroadClusterErrors() +use_broad_cluster_pix = InDetFlags.useBroadPixClusterErrors() +use_broad_cluster_sct = InDetFlags.useBroadSCTClusterErrors() +if use_broad_cluster_pix == None : + use_broad_cluster_pix = use_broad_cluster_any +if use_broad_cluster_sct == None : + use_broad_cluster_sct = use_broad_cluster_any + +# detector specific settings will override the global setting: +use_broad_cluster_any = use_broad_cluster_pix or use_broad_cluster_sct + #load common NN tools for clustering and ROT creation if InDetFlags.doPixelClusterSplitting(): + # # --- Neutral Network version ? # @@ -65,6 +77,7 @@ if InDetFlags.doPixelClusterSplitting(): LoadWithTrackNetwork = True) ToolSvc += NnClusterizationFactory + print NnClusterizationFactory if (InDetFlags.doPrintConfigurables()): print NnClusterizationFactory @@ -101,11 +114,17 @@ if InDetFlags.loadRotCreator(): InDetFlags.pixelClusterSplittingType() == 'NeuralNet'), NNIBLcorrection = ( InDetFlags.doPixelClusterSplitting() and InDetFlags.pixelClusterSplittingType() == 'NeuralNet'), - SplitClusterAmbiguityMap = InDetKeys.SplitClusterAmbiguityMap()) + SplitClusterAmbiguityMap = InDetKeys.SplitClusterAmbiguityMap(), + RunningTIDE_Ambi = InDetFlags.doTIDE_Ambi() + ) if InDetFlags.doPixelClusterSplitting() and InDetFlags.pixelClusterSplittingType() == 'NeuralNet': PixelClusterOnTrackTool.NnClusterizationFactory = NnClusterizationFactory + if InDetFlags.doCosmics(): + PixelClusterOnTrackTool.ErrorStrategy = 0 + PixelClusterOnTrackTool.PositionStrategy = 0 + ToolSvc += PixelClusterOnTrackTool if (InDetFlags.doPrintConfigurables()): print PixelClusterOnTrackTool @@ -148,7 +167,9 @@ if InDetFlags.loadRotCreator(): InDetFlags.pixelClusterSplittingType() == 'NeuralNet'), NNIBLcorrection = ( InDetFlags.doPixelClusterSplitting() and InDetFlags.pixelClusterSplittingType() == 'NeuralNet'), - SplitClusterAmbiguityMap = InDetKeys.SplitClusterAmbiguityMap()) + SplitClusterAmbiguityMap = InDetKeys.SplitClusterAmbiguityMap(), + RunningTIDE_Ambi = InDetFlags.doTIDE_Ambi() + ) if InDetFlags.doPixelClusterSplitting() and InDetFlags.pixelClusterSplittingType() == 'NeuralNet': BroadPixelClusterOnTrackTool.NnClusterizationFactory = NnClusterizationFactory @@ -197,8 +218,10 @@ if InDetFlags.loadRotCreator(): # # use broad clusters everywhere ? # - if InDetFlags.useBroadClusterErrors(): + if use_broad_cluster_pix == True : InDetRotCreator.ToolPixelCluster = BroadPixelClusterOnTrackTool + + if use_broad_cluster_sct == True : InDetRotCreator.ToolSCT_Cluster = BroadSCT_ClusterOnTrackTool if (InDetFlags.doPrintConfigurables()): @@ -240,8 +263,9 @@ if InDetFlags.loadRotCreator(): ToolSCT_Cluster = SCT_ClusterOnTrackTool, ToolTRT_DriftCircle = TRT_RefitRotCreator, Mode = 'indet') - if InDetFlags.useBroadClusterErrors(): + if use_broad_cluster_pix == True : InDetRefitRotCreator.ToolPixelCluster=BroadPixelClusterOnTrackTool + if use_broad_cluster_sct == True : InDetRefitRotCreator.ToolSCT_Cluster=BroadSCT_ClusterOnTrackTool ToolSvc += InDetRefitRotCreator @@ -535,7 +559,7 @@ if InDetFlags.loadFitter(): RecalculateDerivatives= InDetFlags.doCosmics() or InDetFlags.doBeamHalo(), TRTExtensionCuts = True, TrackChi2PerNDFCut = 7) - if InDetFlags.doRefit() or InDetFlags.useBroadClusterErrors(): + if InDetFlags.doRefit() or use_broad_cluster_any == True: InDetTrackFitter.RecalibrateSilicon = False if InDetFlags.doRefit(): InDetTrackFitter.BroadRotCreatorTool = None @@ -726,12 +750,19 @@ if InDetFlags.loadSummaryTool(): InDetTRT_ElectronPidTool = None if DetFlags.haveRIO.TRT_on() and not InDetFlags.doSLHC() and not InDetFlags.doHighPileup() : - from TRT_ElectronPidTools.TRT_ElectronPidToolsConf import InDet__TRT_ElectronPidTool - InDetTRT_ElectronPidTool = InDet__TRT_ElectronPidTool(name = "InDetTRT_ElectronPidTool", - isData = (globalflags.DataSource == 'data') ) + from TRT_ElectronPidTools.TRT_ElectronPidToolsConf import InDet__TRT_LocalOccupancy + InDetTRT_LocalOccupancy = InDet__TRT_LocalOccupancy(name ="InDet_TRT_LocalOccupancy") + ToolSvc += InDetTRT_LocalOccupancy + print InDetTRT_LocalOccupancy + + from TRT_ElectronPidTools.TRT_ElectronPidToolsConf import InDet__TRT_ElectronPidToolRun2 + InDetTRT_ElectronPidTool = InDet__TRT_ElectronPidToolRun2(name = "InDetTRT_ElectronPidTool", + TRT_LocalOccupancyTool = InDetTRT_LocalOccupancy, + isData = (globalflags.DataSource == 'data') ) + ToolSvc += InDetTRT_ElectronPidTool if (InDetFlags.doPrintConfigurables()): - print InDetTRT_ElectronPidTool + print InDetTRT_ElectronPidTool # # Configurable version of PixelToTPIDTOol @@ -763,6 +794,7 @@ if InDetFlags.loadSummaryTool(): TestBLayerTool = None, # we don't want to use those tools during pattern #PixelToTPIDTool = InDetPixelToTPIDTool, #TestBLayerTool = InDetRecTestBLayerTool, + RunningTIDE_Ambi = InDetFlags.doTIDE_Ambi(), DoSharedHits = False, HoleSearch = InDetHoleSearchTool, usePixel = DetFlags.haveRIO.pixel_on(), @@ -775,6 +807,7 @@ if InDetFlags.loadSummaryTool(): TestBLayerTool = None, # we don't want to use those tools during pattern #PixelToTPIDTool = InDetPixelToTPIDTool, #TestBLayerTool = InDetRecTestBLayerTool, + RunningTIDE_Ambi = InDetFlags.doTIDE_Ambi(), DoSharedHits = False, HoleSearch = InDetHoleSearchTool, usePixel = DetFlags.haveRIO.pixel_on(), @@ -814,6 +847,7 @@ if InDetFlags.loadSummaryTool(): PixelToTPIDTool = InDetPixelToTPIDTool, TestBLayerTool = InDetRecTestBLayerTool, DoSharedHits = InDetFlags.doSharedHits(), + RunningTIDE_Ambi = InDetFlags.doTIDE_Ambi(), HoleSearch = InDetHoleSearchTool, usePixel = DetFlags.haveRIO.pixel_on(), useSCT = DetFlags.haveRIO.SCT_on(), @@ -824,6 +858,7 @@ if InDetFlags.loadSummaryTool(): PixelToTPIDTool = InDetPixelToTPIDTool, TestBLayerTool = InDetRecTestBLayerTool, DoSharedHits = InDetFlags.doSharedHits(), + RunningTIDE_Ambi = InDetFlags.doTIDE_Ambi(), HoleSearch = InDetHoleSearchTool, usePixel = DetFlags.haveRIO.pixel_on(), useSCT = DetFlags.haveRIO.SCT_on(), @@ -1074,7 +1109,7 @@ if InDetFlags.doPattern() and InDetFlags.doCosmics(): # ------------------------------------------------------------ # id rec stat processing and trk+pixel ntuple creation need this tool if truth is on -if InDetFlags.doTruth() and (InDetFlags.doStatistics() or InDetFlags.doStandardPlots() or InDetFlags.doNtupleCreation()): +if InDetFlags.doTruth() and (InDetFlags.doStatistics() or InDetFlags.doStandardPlots() or InDetFlags.doPhysValMon() or InDetFlags.doNtupleCreation()): # # --- load truth to track tool # @@ -1101,40 +1136,26 @@ if InDetFlags.doTruth() and (InDetFlags.doStatistics() or InDetFlags.doStandardP # ------ load track selector for vertexing, needs to be done here because is also needed for vertex ntuple creation # if InDetFlags.doVertexFinding() or InDetFlags.doVertexFindingForMonitoring() or InDetFlags.doSplitVertexFindingForMonitoring() or InDetFlags.doVtxNtuple(): + from InDetTrackSelectionTool.InDetTrackSelectionToolConf import InDet__InDetTrackSelectionTool + InDetTrackSelectorTool = InDet__InDetTrackSelectionTool(name = "InDetDetailedTrackSelectionTool", + CutLevel = InDetPrimaryVertexingCuts.TrackCutLevel(), + minPt = InDetPrimaryVertexingCuts.minPT(), + maxD0 = InDetPrimaryVertexingCuts.IPd0Max(), + maxZ0 = InDetPrimaryVertexingCuts.z0Max(), + maxZ0SinTheta = InDetPrimaryVertexingCuts.IPz0Max(), + maxSigmaD0 = InDetPrimaryVertexingCuts.sigIPd0Max(), + maxSigmaZ0SinTheta = InDetPrimaryVertexingCuts.sigIPz0Max(), + # maxChiSqperNdf = InDetPrimaryVertexingCuts.fitChi2OnNdfMax(), # Seems not to be implemented? + maxAbsEta = InDetPrimaryVertexingCuts.etaMax(), + minNInnermostLayerHits = InDetPrimaryVertexingCuts.nHitInnermostLayer(), + minNPixelHits = InDetPrimaryVertexingCuts.nHitPix(), + maxNPixelHoles = InDetPrimaryVertexingCuts.nHolesPix(), + minNSctHits = InDetPrimaryVertexingCuts.nHitSct(), + minNTrtHits = InDetPrimaryVertexingCuts.nHitTrt(), + minNSiHits = InDetPrimaryVertexingCuts.nHitSi(), + TrackSummaryTool = InDetTrackSummaryTool, + Extrapolator = InDetExtrapolator) - # - # ------ load new track selector (common for all vertexing algorithms, except for the moment VKalVrt) - # - from InDetTrackSelectorTool.InDetTrackSelectorToolConf import InDet__InDetDetailedTrackSelectorTool - InDetTrackSelectorTool = InDet__InDetDetailedTrackSelectorTool(name = "InDetDetailedTrackSelectorTool", - pTMin = InDetPrimaryVertexingCuts.minPT(), - IPd0Max = InDetPrimaryVertexingCuts.IPd0Max(), - IPz0Max = InDetPrimaryVertexingCuts.IPz0Max(), - z0Max = InDetPrimaryVertexingCuts.z0Max(), - sigIPd0Max = InDetPrimaryVertexingCuts.sigIPd0Max(), - sigIPz0Max = InDetPrimaryVertexingCuts.sigIPz0Max(), - d0significanceMax = InDetPrimaryVertexingCuts.d0significanceMax(), - z0significanceMax = InDetPrimaryVertexingCuts.z0significanceMax(), - etaMax = InDetPrimaryVertexingCuts.etaMax(), - useTrackSummaryInfo = InDetPrimaryVertexingCuts.useTrackSummaryInfo(), - nHitBLayer = InDetPrimaryVertexingCuts.nHitBLayer(), - nHitPix = InDetPrimaryVertexingCuts.nHitPix(), - nHolesPixel = InDetPrimaryVertexingCuts.nHolesPix(), - nHitBLayerPlusPix = InDetPrimaryVertexingCuts.nHitBLayerPlusPix(), - nHitSct = InDetPrimaryVertexingCuts.nHitSct(), - nHitSi = InDetPrimaryVertexingCuts.nHitSi(), - nHitTrt = InDetPrimaryVertexingCuts.nHitTrt(), - nHitTrtHighEFractionMax = InDetPrimaryVertexingCuts.nHitTrtHighEFractionMax(), - nHitTrtHighEFractionWithOutliersMax = InDetPrimaryVertexingCuts.nHitTrtHighEFractionWithOutliersMax(), - useSharedHitInfo = InDetPrimaryVertexingCuts.useSharedHitInfo(), - useTrackQualityInfo = InDetPrimaryVertexingCuts.useTrackQualityInfo(), - fitChi2OnNdfMax = InDetPrimaryVertexingCuts.fitChi2OnNdfMax(), - TrtMaxEtaAcceptance = InDetPrimaryVertexingCuts.TrtMaxEtaAcceptance(), - # InDetTestBLayerTool = InDetRecTestBLayerTool, - TrackSummaryTool = InDetTrackSummaryTool, - Extrapolator = InDetExtrapolator) - - ToolSvc += InDetTrackSelectorTool if (InDetFlags.doPrintConfigurables()): print InDetTrackSelectorTool diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecNtupleCreation.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecNtupleCreation.py index 6f260d4f81f524da6e9adaa2668698429c6f00f3..d3376f51befbb84ffba89d4391b534164a3ba477 100644 --- a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecNtupleCreation.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecNtupleCreation.py @@ -453,3 +453,42 @@ if InDetFlags.doStandardPlots(): print InDetStandardPerformanceGoodIPatRec InDetTrackPerfMonManager.AthenaMonTools += [ InDetStandardPerformanceGoodIPatRec ] + + + + +# -------------------------------------------- +# +# --- Physics Validation Monitoring +# +# -------------------------------------------- + +if InDetFlags.doPhysValMon(): + + from AthenaMonitoring.AthenaMonitoringConf import AthenaMonManager + InDetPhysValMonManager = AthenaMonManager (name = "InDetPhysValMonManager", + FileKey = "PhysValMon", + ManualDataTypeSetup = True, + DataType = "userDefined", # use this for collision data for now + Environment = "user", + ManualRunLBSetup = True, + Run = 1, + LumiBlock = 1) + topSequence += InDetPhysValMonManager + if (InDetFlags.doPrintConfigurables()): + print InDetPhysValMonManager + + from InDetPhysValMonitoring.InDetPhysValMonitoringConf import InDetPhysValMonitoringTool + InDetPhysValMonTool = InDetPhysValMonitoringTool (useTrackSelection = True, + TrackSelectorTool = InDetTrackSelectorTool) + ToolSvc += InDetPhysValMonTool + InDetPhysValMonManager.AthenaMonTools += [InDetPhysValMonTool] + if (InDetFlags.doPrintConfigurables()): + print InDetPhysValMonTool + + # --- Setup the output histogram file(s) + if not hasattr(ServiceMgr, 'THistSvc'): + from GaudiSvc.GaudiSvcConf import THistSvc + ServiceMgr += THistSvc() + THistSvc = Service( "THistSvc" ) + THistSvc.Output += ["PhysValMon DATAFILE='"+InDetKeys.PhysValMonHistName()+"' OPT='RECREATE'"] diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecPostProcessing.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecPostProcessing.py index e54de5c60afc7626126e9cec1df33a0d1b5660bb..2c0f00ac7dff8eb8c71e4a8929c852ddd98a437f 100755 --- a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecPostProcessing.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecPostProcessing.py @@ -171,13 +171,14 @@ if InDetFlags.doLowBetaFinder(): # ------------------------------------------------------------------------- if InDetFlags.doV0Finder() or InDetFlags.doSimpleV0Finder(): + import MagFieldServices.SetupField # if InDetFlags.useV0Fitter(): from TrkV0Fitter.TrkV0FitterConf import Trk__TrkV0VertexFitter InDetV0Fitter = Trk__TrkV0VertexFitter(name = 'InDetV0Fitter', MaxIterations = 10, Use_deltaR = False, - Extrapolator = InDetExtrapolator) + Extrapolator = "Trk::Extrapolator/InDetExtrapolator") ToolSvc += InDetV0Fitter #InDetV0Fitter.OutputLevel = DEBUG if (InDetFlags.doPrintConfigurables()): @@ -192,20 +193,18 @@ if InDetFlags.doV0Finder() or InDetFlags.doSimpleV0Finder(): # from TrkVKalVrtFitter.TrkVKalVrtFitterConf import Trk__TrkVKalVrtFitter InDetVKVertexFitter = Trk__TrkVKalVrtFitter(name = "InDetVKVFitter", - Extrapolator = InDetExtrapolator, + Extrapolator = "Trk::Extrapolator/InDetExtrapolator", IterationNumber = 30, - FirstMeasuredPoint = True, - MakeExtendedVertex = True) + FirstMeasuredPoint = True) ToolSvc += InDetVKVertexFitter if (InDetFlags.doPrintConfigurables()): print InDetVKVertexFitter # from TrkVKalVrtFitter.TrkVKalVrtFitterConf import Trk__TrkVKalVrtFitter InDetKshortFitter = Trk__TrkVKalVrtFitter(name = "InDetVKKVFitter", - Extrapolator = InDetExtrapolator, + Extrapolator = "Trk::Extrapolator/InDetExtrapolator", IterationNumber = 30, FirstMeasuredPoint = True, - MakeExtendedVertex = True, InputParticleMasses = [139.57,139.57], MassForConstraint = 497.672) ToolSvc += InDetKshortFitter @@ -214,10 +213,9 @@ if InDetFlags.doV0Finder() or InDetFlags.doSimpleV0Finder(): # from TrkVKalVrtFitter.TrkVKalVrtFitterConf import Trk__TrkVKalVrtFitter InDetLambdaFitter = Trk__TrkVKalVrtFitter(name = "InDetVKLFitter", - Extrapolator = InDetExtrapolator, + Extrapolator = "Trk::Extrapolator/InDetExtrapolator", IterationNumber = 30, FirstMeasuredPoint = True, - MakeExtendedVertex = True, InputParticleMasses = [938.272,139.57], MassForConstraint = 1115.68) ToolSvc += InDetLambdaFitter @@ -226,10 +224,9 @@ if InDetFlags.doV0Finder() or InDetFlags.doSimpleV0Finder(): # from TrkVKalVrtFitter.TrkVKalVrtFitterConf import Trk__TrkVKalVrtFitter InDetLambdabarFitter = Trk__TrkVKalVrtFitter(name = "InDetVKLbFitter", - Extrapolator = InDetExtrapolator, + Extrapolator = "Trk::Extrapolator/InDetExtrapolator", IterationNumber = 30, FirstMeasuredPoint = True, - MakeExtendedVertex = True, InputParticleMasses = [139.57,938.272], MassForConstraint = 1115.68) ToolSvc += InDetLambdabarFitter @@ -240,11 +237,10 @@ if InDetFlags.doV0Finder() or InDetFlags.doSimpleV0Finder(): # from TrkVKalVrtFitter.TrkVKalVrtFitterConf import Trk__TrkVKalVrtFitter InDetGammaFitter = Trk__TrkVKalVrtFitter(name = "InDetVKGFitter", - Extrapolator = InDetExtrapolator, + Extrapolator = "Trk::Extrapolator/InDetExtrapolator", IterationNumber = 30, Robustness = 6, FirstMeasuredPoint = True, - MakeExtendedVertex = True, usePhiCnst = True, useThetaCnst = True, InputParticleMasses = [0.511,0.511]) @@ -258,7 +254,7 @@ if InDetFlags.doV0Finder() or InDetFlags.doSimpleV0Finder(): from InDetTrackSelectorTool.InDetTrackSelectorToolConf import InDet__InDetConversionTrackSelectorTool InDetV0VxTrackSelector = InDet__InDetConversionTrackSelectorTool(name = "InDetV0VxTrackSelector", TrackSummaryTool = InDetTrackSummaryTool, - Extrapolator = InDetExtrapolator, + Extrapolator = "Trk::Extrapolator/InDetExtrapolator", maxTrtD0 = 20., maxSiZ0 = 250., significanceD0_Si = 1., @@ -276,7 +272,7 @@ if InDetFlags.doV0Finder() or InDetFlags.doSimpleV0Finder(): from InDetTrackSelectorTool.InDetTrackSelectorToolConf import InDet__InDetConversionTrackSelectorTool InDetSimpleV0VxTrackSelector = InDet__InDetConversionTrackSelectorTool(name = "InDetSimpleV0VxTrackSelector", TrackSummaryTool = InDetTrackSummaryTool, - Extrapolator = InDetExtrapolator, + Extrapolator = "Trk::Extrapolator/InDetExtrapolator", maxSiD0 = 100., maxTrtD0 = 100., maxSiZ0 = 450., @@ -311,25 +307,38 @@ if InDetFlags.doV0Finder() or InDetFlags.doSimpleV0Finder(): if (InDetFlags.doPrintConfigurables()): print InDetV0VtxPointEstimator + # + # InDetV0FinderTool + # + from InDetV0Finder.InDetV0FinderConf import InDet__InDetV0FinderTool + V0FinderTool = InDet__InDetV0FinderTool(name = 'InDetV0FinderTool', + TrackParticleCollection = InDetKeys.xAODTrackParticleContainer(), + useV0Fitter = InDetFlags.useV0Fitter(), + VertexFitterTool = InDetV0Fitter, + VKVertexFitterTool = InDetVKVertexFitter, + KshortFitterTool = InDetKshortFitter, + LambdaFitterTool = InDetLambdaFitter, + LambdabarFitterTool = InDetLambdabarFitter, + GammaFitterTool = InDetGammaFitter, + TrackSelectorTool = InDetV0VxTrackSelector, + VertexPointEstimator = InDetV0VtxPointEstimator, + Extrapolator = "Trk::Extrapolator/InDetExtrapolator") + ToolSvc += V0FinderTool + if (InDetFlags.doPrintConfigurables()): + print V0FinderTool + + # # --- now configure the algorithm # if InDetFlags.doV0Finder() : from InDetV0Finder.InDetV0FinderConf import InDet__InDetV0Finder InDetV0Finder = InDet__InDetV0Finder(name = 'InDetV0Finder', - TrackParticleCollection = InDetKeys.TrackParticles(), - V0CandidatesOutputName = InDetKeys.V0Candidates(), - useV0Fitter = InDetFlags.useV0Fitter(), - VertexFitterTool = InDetV0Fitter, - VKVertexFitterTool = InDetVKVertexFitter, - KshortFitterTool = InDetKshortFitter, - LambdaFitterTool = InDetLambdaFitter, - LambdabarFitterTool = InDetLambdabarFitter, - GammaFitterTool = InDetGammaFitter, - TrackSelectorTool = InDetV0VxTrackSelector, - #TrackSelectorTool = InDetSimpleV0VxTrackSelector, - VertexPointEstimator = InDetV0VtxPointEstimator, - Extrapolator = InDetExtrapolator) + InDetV0FinderToolName = V0FinderTool, + V0ContainerName = InDetKeys.xAODV0VertexContainer(), + KshortContainerName = InDetKeys.xAODKshortVertexContainer(), + LambdaContainerName = InDetKeys.xAODLambdaVertexContainer(), + LambdabarContainerName = InDetKeys.xAODLambdabarVertexContainer()) topSequence += InDetV0Finder if (InDetFlags.doPrintConfigurables()): @@ -347,7 +356,7 @@ if InDetFlags.doV0Finder() or InDetFlags.doSimpleV0Finder(): VKVertexFitterTool = InDetVKVertexFitter, TrackSelectorTool = InDetSimpleV0VxTrackSelector, VertexPointEstimator = InDetV0VtxPointEstimator, - Extrapolator = InDetExtrapolator) + Extrapolator = "Trk::Extrapolator/InDetExtrapolator") topSequence += InDetSimpleV0Finder if (InDetFlags.doPrintConfigurables()): diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecPreProcessingSilicon.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecPreProcessingSilicon.py index 1f62749d25cfff3b352504d0d490c801ec942bd5..e71ddee33f94f1bf35f0a136e957dd6e61498643 100644 --- a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecPreProcessingSilicon.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecPreProcessingSilicon.py @@ -121,9 +121,8 @@ if InDetFlags.doPRDFormation(): MinimalSplitProbability = 0, SplitClusterAmbiguityMap= InDetKeys.SplitClusterAmbiguityMap()) # assign the tools if there are any - if clusterSplitProbTool is not None : InDetMergedPixelsTool.SplitProbTool = clusterSplitProbTool - if clusterSplitterTool is not None : InDetMergedPixelsTool.ClusterSplitter = clusterSplitterTool - + if not InDetFlags.doTIDE_Ambi() and clusterSplitProbTool is not None : InDetMergedPixelsTool.SplitProbTool = clusterSplitProbTool + if not InDetFlags.doTIDE_Ambi() and clusterSplitterTool is not None : InDetMergedPixelsTool.ClusterSplitter = clusterSplitterTool ToolSvc += InDetMergedPixelsTool diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetRec_all.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetRec_all.py index 3b5d7ae0dc8a83d0a1a23d652ff5b82264322ef3..06ef06912009cec0c46970d2008f85e1c5a5161a 100755 --- a/InnerDetector/InDetExample/InDetRecExample/share/InDetRec_all.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetRec_all.py @@ -18,6 +18,7 @@ topSequence = AlgSequence() # from AthenaCommon.AppMgr import ToolSvc +import MagFieldServices.SetupField #-------------------------------------------------------------- # Abort on ERROR if set by RecFlags #-------------------------------------------------------------- diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetRec_jobOptions.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetRec_jobOptions.py index db638e8d711a19f8866369d8317760aee2e3fa8f..20bdea2055bdeb4b23d6f9872fc6b7fa61812ce3 100755 --- a/InnerDetector/InDetExample/InDetRecExample/share/InDetRec_jobOptions.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetRec_jobOptions.py @@ -121,7 +121,16 @@ else: # ------------------------------------------------------------ if InDetFlags.doBremRecovery() and InDetFlags.doCaloSeededBrem() and DetFlags.detdescr.Calo_allOn(): include ("InDetRecExample/InDetRecCaloSeededROISelection.py") - + + # ------------------------------------------------------------ + # + # -----------ROI seeding for SSS seeds + # + # ------------------------------------------------------------ + # + if InDetFlags.doHadCaloSeededSSS() and DetFlags.detdescr.Calo_allOn(): + include ("InDetRecExample/InDetRecHadCaloSeededROISelection.py") + # ------------------------------------------------------------ # # ----------- Configuring the conditions access @@ -163,7 +172,48 @@ else: # NewTracking collection keys InputCombinedInDetTracks = [] - + + # ------------------------------------------------------------ + # + # ----------- Subdetector pattern from New Tracking + # + # ------------------------------------------------------------ + # + # --- Pixel track segment finding + # + if InDetFlags.doTrackSegmentsPixel(): + # --- load cuts for pixel segment finding + if (not 'InDetNewTrackingCutsPixel' in dir()): + print "InDetRec_jobOptions: InDetNewTrackingCutsPixel not set before - import them now" + from InDetRecExample.ConfiguredNewTrackingCuts import ConfiguredNewTrackingCuts + InDetNewTrackingCutsPixel = ConfiguredNewTrackingCuts("Pixel") + InDetNewTrackingCutsPixel.printInfo() + # --- configure pixel segment finding + include ("InDetRecExample/ConfiguredNewTrackingSiPattern.py") + InDetNewTrackingSiPattern = ConfiguredNewTrackingSiPattern([],InDetKeys.PixelTracks(), + InDetKeys.SiSpSeededPixelTracks(), + InDetNewTrackingCutsPixel, + TrackCollectionKeys, + TrackCollectionTruthKeys) + # + # --- SCT track segment finding + # + if InDetFlags.doTrackSegmentsSCT(): + # --- load cuts for SCT segment finding + if (not 'InDetNewTrackingCutsSCT' in dir()): + print "InDetRec_jobOptions: InDetNewTrackingCutsSCT not set before - import them now" + from InDetRecExample.ConfiguredNewTrackingCuts import ConfiguredNewTrackingCuts + InDetNewTrackingCutsSCT = ConfiguredNewTrackingCuts("SCT") + InDetNewTrackingCutsSCT.printInfo() + # --- configure pixel segment finding + include ("InDetRecExample/ConfiguredNewTrackingSiPattern.py") + InDetNewTrackingSiPattern = ConfiguredNewTrackingSiPattern([],InDetKeys.SCTTracks(), + InDetKeys.SiSpSeededSCTTracks(), + InDetNewTrackingCutsSCT, + TrackCollectionKeys, + TrackCollectionTruthKeys) + + # ------------------------------------------------------------ # # ----------- Cosmics Si pattern before we do the TRT phase @@ -269,45 +319,6 @@ else: if InDetFlags.doxKalman() or InDetFlags.doiPatRec(): include ("InDetRecExample/InDetRecXKalIPat.py") - # ------------------------------------------------------------ - # - # ----------- Subdetector pattern from New Tracking - # - # ------------------------------------------------------------ - # - # --- Pixel track segment finding - # - if InDetFlags.doTrackSegmentsPixel(): - # --- load cuts for pixel segment finding - if (not 'InDetNewTrackingCutsPixel' in dir()): - print "InDetRec_jobOptions: InDetNewTrackingCutsPixel not set before - import them now" - from InDetRecExample.ConfiguredNewTrackingCuts import ConfiguredNewTrackingCuts - InDetNewTrackingCutsPixel = ConfiguredNewTrackingCuts("Pixel") - InDetNewTrackingCutsPixel.printInfo() - # --- configure pixel segment finding - include ("InDetRecExample/ConfiguredNewTrackingSiPattern.py") - InDetNewTrackingSiPattern = ConfiguredNewTrackingSiPattern([],InDetKeys.PixelTracks(), - InDetKeys.SiSpSeededPixelTracks(), - InDetNewTrackingCutsPixel, - TrackCollectionKeys, - TrackCollectionTruthKeys) - # - # --- SCT track segment finding - # - if InDetFlags.doTrackSegmentsSCT(): - # --- load cuts for SCT segment finding - if (not 'InDetNewTrackingCutsSCT' in dir()): - print "InDetRec_jobOptions: InDetNewTrackingCutsSCT not set before - import them now" - from InDetRecExample.ConfiguredNewTrackingCuts import ConfiguredNewTrackingCuts - InDetNewTrackingCutsSCT = ConfiguredNewTrackingCuts("SCT") - InDetNewTrackingCutsSCT.printInfo() - # --- configure pixel segment finding - include ("InDetRecExample/ConfiguredNewTrackingSiPattern.py") - InDetNewTrackingSiPattern = ConfiguredNewTrackingSiPattern([],InDetKeys.SCTTracks(), - InDetKeys.SiSpSeededSCTTracks(), - InDetNewTrackingCutsSCT, - TrackCollectionKeys, - TrackCollectionTruthKeys) # # --- TRT track segment finding # @@ -531,6 +542,32 @@ else: TrackCollectionTruthKeys) # --- do not add into list for combination YET # InputCombinedInDetTracks += [ InDetVeryLowPtSiPattern.SiTrackCollection() ] + + + # ------------------------------------------------------------ + # + # --- Pixel Tracklets on unassociated PRDs (after standard reconstruction + forward tracking) + # + # ------------------------------------------------------------ + + if InDetFlags.doTrackSegmentsPixelPrdAssociation(): + InputPixelInDetTracks = [] + InputPixelInDetTracks += InputCombinedInDetTracks + if InDetFlags.doForwardTracks(): + InputPixelInDetTracks +=[ InDetForwardTracksSiPattern.SiTrackCollection()] + # --- load cuts for pixel segment finding + if (not 'InDetNewTrackingCutsPixelPrdAssociation' in dir()): + print "InDetRec_jobOptions: InDetNewTrackingCutsPixelPrdAssociation not set before - import them now" + from InDetRecExample.ConfiguredNewTrackingCuts import ConfiguredNewTrackingCuts + InDetNewTrackingCutsPixelPrdAssociation = ConfiguredNewTrackingCuts("PixelPrdAssociation") + InDetNewTrackingCutsPixelPrdAssociation.printInfo() + # --- configure pixel segment finding + include ("InDetRecExample/ConfiguredNewTrackingSiPattern.py") + InDetPixelTrackingSiPattern = ConfiguredNewTrackingSiPattern(InputPixelInDetTracks,InDetKeys.PixelPrdAssociationTracks(), + InDetKeys.SiSpSeededPixelTracks(), + InDetNewTrackingCutsPixelPrdAssociation, + TrackCollectionKeys, + TrackCollectionTruthKeys) # ------------------------------------------------------------ # @@ -642,6 +679,11 @@ else: ToolSvc += InDetTruthTrajectoryManipulator # InDetTruthTrajectoryManipulator.OutputLevel = VERBOSE + # --- the trajectory shared cluster hits fixer +# from InDetTruthTools.InDetTruthToolsConf import InDet__PRD_TruthTrajectorySharedFixerID +# InDetTruthTrajectorySharedFixer = InDet__PRD_TruthTrajectorySharedFixerID(name = 'InDetTruthTrajectorySharedFixer' ) +# ToolSvc += InDetTruthTrajectorySharedFixer + # --- the truth PRD trajectory builder # @@ -661,6 +703,7 @@ else: MinimumPt = InDetNewTrackingCuts.minPT(), # Geantinos = True, PRD_TruthTrajectoryManipulators = [ InDetTruthTrajectorySorter, InDetTruthTrajectoryManipulator ]) +# PRD_TruthTrajectoryManipulators = [ InDetTruthTrajectorySorter, InDetTruthTrajectorySharedFixer ]) ToolSvc+=InDetPRD_TruthTrajectoryBuilder # InDetPRD_TruthTrajectoryBuilder.OutputLevel = VERBOSE @@ -726,6 +769,8 @@ else: TracksLocation = InputCombinedInDetTracks, OutputTracksLocation = InDetKeys.UnslimmedTracks(), AssoTool = InDetPrdAssociationTool, + UpdateSharedHitsOnly = False, + UpdateAdditionalInfo = True, SummaryTool = InDetTrackSummaryToolSharedHits) topSequence += TrkTrackCollectionMerger if (InDetFlags.doPrintConfigurables()): @@ -929,7 +974,7 @@ else: InDetValidation = ConfiguredInDetValidation("",True,InDetFlags.doTruth(),cuts,TrackCollectionKeys,TrackCollectionTruthKeys) # ntuple creation for validation purposes - if (InDetFlags.doNtupleCreation() or InDetFlags.doStandardPlots()): + if (InDetFlags.doNtupleCreation() or InDetFlags.doStandardPlots()) or InDetFlags.doPhysValMon(): include("InDetRecExample/InDetRecNtupleCreation.py") # D3PD Creation diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetxAODCreator.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetxAODCreator.py index 8e4b2e89d85b33c184b848edc1f4021e7c66b8e2..a35272e2cd2360b415b4635ddfc164442826b35d 100644 --- a/InnerDetector/InDetExample/InDetRecExample/share/InDetxAODCreator.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetxAODCreator.py @@ -63,3 +63,72 @@ if (InDetFlags.doForwardTracks() and InDetFlags.doParticleCreation()) or doConve xAODForwardTrackParticleCnvAlg.PrintIDSummaryInfo = True #xAODForwardTrackParticleCnvAlg.OutputLevel = VERBOSE topSequence += xAODForwardTrackParticleCnvAlg + +if InDetFlags.doPseudoTracking(): + from xAODTrackingCnv.xAODTrackingCnvConf import xAODMaker__TrackParticleCnvAlg + xAODPseudoTrackParticleCnvAlg = xAODMaker__TrackParticleCnvAlg(InDetKeys.xAODPseudoTrackParticleContainer()) + xAODPseudoTrackParticleCnvAlg.xAODContainerName = InDetKeys.xAODPseudoTrackParticleContainer() + xAODPseudoTrackParticleCnvAlg.xAODTrackParticlesFromTracksContainerName = InDetKeys.xAODPseudoTrackParticleContainer() + xAODPseudoTrackParticleCnvAlg.TrackContainerName = InDetKeys.PseudoTracks() + xAODPseudoTrackParticleCnvAlg.TrackParticleCreator = InDetxAODParticleCreatorTool + xAODPseudoTrackParticleCnvAlg.AODContainerName = InDetKeys.PseudoTracks() + xAODPseudoTrackParticleCnvAlg.AODTruthContainerName = InDetKeys.TrackParticlesTruth() + xAODPseudoTrackParticleCnvAlg.ConvertTrackParticles = doConversion + xAODPseudoTrackParticleCnvAlg.ConvertTracks = doCreation + xAODPseudoTrackParticleCnvAlg.AddTruthLink = InDetFlags.doTruth() + xAODPseudoTrackParticleCnvAlg.TrackTruthContainerName = InDetKeys.PseudoTracksTruth() + xAODPseudoTrackParticleCnvAlg.PrintIDSummaryInfo = True + topSequence += xAODPseudoTrackParticleCnvAlg + + +if InDetFlags.doTrackSegmentsPixel() and InDetFlags.doParticleCreation(): + xAODPixelTrackParticleCnvAlg = xAODMaker__TrackParticleCnvAlg(InDetKeys.xAODPixelTrackParticleContainer()) + xAODPixelTrackParticleCnvAlg.xAODContainerName = InDetKeys.xAODPixelTrackParticleContainer() + xAODPixelTrackParticleCnvAlg.xAODTrackParticlesFromTracksContainerName = InDetKeys.xAODPixelTrackParticleContainer() + xAODPixelTrackParticleCnvAlg.TrackParticleCreator = InDetxAODParticleCreatorTool + xAODPixelTrackParticleCnvAlg.TrackContainerName = InDetKeys.PixelTracks() + xAODPixelTrackParticleCnvAlg.ConvertTrackParticles = False + xAODPixelTrackParticleCnvAlg.ConvertTracks = True + xAODPixelTrackParticleCnvAlg.AddTruthLink = False + xAODPixelTrackParticleCnvAlg.PrintIDSummaryInfo = True + #xAODPixelTrackParticleCnvAlg.OutputLevel = VERBOSE + topSequence += xAODPixelTrackParticleCnvAlg + +if InDetFlags.doTrackSegmentsPixelPrdAssociation() and InDetFlags.doParticleCreation(): + xAODPixelPrdAssociationTrackParticleCnvAlg = xAODMaker__TrackParticleCnvAlg(InDetKeys.xAODPixelPrdAssociationTrackParticleContainer()) + xAODPixelPrdAssociationTrackParticleCnvAlg.xAODContainerName = InDetKeys.xAODPixelPrdAssociationTrackParticleContainer() + xAODPixelPrdAssociationTrackParticleCnvAlg.xAODTrackParticlesFromTracksContainerName = InDetKeys.xAODPixelPrdAssociationTrackParticleContainer() + xAODPixelPrdAssociationTrackParticleCnvAlg.TrackParticleCreator = InDetxAODParticleCreatorTool + xAODPixelPrdAssociationTrackParticleCnvAlg.TrackContainerName = InDetKeys.PixelPrdAssociationTracks() + xAODPixelPrdAssociationTrackParticleCnvAlg.ConvertTrackParticles = False + xAODPixelPrdAssociationTrackParticleCnvAlg.ConvertTracks = True + xAODPixelPrdAssociationTrackParticleCnvAlg.AddTruthLink = False + xAODPixelPrdAssociationTrackParticleCnvAlg.PrintIDSummaryInfo = True + #xAODPixelTrackParticleCnvAlg.OutputLevel = VERBOSE + topSequence += xAODPixelPrdAssociationTrackParticleCnvAlg + +if InDetFlags.doTrackSegmentsSCT() and InDetFlags.doParticleCreation(): + xAODSCTTrackParticleCnvAlg = xAODMaker__TrackParticleCnvAlg(InDetKeys.xAODSCTTrackParticleContainer()) + xAODSCTTrackParticleCnvAlg.xAODContainerName = InDetKeys.xAODSCTTrackParticleContainer() + xAODSCTTrackParticleCnvAlg.xAODTrackParticlesFromTracksContainerName = InDetKeys.xAODSCTTrackParticleContainer() + xAODSCTTrackParticleCnvAlg.TrackParticleCreator = InDetxAODParticleCreatorTool + xAODSCTTrackParticleCnvAlg.TrackContainerName = InDetKeys.SCTTracks() + xAODSCTTrackParticleCnvAlg.ConvertTrackParticles = False + xAODSCTTrackParticleCnvAlg.ConvertTracks = True + xAODSCTTrackParticleCnvAlg.AddTruthLink = False + xAODSCTTrackParticleCnvAlg.PrintIDSummaryInfo = True + #xAODSCTTrackParticleCnvAlg.OutputLevel = VERBOSE + topSequence += xAODSCTTrackParticleCnvAlg + +if InDetFlags.doTrackSegmentsTRT() and InDetFlags.doParticleCreation(): + xAODTRTTrackParticleCnvAlg = xAODMaker__TrackParticleCnvAlg(InDetKeys.xAODTRTTrackParticleContainer()) + xAODTRTTrackParticleCnvAlg.xAODContainerName = InDetKeys.xAODTRTTrackParticleContainer() + xAODTRTTrackParticleCnvAlg.xAODTrackParticlesFromTracksContainerName = InDetKeys.xAODTRTTrackParticleContainer() + xAODTRTTrackParticleCnvAlg.TrackParticleCreator = InDetxAODParticleCreatorTool + xAODTRTTrackParticleCnvAlg.TrackContainerName = InDetKeys.TRTTracks() + xAODTRTTrackParticleCnvAlg.ConvertTrackParticles = False + xAODTRTTrackParticleCnvAlg.ConvertTracks = True + xAODTRTTrackParticleCnvAlg.AddTruthLink = False + xAODTRTTrackParticleCnvAlg.PrintIDSummaryInfo = True + #xAODTRTTrackParticleCnvAlg.OutputLevel = VERBOSE + topSequence += xAODTRTTrackParticleCnvAlg diff --git a/InnerDetector/InDetExample/InDetRecExample/share/ReadInDet_jobOptions.py b/InnerDetector/InDetExample/InDetRecExample/share/ReadInDet_jobOptions.py index 8ca0c6c999a7e78e9a3ac2068aaf2f8bfc46f887..d1af3806468e656843e63900cc78d9c0d58bacd9 100755 --- a/InnerDetector/InDetExample/InDetRecExample/share/ReadInDet_jobOptions.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/ReadInDet_jobOptions.py @@ -132,6 +132,7 @@ DetFlags.Print() #-------------------------------------------------------------- # Load InDet configuration #-------------------------------------------------------------- +import MagFieldServices.SetupField from AthenaCommon.GlobalFlags import globalflags diff --git a/InnerDetector/InDetExample/InDetRecExample/share/WriteInDetAOD.py b/InnerDetector/InDetExample/InDetRecExample/share/WriteInDetAOD.py index 33eb1a2b35701ea897e038fa878a0b991bfb58c2..93454c6ebdf7d288a071d4a857b70dc0559cc65d 100755 --- a/InnerDetector/InDetExample/InDetRecExample/share/WriteInDetAOD.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/WriteInDetAOD.py @@ -36,14 +36,34 @@ InDetAODList = [] # InDetAODList+=['TRT_BSIdErrContainer#'+InDetKeys.TRT_ByteStreamIdErrs()] if InDetFlags.doxAOD(): - InDetAODList+=['xAOD::TrackParticleContainer_v1#'+InDetKeys.xAODTrackParticleContainer()] - InDetAODList+=['xAOD::TrackParticleAuxContainer_v1#'+InDetKeys.xAODTrackParticleContainer()+'Aux.'] - InDetAODList+=['xAOD::TrackParticleAuxContainer_v1#'+InDetKeys.xAODTrackParticleContainer()+'Aux.-caloExtension'] - InDetAODList+=['xAOD::TrackParticleContainer_v1#'+InDetKeys.xAODForwardTrackParticleContainer()] - InDetAODList+=['xAOD::TrackParticleAuxContainer_v1#'+InDetKeys.xAODForwardTrackParticleContainer()+'Aux.'] - InDetAODList+=['xAOD::TrackParticleAuxContainer_v1#'+InDetKeys.xAODForwardTrackParticleContainer()+'Aux.-caloExtension'] - InDetAODList+=['xAOD::VertexContainer_v1#'+InDetKeys.xAODVertexContainer()] - InDetAODList+=['xAOD::VertexAuxContainer_v1#'+InDetKeys.xAODVertexContainer()+'Aux.-vxTrackAtVertex'] + excludedAuxData = "-caloExtension.-cellAssociation.-clusterAssociation.-trackParameterCovarianceMatrices.-parameterX.-parameterY.-parameterZ.-parameterPX.-parameterPY.-parameterPZ.-parameterPosition" + InDetAODList+=['xAOD::TrackParticleContainer#'+InDetKeys.xAODTrackParticleContainer()] + InDetAODList+=['xAOD::TrackParticleAuxContainer#'+InDetKeys.xAODTrackParticleContainer()+'Aux.' + excludedAuxData] + InDetAODList+=['xAOD::TrackParticleContainer#'+InDetKeys.xAODForwardTrackParticleContainer()] + InDetAODList+=['xAOD::TrackParticleAuxContainer#'+InDetKeys.xAODForwardTrackParticleContainer()+'Aux.' + excludedAuxData] + InDetAODList+=['xAOD::VertexContainer#'+InDetKeys.xAODVertexContainer()] + InDetAODList+=['xAOD::VertexAuxContainer#'+InDetKeys.xAODVertexContainer()+'Aux.-vxTrackAtVertex'] + InDetAODList+=['xAOD::VertexContainer#'+InDetKeys.xAODV0VertexContainer()] + InDetAODList+=['xAOD::VertexAuxContainer#'+InDetKeys.xAODV0VertexContainer()+'Aux.-vxTrackAtVertex'] + InDetAODList+=['xAOD::VertexContainer#'+InDetKeys.xAODKshortVertexContainer()] + InDetAODList+=['xAOD::VertexAuxContainer#'+InDetKeys.xAODKshortVertexContainer()+'Aux.-vxTrackAtVertex'] + InDetAODList+=['xAOD::VertexContainer#'+InDetKeys.xAODLambdaVertexContainer()] + InDetAODList+=['xAOD::VertexAuxContainer#'+InDetKeys.xAODLambdaVertexContainer()+'Aux.-vxTrackAtVertex'] + InDetAODList+=['xAOD::VertexContainer#'+InDetKeys.xAODLambdabarVertexContainer()] + InDetAODList+=['xAOD::VertexAuxContainer#'+InDetKeys.xAODLambdabarVertexContainer()+'Aux.-vxTrackAtVertex'] + if InDetFlags.doTrackSegmentsPixel(): + InDetAODList+=['xAOD::TrackParticleContainer#'+InDetKeys.xAODPixelTrackParticleContainer()] + InDetAODList+=['xAOD::TrackParticleAuxContainer#'+InDetKeys.xAODPixelTrackParticleContainer()+'Aux.' + excludedAuxData] + if InDetFlags.doTrackSegmentsPixelPrdAssociation(): + InDetAODList+=['xAOD::TrackParticleContainer#'+InDetKeys.xAODPixelPrdAssociationTrackParticleContainer()] + InDetAODList+=['xAOD::TrackParticleAuxContainer#'+InDetKeys.xAODPixelPrdAssociationTrackParticleContainer()+'Aux.' + excludedAuxData] + if InDetFlags.doTrackSegmentsSCT(): + InDetAODList+=['xAOD::TrackParticleContainer#'+InDetKeys.xAODSCTTrackParticleContainer()] + InDetAODList+=['xAOD::TrackParticleAuxContainer#'+InDetKeys.xAODSCTTrackParticleContainer()+'Aux.' + excludedAuxData] + if InDetFlags.doTrackSegmentsTRT(): + InDetAODList+=['xAOD::TrackParticleContainer#'+InDetKeys.xAODTRTTrackParticleContainer()] + InDetAODList+=['xAOD::TrackParticleAuxContainer#'+InDetKeys.xAODTRTTrackParticleContainer()+'Aux.' + excludedAuxData] + # next is only for InDetRecExample stand alone! RecExCommon uses InDetAODList directly StreamAOD.ItemList += InDetAODList diff --git a/InnerDetector/InDetExample/InDetRecExample/share/WriteInDetESD.py b/InnerDetector/InDetExample/InDetRecExample/share/WriteInDetESD.py index 3c8e3ce115edb2d2a17212a63578e79647d5b27a..26c885867f7dc6fd653f6c2fbdf126bfe5f3d8a2 100755 --- a/InnerDetector/InDetExample/InDetRecExample/share/WriteInDetESD.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/WriteInDetESD.py @@ -98,15 +98,25 @@ if globalflags.InputFormat()=='bytestream': InDetESDList+=['TRT_BSIdErrContainer#'+InDetKeys.TRT_ByteStreamIdErrs()] if InDetFlags.doxAOD(): - InDetESDList+=['xAOD::TrackParticleContainer_v1#'+InDetKeys.xAODTrackParticleContainer()] - InDetESDList+=['xAOD::TrackParticleAuxContainer_v1#'+InDetKeys.xAODTrackParticleContainer()+'Aux.'] - InDetESDList+=['xAOD::TrackParticleAuxContainer_v1#'+InDetKeys.xAODTrackParticleContainer()+'Aux.-caloExtension'] - InDetESDList+=['xAOD::TrackParticleContainer_v1#'+InDetKeys.xAODForwardTrackParticleContainer()] - InDetESDList+=['xAOD::TrackParticleAuxContainer_v1#'+InDetKeys.xAODForwardTrackParticleContainer()+'Aux.'] - InDetESDList+=['xAOD::TrackParticleAuxContainer_v1#'+InDetKeys.xAODForwardTrackParticleContainer()+'Aux.-caloExtension'] - InDetESDList+=['xAOD::VertexContainer_v1#'+InDetKeys.xAODVertexContainer()] - InDetESDList+=['xAOD::VertexAuxContainer_v1#'+InDetKeys.xAODVertexContainer()+'Aux.-vxTrackAtVertex'] - + excludedAuxData = "-caloExtension.-cellAssociation.-clusterAssociation.-trackParameterCovarianceMatrices.-parameterX.-parameterY.-parameterZ.-parameterPX.-parameterPY.-parameterPZ.-parameterPosition" + InDetESDList+=['xAOD::TrackParticleContainer#'+InDetKeys.xAODTrackParticleContainer()] + InDetESDList+=['xAOD::TrackParticleAuxContainer#'+InDetKeys.xAODTrackParticleContainer()+'Aux.' + excludedAuxData] + InDetESDList+=['xAOD::TrackParticleContainer#'+InDetKeys.xAODForwardTrackParticleContainer()] + InDetESDList+=['xAOD::TrackParticleAuxContainer#'+InDetKeys.xAODForwardTrackParticleContainer()+'Aux.' + excludedAuxData ] + InDetESDList+=['xAOD::VertexContainer#'+InDetKeys.xAODVertexContainer()] + InDetESDList+=['xAOD::VertexAuxContainer#'+InDetKeys.xAODVertexContainer()+'Aux.-vxTrackAtVertex'] + if InDetFlags.doTrackSegmentsPixel(): + InDetESDList+=['xAOD::TrackParticleContainer#'+InDetKeys.xAODPixelTrackParticleContainer()] + InDetESDList+=['xAOD::TrackParticleAuxContainer#'+InDetKeys.xAODPixelTrackParticleContainer()+'Aux.' + excludedAuxData] + if InDetFlags.doTrackSegmentsPixelPrdAssociation(): + InDetESDList+=['xAOD::TrackParticleContainer#'+InDetKeys.xAODPixelPrdAssociationTrackParticleContainer()] + InDetESDList+=['xAOD::TrackParticleAuxContainer#'+InDetKeys.xAODPixelPrdAssociationTrackParticleContainer()+'Aux.' + excludedAuxData] + if InDetFlags.doTrackSegmentsSCT(): + InDetESDList+=['xAOD::TrackParticleContainer#'+InDetKeys.xAODSCTTrackParticleContainer()] + InDetESDList+=['xAOD::TrackParticleAuxContainer#'+InDetKeys.xAODSCTTrackParticleContainer()+'Aux.' + excludedAuxData] + if InDetFlags.doTrackSegmentsTRT(): + InDetESDList+=['xAOD::TrackParticleContainer#'+InDetKeys.xAODTRTTrackParticleContainer()] + InDetESDList+=['xAOD::TrackParticleAuxContainer#'+InDetKeys.xAODTRTTrackParticleContainer()+'Aux.' + excludedAuxData] # next is only for InDetRecExample stand alone! RecExCommon uses InDetESDList directly # added to InDetRec_all.py after include WriteInDetESD! #StreamESD.ItemList += InDetESDList diff --git a/InnerDetector/InDetExample/InDetRecExample/share/jobOptions_RecExCommon.py b/InnerDetector/InDetExample/InDetRecExample/share/jobOptions_RecExCommon.py index 67f9190cbbf355c69db9139fd8013e48bd32797c..9bf0edea6116d5261f49fabc82ba51099065cb48 100755 --- a/InnerDetector/InDetExample/InDetRecExample/share/jobOptions_RecExCommon.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/jobOptions_RecExCommon.py @@ -105,7 +105,6 @@ rec.doJetMissingETTag.set_Value_and_Lock (False) # --- turn of calo stuff we don't need anyway from CaloRec.CaloRecFlags import jobproperties -jobproperties.CaloRecFlags.doCaloTopoCluster.set_Value_and_Lock (False) jobproperties.CaloRecFlags.doCaloEMTopoCluster.set_Value_and_Lock(False) jobproperties.CaloRecFlags.doCaloTopoTower.set_Value_and_Lock (False) @@ -134,6 +133,8 @@ recAlgs.doTileMuID.set_Value_and_Lock (False) # --- trigger recAlgs.doTrigger.set_Value_and_Lock (False) +recAlgs.doTrackParticleCellAssociation.set_Value_and_Lock(False) + #-------------------------------------------------------------- # Printout config #-------------------------------------------------------------- @@ -162,7 +163,7 @@ InDetFlags.doTruth.set_Value_and_Lock (globalflags.DataSource == 'geant4' and gl # InDetFlags.doCaloSeededBrem.set_Value_and_Lock (doCaloSeededBrem) # --- cut level -#InDetFlags.priVtxCutLevel.set_Value_and_Lock (2) +#InDetFlags.priVtxCutLevel.set_Value_and_Lock (3) # --- enable forward tracks # InDetFlags.doForwardTracks.set_Value_and_Lock (True) @@ -181,6 +182,9 @@ InDetFlags.doMonitoringAlignment.set_Value_and_Lock (False) # activate the print InDetXYZAlgorithm statements InDetFlags.doPrintConfigurables.set_Value_and_Lock (True) +# Activate TIDE Ambi +#InDetFlags.doTIDE_Ambi.set_Value_and_Lock (True) + # --- test new cut level # InDetFlags.cutLevel.set_Value_and_Lock (11) diff --git a/InnerDetector/InDetExample/InDetRecExample/share/jobOptions_Standalone.py b/InnerDetector/InDetExample/InDetRecExample/share/jobOptions_Standalone.py index 7b717d05ea17f8c4cc080d1c9f8702350909195b..b63fdbd88238a66f5c9502fddc476f1325e2c642 100755 --- a/InnerDetector/InDetExample/InDetRecExample/share/jobOptions_Standalone.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/jobOptions_Standalone.py @@ -170,6 +170,8 @@ InDetFlags.doMonitoringAlignment = False #InDetFlags.doPerfMon = True # --- activate creation of standard plots #InDetFlags.doStandardPlots = True +# --- activate physics validation monitoring +#InDetFlags.doPhysValMon = True # --- active storegate delection #InDetFlags.doSGDeletion = True diff --git a/InnerDetector/InDetExample/InDetRecExample/share/jobOptions_cosmic.py b/InnerDetector/InDetExample/InDetRecExample/share/jobOptions_cosmic.py index 9e0c5cf381a8a110601df71670d3a84060f449b7..c438a34a7726efe0d183254ea8f1d3ef9df52366 100755 --- a/InnerDetector/InDetExample/InDetRecExample/share/jobOptions_cosmic.py +++ b/InnerDetector/InDetExample/InDetRecExample/share/jobOptions_cosmic.py @@ -27,6 +27,14 @@ if doReadBS: from IOVDbSvc.CondDB import conddb conddb.setGlobalTag(globalflags.ConditionsTag()) +# request TrackingGeo tag AtlasLayerMat_v18_ATLAS-GEO-16 +# but there are only AtlasLayerMat_v16_ATLAS-GEO-16 +# or AtlasLayerMat_v18_ATLAS-R1-2010-01 +# @TODO switch to more recent data file ? +conddb.addOverride('/GLOBAL/TrackingGeo/LayerMaterialV2','AtlasLayerMat_v19s0_ATLAS-R1-2010-01') +#conddb.addOverride('/GLOBAL/TrackingGeo/LayerMaterialV2','AtlasLayerMat_v16_ATLAS-GEO-16') +import MagFieldServices.SetupField + theApp.EvtMax = 50 #--------------------------------------------------------------