Skip to content
Draft
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
11 changes: 11 additions & 0 deletions fcl/caf/cafmakerjob_icarus_detsim2d_noyzsim.fcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#include "cafmakerjob_icarus.fcl"
#include "cafmaker_add_detsim2d_icarus.fcl"

# Fix for CAFMaker simchannel -- using correct (?)
physics.producers.cafmaker.SimChannelLabel: "daq:simpleSC"

# Fix for BackTracker simchannel
services.BackTrackerService.BackTracker.SimChannelModuleLabel: "daq:simpleSC"

# Fix for MCReco simchannel
physics.producers.mcreco.SimChannelLabel: "daq:simpleSC"
2 changes: 1 addition & 1 deletion fcl/detsim/detsim_2d_icarus_refactored.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ physics: {

crtdaq: @local::icarus_crtsim
opdaq: @local::icarus_simpmt
daq: @local::icarus_simwire_wirecell_filtersed
daq: @local::icarus_simwire_wirecell_shifted

rns: { module_type: "RandomNumberSaver" }
} # producers
Expand Down
13 changes: 13 additions & 0 deletions fcl/gen/genie/simulation_genie_icarus_bnb_volDetEnclosure_nue.fcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# File: simulation_genie_icarus_bnb_volDetEnclosure_nue.fcl
# Purpose: generate neutrino interactions from BNB in the whole DetEnclosure volume -- only nue
# Date: November 26, 2025
# Author: Mattia Sotgia (msotgia@ge.infn.it)
#
# This configuration is based on `simulation_genie_icarus_bnb_volDetEnclosure.fcl`,
# the only difference being that the generator flavour are only nue.
#

#include "simulation_genie_icarus_bnb_volDetEnclosure.fcl"

physics.producers.generator.GenFlavors: [ 12, -12 ]

68 changes: 68 additions & 0 deletions fcl/reco/Stage0/mc/stage0_run2_icarus_noyzsim_mc.fcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
## Author(s): Riccardo Triozzi (rtriozzi@phd.unipd.it), Mattia Sotgia (msotgia@ge.infn.it)
## Date: November 27, 2025
## 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
## Without any simulation of the YZ distortion
##
#include "stage0_icarus_mc_defs.fcl"
#include "stage0_icarus_driver_common.fcl"

process_name: MCstage0

## Add the MC module to the list of producers
physics.producers: { @table::icarus_stage0_producers
@table::icarus_stage0_mc_producers
}

## Use the following to run the full defined stage0 set of modules
physics.path: [ @sequence::icarus_stage0_mc_PMT,
MCDecodeTPCROI,
@sequence::icarus_stage0_multiTPC,
simChannelROI,
@sequence::icarus_stage0_mc_crthit,
@sequence::icarus_stage0_mc_crtreco
]

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

# Drop data products that are no longer needed, but make sure to keep important items!
# For example, we need to drop the RawDigits from the detector simulation stage but want to keep the SimChannel info from WireCell...
outputs.rootOutput.outputCommands: ["keep *_*_*_*",
"drop *_daq*_*_*",
"drop raw::RawDigit*_*_*_*",
"drop raw::OpDetWaveform*_opdaq_*_*",
"drop *_MCDecodeTPCROI_*_*",
"drop *_decon1droi_*_*",
"drop recob::Wire*_roifinder*_*_*",
"keep *_daq_simpleSC*_*"]

# Set the expected input for ophit
physics.producers.ophit.InputModule: "shifted"

