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
7 changes: 7 additions & 0 deletions fcl/reco/Definitions/stage0_icarus_defs.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#include "crt_decoderdefs_icarus.fcl"
#include "crthitproducer.fcl"
#include "wcls-decode-to-sig-base.fcl"
#include "icarus_FilterDataIntegrity.fcl"
#include "icarus_FilterCRTPMTMatching.fcl"

BEGIN_PROLOG
Expand Down Expand Up @@ -154,6 +155,8 @@ icarus_stage0_filters:
TriggerType: "Unknown"
}

filterdataintegrity: @local::icarus_FilterDataIntegrity

crtpmtmatchingfilter: @local::icarus_FilterCRTPMTMatching
}

Expand Down Expand Up @@ -261,20 +264,23 @@ icarus_stage0_CRT: [
]

icarus_stage0_data: [
filterdataintegrity,
@sequence::icarus_stage0_PMT,
@sequence::icarus_stage0_CRT,
daqTPCROI,
@sequence::icarus_stage0_multiTPC
]

icarus_stage0_2d_data: [
filterdataintegrity,
@sequence::icarus_stage0_PMT,
@sequence::icarus_stage0_CRT,
daqTPCROI,
@sequence::icarus_stage0_2d_multiTPC
]

icarus_stage0_data_crtpmtfilter: [
filterdataintegrity,
@sequence::icarus_stage0_PMT,
@sequence::icarus_stage0_CRT,
crtpmtmatchingfilter,
Expand All @@ -283,6 +289,7 @@ icarus_stage0_data_crtpmtfilter: [
]

icarus_stage0_2d_data_crtpmtfilter: [
filterdataintegrity,
@sequence::icarus_stage0_PMT,
@sequence::icarus_stage0_CRT,
crtpmtmatchingfilter,
Expand Down
8 changes: 8 additions & 0 deletions fcl/reco/Definitions/stage0_icarus_defs_run1.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#include "crt_decoderdefs_icarus.fcl"
#include "crthitproducer.fcl"
#include "wcls-decode-to-sig-base.fcl"
#include "icarus_FilterDataIntegrity.fcl"
#include "icarus_FilterCRTPMTMatching.fcl"

BEGIN_PROLOG
Expand Down Expand Up @@ -160,6 +161,9 @@ icarus_stage0_filters:
TriggerDataLabel: "daqTrigger"
TriggerType: "Unknown"
}

filterdataintegrity: @local::icarus_FilterDataIntegrity

crtpmtmatchingfilter: @local::icarus_FilterCRTPMTMatching
}

Expand Down Expand Up @@ -265,13 +269,15 @@ icarus_stage0_CRT: [
]

icarus_stage0_data: [
filterdataintegrity,
@sequence::icarus_stage0_PMT,
@sequence::icarus_stage0_CRT,
daqTPCROI,
@sequence::icarus_stage0_multiTPC
]

icarus_stage0_data_crtpmtfilter: [
filterdataintegrity,
@sequence::icarus_stage0_PMT,
@sequence::icarus_stage0_CRT,
crtpmtmatchingfilter,
Expand All @@ -280,13 +286,15 @@ icarus_stage0_data_crtpmtfilter: [
]

icarus_stage0_2d_data: [
filterdataintegrity,
@sequence::icarus_stage0_PMT,
@sequence::icarus_stage0_CRT,
daqTPCROI,
@sequence::icarus_stage0_2d_multiTPC
]

icarus_stage0_2d_data_crtpmtfilter: [
filterdataintegrity,
@sequence::icarus_stage0_PMT,
@sequence::icarus_stage0_CRT,
crtpmtmatchingfilter,
Expand Down
1 change: 1 addition & 0 deletions fcl/reco/Definitions/stage0_icarus_driver_common.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ outputs:
fileName: "%ifb_%tc-%p.root"
fileProperties: {maxInputFiles: 1}
checkFileName: false
SelectEvents: [path]
}
}

