Skip to content
Open
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: 3 additions & 0 deletions duneana/MCParticleAna/fcl/MCParticleAna.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ BEGIN_PROLOG
solar_nu_ana_vd_1x8x14_optimistic: @local::solar_nu_ana_vd_1x8x14
solar_nu_ana_vd_1x8x14_optimistic.ParticleLabelVector: @local::generator_dunevd10kt_1x8x14_3view_30deg_optimistic

solar_nu_ana_vd_1x8x14_shielded: @local::solar_nu_ana_vd_1x8x14
solar_nu_ana_vd_1x8x14_shielded.ParticleLabelVector: @local::generator_dunevd10kt_1x8x14_3view_30deg_shielded

solar_nu_ana_vd_1x8x6: @local::solar_nu_ana_vd_1x8x14
solar_nu_ana_vd_1x8x6.ParticleLabelVector: @local::generator_dunevd10kt_1x8x6_3view_30deg

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# mcparticle_ana_radiological_decay0_dunevd10kt_1x8x14_3view_30deg.fcl
#
# Run MCParticleAna on the output of a standard gen file for DUNE FD

#include "MCParticleAna.fcl"
#include "services_dune.fcl"
#include "tools_dune.fcl"

process_name: MCParticleAna

services:
{
@table::dunefd_services
TFileService: { fileName: "mcparticle_ana_radiological_decay0_dunevd10kt_1x8x14_3view_30deg_shielded_hist.root" }
TimeTracker: {}
MemoryTracker: {} # default is one
RandomNumberGenerator: {} # ART native random number generator
FileCatalogMetadata: @local::art_file_catalog_mc
@table::dunefdvd_1x8x14_3view_30deg_services
}

physics:
{
analyzers:
{
mcparticleana: @local::solar_nu_ana_vd_1x8x14_shielded
}
ana: [ mcparticleana ]
end_paths: [ ana ]
}

source:
{
module_type: RootInput
maxEvents: -1 # Number of events to create
}

services.message.destinations.LogStandardOut.threshold: "INFO"
services.message.destinations.LogStandardOut.type: "cout"
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#include "mcparticle_ana_all_radiological_decay0_dunevd10kt_1x8x14_3view_30deg_shielded.fcl"

physics.analyzers.mcparticleana.MCParticlePDG: 1000020040 # For alpha particles
physics.analyzers.mcparticleana.MCParticleMinKE: 4. # MeV
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#include "mcparticle_ana_all_radiological_decay0_dunevd10kt_1x8x14_3view_30deg_shielded.fcl"

physics.analyzers.mcparticleana.MCParticlePDG: 11 # For electron particles
physics.analyzers.mcparticleana.MCParticleMinKE: 4. # MeV
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#include "mcparticle_ana_all_radiological_decay0_dunevd10kt_1x8x14_3view_30deg_shielded.fcl"

physics.analyzers.mcparticleana.MCParticlePDG: 22 # For gamma particles
physics.analyzers.mcparticleana.MCParticleMinKE: 4. # MeV
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#include "mcparticle_ana_all_radiological_decay0_dunevd10kt_1x8x14_3view_30deg_shielded.fcl"

physics.analyzers.mcparticleana.MCParticlePDG: 2112 # For neutron particles
2,031 changes: 1,075 additions & 956 deletions duneana/SolarNuAna/SolarNuAna_module.cc

Large diffs are not rendered by default.

106 changes: 56 additions & 50 deletions duneana/SolarNuAna/fcl/SolarNuAna.fcl
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#include "LightMapData.fcl"
#include "generator_labels.fcl"
#include "SolarOpFlash.fcl"