# Note the default assumption is that our detector simulation input will come from the WireCell 2D drift simulation, a la 'daq'
# If we are running the 1D drift simulation we need to switch to using:
# `physics.producers.MCDecodeTPCROI.FragmentsLabelVec: ["daq3:PHYSCRATEDATATPCWW","daq2:PHYSCRATEDATATPCWE","daq1:PHYSCRATEDATATPCEW","daq0:PHYSCRATEDATATPCEE"]`
#
physics.producers.MCDecodeTPCROI.FragmentsLabelVec: ["daq:TPCWW","daq:TPCWE","daq:TPCEW","daq:TPCEE"]
physics.producers.MCDecodeTPCROI.OutInstanceLabelVec: ["PHYSCRATEDATATPCWW", "PHYSCRATEDATATPCWE", "PHYSCRATEDATATPCEW", "PHYSCRATEDATATPCEE"]
physics.producers.decon1droi.RawDigitLabelVec: ["MCDecodeTPCROI:PHYSCRATEDATATPCWW","MCDecodeTPCROI:PHYSCRATEDATATPCWE","MCDecodeTPCROI:PHYSCRATEDATATPCEW","MCDecodeTPCROI:PHYSCRATEDATATPCEE"]

physics.producers.simChannelROI.SimChannelLabelVec: ["daq:simpleSC"]
physics.producers.simChannelROI.OutInstanceLabelVec: ["All"]

physics.producers.decon2droiEE.wcls_main.params.raw_input_label: "MCDecodeTPCROI:PHYSCRATEDATATPCEE"
physics.producers.decon2droiEW.wcls_main.params.raw_input_label: "MCDecodeTPCROI:PHYSCRATEDATATPCEW"
physics.producers.decon2droiWE.wcls_main.params.raw_input_label: "MCDecodeTPCROI:PHYSCRATEDATATPCWE"
physics.producers.decon2droiWW.wcls_main.params.raw_input_label: "MCDecodeTPCROI:PHYSCRATEDATATPCWW"

## Need overrides for the purity monitor
physics.analyzers.purityinfoana0.SelectEvents: [ path ]
physics.analyzers.purityinfoana1.SelectEvents: [ path ]
physics.producers.purityana0.RawModuleLabel: ["MCDecodeTPCROI:PHYSCRATEDATATPCWW","MCDecodeTPCROI:PHYSCRATEDATATPCWE","MCDecodeTPCROI:PHYSCRATEDATATPCEW","MCDecodeTPCROI:PHYSCRATEDATATPCEE"]
physics.producers.purityana1.RawModuleLabel: ["MCDecodeTPCROI:PHYSCRATEDATATPCWW","MCDecodeTPCROI:PHYSCRATEDATATPCWE","MCDecodeTPCROI:PHYSCRATEDATATPCEW","MCDecodeTPCROI:PHYSCRATEDATATPCEE"]

# restore legacy G4 labels
physics.producers.mcophit.SimPhotonsProducer: "shifted"
2 changes: 1 addition & 1 deletion fcl/reco/Stage1/mc/stage1_run2_1d_icarus_MC.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ physics.reco: [
]

physics.producers.cluster3DCryoW.Hit3DBuilderAlg.HitFinderTagVec: ["gaushit1dTPCWW", "gaushit1dTPCWE"]
physics.producers.cluster3DCryoE.Hit3DBuilderAlg.HitFinderTagVec: ["gaushit1dTPCEW", "gaushit1dTPCEE"]
physics.producers.cluster3DCryoE.Hit3DBuilderAlg.HitFinderTagVec: ["gaushit1dTPCEW", "gaushit1dTPCEE"]
12 changes: 12 additions & 0 deletions fcl/reco/Stage1/mc/stage1_run2_1d_icarus_noyzsim_MC.fcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@

#include "stage1_run2_1d_icarus_MC.fcl"

# Tentative fix for mcreco
physics.producers.mcreco.SimChannelLabel: "shifted"

# Tentative fix for caloskim
physics.analyzers.caloskimW.SimChannelproducer: "daq:simpleSC"
physics.analyzers.caloskimE.SimChannelproducer: "daq:simpleSC"

# Tentative fix for backtracker
services.BackTrackerService.BackTracker.SimChannelModuleLabel: "daq:simpleSC"
12 changes: 12 additions & 0 deletions fcl/reco/Stage1/mc/stage1_run2_icarus_noyzsim_MC.fcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@

#include "stage1_run2_icarus_MC.fcl"

# Tentative fix for mcreco
physics.producers.mcreco.SimChannelLabel: "shifted"