Expand Down
1 change: 1 addition & 0 deletions fcl/reco/Definitions/stage0_icarus_driver_common_run1.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ outputs:
fileName: "%ifb_%tc-%p.root"
fileProperties: {maxInputFiles: 1}
checkFileName: false
SelectEvents: [path]
}
}

Expand Down
13 changes: 4 additions & 9 deletions fcl/reco/Definitions/stage1_icarus_defs.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -147,18 +147,13 @@ icarus_analysis_larcv_modules: [ @sequence::icarus_analysis_modules
]

# Set up filtering of cluster3D hits by cryostat
icarus_filter_cluster3DCryoW: [ cluster3DCryoW,
# Changed slightly to faciliate larcv processing
icarus_filter_cluster3D: [ cluster3DCryoE,
cluster3DCryoW,
TPCHitFilterCryoE,
TPCHitFilterCryoW
]

icarus_filter_cluster3DCryoE: [ cluster3DCryoE,
TPCHitFilterCryoE
]

icarus_filter_cluster3D: [ @sequence::icarus_filter_cluster3DCryoW,
@sequence::icarus_filter_cluster3DCryoE
]

icarus_reco_cluster3DCryoW: [ cluster3DCryoW ]

icarus_reco_cluster3DCryoE: [ cluster3DCryoE ]
Expand Down
2 changes: 1 addition & 1 deletion fcl/reco/Definitions/stage1_icarus_driver_common.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ physics:
#reco sequence and trigger_paths to be defined elsewhere

stream1: [ out1 ]
end_paths: [stream1]
end_paths: [ stream1 ]

}

Expand Down
2 changes: 1 addition & 1 deletion fcl/reco/Stage0/Run1/stage0_run1_icarus.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ physics.trigger_paths: [ path ]
physics.end_paths: [ outana, streamROOT ]

# Drop the artdaq format files on output
outputs.outCommon.outputCommands: ["keep *_*_*_*", "drop *_*_*_DAQ*", "drop *_ophituncorrected_*_*", "drop *_daqTPCROI_*_*", "drop *_decon1droi_*_*", "drop *_decon1DroiTPC*_*_*" ]
outputs.rootOutput.outputCommands: ["keep *_*_*_*", "drop *_*_*_DAQ*", "drop *_ophituncorrected_*_*", "drop *_daqTPCROI_*_*", "drop *_decon1droi_*_*", "drop *_decon1DroiTPC*_*_*" ]outputs.rootOutput.SelectEvents: [path]

## Modify the event selection for the purity analyzers
physics.analyzers.purityinfoana0.SelectEvents: [ path ]
Expand Down
4 changes: 2 additions & 2 deletions fcl/reco/Stage0/Run1/stage0_run1_icarus_lite.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@
#include "stage0_run1_icarus.fcl"

# Drop truth data products.
outputs.outCommon.outputCommands: [ @sequence::outputs.outCommon.outputCommands,
@sequence::reco_drops ]
outputs.rootOutput.outputCommands: [ @sequence::outputs.rootOutput.outputCommands,
@sequence::reco_drops ]
4 changes: 2 additions & 2 deletions fcl/reco/Stage0/Run1/stage0_run1_icarus_mc.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ physics.trigger_paths: [ path ]
physics.end_paths: [ outana, streamROOT ]

# Drop the artdaq format files on output
#outputs.outCommon.outputCommands: ["keep *_*_*_*", "drop *_MCDecodeTPCROI_*_*", "drop *_decon1droi_*_*","drop raw::RawDigits_*_*_*" ]
outputs.outCommon.outputCommands: ["keep *_*_*_*", "drop *_decon1droi_*_*" ]
#outputs.rootOutput.outputCommands: ["keep *_*_*_*", "drop *_MCDecodeTPCROI_*_*", "drop *_decon1droi_*_*","drop raw::RawDigits_*_*_*" ]
outputs.rootOutput.outputCommands: ["keep *_*_*_*", "drop *_decon1droi_*_*" ]

# Set the expected input for ophit
physics.producers.ophit: @local::icarus_ophit_MC
Expand Down
2 changes: 1 addition & 1 deletion fcl/reco/Stage0/Run1/stage0_run1_raw_icarus.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
#include "stage0_run1_icarus.fcl"