Expand All @@ -7,12 +8,14 @@ BEGIN_PROLOG
{
module_type: "SolarNuAna"
GEANT4Label: "largeant" # The label for the process which ran GEANT4
OpWaveformLabel: "opdec" # The label for the process which ran the OpDetWaveform
HitLabel: "hitfd" # String for the process that made the reco hits
ClusterLabel: "planecluster" # The label for the process which ran the "perplane" hit clustering
SolarClusterLabel: "solarcluster" # The label for the process which ran the solar clustering
TrackLabel: "pmtracktc" # The label for the process which ran the PMTrack
OpHitLabel: "ophitspe" # The label for the process which ran the OpHit
OpFlashLabel: "solarflash" # The label for the process which ran the OpFlash
OpHitTime2us: false # If true, the OpHit time is in [ticks] and will be converted to [us].
OpFlashTime2us: false # If true, the OpFlash time is in [ticks] and will be converted to [us]. For other producers than "solarflash".
OpFlashTimeOffset: 18.1 # Time offset to be applied to the OpFlash time in [us] units.

Expand All @@ -24,14 +27,14 @@ BEGIN_PROLOG
BackgroundLabelVector: []

#====================================================================================#
ClusterChargeVariable: "Integral" # Charge variable to use for cluster matching: "Integral" or "SummedADC".
OpHitTimeVariable: "PeakTime" # Time variable to use for OpHit selection: "PeakTime" or "StartTime".
XACathodeX: 0 # X position of the VD cathode XAs in [cm].
XAMembraneY: 0 # Y position of the VD membrane XAs in [cm].
XAFinalCapZ: 0 # Z position of the VD final cap XAs in [cm].
XAStartCapZ: 0 # Z position of the VD start cap XAs in [cm].
ClusterChargeVariable: "Integral" # Charge variable to use for cluster matching: "Integral" or "SummedADC".
OpHitTimeVariable: "PeakTime" # Time variable to use for OpHit selection: "PeakTime" or "StartTime".
XACathodeX: 0 # X position of the VD cathode XAs in [cm].
XAMembraneY: 0 # Y position of the VD membrane XAs in [cm].
XAFinalCapZ: 0 # Z position of the VD final cap XAs in [cm].
XAStartCapZ: 0 # Z position of the VD start cap XAs in [cm].
ClusterAlgoTime: 12.5 # Time window to look for plane clusters in [us] units.
ClusterAlgoAdjChannel: 3 # Number of adjacent channels to look for plane clusters.
ClusterAlgoAdjChannel: 3 # Number of adjacent channels to look for plane clusters.

GenerateSolarCluster: true # Generate SolarClusters from here defined matching cireteria
ClusterMatchNHit: 2 # NHit fraction to match clusters. abs(NHitsCol - NHitsInd) / NHitsCol < ClusterMatchNHit.
Expand All @@ -53,40 +56,44 @@ BEGIN_PROLOG

GenerateAdjOpFlash: true # Generate OpFlashes.
OpFlashAlgoNHit: 0 # Min number of hits to consider a flash. Change to 3 for bkg run to avoid huge output.
OpFlashAlgoMinTime: 0.008 # Negative time window to look for adj. OpHits in [us] units.
OpFlashAlgoMaxTime: 0.016 # Positive time window to look for adj. OpHits in [us] units.
OpFlashAlgoRad: 300 # Distance to look for adj. OpHits in [cm] units.
OpFlashAlgoPE: 1.5 # PE threshold to look for adj. OpHits.
OpFlashAlgoTriggerPE: 1.5 # PE threshold to trigger an OpFlash.
OpFlashAlgoMinTime: 0.16 # Negative time window to look for adj. OpHits in [us] units.
OpFlashAlgoMaxTime: 0.32 # Positive time window to look for adj. OpHits in [us] units.
OpFlashAlgoWeightedTime: true # If true, use weighted time for OpFlash time calculation, otherwise use flash trigger time.
OpFlashAlgoRad: 600 # Distance to look for adj. OpHits in [cm] units.
OpFlashAlgoPE: 0.0 # PE threshold to look for adj. OpHits.
OpFlashAlgoTriggerPE: 0.0 # PE threshold to trigger an OpFlash.
OpFlashAlgoHotVertexThld: 0.3 # Relative threshold to consider a hit as hot for opflash vertex determination [0-1].
OpFlashAlgoHitDuplicates: true # If true, allow hits to be used in multiple flashes.

AdjOpFlashX: 140. # X distance to search for adj. OpFlashes reconstructed in [cm] units.
AdjOpFlashY: 140. # Y distance to search for adj. OpFlashes reconstructed in [cm] units.
AdjOpFlashZ: 140. # Z distance to search for adj. OpFlashes reconstructed in [cm] units.
AdjOpFlashMinNHitCut: 3 # Cut on the minimum number of OpHits in the OpFlash.
AdjOpFlashMembraneProjection: true # If true, the OpFlash matching is projected on the membrane planes for VD.
AdjOpFlashEndCapProjection: false # If true, the OpFlash matching is projected on the end cap planes for VD.
AdjOpFlashMaxPERatioCut: 1.00 # Cut on the maximum OpHit PE contribution to the total OpFlash PE.
AdjOpFlashMinPECut: 0.0 # Cut on the minimum OpHit PE.
AdjOpFlashMinPEAttenuation: 1.0 # Asymptotic growth attenuation on the minimum PE cut after a full drift length.
AdjOpFlashMinPEAttenuate: "flat" # Type of attenuation to apply to the minimum PE cut: "linear" or "asymptotic".
AdjOpFlashMinPEAttenuationStrength: 10 # For "asymptotic" attenuation. Strength expressed as powers of 10.
AdjOpFlashMinPELightMap: [
["Amplitude", [-1.1011e-7, 5.0670e-4, 1.6480e0]],
["Attenuation", [1.7061e-7, -7.2303e-4, 1.0623e0]],
["Correction", [3.1135e-7, -1.3050e-3, 7.6113e-1]]
] # Quadratic fit parameters for attenuation correction based in logarithm light map.
FlashMatchByResidual: false # Match flashes by residual. Alternative is to match by MaxFlashPE.

AdjOpFlashX: 140. # X distance to search for adj. OpFlashes reconstructed in [cm] units.
AdjOpFlashY: 140. # Y distance to search for adj. OpFlashes reconstructed in [cm] units.
AdjOpFlashZ: 140. # Z distance to search for adj. OpFlashes reconstructed in [cm] units.
AdjOpFlashMinNHitCut: 0 # Cut on the minimum number of OpHits in the OpFlash.
AdjOpFlashMembraneProjection: true # If true, the OpFlash matching is projected on the membrane planes for VD.
AdjOpFlashEndCapProjection: true # If true, the OpFlash matching is projected on the end cap planes for VD.
AdjOpFlashMaxPERatioCut: 1.0 # Cut on the maximum OpHit PE contribution to the total OpFlash PE.
AdjOpFlashMinPECut: 0.0 # Cut on the minimum OpHit PE.
AdjOpFlashMaxPECut: 1e9 # Cut on the maximum OpHit PE.
AdjOpFlashMinPEAttenuation: 0.0 # Asymptotic growth attenuation on the minimum PE cut after a full drift length.
AdjOpFlashMaxPEAttenuation: 0.0 # Asymptotic growth attenuation on the maximum PE cut after a full drift length.
AdjOpFlashMinPEAttenuate: "flat" # Type of attenuation to apply to the minimum PE cut: "linear" or "asymptotic".
AdjOpFlashMaxPEAttenuate: "flat" # Type of attenuation to apply to the maximum PE cut: "linear" or "asymptotic".
AdjOpFlashMinPEAttenuationStrength: 0 # For "asymptotic" attenuation. Strength expressed as powers of 10.
AdjOpFlashMaxPEAttenuationStrength: 0 # For "asymptotic" attenuation. Strength expressed as powers of 10.
AdjOpFlashMinPELightMap: @local::light_map_data_dune10kt_1x2x6_AdjOpFlashMinPELightMap
AdjOpFlashMaxPELightMap: @local::light_map_data_dune10kt_1x2x6_AdjOpFlashMaxPELightMap
AdjOpFlashPELightMap: @local::light_map_data_dune10kt_1x2x6_AdjOpFlashPELightMap
FlashMatchBy: "maximum" # Match flashes by residual. Alternative is to match by MaxFlashPE.
FlashMatchByPELightMapExponent: 2 # Exponent for PE light map matching.

SaveSignalDaughters: false # Save the daughters of the signal particles.
SaveSignalEDep: false # Save the energy deposition of the marley energy deposition in the LAr.
SaveSignalOpHits: false # Save the OpHits that are associated with the signal.
SaveOpFlashInfo: false # Save the AdjOpFlash information for each preselection cluster.
SaveAdjOpFlashInfo: true # Save the AdjOpFlash information for each preselection cluster.
SaveAdjOpFlashInfo: true # Save the AdjOpFlash information for each preselection cluster.
SaveTrackInfo: false # Save the MatchedTrack information for each preselection cluster.

TestLatestFeatures: true # If true, the latest features are used.
TestLatestFeatures: true # If true, the latest features are used.
}