# Tentative fix for caloskim
physics.analyzers.caloskimW.SimChannelproducer: "daq:simpleSC"
physics.analyzers.caloskimE.SimChannelproducer: "daq:simpleSC"

# Tentative fix for backtracker
services.BackTrackerService.BackTracker.SimChannelModuleLabel: "daq:simpleSC"
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
## File: stage1_run2_icarus_newhitfinder_width_MC.fcl
## Author: Mattia Sotgia (msotgia@ge.infn.it)
##
## This FHiCL introduces the re-tuned hit-finder values and uses the hit widths in Pandora algorithms
## Pulse trains are off.
##


#include "stage1_run2_icarus_noyzsim_MC.fcl"


# Disable pulse trains (setting them all to 1)
physics.producers.gaushit2dTPCEE.LongMaxHits: [1, 1, 1]
physics.producers.gaushit2dTPCEW.LongMaxHits: [1, 1, 1]
physics.producers.gaushit2dTPCWE.LongMaxHits: [1, 1, 1]
physics.producers.gaushit2dTPCWW.LongMaxHits: [1, 1, 1]

# Allow for more Gaussians
physics.producers.gaushit2dTPCEE.MaxMultiHit: 30
physics.producers.gaushit2dTPCEW.MaxMultiHit: 30
physics.producers.gaushit2dTPCWE.MaxMultiHit: 30
physics.producers.gaushit2dTPCWW.MaxMultiHit: 30

# Way looser Chi2 requirement
physics.producers.gaushit2dTPCEE.Chi2NDF: 2000
physics.producers.gaushit2dTPCEW.Chi2NDF: 2000
physics.producers.gaushit2dTPCWE.Chi2NDF: 2000
physics.producers.gaushit2dTPCWW.Chi2NDF: 2000

# Re-fitting strategy
# Anecdotally, this did not help
# physics.producers.gaushit2dTPCEE.TryNplus1Fits: true
# physics.producers.gaushit2dTPCEW.TryNplus1Fits: true
# physics.producers.gaushit2dTPCWE.TryNplus1Fits: true
# physics.producers.gaushit2dTPCWW.TryNplus1Fits: true

# Pandora settings new
physics.producers.pandoraGausCryoE.ConfigFile: "PandoraSettings_Master_ICARUS_NeutrinoHitWidth.xml"
physics.producers.pandoraGausCryoE.UseHitWidths: true
physics.producers.pandoraGausCryoW.ConfigFile: "PandoraSettings_Master_ICARUS_NeutrinoHitWidth.xml"
physics.producers.pandoraGausCryoW.UseHitWidths: true
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
## File: stage1_run2_icarus_newhitfinder_width_intermediatept_MC.fcl
## Author: Mattia Sotgia (msotgia@ge.infn.it)
##
## This FHiCL introduces the re-tuned hit-finder values and uses the hit widths in Pandora algorithms
## Pulse trains are intermediate = 10.
##


#include "stage1_run2_icarus_noyzsim_newhitfinder_width_MC.fcl"


# Intermediate pulse train settings
physics.producers.gaushit2dTPCEE.LongMaxHits: [10, 10, 10]
physics.producers.gaushit2dTPCEW.LongMaxHits: [10, 10, 10]
physics.producers.gaushit2dTPCWE.LongMaxHits: [10, 10, 10]
physics.producers.gaushit2dTPCWW.LongMaxHits: [10, 10, 10]
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
## File: stage1_run2_icarus_newhitfinder_width_slicing_MC.fcl
## Author: Mattia Sotgia (msotgia@ge.infn.it)
##
## This FHiCL introduces the re-tuned hit-finder values and uses the hit widths in Pandora algorithms (also in slice creation)
## Pulse trains are off.
##


#include "stage1_run2_icarus_noyzsim_newhitfinder_width_MC.fcl"

