92 lines
2.9 KiB
Python
92 lines
2.9 KiB
Python
|
# flake8: noqa
|
||
|
from Moore import options, run_reconstruction
|
||
|
from RecoConf.hlt2_tracking import (
|
||
|
make_hlt2_tracks,
|
||
|
get_default_out_track_types_for_light_reco,
|
||
|
convert_tracks_to_v3_from_v1,
|
||
|
get_global_ut_hits_tool,
|
||
|
)
|
||
|
from RecoConf.hlt1_tracking import make_all_pvs
|
||
|
from RecoConf.event_filters import require_gec
|
||
|
from RecoConf.mc_checking import get_track_checkers, get_fitted_tracks_checkers
|
||
|
from RecoConf.calorimeter_reconstruction import (
|
||
|
make_photons_and_electrons,
|
||
|
make_clusters,
|
||
|
make_acceptance,
|
||
|
make_track_cluster_matching,
|
||
|
make_digits,
|
||
|
make_track_electron_and_brem_matching,
|
||
|
make_trackbased_eshower,
|
||
|
)
|
||
|
from Moore.config import Reconstruction
|
||
|
from PyConf.Algorithms import (
|
||
|
PrFilterTracks2CaloClusters,
|
||
|
PrMatchNNv3,
|
||
|
PrFilterTracks2ElectronMatch,
|
||
|
PrFilterTracks2ElectronShower,
|
||
|
fromPrMatchTracksV1Tracks,
|
||
|
fromV3TrackV1Track,
|
||
|
)
|
||
|
import Functors as F
|
||
|
import glob
|
||
|
|
||
|
options.evt_max = -1
|
||
|
options.ntuple_file = f"data/calo_data_test_tinker.root"
|
||
|
options.input_files = ["/auto/data/guenther/Bd_Kstee/00151673_00000002_1.xdigi"]
|
||
|
options.input_type = "ROOT"
|
||
|
options.dddb_tag = "dddb-20210617"
|
||
|
options.conddb_tag = "sim-20210617-vc-md100"
|
||
|
options.simulation = True
|
||
|
|
||
|
|
||
|
def standalone_hlt2_fastest_reco():
|
||
|
hlt2_tracks = make_hlt2_tracks(light_reco=True, fast_reco=False, use_pr_kf=True)
|
||
|
|
||
|
digisEcal = make_digits(calo_raw_bank=False)["digitsEcal"]
|
||
|
tracks_v3, trackrels = convert_tracks_to_v3_from_v1(
|
||
|
hlt2_tracks["Seed"]["v1"],
|
||
|
track_types=["Ttrack"],
|
||
|
)
|
||
|
# track acceptances
|
||
|
tracks_incalo = make_acceptance(tracks_v3)
|
||
|
|
||
|
eshower = make_trackbased_eshower(tracks_incalo, digisEcal)
|
||
|
|
||
|
# should be best; shape of shower etc; E/p statt chi2; DLL even better? GET(1)
|
||
|
# Cut=F.FILTER(F.ALL)).Output
|
||
|
shower_matched_seeds = PrFilterTracks2ElectronShower(
|
||
|
Relation=eshower["Ttrack"], Cut=F.FILTER((F.GET(0) @ F.WEIGHT) > 0.7)
|
||
|
).Output
|
||
|
|
||
|
matched_seeds = {}
|
||
|
matched_seeds["v3"] = shower_matched_seeds
|
||
|
matched_seeds["v1"] = fromV3TrackV1Track(
|
||
|
InputTracks=matched_seeds["v3"]
|
||
|
).OutputTracks
|
||
|
|
||
|
calo_long = PrMatchNNv3(
|
||
|
VeloInput=hlt2_tracks["Velo"]["Pr"],
|
||
|
SeedInput=matched_seeds["v3"],
|
||
|
AddUTHitsToolName=get_global_ut_hits_tool(),
|
||
|
).MatchOutput
|
||
|
|
||
|
match_tracks = {}
|
||
|
match_tracks["Pr"] = calo_long
|
||
|
match_tracks["v1"] = fromPrMatchTracksV1Tracks(
|
||
|
InputTracksLocation=match_tracks["Pr"],
|
||
|
VeloTracksLocation=hlt2_tracks["Velo"]["v1"],
|
||
|
SeedTracksLocation=matched_seeds["v1"],
|
||
|
).OutputTracksLocation
|
||
|
|
||
|
data = [calo_long, shower_matched_seeds]
|
||
|
types_and_locations_for_checkers = {
|
||
|
"Match": match_tracks,
|
||
|
}
|
||
|
data += get_track_checkers(types_and_locations_for_checkers)
|
||
|
# data += get_fitted_tracks_checkers(best_tracks)
|
||
|
|
||
|
return Reconstruction("hlt2_reco", data, [require_gec()])
|
||
|
|
||
|
|
||
|
run_reconstruction(options, standalone_hlt2_fastest_reco)
|