def SetupEGammaStreamFilters(seq): acceptAlgs=[] cutVersion=D2PDFlags.WriteDAOD_SUSYEGammaStream.CutVersion if cutVersion=='newest': #photon: if not hasattr(seq,"PhotonSelectorSUSY"): seq += PhotonSelectorSUSY #el+mu (must execute before other selectors because of elementlink nesting (see above)) if not hasattr(seq,"MuidMuonSelectorSUSY_forEMu"): seq += MuidMuonSelectorSUSY_forEMu if not hasattr(seq,"StacoMuonSelectorSUSY_forEMu"): seq += StacoMuonSelectorSUSY_forEMu if not hasattr(seq,"ElectronSelectorSUSY_forEMu"): seq += ElectronSelectorSUSY_forEMu if not hasattr(seq,"ElectronPlusMuonSelectorSUSY"): seq += ElectronPlusMuonSelectorSUSY seq += ElectronSelectorSUSY seq.ElectronSelectorSUSY.etMin=12.0*Units.GeV #di-electrons seq += DiElectronSelectorSUSY seq.ElectronSelectorSUSY.OutputLevel=D2PDFlags.VerboseLevel() seq.DiElectronSelectorSUSY.OutputLevel=D2PDFlags.VerboseLevel() seq.ElectronPlusMuonSelectorSUSY.OutputLevel=D2PDFlags.VerboseLevel() seq.PhotonSelectorSUSY.OutputLevel=D2PDFlags.VerboseLevel() acceptAlgs=["ElectronSelectorSUSY","DiElectronSelectorSUSY","PhotonSelectorSUSY","ElectronPlusMuonSelectorSUSY"] elif cutVersion=='OldV1': acceptAlgs = GetOldV1Setup( seq ) else: raise RuntimeError("Unknown cut version '%s'"%cutVersion) return acceptAlgs
def buildFileName( jobPropFlagOrString ): fileName = "" if type(jobPropFlagOrString) == str : fileName = D2PDFlags.OutputDirectoryName()+D2PDFlags.OutputPoolRootFileNamePrefix()+jobPropFlagOrString+D2PDFlags.OutputMiddleName()+".pool.root" pass else : if jobPropFlagOrString.is_locked() : fileName = jobPropFlagOrString.FileName pass else : fileName = D2PDFlags.OutputDirectoryName()+D2PDFlags.OutputPoolRootFileNamePrefix()+jobPropFlagOrString.StreamName+D2PDFlags.OutputMiddleName()+".pool.root" pass pass return fileName
def SetupJetsStreamFilters(seq): acceptAlgs=[] cutVersion=D2PDFlags.WriteDAOD_SUSYJetsStream.CutVersion if cutVersion=='newest': seq += JetSelectorSUSY seq += DiJetSelectorSUSY seq += METSelectorSUSY #seq += FourJetSelectorSUSY <--not used yet #seq.FourJetSelectorSUSY.OutputLevel=D2PDFlags.VerboseLevel() seq.JetSelectorSUSY.OutputLevel=D2PDFlags.VerboseLevel() seq.DiJetSelectorSUSY.OutputLevel=D2PDFlags.VerboseLevel() seq.METSelectorSUSY.OutputLevel=D2PDFlags.VerboseLevel() acceptAlgs=["JetSelectorSUSY","DiJetSelectorSUSY","METSelectorSUSY"]#,"FourJetSelectorSUSY" elif cutVersion=='OldV1': acceptAlgs = GetOldV1Setup( seq ) else: raise RuntimeError("Unknown cut version '%s'"%cutVersion) return acceptAlgs
# ============================================================================== # Execute the dpd maker # ============================================================================== from RecExConfig.RecFlags import rec # Turn off most of RecExCommon... (optional) rec.doWriteTAG = False rec.doHist = False #rec.LoadGeometry = False #rec.doApplyAODFix.set_Value_and_Lock(False) # Mandatory for ESD->DPD or AOD->DPD or DPD->DPD rec.doDPD = True # For brem fit if D2PDFlags.WriteDAOD_H4lBremRecStream( ) and D2PDFlags.WriteDAOD_H4lBremRecStream.DoBremRec: from RecExConfig.RecAlgsFlags import recAlgs recAlgs.doEgammaBremReco.set_Value_and_Lock(True) include("egammaBremRec/egammaBremRec_preInclude.py") #recAlgs.doEgammaBremReco.set_Value_and_Lock(True) #include( "RecExCond/RecExCommon_flags.py" ) #DetFlags.ID_setOn() #DetFlags.LAr_setOn() pass #from AthenaCommon.DetFlags import DetFlags #DetFlags.ID_setOn() # Output file name handling. No need to change anything here if len(D2PDFlags.OutputDirectoryName() ) >= 1 and not D2PDFlags.OutputDirectoryName().endswith("/"):
outputCollection = 'MyZmumuLooseZmumuBosonCollection', minNumberPassed = 1, chargeMax = 0, massMin = 30.0*Units.GeV ) #==================================================================== # Define the test DPD output stream #==================================================================== from D2PDMaker.D2PDHelpers import buildFileName # This stream HAS TO start with "StreamD2AODM_"! If the input was an (D)ESD(M), this should start with "StreamD2ESD(M)_". # See this twiki for more information: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/DPDNamingConvention streamName = "StreamD2AODM_MyZmumu" fileName = D2PDFlags.OutputDirectoryName() + "MyD2PDExampleSimpleZmumuStream.pool.root" ExampleSimpleZmumuStream = MSMgr.NewPoolStream( streamName, fileName ) # Only events that pass the filters listed below are written out # AcceptAlgs = logical OR of filters # RequireAlgs = logical AND of filters ExampleSimpleZmumuStream.AcceptAlgs( ["D2PDParticleCombinerInExampleSimpleZmumuStream_ZmumuBoson"] ) #--------------------------------------------------- # Add the containers to the output stream #--------------------------------------------------- from PrimaryDPDMaker import PrimaryDPD_OutputDefinitions as dpdOutput # Take all items from the input, except for the ones listed in the excludeList
pdgIDList=[11, 13], # e-, e+, mu+, mu- pdgIDListOrigin=[23, 24, 25], # Z, W, H boson acceptStatusCodeList=[1], # stable removeDocumentationLine=True, keepOnlyGenerator=True, keepOnlyStable=True, removeSelfDecay=True) #==================================================================== # Define the test DPD output stream #==================================================================== from D2PDMaker.D2PDHelpers import buildFileName # This stream HAS TO start with "StreamD2AODM_"! If the input was an (D)ESD(M), this should start with "StreamD2ESD(M)_". # See this twiki for more information: https://twiki.cern.ch/twiki/bin/view/AtlasProtected/DPDNamingConvention streamName = "StreamD2AODM_Test" fileName = D2PDFlags.OutputDirectoryName() + "MyD2PDTestStream.pool.root" TestStream = MSMgr.NewPoolStream(streamName, fileName) # Only events that pass the filters listed below are written out # AcceptAlgs = logical OR of filters # RequireAlgs = logical AND of filters TestStream.AcceptAlgs([]) #--------------------------------------------------- # Add the containers to the output stream #--------------------------------------------------- #from PrimaryDPDMaker import PrimaryDPD_OutputDefinitions as dpdOutput # Take all items from the input, except for the ones listed in the excludeList #excludeList = [] #excludeList = list(set(excludeList)) # This removes dublicates from the list
minNumberPassed = 1, photonIsEM = egammaPID.PhotonLoose, #photonAuthor = egammaParameters.AuthorPhoton, #requested by Jovan etMin = 20.0*Units.GeV, clusterEMCaloLayer = 2, clusterEMCaloLayerEtaMin = -2.5, clusterEMCaloLayerEtaMax = 2.5 ) # Jet filters from D2PDMaker.D2PDMakerConf import D2PDJetSelector JetSelectorSUSY = D2PDJetSelector( "JetSelectorSUSY", inputCollection = D2PDFlags.InputSUSYJetCollection() , outputLinkCollection = 'AntiKt4H1TopoJets_SelectedJetLinks', minNumberPassed = 1, useJetSignalState = 0, jetScaledEtMin = 80.0*Units.GeV, jetSignalStateAbsEtaMax = 3.0 ) DiJetSelectorSUSY = D2PDJetSelector( "DiJetSelectorSUSY", inputCollection = D2PDFlags.InputSUSYJetCollection() , outputLinkCollection = 'AntiKt4H1TopoJets_SelectedDijetLinks', minNumberPassed = 2, useJetSignalState = 0, jetScaledEtMin = 30.0*Units.GeV, jetSignalStateAbsEtaMax = 3.0 )
#==================================================================== # Do the good run list (GRL) selection --- only for data #==================================================================== cmdString_GRL = "" if not inputIsSimulation and False: # use closest DB replica from PoolSvc.PoolSvcConf import PoolSvc svcMgr += PoolSvc(SortReplicas=True) from DBReplicaSvc.DBReplicaSvcConf import DBReplicaSvc svcMgr += DBReplicaSvc(UseCOOLSQLite=False) # Try to copy the GRL locally import socket socket.setdefaulttimeout(180) import urllib remoteGRL = D2PDFlags.GRLFile() localGRL = "data10_7TeV.pro05.merged_LBSUMM_WZjets_allchannels.xml" urllib.urlretrieve( remoteGRL, localGRL ) # Create an instance of the GoodRunsListSelectorTool from GoodRunsLists.GoodRunsListsConf import * ToolSvc += GoodRunsListSelectorTool( "GoodRunsListSelectorTool", OutputLevel = INFO, GoodRunsListVec = [ 'data10_7TeV.pro05.merged_LBSUMM_WZjets_allchannels.xml' ], ## specify your grl here PassThrough = False ) # Use the GRLTriggerSelectorAlg from GoodRunsListsUser.GoodRunsListsUserConf import * topSequence += GRLTriggerSelectorAlg( "GRLFilterInWenuStream", OutputLevel = INFO,