Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion fcl/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@ add_subdirectory(utilities)
add_subdirectory(compatibility)
add_subdirectory(numi-anaA)
add_subdirectory(syst_variations)

add_subdirectory(decoder)
add_subdirectory(overlays)
install_fhicl()
7 changes: 7 additions & 0 deletions fcl/caf/cafmakerjob_icarus_detsim2d_overlay.fcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#include "cafmakerjob_icarus.fcl"
#include "cafmaker_add_detsim2d_icarus.fcl"

services.BackTrackerService.BackTracker.OverrideRealData: true
services.ParticleInventoryService.ParticleInventory.OverrideRealData: true

physics.producers.cafmaker.OverrideRealData: true
8 changes: 8 additions & 0 deletions fcl/decoder/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Install fcl files in /job subdirectory.

install_fhicl()

# Also put a copy in the source tree.

FILE(GLOB fcl_files *.fcl)
install_source( EXTRAS ${fcl_files} )
56 changes: 56 additions & 0 deletions fcl/decoder/decoder_data_icarus.fcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
###
## This fhicl file is used to run "stage0" processing specifically for the case where all
## TPC data is included in an artdaq data product from a single instance
##
#include "stage0_icarus_driver_common.fcl"

process_name: decoder

## Define the path we'll execute
physics.path: [ "filterdataintegrity",
"triggerconfig",
"daqTrigger", # Note sure if we actually need some of these trigger and PMT stuff other than daqPMT... Gianluca?
"pmtconfig",
"daqPMT",
"pmtconfigbaselines",
"pmtthr", # ???
"pmtbaselines",
"daqCRT",
"crthit",
#"crtpmt", # Can we run this later: we probably want to, to have the PMT/CRT info for the nu
"daqTPCROI"
]

## boiler plate...
physics.outana: [ ]
physics.trigger_paths: [ path ]
physics.end_paths: [ outana, streamROOT ]

# Drop the artdaq format files on output,
# Drop all output from the TPC decoder stage
# Drop all output from the 1D deconvolution stage
# Drop the recob::Wire output from the roifinder (but keep the ChannelROIs)
# Drop the reconstructed optical hits before the timing correction
# Drop the PMT waveforms (will keep the ones from daqPMTonbeam)
# Keep the Trigger fragment
outputs.rootOutput.outputCommands: [
"keep *_*_*_*",
"drop *_*_*_DAQ*",
"drop *_ophituncorrected_*_*",
#"drop raw::OpDetWaveforms_daqPMT__*",
"drop *_decon1droi_*_*",
"drop recob::Wire*_roifinder_*_*",
"keep *_daq_ICARUSTriggerV*_*",
"drop recob::ChannelROIs_daqTPCROI_*_*", #ChannelROIs_daqTPCROI_PHYSCRATEDATATPCWE_decoder decoder..... | daqTPCROI......... | PHYSCRATEDATATPCWW
"drop raw::RawDigits_daqTPCROI_PHYSCRATEDATATPCWE_decoder", #RawDigits_daqTPCROI_PHYSCRATEDATATPCWW_decoder.obj
"drop raw::RawDigits_daqTPCROI_PHYSCRATEDATATPCWW_decoder",
"drop raw::RawDigits_daqTPCROI_PHYSCRATEDATATPCEW_decoder",
"drop raw::RawDigits_daqTPCROI_PHYSCRATEDATATPCEE_decoder",
"drop artdaq::Fragments_daq_*_ICARUSReprocessRaw"
]

## Modify the event selection for the purity analyzers
physics.analyzers.purityinfoana0.SelectEvents: [ path ]
physics.analyzers.purityinfoana1.SelectEvents: [ path ]

physics.producers.daqTPCROI.OutputRawWaveform: true
48 changes: 48 additions & 0 deletions fcl/decoder/decoder_run2_icarus.fcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
###
## This fhicl file is used to run "stage0" processing specifically for the case where all
## TPC data is included in an artdaq data product from a single instance
##
#include "stage0_icarus_driver_common.fcl"

process_name: stage0

## Define the path we'll execute
physics.path: [ "filterdataintegrity",
"triggerconfig",
"daqTrigger", # Note sure if we actually need some of these trigger and PMT stuff other than daqPMT... Gianluca?
"pmtconfig",
"daqPMT",
"pmtconfigbaselines",
"pmtthr", # ???
"pmtbaselines",
"daqCRT",
"crthit",
#"crtpmt", # Can we run this later: we probably want to, to have the PMT/CRT info for the nu
"daqTPCROI" ]

## boiler plate...
physics.outana: [ ]
physics.trigger_paths: [ path ]
physics.end_paths: [ outana, streamROOT ]