# Drop the artdaq format files on output
outputs.outCommon.outputCommands: ["keep *_*_*_*", "drop *_*_*_DAQ*", "drop *_decon1droi_*_*", "drop *_decon1DroiTPC*_*_*" ]
outputs.rootOutput.outputCommands: ["keep *_*_*_*", "drop *_*_*_DAQ*", "drop *_decon1droi_*_*", "drop *_decon1DroiTPC*_*_*" ]
4 changes: 2 additions & 2 deletions fcl/reco/Stage0/Run1/stage0_run1_raw_icarus_lite.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@

# Drop truth data products.

outputs.outCommon.outputCommands: [ @sequence::outputs.outCommon.outputCommands,
@sequence::reco_drops ]
outputs.rootOutput.outputCommands: [ @sequence::outputs.rootOutput.outputCommands,
@sequence::reco_drops ]
2 changes: 1 addition & 1 deletion fcl/reco/Stage0/Run1/stage0_run1_rawpmt_icarus.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ physics.trigger_paths: [ path ]
physics.end_paths: [ outana, streamROOT ]

# Drop the artdaq format files on output
outputs.outCommon.outputCommands: ["keep *_*_*_*", "drop *_*_*_DAQ*", "drop *_daqTPCROI_*_*", "drop *_decon1droi_*_*", "drop *_decon1DroiTPC*_*_*" ]
outputs.rootOutput.outputCommands: ["keep *_*_*_*", "drop *_*_*_DAQ*", "drop *_daqTPCROI_*_*", "drop *_decon1droi_*_*", "drop *_decon1DroiTPC*_*_*" ]

## Modify the event selection for the purity analyzers
physics.analyzers.purityinfoana0.SelectEvents: [ path ]
Expand Down
2 changes: 1 addition & 1 deletion fcl/reco/Stage0/Run1/stage0_run1_wc_icarus.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ physics.trigger_paths: [ path ]
physics.end_paths: [ outana, streamCommon ]

# Drop the artdaq format files on output
outputs.outCommon.outputCommands: ["keep *_*_*_*", "drop *_*_*_DAQ*", "drop *_daqTPCROI_*_*", "drop *_decon1droi_*_*", "drop *_decon1DroiTPC*_*_*", "drop *_decon2Droi*_*_*", "drop *_roifindr_*_*" ]
outputs.rootOutput.outputCommands: ["keep *_*_*_*", "drop *_*_*_DAQ*", "drop *_daqTPCROI_*_*", "drop *_decon1droi_*_*", "drop *_decon1DroiTPC*_*_*", "drop *_decon2Droi*_*_*", "drop *_roifindr_*_*" ]

# Override the hit finder input
physics.producers.gaushitTPCWW.CalDataModuleLabel: "roifinder2d:PHYSCRATEDATATPCWW"
Expand Down
4 changes: 2 additions & 2 deletions fcl/reco/Stage0/Run1/stage0_run1_wc_icarus_lite.fcl
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@

# Drop truth data products.