legacy_solar_nu_ana_hd_v2: @local::solar_nu_ana_hd
Expand All @@ -102,24 +109,23 @@ BEGIN_PROLOG
solar_nu_ana_hd_lateralAPA.BackgroundLabelVector: @local::generator_dune10kt_1x2x6_lateralAPA

solar_nu_ana_vd: @local::solar_nu_ana_hd_centralAPA
solar_nu_ana_vd.HitLabel: "gaushit"
solar_nu_ana_vd.OpHitLabel: "ophit10ppm"
solar_nu_ana_vd.OpFlashLabel: "solarflash"
solar_nu_ana_vd.OpFlashTimeOffset: 0
solar_nu_ana_vd.BackgroundLabelVector: @local::generator_dunevd10kt_1x8x14_3view_30deg
solar_nu_ana_vd.OpHitTimeVariable: "StartTime"
solar_nu_ana_vd.XACathodeX: -327.5
solar_nu_ana_vd.XAMembraneY: 743.302
solar_nu_ana_vd.XAFinalCapZ: 2188.38
solar_nu_ana_vd.XAStartCapZ: -96.5
solar_nu_ana_vd.OpFlashAlgoMinTime: 0.03
solar_nu_ana_vd.OpFlashAlgoMaxTime: 0.06
solar_nu_ana_vd.OpFlashAlgoRad: 600.
solar_nu_ana_vd.AdjOpFlashMinPELightMap: [
["Amplitude", [1.7578e-7, -4.9589e-4, 1.2519e0]],
["Attenuation", [4.9682e-7, -2.5242e-3, 1.2541e0]],
["Correction", [1.0516e-7, -1.1637e-3, 1.5118e0]]
]
solar_nu_ana_vd.HitLabel: "gaushit"
solar_nu_ana_vd.OpWaveformLabel: "opdigi10ppm"
solar_nu_ana_vd.OpHitLabel: "ophit10ppm"
solar_nu_ana_vd.OpFlashLabel: "solarflash"
solar_nu_ana_vd.OpFlashTimeOffset: 0.0
solar_nu_ana_vd.BackgroundLabelVector: @local::generator_dunevd10kt_1x8x14_3view_30deg
solar_nu_ana_vd.OpHitTimeVariable: "StartTime"
solar_nu_ana_vd.XACathodeX: -327.5
solar_nu_ana_vd.XAMembraneY: 743.302
solar_nu_ana_vd.XAFinalCapZ: 2188.38
solar_nu_ana_vd.XAStartCapZ: -96.5
solar_nu_ana_vd.OpFlashAlgoMinTime: 1.00
solar_nu_ana_vd.OpFlashAlgoMaxTime: 1.60
solar_nu_ana_vd.OpFlashAlgoRad: 600.0
solar_nu_ana_vd.AdjOpFlashMinPELightMap: @local::light_map_data_dunevd10kt_1x8x14_3view_30deg_AdjOpFlashMinPELightMap
solar_nu_ana_vd.AdjOpFlashMaxPELightMap: @local::light_map_data_dunevd10kt_1x8x14_3view_30deg_AdjOpFlashMaxPELightMap
solar_nu_ana_vd.AdjOpFlashPELightMap: @local::light_map_data_dunevd10kt_1x8x14_3view_30deg_AdjOpFlashPELightMap

