def missing_energy_sequence(cdm_energy): from heppy.analyzers.RecoilBuilder import RecoilBuilder missing_sim = cfg.Analyzer(RecoilBuilder, output='missing_sim', sqrts=cdm_energy, to_remove='gen_particles_stable') missing_rec = cfg.Analyzer(RecoilBuilder, output='missing_rec', sqrts=cdm_energy, to_remove='rec_particles') from heppy.analyzers.TotalEnergy import TotalEnergy total_energy = cfg.Analyzer( TotalEnergy, gen_particles_stable_and_neutrinos='gen_particles_stable_and_neutrinos', gen_particles_stable='gen_particles_stable', rec_particles='rec_particles', ) from heppy.analyzers.ChargeAndNeutralEnergy import ChargeAndNeutralEnergy charge_neutral_energy = cfg.Analyzer( ChargeAndNeutralEnergy, rec_particles='rec_particles', gen_particles_stable='gen_particles_stable', ) return [ missing_sim, missing_rec, # total_energy, # charge_neutral_energy ]
def jet_tree_sequence(gen_ptcs, rec_ptcs, njets=None, ptmin=None): '''returns this sequence: return ( {'gen_jets': gen_jets, 'jets': jets, 'jet_match': jet_match, 'jet_tree': jet_tree}, sequence ) @param gen_ptcs: gen particles to be used for gen jets @param rec_ptcs: rec particles to be used for rec jets @param njets: number of jets in exclusive mode @param ptmin: minimum jet pt in inclusive mode ''' fastjet_args = None if njets: fastjet_args = dict(njets=njets) elif ptmin is not None: fastjet_args = dict(ptmin=ptmin) else: raise ValueError('provide either njets or ptmin') from heppy.analyzers.fcc.JetClusterizer import JetClusterizer gen_jets = cfg.Analyzer( JetClusterizer, output='gen_jets', particles=gen_ptcs, fastjet_args=fastjet_args, ) jets = cfg.Analyzer( JetClusterizer, output='jets', particles=rec_ptcs, fastjet_args=fastjet_args, ) from heppy.analyzers.Matcher import Matcher jet_match = cfg.Analyzer(Matcher, match_particles='gen_jets', particles='jets', delta_r=0.3) from heppy.analyzers.JetTreeProducer import JetTreeProducer jet_tree = cfg.Analyzer(JetTreeProducer, tree_name='events', tree_title='jets', jets='jets') sequence = [gen_jets, jets, jet_match, jet_tree] return ({ 'gen_jets': gen_jets, 'jets': jets, 'jet_match': jet_match, 'jet_tree': jet_tree }, sequence)
def test_dict(self): event = Event(0) event.the_dict = dict([(x, x**2) for x in range(10)]) cfg_ana = cfg.Analyzer(Selector, output='filtered', input_objects='the_dict', filter_func=lambda x: x == 9) cfg_comp = cfg.Component('test', files=[]) filter = Selector(cfg_ana, cfg_comp, self.outdir) filter.process(event) self.assertDictEqual(event.filtered, {3: 9})
def test_list(self): event = Event(0) event.the_list = range(10) cfg_ana = cfg.Analyzer(Selector, output='filtered', input_objects='the_list', filter_func=lambda x: x % 2 == 0) cfg_comp = cfg.Component('test', files=[]) filter = Selector(cfg_ana, cfg_comp, self.outdir) filter.process(event) self.assertItemsEqual(event.filtered, [0, 2, 4, 6, 8])
def jet_tree_sequence(gen_ptcs, rec_ptcs, njets, ptmin): fastjet_args = None if njets: fastjet_args = dict(njets=njets) else: fastjet_args = dict(ptmin=ptmin) from heppy.analyzers.fcc.JetClusterizer import JetClusterizer gen_jets = cfg.Analyzer( JetClusterizer, output='gen_jets', particles=gen_ptcs, fastjet_args=fastjet_args, ) jets = cfg.Analyzer( JetClusterizer, output='jets', particles=rec_ptcs, fastjet_args=fastjet_args, ) from heppy.analyzers.Matcher import Matcher jet_match = cfg.Analyzer(Matcher, match_particles='jets', particles='gen_jets', delta_r=0.3) from heppy.analyzers.JetTreeProducer import JetTreeProducer jet_tree = cfg.Analyzer(JetTreeProducer, tree_name='events', tree_title='jets', jets='gen_jets') return [gen_jets, jets, jet_match, jet_tree]
def top_constrainer_sequence(cdm_energy): from heppy.analyzers.TopConstrainerAnalyzer import TopConstrainerAnalyzer top_constrainer = cfg.Analyzer( TopConstrainerAnalyzer, jets='jets', leptons='leptons', sqrts=350., top_mass=173., w_mass=80.4, tophadRec_m=167.99, tophadRec_w=17.94, whadRec_m=83.19, whadRec_w=16.50, toplepRec_m=173.81, toplepRec_w=21.06, wlepRec_m=98.20, wlepRec_w=18.84, ) return [top_constrainer]
import logging # next 2 lines necessary to deal with reimports from ipython logging.shutdown() reload(logging) logging.basicConfig(level=logging.WARNING) comp = cfg.Component( 'example', files = ['top_mu.root'] ) selectedComponents = [comp] from heppy_fcc.analyzers.FCCReader import FCCReader source = cfg.Analyzer( FCCReader ) from ROOT import gSystem gSystem.Load("libdatamodel") from eventstore import EventStore as Events from heppy_fcc.analyzers.LeptonAnalyzer import LeptonAnalyzer gen_muons = cfg.Analyzer( LeptonAnalyzer, instance_label = 'gen_muons', particles = 'gen_particles_stable', pdgid = 13 )
source = cfg.Analyzer( Reader, weights='mcEventWeights', gen_particles='skimmedGenParticles', met='met', electrons='electrons', electronITags='electronITags', electronsToMC='electronsToMC', muons='muons', muonITags='muonITags', muonsToMC='muonsToMC', # main jets trk02 trkjets02='trkjets02', trkbTags02='trkbTags02', trkjetsOneSubJettiness02='trkjetsOneSubJettiness02', trkjetsTwoSubJettiness02='trkjetsTwoSubJettiness02', trkjetsThreeSubJettiness02='trkjetsThreeSubJettiness02', trksubjetsSoftDropTagged02='trksubjetsSoftDropTagged02', trksubjetsSoftDrop02='trksubjetsSoftDrop02', # trksubjetsSoftDropTagged04='trksubjetsSoftDropTagged04', trksubjetsSoftDrop04='trksubjetsSoftDrop04', trksubjetsSoftDropTagged08='trksubjetsSoftDropTagged08', trksubjetsSoftDrop08='trksubjetsSoftDrop08', # pf jets pf02 for correction pfjets02='pfjets02', pfbTags02='pfbTags02', pfjetsOneSubJettiness02='pfjetsOneSubJettiness02', pfjetsTwoSubJettiness02='pfjetsTwoSubJettiness02', pfjetsThreeSubJettiness02='pfjetsThreeSubJettiness02', pfsubjetsSoftDropTagged02='pfsubjetsSoftDropTagged02', pfsubjetsSoftDrop02='pfsubjetsSoftDrop02', # used for b-tagging pfjets04='pfjets04', pfbTags04='pfbTags04', pfjetsFlavor04='pfjetsFlavor04', # used for mreco pfjets08='pfjets08', pfbTags08='pfbTags08', trkjets04='trkjets04', trkjets08='trkjets08', photons='photons', pfphotons='pfphotons', pfcharged='pfcharged', pfneutrals='pfneutrals', )
source = cfg.Analyzer( Reader, weights = 'mcEventWeights', electrons = 'electrons', muons = 'muons', #main jets trk02 trkjets02 = 'trkjets02', trkbTags02 = 'trkbTags02', trkjetsOneSubJettiness02 = 'trkjetsOneSubJettiness02', trkjetsTwoSubJettiness02 = 'trkjetsTwoSubJettiness02', trkjetsThreeSubJettiness02 = 'trkjetsThreeSubJettiness02', trksubjetsSoftDropTagged02 = 'trksubjetsSoftDropTagged02', trksubjetsSoftDrop02 = 'trksubjetsSoftDrop02', # trksubjetsSoftDropTagged04 = 'trksubjetsSoftDropTagged04', trksubjetsSoftDrop04 = 'trksubjetsSoftDrop04', trksubjetsSoftDropTagged08 = 'trksubjetsSoftDropTagged08', trksubjetsSoftDrop08 = 'trksubjetsSoftDrop08', #pf jets pf02 for correction pfjets02 = 'pfjets02', pfbTags02 = 'pfbTags02', pfjetsOneSubJettiness02 = 'pfjetsOneSubJettiness02', pfjetsTwoSubJettiness02 = 'pfjetsTwoSubJettiness02', pfjetsThreeSubJettiness02 = 'pfjetsThreeSubJettiness02', pfsubjetsSoftDropTagged02 = 'pfsubjetsSoftDropTagged02', pfsubjetsSoftDrop02 = 'pfsubjetsSoftDrop02', # used for b-tagging pfjets04 = 'pfjets04', pfbTags04 = 'pfbTags04', # used for mreco pfjets08 = 'pfjets08', pfbTags08 = 'pfbTags08', pfjetConst08 = 'pfjetConst08', trkjets04 = 'trkjets04', trkjets08 = 'trkjets08', trkjetConst08 = 'trkjetConst08', electronITags = 'electronITags', electronsToMC = 'electronsToMC', muonITags = 'muonITags', muonsToMC = 'muonsToMC', met = 'met', )
import os import copy import heppy.framework.config as cfg import logging # next 2 lines necessary to deal with reimports from ipython logging.shutdown() reload(logging) logging.basicConfig(level=logging.WARNING) comp = cfg.Component('example', files=['top_mu.root']) selectedComponents = [comp] from heppy_fcc.analyzers.FCCReader import FCCReader source = cfg.Analyzer(FCCReader) from ROOT import gSystem gSystem.Load("libdatamodel") from eventstore import EventStore as Events from heppy_fcc.analyzers.JetClusterizer import JetClusterizer gen_jets = cfg.Analyzer(JetClusterizer, instance_label='gen', particles='gen_particles_stable') from heppy_fcc.analyzers.PFSim import PFSim from heppy_fcc.fastsim.detectors.CMS import CMS
files=glob.glob( '/afs/cern.ch/work/n/nsolomon/FCC/WorkDir/Mumu/ee_ZH_Z_Hmumu_0.root')) ZH.splitFactor = len(ZH.files) Bkg = cfg.Component( 'Bkg', files=glob.glob( '/afs/cern.ch/work/n/nsolomon/FCC/WorkDir/backgroundmumu_*.root')) Bkg.splitFactor = len(Bkg.files) selectedComponents = [ZH, Bkg] # read FCC EDM events from the input root file(s) # do help(Reader) for more information from heppy.analyzers.fcc.Reader import Reader source = cfg.Analyzer( Reader, gen_particles='GenParticle', gen_vertices='GenVertex', ) # the papas simulation and reconstruction sequence from heppy.test.papas_cfg import papas_sequence, detector from heppy.test.papas_cfg import papasdisplay as display # Use a Selector to select leptons from the output of papas simulation. # Currently, we're treating electrons and muons transparently. # we could use two different instances for the Selector module # to get separate collections of electrons and muons # help(Selector) for more information from heppy.analyzers.Selector import Selector
#selectedComponents = [comp] from FCChhAnalyses.analyzers.Reader import Reader source = cfg.Analyzer( Reader, weights = 'mcEventWeights', gen_particles = 'skimmedGenParticles', muons = 'muons', muonITags = 'muonITags', muonsToMC = 'muonsToMC', jets = 'pfjets04', bTags = 'pfbTags04', photons = 'photons', pfphotons = 'pfphotons', pfcharged = 'pfcharged', pfneutrals = 'pfneutrals', met = 'met', ) from ROOT import gSystem gSystem.Load("libdatamodelDict") from EventStore import EventStore as Events
if sampleName == "all": selectedComponents = [ cmsMatching_QCD_15_3000_L1TMuon_GenJet, cmsMatching_QCD_15_3000_L1TEGamma_GenJet, cmsMatching_QCD_15_3000_L1TTau_GenJet, ] else: sample = globals()[sampleName] selectedComponents = [ sample ] # Defining pdgids source = cfg.Analyzer( CMSMatchingReader, ) tfile_service_1 = cfg.Service( TFileService, 'tfile1', fname='histograms.root', option='recreate' ) def pt (ptc): return ptc.pt() def deltaPt(ptc): return ptc.pt() - ptc.match.pt()
import os import heppy.framework.config as cfg import logging logging.basicConfig(level=logging.WARNING) # input component # several input components can be declared and added to the list of selected components input_component = cfg.Component('Z2uu', files = ['/afs/cern.ch/work/a/ansemkiv/private/FCC/analysis/Z2uubar_100.root']) selected_components = [input_component] # analyzers # analyzer for signal events from heppy_fcc.analyzers.Z2UUAnalyzer import Z2UUAnalyzer ana = cfg.Analyzer(Z2UUAnalyzer) # definition of a sequence of analyzers, the analyzers will process each event in this order sequence = cfg.Sequence([ana]) # finalization of the configuration object. from ROOT import gSystem gSystem.Load('libdatamodel') from EventStore import EventStore as Events config = cfg.Config(components = selected_components, sequence = sequence, services = [], events_class = Events)
source = cfg.Analyzer( Reader, weights='mcEventWeights', gen_particles='skimmedGenParticles', met='met', electrons='electrons', muons='muons', #main jets trk02 trkjets02='trkjets02', trkbTags02='trkbTags02', trkjetsOneSubJettiness02='trkjetsOneSubJettiness02', trkjetsTwoSubJettiness02='trkjetsTwoSubJettiness02', trkjetsThreeSubJettiness02='trkjetsThreeSubJettiness02', trksubjetsSoftDropTagged02='trksubjetsSoftDropTagged02', trksubjetsSoftDrop02='trksubjetsSoftDrop02', # trksubjetsSoftDropTagged04='trksubjetsSoftDropTagged04', trksubjetsSoftDrop04='trksubjetsSoftDrop04', trksubjetsSoftDropTagged08='trksubjetsSoftDropTagged08', trksubjetsSoftDrop08='trksubjetsSoftDrop08', #pf jets pf02 for correction pfjets02='pfjets02', pfbTags02='pfbTags02', pfjetsOneSubJettiness02='pfjetsOneSubJettiness02', pfjetsTwoSubJettiness02='pfjetsTwoSubJettiness02', pfjetsThreeSubJettiness02='pfjetsThreeSubJettiness02', pfsubjetsSoftDropTagged02='pfsubjetsSoftDropTagged02', pfsubjetsSoftDrop02='pfsubjetsSoftDrop02', # used for b-tagging pfjets04='pfjets04', pfbTags04='pfbTags04', pfjetsFlavor04='pfjetsFlavor04', # used for mreco pfjets08='pfjets08', pfbTags08='pfbTags08', trkjets04='trkjets04', trkjets08='trkjets08', )
import heppy.framework.config as cfg from heppy.configuration import Collider # Use a Filter to select stable gen particles for simulation # from the output of "source" # help(Filter) for more information from heppy.analyzers.Filter import Filter gen_particles_stable = cfg.Analyzer( Filter, output='gen_particles_stable', # output = 'particles', input_objects='gen_particles', filter_func=lambda x: x.status() == 1 and abs(x.pdgid()) not in [12, 14, 16] and x.pt() > 1e-5) # configure the papas fast simulation with the CMS detector # help(Papas) for more information # history nodes keeps track of which particles produced which tracks, clusters from heppy.analyzers.PapasSim import PapasSim # from heppy.analyzers.Papas import Papas from heppy.papas.detectors.CMS import CMS detector = CMS() papas = cfg.Analyzer(PapasSim, instance_label='papas', detector=detector, gen_particles='gen_particles_stable', sim_particles='sim_particles', merged_ecals='ecal_clusters', merged_hcals='hcal_clusters', tracks='tracks',
selectedComponents = [ NeutrinoGun_PU140_14TeV_OnlyGenParticleClassification_JetPTMin_3_PropagatedGenJetAtECAL_VertexSpread ] # Defining pdgids pdgIds = {'electron-': 11, 'muon-': 13, 'tau-': 15, 'photon': 22} source = cfg.Analyzer( Reader, #gen_particles = 'skimmedGenParticles', #gen_jets = 'nonPropagatedGenJets', #jets = 'propagatedGenJets', #electrons = 'genElectrons', muons='genMuons', #photons = 'genPhotons', #met = 'genMET', ) ''' Creates particle checker functions. The function checks the absolute value of the pdgId to identify the class of particle and verifies that it is in the |eta|<6 region. It does not distinguish between particles and anti-particles ''' def particleCheckerFactory(ptcName): def particleChecker(ptc):
#if specified in sample, a specific set will be used, otherwise the full set will be employed if "sample" in _heppyGlobalOptions: sampleName = _heppyGlobalOptions["sample"] if sampleName == "all": selectedComponents = [ cmsMatching_QCD_15_3000_L1TMuon_GenJet, cmsMatching_QCD_15_3000_L1TEGamma_GenJet, cmsMatching_QCD_15_3000_L1TTau_GenJet, ] else: sample = globals()[sampleName] selectedComponents = [sample] # Defining pdgids source = cfg.Analyzer(CMSMatchingReader, ) tfile_service_1 = cfg.Service(TFileService, 'tfile1', fname='histograms.root', option='recreate') def pt(ptc): return ptc.pt() def deltaPt(ptc): return ptc.pt() - ptc.match.pt()
from heppy.analyzers.fcc.Reader import Reader source = cfg.Analyzer( Reader, weights = 'mcEventWeights', gen_particles = 'skimmedGenParticles', electrons = 'electrons', electronITags = 'electronITags', electronsToMC = 'electronsToMC', muons = 'muons', muonITags = 'muonITags', muonsToMC = 'muonsToMC', jets = 'jets', bTags = 'bTags', photons = 'photons', pfphotons = 'pfphotons', pfcharged = 'pfcharged', pfneutrals = 'pfneutrals', met = 'met', ) from ROOT import gSystem
pp_vvv01j_5f_HT_3000_6000.splitFactor = 20 pp_vvv01j_5f_HT_6000_100000.splitFactor = 20 pp_vvv01j_5f.splitFactor = 20 ''' selectedComponents = [comp] from heppy.analyzers.fcc.Reader import Reader source = cfg.Analyzer( Reader, weights='mcEventWeights', gen_particles='skimmedGenParticles', electrons='electrons', electronITags='electronITags', electronsToMC='electronsToMC', muons='muons', muonITags='muonITags', muonsToMC='muonsToMC', jets='jets', bTags='bTags', photons='photons', pfphotons='pfphotons', pfcharged='pfcharged', pfneutrals='pfneutrals', met='met', ) from ROOT import gSystem gSystem.Load("libdatamodelDict") from EventStore import EventStore as Events ############################# ## Reco Level Analysis ##
sample.p8_pp_ExcitedQ_45TeV_qq.splitFactor = splitFac sample.p8_pp_ExcitedQ_50TeV_qq.splitFactor = splitFac sample.mgp8_pp_jj_lo.splitFactor = 200 #selectedComponents = [comp] from heppy.FCChhAnalyses.analyzers.Reader import Reader source = cfg.Analyzer( Reader, weights = 'mcEventWeights', met = 'met', #main jets trk02 calojets04 = 'calojets04', pfjets04 = 'pfjets04', ) from ROOT import gSystem gSystem.Load("libdatamodelDict") from EventStore import EventStore as Events ############################# ## Reco Level Analysis ## #############################
bgana = cfg.Analyzer( BackgroundBs2DsDsKWithDs2PiPiPiPiAndDs2TauNuAnalyzer, smear_momentum=True, momentum_x_resolution=0.01, momentum_y_resolution=0.01, momentum_z_resolution=0.01, smear_pv=True, # IDL-like res pv_x_resolution=0.0025, pv_y_resolution=0.0025, pv_z_resolution=0.0025, # progressive res # pv_x_resolution = 0.001, # pv_y_resolution = 0.001, # pv_z_resolution = 0.001, # outstanding res # pv_x_resolution = 0.0005, # pv_y_resolution = 0.0005, # pv_z_resolution = 0.0005, smear_sv=True, # IDL-like res sv_x_resolution=0.007, sv_y_resolution=0.007, sv_z_resolution=0.007, # progressive res # sv_x_resolution = 0.003, # sv_y_resolution = 0.003, # sv_z_resolution = 0.003, # outstanding res # sv_x_resolution = 0.0015, # sv_y_resolution = 0.0015, # sv_z_resolution = 0.0015, smear_tv=True, # IDL-like res tv_x_resolution=0.005, tv_y_resolution=0.005, tv_z_resolution=0.005, # progressive res # tv_x_resolution = 0.002, # tv_y_resolution = 0.002, # tv_z_resolution = 0.002, # outstanding res # tv_x_resolution = 0.001, # tv_y_resolution = 0.001, # tv_z_resolution = 0.001, stylepath=os.environ.get('FCC') + 'lhcbstyle.C', tree_name='Events', tree_title='Events', mc_truth_tree_name='MCTruth', mc_truth_tree_title='MC Truth', verbose=False)
import logging # next 2 lines necessary to deal with reimports from ipython logging.shutdown() reload(logging) logging.basicConfig(level=logging.WARNING) comp = cfg.Component('example', files=['FCCDelphesOutput.root']) selectedComponents = [comp] from heppy.analyzers.fcc.Reader import Reader source = cfg.Analyzer( Reader, weights='mcEventWeights', gen_particles='skimmedGenParticles', electrons='electrons', electronITags='electronITags', electronsToMC='electronsToMC', muons='muons', muonITags='muonITags', muonsToMC='muonsToMC', ) from ROOT import gSystem gSystem.Load("libdatamodelDict") from EventStore import EventStore as Events ############################# ## Gen Level Analysis ## ############################# # select stable electrons and muons
'kaon_short': 310, 'bottom': 5 } # Defining pdgids source = cfg.Analyzer( Reader, gen_particles='skimmedGenParticles', #gen_vertices = 'genVertices', gen_jets='genJets', #jets = 'jets', #bTags = 'bTags', #cTags = 'cTags', #tauTags = 'tauTags', #electrons = 'electrons', #electronITags = 'electronITags', #muons = 'muons', #muonITags = 'muonITags', #photons = 'photons', #met = 'met', ) tfile_service_1 = cfg.Service(TFileService, 'tfile1', fname='histograms.root', option='recreate')
sample.mgp8_pp_jj_5f_HT_5000_10000.splitFactor = splitFac2 sample.mgp8_pp_jj_5f_HT_10000_27000.splitFactor = splitFac2 sample.mgp8_pp_jj_5f_HT_27000_100000.splitFactor = splitFac2 #selectedComponents = [comp] from heppy.FCChhAnalyses.analyzers.Reader import Reader source = cfg.Analyzer( Reader, weights='mcEventWeights', gen_particles='skimmedGenParticles', electrons='electrons', electronITags='electronITags', electronsToMC='electronsToMC', muons='muons', muonITags='muonITags', muonsToMC='muonsToMC', # used for tau-tagging pfjets04='pfjets04', pftauTags04='pftauTags04', met='met', ) from ROOT import gSystem gSystem.Load("libdatamodelDict") from EventStore import EventStore as Events ############################# ## Reco Level Analysis ## #############################
sigana = cfg.Analyzer(Bs2TauTauAnalyzer, smear_pv = True, # IDL-like res pv_x_resolution = 0.0025, pv_y_resolution = 0.0025, pv_z_resolution = 0.0025, # progressive res # pv_x_resolution = 0.001, # pv_y_resolution = 0.001, # pv_z_resolution = 0.001, # smear_sv = True, # IDL-like res # sv_x_resolution = 0.007, # sv_y_resolution = 0.007, # sv_z_resolution = 0.007, # progressive res # sv_x_resolution = 0.003, # sv_y_resolution = 0.003, # sv_z_resolution = 0.003, smear_tv = True, # IDL-like res tv_x_resolution = 0.005, tv_y_resolution = 0.005, tv_z_resolution = 0.005, # progressive res # tv_x_resolution = 0.002, # tv_y_resolution = 0.002, # tv_z_resolution = 0.002, smear_momentum = True, momentum_x_resolution = 0.01, momentum_y_resolution = 0.01, momentum_z_resolution = 0.01, stylepath = os.environ.get('FCC') + 'lhcbstyle.C', tree_name = 'Events', tree_title = 'Events', mc_truth_tree_name = 'MCTruth', mc_truth_tree_title = 'MC Truth', verbose = False)
comp = cfg.Component( 'ee_Z_ee', files=[ # here we have a single input root file. # the absolute path must be used to be able to run on the batch. os.environ['HEPPY'] + '/test/ee_Z_ee.root' ]) # selecting the list of components to be processed. Here only one. selectedComponents = [comp] # read FCC EDM events from the input root file(s) # do help(Reader) for more information from heppy.analyzers.fcc.Reader import Reader source = cfg.Analyzer(Reader, gen_particles='GenParticle', gen_vertices='GenVertex') # importing the papas simulation and reconstruction sequence, # as well as the detector used in papas # check papas_cfg.py for more information from heppy.test.papas_cfg import papas, papas_sequence, detector from heppy.test.papas_cfg import papasdisplaycompare as display from heppy.analyzers.SingleJetBuilder import SingleJetBuilder sum_particles = cfg.Analyzer(SingleJetBuilder, output='sum_all_ptcs', particles='rec_particles') sum_gen = cfg.Analyzer(SingleJetBuilder,
comp = cfg.Component( 'ee_ZH_Zmumu_Hbb', files=[ # here we have a single input root file. # the absolute path must be used to be able to run on the batch. os.path.abspath('ee_ZH_Zmumu_Hbb.root') ]) # selecting the list of components to be processed. Here only one. selectedComponents = [comp] # read FCC EDM events from the input root file(s) # do help(Reader) for more information from heppy.analyzers.fcc.Reader import Reader source = cfg.Analyzer(Reader, gen_particles='GenParticle', gen_vertices='GenVertex') # Use a Selector to select leptons from the output of papas simulation. # Currently, we're treating electrons and muons transparently. # we could use two different instances for the Selector module # to get separate collections of electrons and muons # help(Selector) for more information from heppy.analyzers.Selector import Selector leptons_true = cfg.Analyzer(Selector, 'sel_leptons', output='leptons_true', input_objects='gen_particles', filter_func=lambda ptc: ptc.e() > 10. and abs( ptc.pdgid()) in [11, 13] and ptc.status() == 1)
pp_jjja_5f_14TeV.splitFactor = 20 selectedComponents = [comp] #from heppy.FCChhAnalyses.analyzers.OldReader import Reader from heppy.FCChhAnalyses.analyzers.Reader import Reader source = cfg.Analyzer( Reader, weights='mcEventWeights', gen_particles='skimmedGenParticles', jets='jets', bTags='bTags', photons='photons', photonsToMC='photonsToMC', photonITags='photonITags', electrons='electrons', electronITags='electronITags', electronsToMC='electronsToMC', muons='muons', muonITags='muonITags', muonsToMC='muonsToMC', met='met', ) from ROOT import gSystem gSystem.Load("libdatamodelDict") from EventStore import EventStore as Events #############################
random.seed(0xdeadbeef) # definition of the collider from heppy.configuration import Collider Collider.BEAMS = 'ee' Collider.SQRTS = 240. # input definition comp = cfg.Component('ee_ZH_Z_Hbb', files=['ee_ZH_Z_Hbb.root']) selectedComponents = [comp] # read FCC EDM events from the input root file(s) # do help(Reader) for more information from heppy.analyzers.fcc.Reader import Reader source = cfg.Analyzer(Reader, gen_particles='GenParticle', gen_vertices='GenVertex') # the papas simulation and reconstruction sequence from heppy.test.papas_cfg import papas_sequence, detector # Use a Selector to select leptons from the output of papas simulation. # Currently, we're treating electrons and muons transparently. # we could use two different instances for the Selector module # to get separate collections of electrons and muons # help(Selector) for more information from heppy.analyzers.Selector import Selector def is_lepton(ptc): return ptc.e() > 5. and abs(ptc.pdgid()) in [11, 13]