Skip to content

Commit f7ee51c

Browse files
Merge pull request #528 from SBNSoftware/dbrailsf_reco2fclorg_rebased
Refactor reco2 workflow, and promote standard_reco2_sbnd.fcl back to the main workflow again
2 parents a1209ae + 37f18f2 commit f7ee51c

12 files changed

Lines changed: 227 additions & 48 deletions

sbndcode/Commissioning/fcls/reco2_sce_comm.fcl renamed to sbndcode/Commissioning/fcls/reco2_comm.fcl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include "reco2_sce.fcl"
1+
#include "standard_reco2_sbnd.fcl"
22

33
process_name: Reco2Comm
44

@@ -9,4 +9,4 @@ outputs.out1.outputCommands: [ "keep *_*_*_*"
99
# , "drop sim::OpDetBacktrackerRecords_*_*_*"
1010
, "drop *_linecluster_*_*"
1111
# , "drop *_fasthit_*_*"
12-
]
12+
]

sbndcode/JobConfigurations/README.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
# SBND Core FHiCL Files
22

3+
4th October 2024 (Dom Brailsford)
4+
`standard_reco2_sbnd.fcl` has been promoted back to an up-to-date fcl and has rejoined the standard workflow. SCE services are enabled by default
35
15th July 2024 (Dom Brailsford)
46
`standard_reco1_sbnd.fcl` has been promoted back to an up-to-date fcl so can be used as part of any standard workflow. The below suggested workflows have been updated to include this information.
57

8+
69
The intended operation of the fcl workflows is that the `standard-*` fcls run the standard workflow. This isn't currently true and should be acknowledged here. The WireCell 2D TPC simulation/signal processing workflow has now been implemented into the `standard-*` fcls, and the 1D simulation is now deprecated. The main deviation of the *core* workflow (described below) from the `standard-*` fcls is the inclusion of the space charge simulation. The *core* workflow also includes the dropping of some heavy data products (hence the `lite` suffix).
710

811
At the time of writing, the core workflow (for BNB + Dirt + Cosmics) is the following:
@@ -11,23 +14,23 @@ At the time of writing, the core workflow (for BNB + Dirt + Cosmics) is the foll
1114
- `g4_sce_dirt_filter_lite.fcl` (does not include TPC electron drift simulation)
1215
- `detsim_sce_lite.fcl` (includes TPC drift simulation, TPC electronics simulation, and signal processing)
1316
- `standard_reco1_sbnd.fcl`
14-
- `reco2_sce.fcl`
17+
- `standard_reco2_sbnd.fcl`
1518

1619
The intime workflow is as follows:
1720

1821
- `prodcorsika_proton_intime_filter_sce.fcl`
1922
- `g4_sce_simphotontime_filter_lite.fcl`
2023
- `detsim_sce_lite.fcl`
2124
- `standard_reco1_sbnd.fcl`
22-
- `reco2_sce.fcl`
25+
- `standard_reco2_sbnd.fcl`
2326

2427
For single generator workflows (like intrinsic neutrino samples) the workflow is the following:
2528

2629
- `<your-gen>.fcl`
2730
- `g4_sce_lite.fcl`
2831
- `detsim_sce_lite.fcl`
2932
- `standard_reco1_sbnd.fcl`
30-
- `reco2_sce.fcl`
33+
- `standard_reco2_sbnd.fcl`
3134