# Drop the artdaq format files on output,
# Drop all output from the TPC decoder stage
# Drop all output from the 1D deconvolution stage
# Drop the recob::Wire output from the roifinder (but keep the ChannelROIs)
# Drop the reconstructed optical hits before the timing correction
# Drop the PMT waveforms (will keep the ones from daqPMTonbeam)
# Keep the Trigger fragment
outputs.rootOutput.outputCommands: [
"keep *_*_*_*",
"drop *_*_*_DAQ*",
"drop *_ophituncorrected_*_*",
#"drop raw::OpDetWaveforms_daqPMT__*",
"drop *_decon1droi_*_*",
"drop recob::Wire*_roifinder_*_*",
"keep *_daq_ICARUSTriggerV*_*"]

## Modify the event selection for the purity analyzers
physics.analyzers.purityinfoana0.SelectEvents: [ path ]
physics.analyzers.purityinfoana1.SelectEvents: [ path ]

physics.producers.daqTPCROI.OutputRawWaveform: true
5 changes: 5 additions & 0 deletions fcl/detsim/detsim_2d_icarus_fitFR_nonoise.fcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#include "detsim_2d_icarus_fitFR.fcl"


physics.producers.daq.wcls_main.structs.coh_noise_scale: 0.0
physics.producers.daq.wcls_main.structs.int_noise_scale: 0.0
9 changes: 9 additions & 0 deletions fcl/detsim/detsim_2d_icarus_fitFR_overlay.fcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#include "detsim_2d_icarus_fitFR.fcl"


physics.producers.daq.wcls_main.structs.coh_noise_scale: 0.0
physics.producers.daq.wcls_main.structs.int_noise_scale: 0.0
physics.producers.daq.wcls_main.structs.include_noise: false
physics.producers.daq.wcls_main.structs.overlay_drifter: true
physics.producers.daq.wcls_main.plugins: [@sequence::physics.producers.daq.wcls_main.plugins, "WireCellICARUSDrifter", "WireCellHio"]
physics.producers.daq.wcls_main.inputers: ["wclsICARUSDrifter", "wclsSimDepoSetSource:electron"]
4 changes: 4 additions & 0 deletions fcl/detsim/detsim_2d_icarus_refactored_nonoise.fcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#include "detsim_2d_icarus_refactored.fcl"

physics.producers.daq.wcls_main.structs.coh_noise_scale: 0.0
physics.producers.daq.wcls_main.structs.int_noise_scale: 0.0
8 changes: 8 additions & 0 deletions fcl/overlays/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Install fcl files in /job subdirectory.

install_fhicl()

# Also put a copy in the source tree.

FILE(GLOB fcl_files *.fcl)
install_source( EXTRAS ${fcl_files} )
5 changes: 5 additions & 0 deletions fcl/overlays/cafmakerjob_icarus_cosmic_detsim2d_overlay.fcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#include "cafmakerjob_icarus_cosmic_detsim2d.fcl"

services.BackTrackerService.BackTracker.OverrideRealData: true
services.ParticleInventoryService.ParticleInventory.OverrideRealData: true
physics.producers.cafmaker.OverrideRealData: true
33 changes: 33 additions & 0 deletions fcl/overlays/icarus_siminfomixer.fcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
BEGIN_PROLOG

icarus_siminfomixer:
{
module_type : SimInfoOverlayFilter
SimInputFileNames : [ "genfile.root.local" ]
AuxDetSimChannelInputModuleLabels: []
SimEnergyDepositInputModuleLabels: []
MCParticleInputModuleLabels: []
MCTruthGTruthAssnsInputModuleLabels: []
MCTruthInputModuleLabels: []
SimChannelInputModuleLabels: []
SimPhotonsInputModuleLabels: []
MCTruthMCParticleAssnsMap: []
MCTruthMCParticleAssnsInputModuleLabels: []
BeamGateInputModuleLabels: []
MCParticleLiteInputModuleLabels: []
MCFluxInputModuleLabels: []
MCTruthMCFluxAssnsInputModuleLabels: []

Verbosity: -1
FillPOTInfo: false
POTSummaryTag: "generator::GenieGenFiltered"
detail : {}
}

icarus_subrunpotinevent:
{
module_type : SubRunPOTInEvent
InputTag: "generator:SubRunPOT"
}

END_PROLOG
75 changes: 75 additions & 0 deletions fcl/overlays/intime_gen_overlay_SimInfoMixer1.fcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
#include "icarus_siminfomixer.fcl"
#include "local_gen_include.fcl"

//========================================

services:
{
scheduler: { defaultExceptions: false } # Make all uncaught exceptions fatal.
# Load the service that manages root files for histograms.
TFileService: { fileName: "gen_hist.root" }

RandomNumberGenerator: {} #ART native random number generator
FileCatalogMetadata: @local::art_file_catalog_mc
#@table::microboone_g4_services
}

process_name : SimInfoMixer1 #The process name must NOT contain any underscores

