8 from AthenaConfiguration.ComponentAccumulator 
import ComponentAccumulator
 
    9 from AthenaConfiguration.ComponentFactory 
import CompFactory
 
   10 from AthenaConfiguration.Enums 
import MetadataCategory
 
   11 from AthenaCommon.Logging 
import logging
 
   12 logSTDM16 = logging.getLogger(
'STDM16')
 
   19 CandidatesContainerName= 
"STDM16_D0Candidates" 
   20 streamName = 
"StreamDAOD_STDM16" 
   26     acc.addPublicTool(CompFactory.DerivationFramework.DStarSelectionTool(name = 
"STDM16_DStarSelectionTool",
 
   27                                                                          InputVtxContainerName = CandidatesContainerName,
 
   28                                                                          DeltaMassMax          = 200.0), primary = 
True)
 
   33     """Configure the derivation framework driving algorithm (kernel) for STDM16""" 
   34     from DerivationFrameworkBPhys.commonBPHYMethodsCfg 
import (BPHY_V0ToolCfg,  BPHY_InDetDetailedTrackSelectorToolCfg, BPHY_VertexPointEstimatorCfg, BPHY_TrkVKalVrtFitterCfg)
 
   44         from DerivationFrameworkMCTruth.MCTruthCommonConfig 
import (
 
   45             AddStandardTruthContentsCfg,
 
   47             AddMiniTruthCollectionLinksCfg,
 
   49             AddTruthCollectionNavigationDecorationsCfg,
 
   50             TruthClassificationAugmentationsCfg)
 
   52         from DerivationFrameworkMCTruth.TruthDerivationToolsConfig 
import DFCommonTruthCharmToolCfg
 
   55             name = 