outputs.outCommon.outputCommands: [ @sequence::outputs.outCommon.outputCommands,
@sequence::reco_drops ]
outputs.rootOutput.outputCommands: [ @sequence::outputs.rootOutput.outputCommands,
@sequence::reco_drops ]
Original file line number Diff line number Diff line change
Expand Up @@ -145,15 +145,15 @@ physics.filters: {

physics.pathE: [
@sequence::physics.pathE
, @sequence::icarus_filter_cluster3DCryoE
, @sequence::icarus_reco_cluster3DCryoE
, @sequence::icarus_reco_pandoraGausCryoE
, fmatchCryoE
, @sequence::icarus_crttrack
, caloskimCalorimetryCryoE
]
physics.pathW: [
@sequence::physics.pathW
, @sequence::icarus_filter_cluster3DCryoW
, @sequence::icarus_reco_cluster3DCryoW
, @sequence::icarus_reco_pandoraGausCryoW
, fmatchCryoW
, @sequence::icarus_crttrack
Expand Down
3 changes: 3 additions & 0 deletions icaruscode/Filters/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ art_make_library()
set( MODULE_LIBRARIES
sbnobj::Common_Trigger
icarusalg::Utilities
sbndaq_artdaq_core::sbndaq-artdaq-core_Overlays_ICARUS
artdaq_core::artdaq-core_Utilities
larcorealg::Geometry
larcore::Geometry_Geometry_service
larsim::Simulation
Expand Down Expand Up @@ -38,6 +40,7 @@ set( MODULE_LIBRARIES
)
cet_build_plugin(FilterNeutrinosActiveVolume art::module LIBRARIES ${MODULE_LIBRARIES})
cet_build_plugin(FilterNumberTPCHits art::module LIBRARIES ${MODULE_LIBRARIES})
cet_build_plugin(FilterDataIntegrity art::module LIBRARIES ${MODULE_LIBRARIES})
cet_build_plugin(FilterOpFlash art::module LIBRARIES ${MODULE_LIBRARIES})
cet_build_plugin(FilterParticlesActiveVolume art::module LIBRARIES ${MODULE_LIBRARIES})
cet_build_plugin(TriggerTypeFilter art::module LIBRARIES ${MODULE_LIBRARIES})
Expand Down
91 changes: 91 additions & 0 deletions icaruscode/Filters/FilterDataIntegrity_module.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
////////////////////////////////////////////////////////////////////////
//
// FilterDataIntegrity class
//
////////////////////////////////////////////////////////////////////////

/// Framework includes
#include "art/Framework/Core/ModuleMacros.h"
#include "art/Framework/Core/EDFilter.h"
#include "art/Framework/Principal/Event.h"
#include "messagefacility/MessageLogger/MessageLogger.h"

#include "artdaq-core/Data/Fragment.hh"

#include <set>
#include <string>

///filters for events, etc
namespace filter
{

class FilterDataIntegrity : public art::EDFilter
{

public:
explicit FilterDataIntegrity(fhicl::ParameterSet const &);

bool filter(art::Event &evt) override;

private:

// We will use this to keep track of the expected fragments in an event
// but note we will assume the first event is complete to set this list
std::set<int> fExpectedFragments;

}; //class FilterDataIntegrity
}

///////////////////////////////////////////////////////

filter::FilterDataIntegrity::FilterDataIntegrity(fhicl::ParameterSet const &pset)
: EDFilter{pset}
{
return;
}

bool filter::FilterDataIntegrity::filter(art::Event &event)
{
bool filterPass = true;

// get all the artdaq fragment collections in the event.
std::vector<art::Handle<std::vector<artdaq::Fragment>>> fragmentHandles;
fragmentHandles = event.getMany<std::vector<artdaq::Fragment>>();

std::set<int> missingFragments(fExpectedFragments);
int emptyFragments(0);

for (const auto& handle : fragmentHandles)
{
for (const auto& fragment : *handle)
{
int fragmentID = fragment.fragmentID();

fExpectedFragments.insert(fragmentID);
missingFragments.erase(fragmentID);

std::string instanceName = handle.provenance()->productInstanceName();
std::size_t found = instanceName.find("Empty");

if (found != std::string::npos) emptyFragments++;
}
}

mf::LogDebug("FilterDataIntegrity") << "Expected fragments: " << fExpectedFragments.size() << " expected, has " << missingFragments.size() << " missing. There are " << emptyFragments << " empty fragments";

if (!missingFragments.empty() || emptyFragments > 0)
{
mf::LogInfo("FilterDataIntegrity") << "Bad fragments: " << missingFragments.size() << ", " << emptyFragments;

filterPass = false;
}

return filterPass;
}

namespace filter
{

DEFINE_ART_MODULE(FilterDataIntegrity)

} //namespace filt
8 changes: 8 additions & 0 deletions icaruscode/Filters/icarus_FilterDataIntegrity.fcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
BEGIN_PROLOG

icarus_FilterDataIntegrity:
{
module_type: "FilterDataIntegrity"
}

END_PROLOG
Loading