# Pandora settings new
physics.producers.pandoraGausCryoE.ConfigFile: "PandoraSettings_Master_ICARUS_NeutrinoHitWidth_SlicingHitWidth.xml"
physics.producers.pandoraGausCryoW.ConfigFile: "PandoraSettings_Master_ICARUS_NeutrinoHitWidth_SlicingHitWidth.xml"
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
## File: stage1_run2_icarus_newhitfinder_width_slicing_intermediatept_MC.fcl
## Author: Mattia Sotgia (msotgia@ge.infn.it)
##
## This FHiCL introduces the re-tuned hit-finder values and uses the hit widths in Pandora algorithms (also in slice creation)
## Pulse trains are intermediate = 10.
##


#include "stage1_run2_icarus_noyzsim_newhitfinder_width_intermediatept_MC.fcl"

# Pandora settings new
physics.producers.pandoraGausCryoE.ConfigFile: "PandoraSettings_Master_ICARUS_NeutrinoHitWidth_SlicingHitWidth.xml"
physics.producers.pandoraGausCryoW.ConfigFile: "PandoraSettings_Master_ICARUS_NeutrinoHitWidth_SlicingHitWidth.xml"
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<pandora>
<!-- GLOBAL SETTINGS -->
<IsMonitoringEnabled>false</IsMonitoringEnabled>
<ShouldDisplayAlgorithmInfo>false</ShouldDisplayAlgorithmInfo>
<SingleHitTypeClusteringMode>true</SingleHitTypeClusteringMode>

<LArTransformationPlugin>
<MaxAngularDiscrepancyW>1000.</MaxAngularDiscrepancyW>
</LArTransformationPlugin>

<!-- ALGORITHM SETTINGS -->
<algorithm type = "LArPreProcessing">
<OutputCaloHitListNameU>CaloHitListU</OutputCaloHitListNameU>
<OutputCaloHitListNameV>CaloHitListV</OutputCaloHitListNameV>
<OutputCaloHitListNameW>CaloHitListW</OutputCaloHitListNameW>
<FilteredCaloHitListName>CaloHitList2D</FilteredCaloHitListName>
<CurrentCaloHitListReplacement>CaloHitList2D</CurrentCaloHitListReplacement>
</algorithm>
<algorithm type = "LArVisualMonitoring">
<CaloHitListNames>CaloHitListU CaloHitListV CaloHitListW</CaloHitListNames>
<ShowDetector>true</ShowDetector>
</algorithm>

<algorithm type = "LArMaster">
<CRSettingsFile>PandoraSettings_Cosmic_Standard.xml</CRSettingsFile>
<NuSettingsFile>PandoraSettings_Neutrino_ICARUS_HitWidth.xml</NuSettingsFile>
<SlicingSettingsFile>PandoraSettings_Slicing_Standard.xml</SlicingSettingsFile>
<StitchingTools>
<tool type = "LArStitchingCosmicRayMerging"><ThreeDStitchingMode>true</ThreeDStitchingMode></tool>
<tool type = "LArStitchingCosmicRayMerging"><ThreeDStitchingMode>false</ThreeDStitchingMode></tool>
</StitchingTools>
<CosmicRayTaggingTools>
<tool type = "LArCosmicRayTagging">
<InTimeMaxX0>2.0</InTimeMaxX0>
<CutMode>cautious</CutMode>
</tool>
</CosmicRayTaggingTools>
<SliceIdTools>
<tool type = "LArBdtNeutrinoId">
<MvaFileName>PandoraBdt_v08_33_00_SBND.xml</MvaFileName>
<MvaName>NeutrinoId</MvaName>
<MinimumNeutrinoProbability>0</MinimumNeutrinoProbability>
<MaximumNeutrinos>999</MaximumNeutrinos>
<PersistFeatures>true</PersistFeatures>
</tool>
</SliceIdTools>
<InputHitListName>Input</InputHitListName>
<InputMCParticleListName>Input</InputMCParticleListName>
<PassMCParticlesToWorkerInstances>false</PassMCParticlesToWorkerInstances>
<RecreatedPfoListName>RecreatedPfos</RecreatedPfoListName>
<RecreatedClusterListName>RecreatedClusters</RecreatedClusterListName>
<RecreatedVertexListName>RecreatedVertices</RecreatedVertexListName>
<VisualizeOverallRecoStatus>false</VisualizeOverallRecoStatus>
<InTimeMaxX0>2.0</InTimeMaxX0>
</algorithm>

