Skip to content
Snippets Groups Projects
Commit d3e5de75 authored by Dave Casper's avatar Dave Casper
Browse files

Merge branch 'master-neutrino-dev' into 'master'

Work on extrapolation and use new MC samples

See merge request faser/calypso!292
parents 59bf787b d2e178f8
No related branches found
No related tags found
No related merge requests found
......@@ -5,7 +5,7 @@ atlas_add_component(
src/NeutrinoSearchAlg.h
src/NeutrinoSearchAlg.cxx
src/component/NeutrinoSearch_entries.cxx
LINK_LIBRARIES AthenaBaseComps StoreGateLib xAODFaserWaveform ScintIdentifier FaserCaloIdentifier GeneratorObjects FaserActsGeometryLib TrackerSimEvent TrackerSimData TrackerIdentifier TrackerReadoutGeometry TrkTrack GeoPrimitives TrackerRIO_OnTrack
LINK_LIBRARIES AthenaBaseComps StoreGateLib xAODFaserWaveform ScintIdentifier ScintSimEvent FaserCaloIdentifier GeneratorObjects FaserActsGeometryLib TrackerSimEvent TrackerSimData TrackerIdentifier TrackerReadoutGeometry TrkTrack GeoPrimitives TrackerRIO_OnTrack
)
atlas_install_python_modules(python/*.py)
......
......@@ -47,50 +47,50 @@ if __name__ == "__main__":
# Configure
ConfigFlags.Input.Files = [
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00000-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00001-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00002-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00003-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00004-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00005-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00006-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00007-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00008-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00009-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00010-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00011-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00012-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00013-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00014-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00015-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00016-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00017-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00018-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00019-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00020-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00021-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00022-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00023-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00024-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00025-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00026-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0008/FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00027-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0008/FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00000-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0008/FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00001-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0008/FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00002-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0008/FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00003-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0008/FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00004-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0008/FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00005-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0008/FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00006-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0008/FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00007-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0008/FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00008-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0008/FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00009-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0008/FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00010-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0008/FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00011-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0008/FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00012-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0008/FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00013-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0008/FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00014-s0005-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0008/FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00015-s0005-r0008-xAOD.root'
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0009/./FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00011-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0009/./FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00003-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0009/./FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00001-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0009/./FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00015-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0009/./FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00010-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0009/./FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00014-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0009/./FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00009-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0009/./FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00000-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0009/./FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00008-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0009/./FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00012-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0009/./FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00002-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0009/./FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00004-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0009/./FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00013-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0009/./FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00007-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0009/./FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00005-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210002/rec/r0009/./FaserMC-MDC_Fluka_unit30_Pm_71m_m3750_v3-210002-00006-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00017-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00020-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00010-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00012-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00001-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00018-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00004-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00019-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00007-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00003-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00008-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00005-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00022-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00011-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00006-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00013-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00021-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00015-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00026-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00027-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00014-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00024-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00000-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00009-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00025-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00016-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00023-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/fluka/210001/rec/r0009/./FaserMC-MDC_Fluka_unit30_Nm_71m_m3750_v3-210001-00002-s0007-r0009-xAOD.root'
]
# Update this for samples with new field map
ConfigFlags.IOVDb.GlobalTag = "OFLCOND-FASER-02" # Always needed; must match FaserVersionS
......
......@@ -47,14 +47,27 @@ if __name__ == "__main__":
# Configure
ConfigFlags.Input.Files = [
'/run/media/dcasper/Data/faser/genie/rec/FaserMC-MDC_Genie_all_150invfb_v1-200001-00000-00007-s0006-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/genie/rec/FaserMC-MDC_Genie_all_150invfb_v1-200001-00008-00015-s0006-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/genie/rec/FaserMC-MDC_Genie_all_150invfb_v1-200001-00016-00023-s0006-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/genie/rec/FaserMC-MDC_Genie_all_150invfb_v1-200001-00024-00031-s0006-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/genie/rec/FaserMC-MDC_Genie_all_150invfb_v1-200001-00032-00039-s0006-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/genie/rec/FaserMC-MDC_Genie_all_150invfb_v1-200001-00040-00047-s0006-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/genie/rec/FaserMC-MDC_Genie_all_150invfb_v1-200001-00048-00055-s0006-r0008-xAOD.root',
'/run/media/dcasper/Data/faser/genie/rec/FaserMC-MDC_Genie_all_150invfb_v1-200001-00056-00063-s0006-r0008-xAOD.root'
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00040-00047-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00056-00063-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00120-00127-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00112-00119-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00000-00007-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00208-00210-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00200-00207-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00064-00071-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00080-00087-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00024-00031-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00072-00079-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00008-00015-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00176-00183-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00096-00103-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00104-00111-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00032-00039-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00048-00055-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00192-00199-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00088-00095-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00016-00023-s0007-r0009-xAOD.root',
'/run/media/dcasper/Data/faser/genie/r0009/rec/./FaserMC-MDC_Genie_all_600fbInv_v1-200003-00168-00175-s0007-r0009-xAOD.root'
]
ConfigFlags.IOVDb.GlobalTag = "OFLCOND-FASER-02" # Always needed; must match FaserVersionS
ConfigFlags.IOVDb.DatabaseInstance = "OFLP200" # Use MC conditions for now
......
......@@ -28,6 +28,8 @@ StatusCode NeutrinoSearchAlg::initialize()
{
ATH_CHECK(m_truthEventContainer.initialize());
ATH_CHECK(m_truthParticleContainer.initialize());
ATH_CHECK( m_vetoNuHitKey.initialize() );
ATH_CHECK(m_trackCollection.initialize());
ATH_CHECK(m_vetoNuContainer.initialize());
ATH_CHECK(m_vetoContainer.initialize());
......@@ -46,6 +48,7 @@ StatusCode NeutrinoSearchAlg::initialize()
ATH_CHECK(detStore()->retrieve(m_detMgr, "SCT"));
ATH_CHECK(m_extrapolationTool.retrieve());
ATH_CHECK(m_trackingGeometryTool.retrieve());
if (m_useFlukaWeights)
{
......@@ -64,6 +67,9 @@ StatusCode NeutrinoSearchAlg::initialize()
m_tree->Branch("run_number", &m_run_number, "run_number/I");
m_tree->Branch("event_number", &m_event_number, "event_number/I");
// m_tree->Branch("VetoNuTruthX", &m_vetoNuHitsMeanX, "vetoNuTruthX/D");
// m_tree->Branch("VetoNuTruthY", &m_vetoNuHitsMeanY, "vetoNuTruthY/D");
m_tree->Branch("VetoNuPmt0", &m_vetoNu0, "vetoNu0/D");
m_tree->Branch("VetoNuPmt1", &m_vetoNu1, "vetoNu1/D");
......@@ -106,9 +112,17 @@ StatusCode NeutrinoSearchAlg::initialize()
m_tree->Branch("ndof", &m_ndof, "ndof/I");
m_tree->Branch("longTracks", &m_longTracks, "longTracks/I");
m_tree->Branch("pTruthLepton", &m_truthLeptonMomentum, "pTruthLepton/D");
m_tree->Branch("xTruthLepton", &m_truthLeptonX, "xTruthLepton/D");
m_tree->Branch("yTruthLepton", &m_truthLeptonY, "yTruthLepton/D");
m_tree->Branch("truthBarcode", &m_truthBarcode, "truthBarcode/I");
m_tree->Branch("truthPdg", &m_truthPdg, "truthPdg/I");
m_tree->Branch("CrossSection", &m_crossSection, "crossSection/D");
m_tree->Branch("xVetoNu", &m_xVetoNu, "xVetoNu/D");
m_tree->Branch("yVetoNu", &m_yVetoNu, "yVetoNu/D");
m_tree->Branch("sxVetoNu", &m_sxVetoNu, "sxVetoNu/D");
m_tree->Branch("syVetoNu", &m_syVetoNu, "syVetoNu/D");
m_tree->Branch("thetaxVetoNu", &m_thetaxVetoNu, "thetaxVetoNu/D");
m_tree->Branch("thetayVetoNu", &m_thetayVetoNu, "thetayVetoNu/D");
ATH_CHECK(histSvc()->regTree("/HIST2/tree", m_tree));
......@@ -145,6 +159,23 @@ StatusCode NeutrinoSearchAlg::execute(const EventContext &ctx) const
double flukaWeight = truthEventContainer->at(0)->weights()[0];
ATH_MSG_ALWAYS("Found fluka weight = " << flukaWeight);
m_crossSection = m_baseEventCrossSection * flukaWeight;
// // Find crossing position of VetoNu so we can check extrapolation
// SG::ReadHandle<ScintHitCollection> h_vetoNuHits {m_vetoNuHitKey, ctx};
// if (h_vetoNuHits.isValid() && h_vetoNuHits->size()!=0){
// double totalEnergyLoss {0.0};
// for (const ScintHit& hit : *h_vetoNuHits)
// {
// m_vetoNuHitsMeanX += hit.energyLoss() * (hit.localStartPosition().x() + hit.localEndPosition().x()) / 2;
// m_vetoNuHitsMeanY += hit.energyLoss() * (hit.localStartPosition().y() + hit.localEndPosition().y()) / 2;
// totalEnergyLoss += hit.energyLoss();
// }
// if (totalEnergyLoss > 0)
// {
// m_vetoNuHitsMeanX /= totalEnergyLoss;
// m_vetoNuHitsMeanY /= totalEnergyLoss;
// }
// }
}
else if (m_useGenieWeights)
{
......@@ -166,8 +197,14 @@ StatusCode NeutrinoSearchAlg::execute(const EventContext &ctx) const
if ( particle->absPdgId() == 11 || particle->absPdgId() == 13 || particle->absPdgId() == 15 )
{
if (particle->status() == 1 && (particle->nParents() == 0 || particle->nParents() == 2) )
{
m_truthLeptonMomentum = particle->p4().P();
double deltaZ = m_zExtrapolate - particle->prodVtx()->z();
double thetaX = particle->px()/particle->pz();
double thetaY = particle->py()/particle->pz();
m_truthLeptonX = particle->prodVtx()->x() + thetaX * deltaZ;
m_truthLeptonY = particle->prodVtx()->y() + thetaY * deltaZ;
}
break;
}
}
......@@ -435,6 +472,7 @@ StatusCode NeutrinoSearchAlg::execute(const EventContext &ctx) const
const Trk::TrackParameters* upstreamParameters {nullptr};
for (auto params : *(track->trackParameters()))
{
if (params->position().z() < 0) continue; // Ignore IFT hits
if (upstreamParameters == nullptr || params->position().z() < upstreamParameters->position().z()) upstreamParameters = params;
}
if (candidateParameters == nullptr || upstreamParameters->momentum().mag() > candidateParameters->momentum().mag())
......@@ -457,98 +495,98 @@ StatusCode NeutrinoSearchAlg::execute(const EventContext &ctx) const
if (cluster != nullptr)
{
// ATH_MSG_INFO("ClusterOnTrack is OK");
cluster->dump(msg());
// cluster->dump(msg());
// Hack to work around issue with cluster navigation
auto idRDO = cluster->identify();
// auto idRDO = cluster->identify();
// if (simDataCollection->count(idRDO) > 0)
// {
// // ATH_MSG_INFO("rdo entry found");
// const auto& simdata = simDataCollection->find(idRDO)->second;
// const auto& deposits = simdata.getdeposits();
// //loop through deposits and record contributions
// HepMcParticleLink primary{};
// for( const auto& depositPair : deposits)
// {
// // ATH_MSG_INFO("Deposit found");
// float eDep = depositPair.second;
// int barcode = depositPair.first->barcode();
// // if( depositPair.second > highestDep)
// // {
// // highestDep = depositPair.second;
// // barcode = depositPair.first->barcode();
// // primary = depositPair.first;
// // depositPair.first->print(std::cout);
// // ATH_MSG_INFO("pdg id "<<depositPair.first->pdg_id());
// // }
// if (truthMap.count(barcode) > 0)
// {
// truthMap[barcode] += eDep;
// }
// else
// {
// truthMap[barcode] = eDep;
// }
// }
// }
if (simDataCollection->count(idRDO) > 0)
{
// ATH_MSG_INFO("rdo entry found");
const auto& simdata = simDataCollection->find(idRDO)->second;
const auto& deposits = simdata.getdeposits();
//loop through deposits and record contributions
HepMcParticleLink primary{};
for( const auto& depositPair : deposits)
// const Tracker::FaserSCT_Cluster* origCluster = dynamic_cast<const Tracker::FaserSCT_Cluster*>(cluster->prepRawData());
auto origCluster = cluster->prepRawData();
if (origCluster != nullptr)
{
// ATH_MSG_INFO("Deposit found");
float eDep = depositPair.second;
int barcode = depositPair.first->barcode();
// if( depositPair.second > highestDep)
// {
// highestDep = depositPair.second;
// barcode = depositPair.first->barcode();
// primary = depositPair.first;
// depositPair.first->print(std::cout);
// ATH_MSG_INFO("pdg id "<<depositPair.first->pdg_id());
// }
if (truthMap.count(barcode) > 0)
// ATH_MSG_INFO("Orig Cluster is OK");
auto rdoList = origCluster->rdoList();
for (auto idRDO : rdoList)
{
truthMap[barcode] += eDep;
}
else
{
truthMap[barcode] = eDep;
// ATH_MSG_INFO("rdoList not empty");
if (simDataCollection->count(idRDO) > 0)
{
// ATH_MSG_INFO("rdo entry found");
const auto& simdata = simDataCollection->find(idRDO)->second;
const auto& deposits = simdata.getdeposits();
//loop through deposits and record contributions
HepMcParticleLink primary{};
for( const auto& depositPair : deposits)
{
// ATH_MSG_INFO("Deposit found");
float eDep = depositPair.second;
int barcode = depositPair.first->barcode();
// if( depositPair.second > highestDep)
// {
// highestDep = depositPair.second;
// barcode = depositPair.first->barcode();
// primary = depositPair.first;
// depositPair.first->print(std::cout);
// ATH_MSG_INFO("pdg id "<<depositPair.first->pdg_id());
// }
if (truthMap.count(barcode) > 0)
{
truthMap[barcode] += eDep;
}
else
{
truthMap[barcode] = eDep;
}
}
}
}
}
}
// // const Tracker::FaserSCT_Cluster* origCluster = dynamic_cast<const Tracker::FaserSCT_Cluster*>(cluster->prepRawData());
// auto origCluster = cluster->prepRawData();
// if (origCluster != nullptr)
// {
// ATH_MSG_INFO("Orig Cluster is OK");
// auto rdoList = origCluster->rdoList();
// for (auto idRDO : rdoList)
// {
// ATH_MSG_INFO("rdoList not empty");
// if (simDataCollection->count(idRDO) > 0)
// {
// ATH_MSG_INFO("rdo entry found");
// const auto& simdata = simDataCollection->find(idRDO)->second;
// const auto& deposits = simdata.getdeposits();
// //loop through deposits and record contributions
// HepMcParticleLink primary{};
// for( const auto& depositPair : deposits)
// {
// ATH_MSG_INFO("Deposit found");
// float eDep = depositPair.second;
// int barcode = depositPair.first->barcode();
// // if( depositPair.second > highestDep)
// // {
// // highestDep = depositPair.second;
// // barcode = depositPair.first->barcode();
// // primary = depositPair.first;
// // depositPair.first->print(std::cout);
// // ATH_MSG_INFO("pdg id "<<depositPair.first->pdg_id());
// // }
// if (truthMap.count(barcode) > 0)
// {
// truthMap[barcode] += eDep;
// }
// else
// {
// truthMap[barcode] = eDep;
// }
// }
// }
// }
// }
}
}
std::vector<std::pair<int, float>> truth(truthMap.begin(), truthMap.end());
std::sort(truth.begin(), truth.end(), [](auto v1, auto v2) { return v1.second > v2.second; });
if (truth.size()>0) ATH_MSG_ALWAYS("Selected track truth info:");
// if (truth.size()>0) ATH_MSG_ALWAYS("Selected track truth info:");
for (auto v : truth)
{
auto truthParticle = (*(std::find_if(truthParticleContainer->cbegin(), truthParticleContainer->cend(), [v](const xAOD::TruthParticle* p){ return p->barcode() == v.first; })));
if (m_truthPdg == 0) m_truthPdg = truthParticle->pdgId();
if (m_truthBarcode == 0) m_truthBarcode = v.first;
ATH_MSG_ALWAYS("truth info: barcode = " << v.first << " ( " << truthParticle->p4().P()/1000 << " GeV/c, Id code = " << truthParticle->pdgId() << ") -> deposited energy: " << v.second/1000);
// ATH_MSG_ALWAYS("truth info: barcode = " << v.first << " ( " << truthParticle->p4().P()/1000 << " GeV/c, Id code = " << truthParticle->pdgId() << ") -> deposited energy: " << v.second/1000);
}
}
......@@ -562,6 +600,63 @@ StatusCode NeutrinoSearchAlg::execute(const EventContext &ctx) const
m_pz = candidateParameters->momentum().z();
m_p = sqrt(m_px * m_px + m_py * m_py + m_pz * m_pz);
m_charge = (int) candidateParameters->charge();
FaserActsGeometryContext faserGeometryContext = m_trackingGeometryTool->getNominalGeometryContext();
auto gctx = faserGeometryContext.context();
Amg::Vector3D position = candidateParameters->position();
Amg::Vector3D momentum = candidateParameters->momentum();
auto covariance = *candidateParameters->covariance();
Acts::BoundVector params = Acts::BoundVector::Zero();
params[Acts::eBoundLoc0] = -position.y();
params[Acts::eBoundLoc1] = position.x();
params[Acts::eBoundPhi] = momentum.phi();
params[Acts::eBoundTheta] = momentum.theta();
params[Acts::eBoundQOverP] = candidateParameters->charge() / momentum.mag();
params[Acts::eBoundTime] = 0;
using namespace Acts::UnitLiterals;
std::optional<AmgSymMatrix(6)> cov = std::nullopt;
Acts::BoundMatrix newCov = Acts::BoundMatrix::Zero();
for (size_t i = 0; i < 5; i++)
for (size_t j = 0; j < 5; j++)
newCov(i, j) = covariance(i, j);
// ATH_MSG_ALWAYS("Covariance: " << covariance(1,1) << " newCov: " << newCov(1,1));
// Convert the covariance matrix from GeV
for(int i=0; i < newCov.rows(); i++){
newCov(i, 4) = newCov(i, 4)/1_MeV;
}
for(int i=0; i < newCov.cols(); i++){
newCov(4, i) = newCov(4, i)/1_MeV;
}
cov = std::optional<AmgSymMatrix(6)>(newCov);
// ATH_MSG_ALWAYS("cov: " << cov.value()(1,1));
auto startSurface = Acts::Surface::makeShared<Acts::PlaneSurface>(Acts::Vector3(0, 0, position.z()), Acts::Vector3(0, 0, 1));
Acts::BoundTrackParameters startParameters(std::move(startSurface), params, candidateParameters->charge(), cov);
auto targetSurface_VetoNu = Acts::Surface::makeShared<Acts::PlaneSurface>(Acts::Vector3(0, 0, m_zExtrapolate), Acts::Vector3(0, 0, 1)); // -3112 mm is z position of VetoNu planes touching
std::unique_ptr<const Acts::BoundTrackParameters> targetParameters_VetoNu =m_extrapolationTool->propagate(ctx, startParameters, *targetSurface_VetoNu, Acts::backward);
if (targetParameters_VetoNu != nullptr)
{
auto targetPosition_VetoNu = targetParameters_VetoNu->position(gctx);
auto targetMomentum_VetoNu = targetParameters_VetoNu->momentum();
// Acts::BoundSymMatrix targetCovariance_VetoNu { targetParameters_VetoNu->covariance() };
m_xVetoNu = targetPosition_VetoNu.x();
m_yVetoNu = targetPosition_VetoNu.y();
if (targetParameters_VetoNu->covariance().has_value())
{
auto targetCovariance_VetoNu = targetParameters_VetoNu->covariance().value() ;
m_sxVetoNu = sqrt(targetCovariance_VetoNu(Acts::eBoundLoc0, Acts::eBoundLoc0));
m_syVetoNu = sqrt(targetCovariance_VetoNu(Acts::eBoundLoc1, Acts::eBoundLoc1));
}
m_thetaxVetoNu = atan(targetMomentum_VetoNu[0]/targetMomentum_VetoNu[2]);
m_thetayVetoNu = atan(targetMomentum_VetoNu[1]/targetMomentum_VetoNu[2]);
ATH_MSG_INFO("vetoNu good targetParameters xV,yV = (" << m_xVetoNu << ", " << m_yVetoNu << ")");
}
else
{
ATH_MSG_INFO("vetoNu null targetParameters with p = " << momentum.mag() << ", theta = " << momentum.theta() << ", x,y = (" << position.x() << ", " << position.y() << ")");
}
}
// Here we apply the signal selection
......@@ -571,7 +666,18 @@ StatusCode NeutrinoSearchAlg::execute(const EventContext &ctx) const
m_preshower0 == 0 || m_preshower1 == 0 ||
// m_ecalTotal == 0 ||
candidateParameters == nullptr)
return StatusCode::SUCCESS;
{
// if (m_longTracks > 0)
// {
// ATH_MSG_ALWAYS(m_vetoUpstream);
// ATH_MSG_ALWAYS(m_vetoDownstream);
// ATH_MSG_ALWAYS(m_triggerTotal);
// ATH_MSG_ALWAYS(m_preshower0);
// ATH_MSG_ALWAYS(m_preshower1);
// ATH_MSG_ALWAYS((candidateParameters == nullptr ? "Null" : "Not Null"));
// }
return StatusCode::SUCCESS;
}
m_tree->Fill();
......@@ -595,6 +701,8 @@ NeutrinoSearchAlg::clearTree() const
{
m_run_number = 0;
m_event_number = 0;
// m_vetoNuHitsMeanX = 0;
// m_vetoNuHitsMeanY = 0;
m_vetoNu0 = 0;
m_vetoNu1 = 0;
m_veto00 = 0;
......@@ -631,7 +739,15 @@ NeutrinoSearchAlg::clearTree() const
m_y = 0;
m_z = 0;
m_longTracks = 0;
m_truthLeptonX = 0;
m_truthLeptonY = 0;
m_truthLeptonMomentum = 0;
m_truthBarcode = 0;
m_truthPdg = 0;
m_xVetoNu = 0;
m_yVetoNu = 0;
m_sxVetoNu = 0;
m_syVetoNu = 0;
m_thetaxVetoNu = 0;
m_thetayVetoNu = 0;
}
\ No newline at end of file
......@@ -8,10 +8,11 @@
#include "xAODFaserWaveform/WaveformHit.h"
#include "xAODTruth/TruthEventContainer.h"
#include "xAODTruth/TruthParticleContainer.h"
#include "ScintSimEvent/ScintHitCollection.h"
#include "TrackerPrepRawData/FaserSCT_ClusterContainer.h"
#include "TrackerSimData/TrackerSimDataCollection.h"
#include "FaserActsGeometryInterfaces/IFaserActsExtrapolationTool.h"
#include "FaserActsGeometryInterfaces/IFaserActsTrackingGeometryTool.h"
class TTree;
class FaserSCT_ID;
......@@ -44,6 +45,7 @@ private:
SG::ReadHandleKey<xAOD::TruthEventContainer> m_truthEventContainer { this, "EventContainer", "TruthEvents", "Truth event container name." };
SG::ReadHandleKey<xAOD::TruthParticleContainer> m_truthParticleContainer { this, "ParticleContainer", "TruthParticles", "Truth particle container name." };
SG::ReadHandleKey<TrackerSimDataCollection> m_simDataCollection {this, "TrackerSimDataCollection", "SCT_SDO_Map"};
SG::ReadHandleKey<ScintHitCollection> m_vetoNuHitKey { this, "VetoNuHitCollection", "VetoNuHits" };
SG::ReadHandleKey<TrackCollection> m_trackCollection { this, "TrackCollection", "CKFTrackCollection", "Input track collection name" };
SG::ReadHandleKey<xAOD::WaveformHitContainer> m_vetoNuContainer { this, "VetoNuContainer", "VetoNuWaveformHits", "VetoNu hit container name" };
......@@ -54,6 +56,7 @@ private:
SG::ReadHandleKey<Tracker::FaserSCT_ClusterContainer> m_clusterContainer { this, "ClusterContainer", "SCT_ClusterContainer", "Tracker cluster container name" };
ToolHandle<IFaserActsExtrapolationTool> m_extrapolationTool { this, "ExtrapolationTool", "FaserActsExtrapolationTool" };
ToolHandle<IFaserActsTrackingGeometryTool> m_trackingGeometryTool {this, "TrackingGeometryTool", "FaserActsTrackingGeometryTool"};
const TrackerDD::SCT_DetectorManager* m_detMgr {nullptr};
const FaserSCT_ID* m_sctHelper;
......@@ -75,7 +78,8 @@ private:
BooleanProperty m_useGenieWeights { this, "UseGenieWeights", false, "Flag to weight events according to Genie luminosity" };
IntegerProperty m_flukaCollisions { this, "FlukaCollisions", 137130000, "Number of proton-proton collisions in FLUKA sample." };
DoubleProperty m_flukaCrossSection { this, "FlukaCrossSection", 80.0, "Fluka p-p inelastic cross-section in millibarns." };
DoubleProperty m_genieLuminosity { this, "GenieLuminosity", 150.0, "Genie luminosity in inverse fb." };
DoubleProperty m_genieLuminosity { this, "GenieLuminosity", 600.0, "Genie luminosity in inverse fb." };
DoubleProperty m_zExtrapolate { this, "ZExtrapolationPlane", -3112.0, "Plane to extrapolate tracks for VetoNu" };
// BooleanProperty m_enforceBlinding { this, "EnforceBlinding", true, "Ignore data events with no VetoNu signals." };
const bool m_enforceBlinding {true};
......@@ -111,6 +115,9 @@ private:
mutable int m_station2Clusters;
mutable int m_station3Clusters;
// mutable double m_vetoNuHitsMeanX;
// mutable double m_vetoNuHitsMeanY;
mutable double m_x;
mutable double m_y;
mutable double m_z;
......@@ -123,10 +130,17 @@ private:
mutable int m_ndof;
mutable int m_longTracks;
mutable double m_truthLeptonMomentum;
mutable double m_truthLeptonX;
mutable double m_truthLeptonY;
mutable int m_truthBarcode;
mutable int m_truthPdg;
mutable double m_crossSection;
mutable double m_xVetoNu;
mutable double m_yVetoNu;
mutable double m_sxVetoNu;
mutable double m_syVetoNu;
mutable double m_thetaxVetoNu;
mutable double m_thetayVetoNu;
};
inline const ServiceHandle <ITHistSvc> &NeutrinoSearchAlg::histSvc() const {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment