select_ana_dune10kt_nu_legacy.fcl
Go to the documentation of this file.
1 #include "services_dune.fcl"
2 #include "mvamodule.fcl"
3 #include "CAFMaker.fcl"
4 #include "CVNMapper.fcl"
5 #include "CVNEvaluator.fcl"
6 #include "RegCNNMapper.fcl"
7 #include "RegCNNEvaluator.fcl"
8 #include "energyreco.fcl"
9 
10 process_name: Cafana2
11 
12 services:
13 {
14  # Load the service that manages root files for histograms.
15  TFileService: { fileName: "caf_hist.root" }
16  TimeTracker: {}
17  RandomNumberGenerator: {}
18  MemoryTracker: { } # default is one
19  message: @local::dune_message_services_prod
20  FileCatalogMetadata: @local::art_file_catalog_mc
21  @table::dunefd_simulation_services_legacy
22 }
23 
24 source:
25 {
26  module_type: RootInput
27  maxEvents: -1 # Number of events to create
28 }
29 
30 # Define and configure some modules to do work on each event.
31 # First modules are defined; they are scheduled later.
32 # Modules are grouped by type.
33 physics:
34 {
35 
36  producers:{
37  mvaselectnue: @local::dunefd_mvaselect
38  mvaselectnumu: @local::dunefd_mvaselect
39  energyreconue: @local::dunefd_nuenergyreco
40  energyreconumu: @local::dunefd_nuenergyreco
41  cvnmap: @local::standard_cvnmapper
42  cvneval: @local::standard_cvnevaluator
43  regcnnmap: @local::standard_regcnnmapper
44  regcnneval: @local::standard_regcnnevaluator
45  }
46 
47  analyzers:
48 {
49  cafmaker: @local::dunefd_cafmaker
50 }
51 
52  #define the output stream, there could be more than one if using filters
53  stream1: [ out1 ]
54 
55  #define the producer and filter modules for this path, order matters,
56  #filters reject all following items. see lines starting physics.producers below
57  prod: [mvaselectnue, energyreconue, mvaselectnumu, energyreconumu, cvnmap, cvneval, regcnnmap, regcnneval]
58 # caf: [ cafmaker]
59  trigger_paths: [prod]
60 
61  #end_paths is a keyword and contains the paths that do not modify the art::Event,
62  #ie analyzers and output streams. these all run simultaneously
63 # end_paths: [stream1, caf]
64  end_paths: [stream1]
65 
66 }
67 
68 #block to define where the output goes. if you defined a filter in the physics
69 #block and put it in the trigger_paths then you need to put a SelectEvents: {SelectEvents: [XXX]}
70 #entry in the output stream you want those to go to, where XXX is the label of the filter module(s)
71 outputs:
72 {
73  out1:
74  {
75  module_type: RootOutput
76  fileName: "%ifb_%tc_merged.root"
77  dataTier: "full-reconstructed"
78  compressionLevel: 1
79  }
80 }
81 
82 services.Geometry: @local::dune10kt_workspace_geo
83 services.Geometry.GDML: "dune10kt_v1_1x2x6.gdml"
84 
85 physics.producers.mvaselectnue.MVAMethod: "BDTG"
86 physics.producers.mvaselectnumu.MVAMethod: "BDTG"
87 
88 physics.producers.mvaselectnue.Select: "nue"
89 physics.producers.mvaselectnumu.Select: "numu"
90 
91 # 1 = longest reco track + hadronic, 2 = reco shower with highest charge + hadronic, 3 = all hit charges
92 physics.producers.energyreconue.RecoMethod: 2
93 physics.producers.energyreconumu.RecoMethod: 1
94 
95 physics.producers.mvaselectnue.WeightFile: "MVASelect/v2.2/TMVAClassification_BDTG.nue.weights.xml"
96 physics.producers.mvaselectnumu.WeightFile: "MVASelect/v2.2/TMVAClassification_BDTG.numu.weights.xml"
97 
98 
99 physics.analyzers.cafmaker.MakeWeightTree: false
100 physics.analyzers.cafmaker.Reweight: false
101 physics.analyzers.cafmaker.MakeAnaTree: false
102 physics.analyzers.cafmaker.MakeSystHist: false
103 
104 physics.analyzers.cafmaker.NuECut: 0.8
105 physics.analyzers.cafmaker.NuMuCut: 0.8
106 
107 # Pull the reco information from one of the MVA modules, choice is arbitary
108 physics.analyzers.cafmaker.MVASelectLabel: "mvaselectnue"
109 
110 physics.producers.cvnmap.HitsModuleLabel: "hitfd"
111 physics.producers.cvnmap.TimeResolution: 1600
112 physics.producers.cvnmap.PlaneLength: 500
113 physics.producers.cvnmap.TdcWidth: 500
114 
115 dune_tfile_metadata:
116 {
117  JSONFileName: "caf_hist.root.json"
118  GenerateTFileMetadata: true
119  dataTier: "root-tuple"
120  fileFormat: "root"
121 }