<algorithm type = "LArVisualMonitoring">
<ShowCurrentPfos>true</ShowCurrentPfos>
<ShowDetector>true</ShowDetector>
</algorithm>
</pandora>
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<pandora>
<!-- GLOBAL SETTINGS -->
<IsMonitoringEnabled>false</IsMonitoringEnabled>
<ShouldDisplayAlgorithmInfo>false</ShouldDisplayAlgorithmInfo>
<SingleHitTypeClusteringMode>true</SingleHitTypeClusteringMode>

<LArTransformationPlugin>
<MaxAngularDiscrepancyW>1000.</MaxAngularDiscrepancyW>
</LArTransformationPlugin>

<!-- ALGORITHM SETTINGS -->
<algorithm type = "LArPreProcessing">
<OutputCaloHitListNameU>CaloHitListU</OutputCaloHitListNameU>
<OutputCaloHitListNameV>CaloHitListV</OutputCaloHitListNameV>
<OutputCaloHitListNameW>CaloHitListW</OutputCaloHitListNameW>
<FilteredCaloHitListName>CaloHitList2D</FilteredCaloHitListName>
<CurrentCaloHitListReplacement>CaloHitList2D</CurrentCaloHitListReplacement>
</algorithm>
<algorithm type = "LArVisualMonitoring">
<CaloHitListNames>CaloHitListU CaloHitListV CaloHitListW</CaloHitListNames>
<ShowDetector>true</ShowDetector>
</algorithm>

<algorithm type = "LArMaster">
<CRSettingsFile>PandoraSettings_Cosmic_Standard.xml</CRSettingsFile>
<NuSettingsFile>PandoraSettings_Neutrino_ICARUS_HitWidth.xml</NuSettingsFile>
<SlicingSettingsFile>PandoraSettings_Slicing_HitWidth.xml</SlicingSettingsFile>
<StitchingTools>
<tool type = "LArStitchingCosmicRayMerging"><ThreeDStitchingMode>true</ThreeDStitchingMode></tool>
<tool type = "LArStitchingCosmicRayMerging"><ThreeDStitchingMode>false</ThreeDStitchingMode></tool>
</StitchingTools>
<CosmicRayTaggingTools>
<tool type = "LArCosmicRayTagging">
<InTimeMaxX0>2.0</InTimeMaxX0>
<CutMode>cautious</CutMode>
</tool>
</CosmicRayTaggingTools>
<SliceIdTools>
<tool type = "LArBdtNeutrinoId">
<MvaFileName>PandoraBdt_v08_33_00_SBND.xml</MvaFileName>
<MvaName>NeutrinoId</MvaName>
<MinimumNeutrinoProbability>0</MinimumNeutrinoProbability>
<MaximumNeutrinos>999</MaximumNeutrinos>
<PersistFeatures>true</PersistFeatures>
</tool>
</SliceIdTools>
<InputHitListName>Input</InputHitListName>
<InputMCParticleListName>Input</InputMCParticleListName>
<PassMCParticlesToWorkerInstances>false</PassMCParticlesToWorkerInstances>
<RecreatedPfoListName>RecreatedPfos</RecreatedPfoListName>
<RecreatedClusterListName>RecreatedClusters</RecreatedClusterListName>
<RecreatedVertexListName>RecreatedVertices</RecreatedVertexListName>
<VisualizeOverallRecoStatus>false</VisualizeOverallRecoStatus>
<InTimeMaxX0>2.0</InTimeMaxX0>
</algorithm>

<algorithm type = "LArVisualMonitoring">
<ShowCurrentPfos>true</ShowCurrentPfos>
<ShowDetector>true</ShowDetector>
</algorithm>
</pandora>
Loading