solar_nu_ana_vd_1x8x14_optimistic: @local::solar_nu_ana_vd
solar_nu_ana_vd_1x8x14_optimistic.BackgroundLabelVector: @local::generator_dunevd10kt_1x8x14_3view_30deg_optimistic
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
physics.analyzers.solarnuana.GenerateAdjOpFlash: true
physics.analyzers.solarnuana.SaveOpFlashInfo: true
physics.analyzers.solarnuana.SaveAdjOpFlashInfo: true
physics.analyzers.solarnuana.OpFlashAlgoPE: 1.5
physics.analyzers.solarnuana.OpFlashAlgoTriggerPE: 1.5
physics.analyzers.solarnuana.AdjOpFlashMinNHitCut: 3
physics.analyzers.solarnuana.AdjOpFlashX: 100.
physics.analyzers.solarnuana.AdjOpFlashY: 100.
physics.analyzers.solarnuana.AdjOpFlashZ: 100.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
physics.analyzers.solarnuana.GenerateAdjOpFlash: true
physics.analyzers.solarnuana.SaveOpFlashInfo: true
physics.analyzers.solarnuana.SaveAdjOpFlashInfo: true
physics.analyzers.solarnuana.OpFlashAlgoPE: 1.5
physics.analyzers.solarnuana.OpFlashAlgoTriggerPE: 1.5
physics.analyzers.solarnuana.AdjOpFlashMinNHitCut: 3
physics.analyzers.solarnuana.AdjOpFlashX: 100.
physics.analyzers.solarnuana.AdjOpFlashY: 100.
physics.analyzers.solarnuana.AdjOpFlashZ: 100.
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
# Specific configuration for investigating energy depositions of signal events.
# Run SolarNuAna on the output of a standard reco workflow for DUNE FD

#include "solar_ana_radiological_decay0_dune10kt_1x2x6_centralAPA.fcl"
#include "solar_ana_marley_flash_radiological_decay0_dune10kt_1x2x6_centralAPA.fcl"

physics.analyzers.solarnuana.SaveOpFlashInfo: false