3235
This may well change over the coming months, and this README should be updated to reflect this.
3336

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#outputs configuration
2+
#
3+
#include "drops_reco1.fcl"
4+
5+
BEGIN_PROLOG
6+
7+
sbnd_reco2_drops: [
8+
@sequence::sbnd_reco1_drops
9+
]
10+
11+
END_PROLOG
Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
# module configuration
2+
#
3+
#include "pandoramodules_sbnd.fcl"
4+
#include "calorimetry_sbnd.fcl"
5+
#include "sbnd_flashfinder_deco.fcl"
6+
#include "crtrecoproducers_sbnd.fcl"
7+
#include "particleid_sbnd.fcl"
8+
#include "crttpcmatchingproducers_sbnd.fcl"
9+
10+
#include "scecorrections.fcl"
11+
#include "flashmatch_sbnd.fcl"
12+
13+
#include "opt0finder_sbnd.fcl"
14+
15+
#include "sbnd_trackcalo_skimmer.fcl"
16+
#include "crtskim_sbnd.fcl"
17+
#include "pmtskim_sbnd.fcl"
18+
19+
BEGIN_PROLOG
20+
21+
sbnd_reco2_producers:{
22+
### random number saver
23+
rns: { module_type: RandomNumberSaver }
24+
25+
### pandora
26+
pandora: @local::sbnd_pandora
27+
pandoraTrack: @local::sbnd_pandoraTrackCreation
28+
pandoraShower: @local::sbnd_incremental_pandoraModularShowerCreation
29+
pandoraShowerSBN: @local::sbnd_sbn_pandoraModularShowerCreation
30+
pandoraCalo: @local::sbnd_gnewcalomc
31+
pandoraPid: @local::sbnd_chi2pid
32+
33+
pandoraSCECalo: @local::sbnd_gnewcalomc
34+
pandoraSCEPid: @local::sbnd_chi2pid
35+
36+
pandoraCaloData: @local::sbnd_gnewcalodata
37+
pandoraPidData: @local::sbnd_chi2pid
38+
39+
### SCE-aware pandora:
40+
pandoraSCE: @local::scecorrection
41+
pandoraSCETrack: @local::sbnd_pandoraTrackCreation
42+
pandoraSCEShower: @local::sbnd_sce_incremental_pandoraModularShowerCreation
43+
pandoraSCEShowerSBN: @local::sbnd_sce_sbn_pandoraModularShowerCreation
44+
45+
### CRT reconstruction
46+
crtclustering: @local::crtclusterproducer_sbnd
47+
crtspacepoints: @local::crtspacepointproducer_sbnd
48+
crttracks: @local::crttrackproducer_sbnd
49+
50+
### CRT-TPC matching
51+
crtspacepointmatching: @local::crtspacepointmatchproducer_sbnd
52+
crttrackmatching: @local::crttrackmatchproducer_sbnd
53+
crtspacepointmatchingSCE: @local::crtspacepointmatchproducer_sbnd
54+
crttrackmatchingSCE: @local::crttrackmatchproducer_sbnd
55+
56+
### flash-matching
57+
fmatch: @local::sbnd_simple_flashmatch
58+
fmatchSCE: @local::sbnd_simple_flashmatch_sce
59+
fmatchop: @local::sbnd_simple_flashmatch_op
60+
fmatchopSCE: @local::sbnd_simple_flashmatch_op_sce
61+
fmatchara: @local::sbnd_simple_flashmatch_ara
62+
fmatcharaSCE: @local::sbnd_simple_flashmatch_ara_sce
63+
fmatchopara: @local::sbnd_simple_flashmatch_opara
64+
fmatchoparaSCE: @local::sbnd_simple_flashmatch_opara_sce
65+
opt0finder: @local::sbnd_opt0_finder_one_to_many
66+
opt0finderSCE: @local::sbnd_opt0_finder_one_to_many
67+
68+
### Uncalibrated calorimetry producer for calibration caloskimmer
69+
caloskimCalorimetry: @local::caloskim_calorimetry
70+
}
71+
72+
sbnd_reco2_producer_sequence: [
73+
rns
74+
, pandora
75+
, pandoraTrack
76+
, pandoraShower
77+
, pandoraShowerSBN
78+
, pandoraCalo
79+
, pandoraPid
80+
, crtclustering
81+
, crtspacepoints
82+
, crttracks
83+
, crtspacepointmatching
84+
, crttrackmatching
85+
, fmatch
86+
, fmatchop
87+
, fmatchara
88+
, fmatchopara
89+
, caloskimCalorimetry
90+
, opt0finder
91+
, pandoraSCE
92+
, pandoraSCETrack
93+
, pandoraSCEShower
94+
, pandoraSCEShowerSBN
95+
, pandoraSCECalo
96+
, pandoraSCEPid
97+
, crtspacepointmatchingSCE
98+
, crttrackmatchingSCE
99+
, fmatchSCE
100+
, fmatchopSCE
101+
, fmatcharaSCE
102+
, fmatchoparaSCE
103+
, opt0finderSCE
104+
]
105+
106+
#FIXME override the producer labels. This should really happen in the module's config fcl
107+
sbnd_reco2_producers.pandoraCalo.TrackModuleLabel: "pandoraTrack"
108+
sbnd_reco2_producers.pandoraCalo.FieldDistortion: false
109+
sbnd_reco2_producers.pandoraCalo.FieldDistortionEfield: false
110+
sbnd_reco2_producers.pandoraCalo.TrackIsFieldDistortionCorrected: false
111+
sbnd_reco2_producers.pandoraPid.TrackModuleLabel: "pandoraTrack"
112+
sbnd_reco2_producers.pandoraPid.CalorimetryModuleLabel: "pandoraCalo"
113+
114+
sbnd_reco2_producers.pandoraSCECalo.TrackModuleLabel: "pandoraSCETrack"
115+
sbnd_reco2_producers.pandoraSCECalo.FieldDistortion: true
116+
sbnd_reco2_producers.pandoraSCECalo.FieldDistortionEfield: true
117+
sbnd_reco2_producers.pandoraSCECalo.TrackIsFieldDistortionCorrected:true
118+
sbnd_reco2_producers.pandoraSCEPid.TrackModuleLabel: "pandoraSCETrack"
119+
sbnd_reco2_producers.pandoraSCEPid.CalorimetryModuleLabel: "pandoraSCECalo"
120+
121+
sbnd_reco2_producers.pandoraCaloData.TrackModuleLabel: "pandoraTrack"
122+
sbnd_reco2_producers.pandoraCaloData.FieldDistortion: false
123+
sbnd_reco2_producers.pandoraCaloData.FieldDistortionEfield: false
124+
sbnd_reco2_producers.pandoraCaloData.TrackIsFieldDistortionCorrected: false
125+
sbnd_reco2_producers.pandoraPidData.TrackModuleLabel: "pandoraTrack"
126+
sbnd_reco2_producers.pandoraPidData.CalorimetryModuleLabel: "pandoraCaloData"
127+
128+
physics.analyzers.caloskim.SimChannelproducer: "simtpc2d:simpleSC"
129+
130+
sbnd_reco2_producers.opt0finderSCE.SliceProducer: "pandoraSCE"
131+
sbnd_reco2_producers.opt0finderSCE.TrackProducer: "pandoraSCETrack"
132+
sbnd_reco2_producers.opt0finderSCE.ShowerProducer: "pandoraSCEShowerSBN"
133+
sbnd_reco2_producers.opt0finderSCE.CaloProducer: "pandoraSCECalo"
134+
135+
# Configure the SCE corrections
136+
# For now: always assume t = 0
137+
sbnd_reco2_producers.pandoraSCE.T0Labels: []
138+
sbnd_reco2_producers.pandoraSCE.T0LabelsCorrectT0: []
139+
sbnd_reco2_producers.pandoraSCE.CorrectNoT0Tag: true
140+
# point track/shower creation to the SCE pandora
141+
sbnd_reco2_producers.pandoraSCETrack.PFParticleLabel: "pandoraSCE"
142+
sbnd_reco2_producers.pandoraSCEShower.PFParticleLabel: "pandoraSCE"
143+
sbnd_reco2_producers.pandoraSCEShowerSBN.PFParticleLabel: "pandoraSCE"
144+
145+
sbnd_reco2_producers.crtspacepointmatchingSCE.TPCTrackModuleLabel: "pandoraSCETrack"
146+
sbnd_reco2_producers.crtspacepointmatchingSCE.PFPModuleLabel: "pandoraSCE"
147+
sbnd_reco2_producers.crtspacepointmatchingSCE.MatchingAlg.TPCTrackLabel: "pandoraSCETrack"
148+
149+
sbnd_reco2_producers.crttrackmatchingSCE.TPCTrackModuleLabel: "pandoraSCETrack"
150+
sbnd_reco2_producers.crttrackmatchingSCE.PFPModuleLabel: "pandoraSCE"
151+
sbnd_reco2_producers.crttrackmatchingSCE.MatchingAlg.TPCTrackLabel: "pandoraSCETrack"
152+
153+
sbnd_reco2_analyzers: {
154+
caloskim: @local::caloskim_nodigits_goldentracks
155+
crtskim: @local::crtskim_sbnd
156+
pmtskim: @local::pmtskim_sbnd
157+
}
158+
159+
sbnd_reco2_analyzer_sequence: [
160+
caloskim
161+
, pmtskim
162+
, crtskim
163+
]
164+
165+
#FIXME override the analyzer labels. This should really happen in the module's config fcl
166+
sbnd_reco2_analyzers.caloskim.SimChannelproducer: "simtpc2d:simpleSC"
167+
168+
END_PROLOG
169+