source:
{
module_type: RootInput
saveMemoryObjectThreshold: 0
maxEvents: -1
}

outputs: {
out: { module_type: RootOutput
fileName: "%ifb_%tc_simmxd1.root"
compressionLevel: 1
dataTier: "generated"
SelectEvents: ["mixer_path"]
}
}

physics: {

producers : {
}

analyzers: {
}

filters : {
generator: @local::icarus_siminfomixer
beamgate: @local::icarus_siminfomixer
GenInTimeSorter: @local::icarus_siminfomixer
larg4intime: @local::icarus_siminfomixer
}

mixer_path : [ generator, beamgate, GenInTimeSorter, larg4intime ]
trigger_paths : [ mixer_path ]

output : [ out ]
end_paths: [ output ]

}

##<module_label>:<optional instance name>:<optional process name> 2:3:1
##PROCESS NAME...... | MODULE LABEL... | PRODUCT INSTANCE NAME.... | DATA PRODUCT TYPE.................................................... | .SIZE
physics.filters.generator.SimInputFileNames : [ "genfile.root.local" ]

physics.filters.larg4intime.AuxDetSimChannelInputModuleLabels: ["larg4intime::CosmicsCorsikaPGenAndG4InTime"]
physics.filters.larg4intime.MCParticleLiteInputModuleLabels: ["larg4intime::CosmicsCorsikaPGenAndG4InTime"]

physics.filters.larg4intime.MCParticleInputModuleLabels: ["larg4intime::CosmicsCorsikaPGenAndG4InTime"]
physics.filters.larg4intime.MCTruthMCParticleAssnsInputModuleLabels: ["larg4intime::CosmicsCorsikaPGenAndG4InTime"]
physics.filters.larg4intime.SimEnergyDepositInputModuleLabels: ["larg4intime:TPCActive:CosmicsCorsikaPGenAndG4InTime"]

physics.filters.beamgate.BeamGateInputModuleLabels: ["beamgate::CosmicsCorsikaPGenAndG4InTime"]
physics.filters.GenInTimeSorter.MCTruthInputModuleLabels: ["GenInTimeSorter:intime:CosmicsCorsikaPGenAndG4InTime"] #std::vector<simb::MCTruth> intime
physics.filters.larg4intime.SimChannelInputModuleLabels: ["larg4intime::CosmicsCorsikaPGenAndG4InTime"]
physics.filters.generator.MCTruthInputModuleLabels: ["GenInTimeSorter:intime:CosmicsCorsikaPGenAndG4InTime"] #std::vector<simb::MCTruth> #no label
physics.filters.generator.MCTruthInputModuleLabels: ["GenInTimeSorter::CosmicsCorsikaPGenAndG4InTime"] #std::vector<simb::MCTruth> #no label
physics.filters.generator.MCTruthInputModuleLabels: ["generator::CosmicsCorsikaPGenAndG4InTime"]
physics.filters.larg4intime.SimPhotonsInputModuleLabels: ["larg4intime::CosmicsCorsikaPGenAndG4InTime"]
58 changes: 58 additions & 0 deletions fcl/overlays/intime_gen_overlay_SimInfoMixer2.fcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#include "icarus_siminfomixer.fcl"
#include "local_gen_include.fcl"

//========================================

services:
{
scheduler: { defaultExceptions: false } # Make all uncaught exceptions fatal.
# Load the service that manages root files for histograms.
TFileService: { fileName: "gen_hist.root" }
RandomNumberGenerator: {} #ART native random number generator
FileCatalogMetadata: @local::art_file_catalog_mc
}

process_name : SimInfoMixer2 #The process name must NOT contain any underscores

source:
{
module_type: RootInput
saveMemoryObjectThreshold: 0
maxEvents: -1
}

outputs: {
out: { module_type: RootOutput
fileName: "%ifb_%tc_simmxd2.root"
compressionLevel: 1
dataTier: "generated"
SelectEvents: ["mixer_path"]
}
}

physics: {

producers : {
}

analyzers: {
}

filters : {
GenInTimeSorter: @local::icarus_siminfomixer
larg4intime: @local::icarus_siminfomixer
}

mixer_path : [ GenInTimeSorter, larg4intime ]
trigger_paths : [ mixer_path ]

output : [ out ]
end_paths: [ output ]

}

##<module_label>:<optional instance name>:<optional process name>
physics.filters.larg4intime.SimInputFileNames : [ "genfile.root.local" ]

physics.filters.larg4intime.SimEnergyDepositInputModuleLabels: ["larg4intime:Other:CosmicsCorsikaPGenAndG4InTime"] #Other
physics.filters.GenInTimeSorter.MCTruthInputModuleLabels: ["GenInTimeSorter:outtime:CosmicsCorsikaPGenAndG4InTime"] #std::vector<simb::MCTruth> outtime
Loading