physics.analyzers.solarnuana.SaveSignalDaughters: true
physics.analyzers.solarnuana.GenerateAdjOpFlash: true
physics.analyzers.solarnuana.SaveAdjOpFlashInfo: true
physics.analyzers.solarnuana.AdjOpFlashX: 100.
physics.analyzers.solarnuana.AdjOpFlashY: 100.
physics.analyzers.solarnuana.AdjOpFlashZ: 100.
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
# Specific configuration for investigating energy depositions of signal events.
# Run SolarNuAna on the output of a standard reco workflow for DUNE FD

#include "solar_ana_radiological_decay0_dune10kt_1x2x6_lateralAPA.fcl"
#include "solar_ana_marley_flash_radiological_decay0_dune10kt_1x2x6_lateralAPA.fcl"

physics.analyzers.solarnuana.SaveSignalDaughters: true
physics.analyzers.solarnuana.GenerateAdjOpFlash: true
physics.analyzers.solarnuana.SaveAdjOpFlashInfo: true
physics.analyzers.solarnuana.AdjOpFlashX: 100.
physics.analyzers.solarnuana.AdjOpFlashY: 100.
physics.analyzers.solarnuana.AdjOpFlashZ: 100.
physics.analyzers.solarnuana.SaveOpFlashInfo: false
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,7 @@

#include "solar_ana_dune10kt_1x2x6.fcl"

physics.analyzers.solarnuana: @local::solar_nu_ana_hd_centralAPA
physics.analyzers.solarnuana: @local::solar_nu_ana_hd_centralAPA
physics.analyzers.solarnuana.AdjOpFlashMinPEAttenuate: "light_map"
physics.analyzers.solarnuana.AdjOpFlashMaxPEAttenuate: "light_map"
physics.analyzers.solarnuana.FlashMatchBy: "light_map"
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,7 @@

#include "solar_ana_dune10kt_1x2x6.fcl"

physics.analyzers.solarnuana: @local::solar_nu_ana_hd_lateralAPA
physics.analyzers.solarnuana: @local::solar_nu_ana_hd_lateralAPA
physics.analyzers.solarnuana.AdjOpFlashMinPEAttenuate: "light_map"
physics.analyzers.solarnuana.AdjOpFlashMaxPEAttenuate: "light_map"
physics.analyzers.solarnuana.FlashMatchBy: "maximum"
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Specific configuration for investigating signal events.
# Run SolarNuAna on the output of a standard reco workflow for DUNE FD

#include "solar_ana_single_flash_radiological_decay0_dune10kt_1x2x6_centralAPA.fcl"

physics.analyzers.solarnuana.SaveOpFlashInfo: false
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Specific configuration for investigating signal events.
# Run SolarNuAna on the output of a standard reco workflow for DUNE FD

#include "solar_ana_single_flash_radiological_decay0_dune10kt_1x2x6_lateralAPA.fcl"

physics.analyzers.solarnuana.SaveOpFlashInfo: false
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@
#include "solar_ana_adjflash_radiological_decay0_dunevd10kt_1x8x14_3view_30deg.fcl"

physics.analyzers.solarnuana.AdjOpFlashMembraneProjection: true
physics.analyzers.solarnuana.AdjOpFlashEndCapProjection: false
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@
#include "solar_ana_adjflash_radiological_decay0_dunevd10kt_1x8x14_3view_30deg_shielded.fcl"

physics.analyzers.solarnuana.AdjOpFlashMembraneProjection: true
physics.analyzers.solarnuana.AdjOpFlashEndCapProjection: false
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,6 @@

physics.analyzers.solarnuana.GenerateAdjOpFlash: true
physics.analyzers.solarnuana.SaveOpFlashInfo: true
physics.analyzers.solarnuana.SaveAdjOpFlashInfo: true
physics.analyzers.solarnuana.SaveAdjOpFlashInfo: true
physics.analyzers.solarnuana.OpFlashAlgoPE: 1.5
physics.analyzers.solarnuana.OpFlashAlgoTriggerPE: 1.5
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@
physics.analyzers.solarnuana.GenerateAdjOpFlash: true
physics.analyzers.solarnuana.SaveOpFlashInfo: true
physics.analyzers.solarnuana.SaveAdjOpFlashInfo: true
physics.analyzers.solarnuana.OpFlashAlgoPE: 1.5
physics.analyzers.solarnuana.OpFlashAlgoTriggerPE: 1.5
physics.analyzers.solarnuana.AdjOpFlashMembraneProjection: false
physics.analyzers.solarnuana.AdjOpFlashEndCapProjection: false
physics.analyzers.solarnuana.AdjOpFlashMinNHitCut: 6
physics.analyzers.solarnuana.AdjOpFlashX: 100.
physics.analyzers.solarnuana.AdjOpFlashY: 100.
Expand Down
Loading