PD_Sim_Chain_Tra.fcl
Go to the documentation of this file.
1 #include "services_dune.fcl"
2 #include "largeantmodules_dune.fcl"
3 #include "photpropservices_dune.fcl"
4 #include "opticaldetectormodules_dune.fcl"
5 
6 process_name: PDSIMCHAINTRA
7 
8 services:
9 {
10  //Load the service that manages root files for histograms.
11  TFileService: { fileName: "pd_tra.root" }
12  TimeTracker: {}
13  MemoryTracker: {}
14  RandomNumberGenerator: {} #ART native random number generator
15  message: @local::standard_info
16  @table::protodune_simulation_services
17 
18  DetectorHolder: {}
19  ActionHolder: {}
20  PhysicsListHolder: {}
21 
22  PhysicsList:
23  {
24  PhysicsListName: "QGSP_BERT"
25  DumpList: true
26  enableCerenkov: false
27  enableScintillation: true
28  ScintillationByParticleType: false
29  enableAbsorption: false
30  enableRayleigh: false
31  enableMieHG: false
32  enableBoundary: false
33  enableWLS: false
34  }
35 
36  LArG4Detector :
37  {
38  category: "world"
39  gdmlFileName_ : "protodune_v5_refactored_nowires.gdml"
40  }
41 
42  MCTruthEventAction: {service_type: "MCTruthEventActionService"}
43  ParticleListAction: {service_type: "ParticleListActionService"}
44 }
45 services.PhotonVisibilityService: @local::protodunev4_photonvisibilityservice
46 services.LArG4Parameters.FillSimEnergyDeposits: true
47 services.LArG4Parameters.UseLitePhotons: true
48 services.LArG4Parameters.IonAndScintCalculator: "NEST"
49 
50 //source is now a root file
51 source:
52 {
53  module_type: RootInput
54  maxEvents: 30000
55  fileNames: ["muon.root"]
56 }
57 
58 //Define and configure some modules to do work on each event.
59 //First modules are defined; they are scheduled later.
60 //Modules are grouped by type.
61 physics:
62 {
63 
64  producers:
65  {
66  largeant: @local::standard_largeant
67  rns: { module_type: "RandomNumberSaver" }
68  }
69 
70  analyzers:
71  {
72  SimPh:
73  {
74  module_type: "SimPhotonCounter"
75  Verbosity: 1
76  InputModule: "largeant"
77  MakeAllPhotonsTree: true
78  MakeDetectedPhotonsTree: true
79  MakeOpDetsTree: true
80  MakeOpDetEventsTree: true
81  }
82  }
83  //define the producer and filter modules for this path, order matters,
84  //filters reject all following items. see lines starting physics.producers below
85  simulate: [ rns, largeant ]
86 
87  #define the output stream, there could be more than one if using filters
88  stream1: [ out1, SimPh ]
89 
90  //trigger_paths is a keyword and contains the paths that modify the art::event,
91  //ie filters and producers
92  trigger_paths: [simulate]
93 
94  //end_paths is a keyword and contains the paths that do not modify the art::Event,
95  //ie analyzers and output streams. these all run simultaneously
96  end_paths: [stream1]
97 }
98 physics.producers.largeant.ChargeRecoveryMargin: 2.5 # cm
99 
100 //block to define where the output goes. if you defined a filter in the physics
101 //block and put it in the trigger_paths then you need to put a SelectEvents: {SelectEvents: [XXX]}
102 //entry in the output stream you want those to go to, where XXX is the label of the filter module(s)
103 outputs:
104 {
105  out1:
106  {
107  module_type: RootOutput
108  fileName: "%ifb_pd_tra.root"
109  dataTier: "simulated"
110  compressionLevel: 1
111  }
112 }