"STDM16CommonTruthCharmTool"))
 
   56         CommonAugmentation = CompFactory.DerivationFramework.CommonAugmentation
 
   57         acc.addEventAlgo(CommonAugmentation(
"STDM16CommonTruthCharmKernel",AugmentationTools=[STDM16CommonTruthCharmTool]))
 
   62             TruthCollections=[
"TruthMuons", 
 
   72     from DerivationFrameworkInDet.InDetCommonConfig 
import InDetCommonCfg
 
   73     from DerivationFrameworkMuons.MuonsCommonConfig 
import MuonsCommonCfg
 
   74     from DerivationFrameworkEGamma.EGammaCommonConfig 
import EGammaCommonCfg
 
   79                              DoVertexFinding = flags.Tracking.doVertexFinding,
 
   80                              AddPseudoTracks = flags.Tracking.doPseudoTracking,
 
   82                              DoR3LargeD0 = flags.Tracking.doLargeD0,
 
   83                              StoreSeparateLargeD0Container = flags.Tracking.storeSeparateLargeD0Container,
 
   89     from DerivationFrameworkJetEtMiss.JetCommonConfig 
import JetCommonCfg
 
   98     from TrkConfig.TrkV0FitterConfig 
import TrkV0VertexFitter_InDetExtrCfg     
 
  106     acc.addPublicTool(vkalvrt)
 
  107     acc.addPublicTool(V0Tools)
 
  108     acc.addPublicTool(trackselect)
 
  109     acc.addPublicTool(vpest)
 
  110     acc.addPublicTool(v0fitter)
 
  117     STDM16_AugmentationTools = []
 
  123     STDM16_Finder_D0 = CompFactory.Analysis.JpsiFinder(
 
  124         name                        = 
"STDM16_Finder_D0",
 
  128         TrackAndTrack               = 
True,
 
  129         assumeDiMuons               = 
False,
 
  130         invMassUpper                = 3000.0,
 
  133         oppChargesOnly              = 
True,
 
  134         atLeastOneComb              = 
False,
 
  135         useCombinedMeasurement      = 
False,
 
  136         track1Mass                  = massPiPlus, 
 
  137         track2Mass                  = massPiPlus, 
 
  138         trackThresholdPt            = 1000.0,
 
  139         muonCollectionKey           = 
"Muons",
 
  140         TrackParticleCollection     = 
"InDetTrackParticles",
 
  141         V0VertexFitterTool          = v0fitter,             
 
  143         TrkVertexFitterTool         = vkalvrt,        
 
  144         TrackSelectorTool           = trackselect,
 
  145         VertexPointEstimator        = vpest,
 
  148     acc.addPublicTool(STDM16_Finder_D0)
 
  151     from JpsiUpsilonTools.JpsiUpsilonToolsConfig 
import PrimaryVertexRefittingToolCfg   
 
  152     STDM16_Reco_D0 = CompFactory.DerivationFramework.Reco_Vertex(
 
  153         name                   = 
"STDM16_Reco_D0",
 
  154         VertexSearchTool       = STDM16_Finder_D0,
 
  155         OutputVtxContainerName = 
"STDM16_D0Candidates",
 
  156         PVContainerName        = 
"PrimaryVertices",
 
  160         RefPVContainerName     = 
"SHOULDNOTBEUSED",
 
  163     acc.addPublicTool(STDM16_Reco_D0)
 
  164     STDM16_AugmentationTools += [STDM16_Reco_D0]
 
  177     STDM16_Select_D0 = CompFactory.DerivationFramework.Select_onia2mumu(
 
  178         name                  = 
"STDM16_Select_D0",
 
  179         HypothesisName        = 
"D0",
 
  180         InputVtxContainerName = STDM16_Reco_D0.OutputVtxContainerName,
 
  181         TrkMasses             = [massPiPlus,massKPlus],
 
  182         VtxMassHypo           = massD0,
 
  183         MassMin               = cutMinMass,
 
  184         MassMax               = cutMaxMass,
 
  185         Chi2Max               = cutMaxChiSq,
 
  188     acc.addPublicTool(STDM16_Select_D0)
 
  189     STDM16_AugmentationTools += [STDM16_Select_D0]
 
  191     STDM16_Select_D0b = CompFactory.DerivationFramework.Select_onia2mumu(
 
  192     name                  = 
"STDM16_Select_D0b",
 
  193     HypothesisName        = 
"D0b",
 
  194     InputVtxContainerName = STDM16_Reco_D0.OutputVtxContainerName,
 
  195     TrkMasses             = [massKPlus,massPiPlus],
 
  196     VtxMassHypo           = massD0,
 
  197     MassMin               = cutMinMass,
 
  198     MassMax               = cutMaxMass,
 
  199     Chi2Max               = cutMaxChiSq,
 
  202     acc.addPublicTool(STDM16_Select_D0b)
 
  203     STDM16_AugmentationTools += [STDM16_Select_D0b]
 
  212                                                                           name = 
"STDM16_DStarSelectionTool",
 
  213                                                                           InputVtxContainerName = STDM16_Reco_D0.OutputVtxContainerName,
 
  214                                                                           DeltaMassMax          = 200.0))
 
  216     STDM16_AugmentationTools += [STDM16_DStarSelectionTool]
 
  222     STDM16_SkimmingTools = []
 
  229     SelectExpression = 
"count(STDM16_D0Candidates.passed_Dstar) > 0" 
  231     STDM16_SelectEvent = CompFactory.DerivationFramework.xAODStringSkimmingTool(
 
  232         name = 
"STDM16_SelectEvent",
 
  233         expression = SelectExpression)
 
  234     acc.addPublicTool(STDM16_SelectEvent)
 
  235     STDM16_SkimmingTools += [STDM16_SelectEvent]
 
  240     STDM16_ThinningTools = []
 
  246     STDM16_Thin_Vertex = CompFactory.DerivationFramework.Thin_vtxTrk(
 
  247         name                       = 
"STDM16_Thin_Vertex",
 
  248         StreamName                 = streamName,
 
  250         VertexContainerNames       = [
"STDM16_D0Candidates"],
 
  251         PassFlags                  = [
"passed_Dstar"] )
 
  252     STDM16_ThinningTools += [STDM16_Thin_Vertex]
 
  253     acc.addPublicTool(STDM16_Thin_Vertex)
 
  260     from DerivationFrameworkTools.DerivationFrameworkToolsConfig 
import GenericObjectThinningCfg
 
  262     track_thinning_expression = 
"(InDetTrackParticles.trackPassDstar == 1)" 
  263     STDM16_Thin_Tracks = acc.getPrimaryAndMerge(
 
  265                                  name            = 
"STDM16_Thin_Tracks",
 
  266                                  ContainerName   = 
"InDetTrackParticles",
 
  267                                  StreamName      = streamName,
 
  268                                  SelectionString = track_thinning_expression))
 
  269     STDM16_ThinningTools += [STDM16_Thin_Tracks]
 
  270     acc.addPublicTool(STDM16_Thin_Tracks)
 
  272     acc.addPublicTool(STDM16_SelectEvent)
 
  273     acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(
"STDM16Kernel",
 
  274                                                                       SkimmingTools = STDM16_SkimmingTools,
 
  275                                                                       ThinningTools = STDM16_ThinningTools,
 
  276                                                                       AugmentationTools = STDM16_AugmentationTools))
 
  284     from OutputStreamAthenaPool.OutputStreamConfig 
import OutputStreamCfg
 
  285     from xAODMetaDataCnv.InfileMetaDataConfig 
import SetupMetaDataForStreamCfg
 
  286     from DerivationFrameworkCore.SlimmingHelper 
import SlimmingHelper
 
  287     from DerivationFrameworkBPhys.commonBPHYMethodsCfg 
import getDefaultAllVariables
 
  296     AllVariables += [
"PrimaryVertices"]
 
  299     AllVariables += [
"InDetTrackParticles"]
 
  306     StaticContent += [
"xAOD::VertexContainer#%s"        % CandidatesContainerName ]
 
  309     StaticContent += [
"xAOD::VertexAuxContainer#%sAux.-vxTrackAtVertex" % CandidatesContainerName]
 
  313     if flags.Input.isMC :
 
  314         AllVariables += [
"TruthEvents",
"TruthParticles", 
"TruthVertices",
"MuonTruthParticles", 
"AntiKt4TruthJets",
"AntiKt4TruthWZJets"]
 
  316     STDM16SlimmingHelper = 
SlimmingHelper(
"STDM16SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
 
  319     STDM16SlimmingHelper.SmartCollections = [
"AntiKt4EMPFlowJets",
 
  323                                              "InDetTrackParticles"]  
 
  326     STDM16SlimmingHelper.ExtraVariables += [
"InDetTrackParticles.trackPassDstar",
 
  327                                             "AntiKt4EMPFlowJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.GhostPartons.isJvtHS.isJvtPU.IsoFixedCone5PtPUsub",
 
  328                                             "TruthPrimaryVertices.t.x.y.z",
 
  329                                             "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers",
 
  330                                             "EventInfo.GenFiltHT.GenFiltMET.GenFiltHTinclNu.GenFiltPTZ.GenFiltFatJ.HF_Classification.HF_SimpleClassification",
 
  331                                             "TauJets.dRmax.etOverPtLeadTrk",                                               
"TauJets_MuonRM.dRmax.etOverPtLeadTrk",
 
  332                                             "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET.ex.ey",
 
  333                                             "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht.ex.ey"]    
 
  337     STDM16SlimmingHelper.IncludeJetTriggerContent = 
True 
  338     STDM16SlimmingHelper.IncludeMuonTriggerContent = 
True  
  339     STDM16SlimmingHelper.AllVariables = AllVariables
 
  340     STDM16SlimmingHelper.StaticContent = StaticContent
 
  341     STDM16ItemList = STDM16SlimmingHelper.GetItemList()
 
  343     acc.merge(
OutputStreamCfg(flags, 
"DAOD_STDM16", ItemList=STDM16ItemList, AcceptAlgs=[
"STDM16Kernel"]))
 
  344     acc.merge(
SetupMetaDataForStreamCfg(flags, 
"DAOD_STDM16", AcceptAlgs=[
"STDM16Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
 
  345     acc.printConfig(withDetails=
True, summariseProps=
True, onlyComponents = [], printDefaults=
True)