sbndcode/JobConfigurations/standard/reco/reco2_data.fcl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#include "crt_channel_map_service.fcl"
22
#include "crt_calib_service.fcl"
3-
#include "reco2_sce.fcl"
3+
#include "standard_reco2_sbnd.fcl"
44

55
services:
66
{

sbndcode/JobConfigurations/standard/reco/reco2_sce.fcl

Lines changed: 0 additions & 25 deletions
This file was deleted.
Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,37 @@
1-
# File: standard_reco2_sbnd.fcl
2-
# Purpose: The standard reconstruction workflow for 'reco2', starts at 2D clustering and includes all high level reconstruction
3-
# Version: 1.0
4-
#
5-
# Changes:
6-
# 20200923 (d.brailsford@lancster.ac.uk) [v1.0]
7-
# Initial definition
8-
#
91
# job configuration
10-
11-
#include "reco_sbnd.fcl"
2+
#
3+
#include "workflow_reco2.fcl"
4+
#include "drops_reco2.fcl"
5+
#include "simulationservices_sbnd.fcl"
6+
#include "generic_job_sbnd.fcl"
127

138
process_name: Reco2
149

15-
physics.trigger_paths: [ reco2 ]
16-
physics.end_paths: [stream1, caloskimana]
10+
#services overrides
11+
services:
12+
{
13+
@table::services
14+
@table::sbnd_random_services
15+
@table::sbnd_g4_services
16+
# FIXME The following services are temporarily included here to test tht the workflow is unchanged
17+
LArFFT: @local::sbnd_larfft
18+
SignalShapingServiceSBND: @local::sbnd_signalshapingservice
19+
BackTrackerService: @local::sbnd_backtrackerservice
20+
ParticleInventoryService: @local::sbnd_particleinventoryservice
21+
}
22+
23+
#physics table overrides
24+
physics.producers: @local::sbnd_reco2_producers
25+
physics.reco2: @local::sbnd_reco2_producer_sequence
26+
physics.trigger_paths: [ reco2 ]
27+
#analysers
28+
physics.analyzers: @local::sbnd_reco2_analyzers
29+
physics.ana: @local::sbnd_reco2_analyzer_sequence
30+
physics.end_paths: [ @sequence::physics.end_paths, ana ]
31+
32+
#outputs table overrides
33+
outputs.out1.dataTier: "reconstructed"
34+
outputs.out1.outputCommands: [@sequence::outputs.out1.outputCommands, @sequence::sbnd_reco2_drops]
35+
36+
#FIXME permanently enable SCE in a service rather than override specific params in this way...
37+
#include "enable_spacecharge_services_sbnd.fcl"

test/JobConfigurations/fast_simulation_reconstruction_test_electrons.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ declare -ar TestNames=(
1111
'g4_sce'
1212
'detsim_sce_lite'
1313
'standard_reco1_sbnd'
14-
'reco2_sce'
14+
'standard_reco2_sbnd'
1515
)
1616

1717
#############################################################################

test/JobConfigurations/fast_simulation_reconstruction_test_muons.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ declare -ar TestNames=(
1111
'g4_sce'
1212
'detsim_sce_lite'
1313
'standard_reco1_sbnd'
14-
'reco2_sce'
14+
'standard_reco2_sbnd'
1515
)
1616

1717
#############################################################################

test/ci/fcl_file_checks.list

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ g4_sce.fcl
99
g4_sce_dirt_filter.fcl
1010
detsim_sce.fcl
1111
standard_reco1_sbnd.fcl
12-
reco2_sce.fcl
12+
standard_reco2_sbnd.fcl
1313
cafmakerjob_sbnd_sce_systtools_and_fluxwgt.fcl

0 commit comments

Comments
 (0)