Skip to content
Snippets Groups Projects
example_reconstruction.py 3.5 KiB
Newer Older
  • Learn to ignore specific revisions
  • from Gaudi.Configuration import *
    
    from GaudiKernel.DataObjectHandleBase import DataObjectHandleBase
    from Configurables import ApplicationMgr, EICDataSvc, PodioOutput, GeoSvc
    
    
    geo_service  = GeoSvc("GeoSvc",detectors=["topside/simple_topside.xml"])
    
    podioevent   = EICDataSvc("EventDataSvc", inputs=["test_hytop.root"])#, OutputLevel=DEBUG)
    
    
    from Configurables import PodioInput
    from Configurables import Jug__Digi__ExampleCaloDigi as ExampleCaloDigi
    from Configurables import Jug__Digi__UFSDTrackerDigi as UFSDTrackerDigi
    from Configurables import Jug__Reco__TrackerHitReconstruction as TrackerHitReconstruction
    
    from Configurables import Jug__Reco__TrackerSourceLinker as TrackerSourceLinker
    from Configurables import Jug__Reco__TrackParamTruthInit as TrackParamTruthInit
    from Configurables import Jug__Reco__TrackFindingAlgorithm as TrackFindingAlgorithm
    
    from Configurables import Jug__Reco__ParticlesFromTrackFit as ParticlesFromTrackFit
    
    
    podioinput = PodioInput("PodioReader", collections=["mcparticles","SiVertexBarrelHits"])#, OutputLevel=DEBUG)
    
    #caldigi = ExampleCaloDigi(inputHitCollection="FAEC_ShHits",outputHitCollection="RawFAECShowerHits")
    
    ufsd_digi = UFSDTrackerDigi("ufsd_digi", inputHitCollection="SiVertexBarrelHits",outputHitCollection="VertexRawHits",timeResolution=8)
    
    trackpartruth = TrackParamTruthInit("trk_par_init",inputMCParticles="mcparticles",outputInitialTrackParameters="InitTrackParams")#,OutputLevel=DEBUG)
    trackerhit = TrackerHitReconstruction("trk_hit_reco",inputHitCollection="VertexRawHits",outputHitCollection="VertexTrackHits")#,OutputLevel=DEBUG)
    sourcelinker = TrackerSourceLinker("trk_srclinker",inputHitCollection="VertexTrackHits",outputSourceLinks="VertexTrackSourceLinks")#,OutputLevel=DEBUG)
    
    trk_find_alg = TrackFindingAlgorithm("trk_find_alg",inputSourceLinks="VertexTrackSourceLinks",inputInitialTrackParameters= "InitTrackParams", outputTrajectories="trajectories")
    
    parts_from_fit = ParticlesFromTrackFit("parts_from_fit",inputTrajectories="trajectories",outputParticles="ReconstructedParticles")#,OutputLevel=DEBUG)
    
    
    types = []
    
    # this printout is useful to check that the type information is passed to python correctly
    print("---------------------------------------\n")
    print("---\n# List of input and output types by class")
    
    for configurable in sorted([ PodioInput, EICDataSvc, PodioOutput,
                                 TrackerHitReconstruction,ExampleCaloDigi, 
                                 UFSDTrackerDigi, TrackerSourceLinker,
                                 PodioOutput],
    
                               key=lambda c: c.getType()):
        print("\"{}\":".format(configurable.getType()))
        props = configurable.getDefaultProperties()
        for propname, prop in sorted(props.items()):
            print(" prop name: {}".format(propname))
            if isinstance(prop, DataObjectHandleBase):
                types.append(prop.type())
                print("  {}: \"{}\"".format(propname, prop.type()))
    print("---")
    
    
    
    out = PodioOutput("out", filename="jug_test.root")#,OutputLevel=DEBUG)
    
    out.outputCommands = ["keep *", 
            "drop VertexTrackSourceLinks", 
            "drop InitTrackParams",
            "drop trajectories",
    
            "drop VertexTrackSourceLinks",
            "drop outputSourceLinks",
            "drop outputInitialTrackParameters"
    
    
    
    ApplicationMgr(
    
        TopAlg = [podioinput, 
                  ufsd_digi, trackerhit, 
                  sourcelinker, trackpartruth, 
                  trk_find_alg, parts_from_fit,
                  out
    
                  ],
        EvtSel = 'NONE',
    
        ExtSvc = [podioevent,geo_service],
    
        #OutputLevel=WARN