example_em-trk_job.fcl
Go to the documentation of this file.
1 #include "services_dune.fcl"
2 #include "imagepatternalgs.fcl"
3 
4 # Example configuration of job applying CNN-based selection of
5 # EM-like activity (3 outputs: [track, em, none]) on the level
6 # of tracks / clusters / single hits.
7 # The same configuration can be used for other CNN models, trained
8 # to distinguish also Michel electrons or tagging vertices.
9 # Configured for ProtoDUNE, hopefully straight-forward to adopt
10 # to other experiments.
11 
12 process_name: EmTrackId
13 
14 services:
15 {
16  TFileService: { fileName: "reco_hist.root" }
17  MemoryTracker: {}
18  TimeTracker: {}
19  RandomNumberGenerator: {} #ART native random number generator
20  message: @local::dune_message_services_prod_debug
21  FileCatalogMetadata: @local::art_file_catalog_mc
22  @table::protodune_services
23 }
24 
25 source:
26 {
27  module_type: RootInput
28  maxEvents: -1 # Number of events to create
29 }
30 
31 physics:
32 {
33  producers:
34  {
35  #emtrackid: @local::standard_emtrackclusterid # uses 3-outs CNN model
36  emtrkmichelid: @local::standard_emtrackmichelid # uses 4-outs model
37  }
38 
39  reco: [ emtrkmichelid ]
40  stream1: [ out1 ]
41 
42  trigger_paths: [ reco ]
43  end_paths: [ stream1 ]
44 }
45 
46 outputs:
47 {
48  out1:
49  {
50  module_type: RootOutput
51  fileName: "%ifb_%tc_reco.root"
52  dataTier: "full-reconstructed"
53  compressionLevel: 1
54  }
55 }
56 
57 # Model configuration:
58 #
59 physics.producers.emtrkmichelid.PointIdAlg.NNetModelFile: "/home/your_dir/your_cnn_model.nnet" # your model (there is no default one in repository!)
60 physics.producers.emtrkmichelid.PointIdAlg.NNetOutputs: ["track", "em", "michel", "none"] # be sure that the order corresponds to your model outputs
61 physics.producers.emtrkmichelid.PointIdAlg.PatchSizeW: 44 # how many wires in patch
62 physics.producers.emtrkmichelid.PointIdAlg.PatchSizeD: 48 # how many downsampled ADC entries
63 physics.producers.emtrkmichelid.PointIdAlg.DriftWindow: 6 # downsampling window in drift ticks
64 physics.producers.emtrkmichelid.PointIdAlg.DownscaleFn: "mean" # downsampling function
65 physics.producers.emtrkmichelid.PointIdAlg.DownscaleFullView: false # downsample after the patch position is selected
66 
67 # Input selection:
68 #
69 physics.producers.emtrkmichelid.HitModuleLabel: "linecluster" # all hits (used to classify leftovers from clustering)
70 physics.producers.emtrkmichelid.ClusterModuleLabel: "linecluster" # clusters to be classified
71 physics.producers.emtrkmichelid.TrackModuleLabel: "pmtrack" # tracks to be classified (leave that one empty if there are no 3D tracks yet)
72 physics.producers.emtrkmichelid.Views: [] # possible to run over selected views only (all views if empty list)
73 
74 # Calibration, NOTE: use the same settings as for the training data preparation
75 #
76 #physics.producers.emtrkmichelid.PointIdAlg.CalorimetryAlg: @local::standard_calorimetryalgmc # use your detector calibration constants, this the default
77 #physics.producers.emtrkmichelid.PointIdAlg.CalibrateAmpl: true # this equalizes ADC amplitudes between planes and MC/data
78 
79 # Noise and distortions testing (off by default):
80 #
81 #physics.producers.emtrkmichelid.PointIdAlg.BlurKernel: [0.03, 0.15, 0.64, 0.15, 0.03] # wire to wire blur
82 #physics.producers.emtrkmichelid.PointIdAlg.NoiseSigma: 4 # uncorrelated noise
83 #physics.producers.emtrkmichelid.PointIdAlg.CoherentSigma: 6 # coherent noise, over 32 wire groups
84