Skip to content

Commit 23faebc

Browse files
authored
Merge branch 'develop' into feature/gputnam-crt-hit-truth-dev
2 parents ac11709 + eae8075 commit 23faebc

16 files changed

Lines changed: 1627 additions & 2 deletions

sbncode/CAFMaker/CAFMakerParams.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,30 @@ namespace caf
423423
"emuTriggerUnshifted"
424424
};
425425

426+
Atom<art::InputTag> MonPulsesTriggerLabel {
427+
Name("MonPulsesTriggerLabel"),
428+
Comment("Label of trigger emulation product MonPulses (number of PMT pairs above threshold for all channels) for all flashes."),
429+
art::InputTag("opdaq", "MonPulses", "DetSim")
430+
};
431+
432+
Atom<art::InputTag> MonPulseSizesTriggerLabel {
433+
Name("MonPulseSizesTriggerLabel"),
434+
Comment("Label of trigger emulation product MonPulses Sizes, which gives the length of each trigger response in MonPulses."),
435+
art::InputTag("opdaq", "MonPulseSizes", "DetSim")
436+
};
437+
438+
Atom<art::InputTag> PairsTriggerLabel {
439+
Name("PairsTriggerLabel"),
440+
Comment("Label of number of PMT pairs over threshold."),
441+
art::InputTag("opdaq", "pairsOverThreshold", "DetSim")
442+
};
443+
444+
Atom<art::InputTag> EmulatedTriggerLabel {
445+
Name("EmulatedTriggerLabel"),
446+
Comment("Label of bool of passing the trigger."),
447+
art::InputTag("opdaq", "triggerEmulation", "DetSim")
448+
};
449+
426450
Atom<string> FlashTrigLabel {
427451
Name("FlashTrigLabel"),
428452
Comment("Label of bool of passing flash trigger."),

sbncode/CAFMaker/CAFMaker_module.cc

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1640,7 +1640,7 @@ void CAFMaker::produce(art::Event& evt) noexcept {
16401640
//#######################################################
16411641
// Fill detector & reco
16421642
//#######################################################
1643-
1643+
16441644
//Beam gate and Trigger info
16451645
art::Handle<sbn::ExtraTriggerInfo> extratrig_handle;
16461646
GetByLabelStrict(evt, fParams.TriggerLabel().encode(), extratrig_handle);
@@ -1652,16 +1652,40 @@ void CAFMaker::produce(art::Event& evt) noexcept {
16521652
if (!isRealData)
16531653
GetByLabelStrict(evt, fParams.UnshiftedTriggerLabel().encode(), unshifted_trig_handle);
16541654

1655+
//Trigger emulation handles
1656+
art::Handle<std::vector<int>> monpulses_handle;
1657+
GetByLabelStrict(evt, fParams.MonPulsesTriggerLabel().encode(), monpulses_handle);
1658+
1659+
art::Handle<std::vector<int>> monpulse_sizes_handle;
1660+
GetByLabelStrict(evt, fParams.MonPulseSizesTriggerLabel().encode(), monpulse_sizes_handle);
1661+
1662+
art::Handle<int> pairs_handle;
1663+
GetByLabelStrict(evt, fParams.PairsTriggerLabel().encode(), pairs_handle);
1664+
1665+
art::Handle<bool> trigemu_handle;
1666+
GetByLabelStrict(evt, fParams.EmulatedTriggerLabel().encode(), trigemu_handle);
1667+
1668+
// Check trigger handles
16551669
const bool isValidTrigger = extratrig_handle.isValid() && trig_handle.isValid() && trig_handle->size() == 1;
16561670
const bool isValidUnshiftedTrigger = unshifted_trig_handle.isValid() && unshifted_trig_handle->size() == 1;
1671+
const bool isValidEmulationTrigger = monpulses_handle.isValid() && monpulse_sizes_handle.isValid() && pairs_handle.isValid() && trigemu_handle.isValid();
16571672

16581673
const double triggerShift = (isValidUnshiftedTrigger && isValidTrigger)?
16591674
unshifted_trig_handle->at(0).TriggerTime() - trig_handle->at(0).TriggerTime() : 0.;
16601675

1676+
// Fill local ExtraTriggerInfo struct
1677+
sbn::ExtraTriggerInfo extratrig;
1678+
if (extratrig_handle.isValid()) extratrig = *extratrig_handle;
1679+
16611680
caf::SRTrigger srtrigger;
16621681
if (isValidTrigger) {
16631682
FillTrigger(*extratrig_handle, trig_handle->at(0), srtrigger, triggerShift);
16641683
}
1684+
// Fill trigger emulation information
1685+
if (isValidEmulationTrigger) {
1686+
FillTriggerEmulation(monpulses_handle, monpulse_sizes_handle, pairs_handle, trigemu_handle, srtrigger);
1687+
}
1688+
16651689
// If not real data, fill in enough of the SRTrigger to make (e.g.) the CRT
16661690
// time referencing work. TODO: add more stuff to a "MC"-Trigger?
16671691
// No longer needed with incorporation of trigger emulation in the MC.

sbncode/CAFMaker/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ art_make_library( LIBRARY_NAME sbncode_CAFMaker
3636
sbnobj::Common_Reco
3737
sbnobj::Common_Analysis
3838
sbnobj::Common_PMT_Data
39+
sbnobj::Common_Trigger
3940
sbnobj::SBND_CRT
4041
sbnobj::SBND_Timing
4142
lardataalg::DetectorInfo

sbncode/CAFMaker/FillTrigger.cxx

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ namespace caf
2626
triggerInfo.trigger_count = addltrig_info.triggerCount;
2727
triggerInfo.gate_count = addltrig_info.gateCount;
2828
triggerInfo.gate_delta = addltrig_info.gateCountFromPreviousTrigger;
29+
2930
}
3031

3132
void FillTriggerMC(double absolute_time, caf::SRTrigger& triggerInfo) {
@@ -35,7 +36,6 @@ namespace caf
3536
// Set this to 0 since the "MC" trigger is (for now) always at the spill time
3637
triggerInfo.trigger_within_gate = 0.;
3738

38-
// TODO: fill others?
3939
}
4040

4141
void FillTriggerSBND(caf::SRSBNDTimingInfo& timingInfo, caf::SRTrigger& triggerInfo){
@@ -49,4 +49,17 @@ namespace caf
4949
triggerInfo.trigger_within_gate = diff_ts;
5050
}
5151

52+
void FillTriggerEmulation(art::Handle<std::vector<int>> const& monpulsesFlat,
53+
art::Handle<std::vector<int>> const& monpulseSizes,
54+
art::Handle<int> const& numPairs,
55+
art::Handle<bool> const& passedTrig,
56+
caf::SRTrigger& triggerInfo) {
57+
58+
triggerInfo.monpulses_flat = *monpulsesFlat;
59+
triggerInfo.monpulse_sizes = *monpulseSizes;
60+
triggerInfo.num_pairs_over_threshold = *numPairs;
61+
triggerInfo.passed_trigger = *passedTrig;
62+
63+
}
64+
5265
}

sbncode/CAFMaker/FillTrigger.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "sbnanaobj/StandardRecord/SRTrigger.h"
77
#include "sbnanaobj/StandardRecord/SRSBNDTimingInfo.h"
88
#include "lardataobj/RawData/TriggerData.h"
9+
#include "art/Framework/Principal/Handle.h"
910

1011
#include <vector>
1112

@@ -20,6 +21,12 @@ namespace caf
2021
void FillTriggerMC(double absolute_time, caf::SRTrigger& triggerInfo);
2122

2223
void FillTriggerSBND(caf::SRSBNDTimingInfo& timingInfo, caf::SRTrigger& triggerInfo);
24+
25+
void FillTriggerEmulation(art::Handle<std::vector<int>> const& monpulsesFlat,
26+
art::Handle<std::vector<int>> const& monpulseSizes,
27+
art::Handle<int> const& numPairs,
28+
art::Handle<bool> const& passedTrig,
29+
caf::SRTrigger& triggerInfo);
2330
}
2431

2532
#endif

sbncode/Calibration/CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,16 @@ cet_build_plugin(TrackCaloSkimmerSelectAllTrack art::tool
7070
ROOT::X3d
7171
)
7272

73+
cet_build_plugin(TrackCaloSkimmerSelectClearCosmicMuon art::tool
74+
LIBRARIES
75+
sbnobj::Common_Calibration_dict
76+
art::Persistency_Common
77+
art::Utilities canvas::canvas
78+
larcore::Geometry_Geometry_service
79+
cetlib::cetlib cetlib_except::cetlib_except
80+
ROOT::X3d
81+
)
82+
7383
cet_build_plugin ( DataSelect art::module
7484
LIBRARIES
7585
ifdh_art::IFDH_service
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// Framework Includes
2+
#include "art/Utilities/ToolMacros.h"
3+
#include "fhiclcpp/ParameterSet.h"
4+
5+
#include "ITCSSelectionTool.h"
6+
7+
namespace sbn {
8+
9+
class TrackCaloSkimmerSelectClearCosmicMuon: public ITCSSelectionTool {
10+
public:
11+
12+
TrackCaloSkimmerSelectClearCosmicMuon(const fhicl::ParameterSet &p);
13+
~TrackCaloSkimmerSelectClearCosmicMuon() {}
14+
15+
bool Select(const TrackInfo &t) override;
16+
17+
private:
18+
};
19+
20+
TrackCaloSkimmerSelectClearCosmicMuon::TrackCaloSkimmerSelectClearCosmicMuon(const fhicl::ParameterSet &p):
21+
ITCSSelectionTool(p)
22+
{}
23+
24+
bool TrackCaloSkimmerSelectClearCosmicMuon::Select(const TrackInfo &t) {
25+
return t.clear_cosmic_muon;
26+
}
27+
28+
DEFINE_ART_CLASS_TOOL(TrackCaloSkimmerSelectClearCosmicMuon)
29+
30+
} // end namespace sbn
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
add_subdirectory(MeVPrtl)
22
add_subdirectory(MultiPart)
3+
add_subdirectory(WireModGen)
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
cet_build_plugin(WireModMuon art::EDProducer
2+
SOURCE CORSIKAGenSBN.cc WireModMuon_module.cc
3+
LIBRARIES PRIVATE
4+
larcore::Geometry_Geometry_service
5+
larcorealg::Geometry
6+
larcoreobj::SummaryData
7+
nurandom::RandomUtils_NuRandomService_service
8+
nusimdata::SimulationBase
9+
art::Framework_Principal
10+
art::Framework_Services_Registry
11+
messagefacility::MF_MessageLogger
12+
fhiclcpp::fhiclcpp
13+
ifdh::ifdh
14+
messagefacility::MF_MessageLogger
15+
ROOT::Core
16+
ROOT::EG
17+
CLHEP::Random
18+
SQLite::SQLite3
19+
lardata::DetectorInfoServices_DetectorPropertiesServiceStandard_service
20+
lardata::DetectorInfoServices_DetectorClocksServiceStandard_service
21+
lardata::DetectorClocksService
22+
)
23+
24+
cet_build_plugin(FilterPrimarySimChannel art::EDProducer
25+
LIBRARIES PRIVATE
26+
larsim::Simulation
27+
art::Framework_Principal
28+
art::Framework_Services_Registry
29+
messagefacility::MF_MessageLogger
30+
fhiclcpp::fhiclcpp
31+
messagefacility::MF_MessageLogger
32+
)
33+
34+
cet_build_plugin(FilterPrimarySimEnergyDepo art::EDProducer
35+
LIBRARIES PRIVATE
36+
art::Framework_Services_Registry
37+
larsim::Simulation
38+
art::Framework_Principal
39+
art::Framework_Services_Registry
40+
messagefacility::MF_MessageLogger
41+
fhiclcpp::fhiclcpp
42+
messagefacility::MF_MessageLogger
43+
larcore::Geometry_Geometry_service
44+
larcorealg::Geometry
45+
lardata::DetectorInfoServices_DetectorPropertiesServiceStandard_service
46+
lardata::DetectorInfoServices_DetectorClocksServiceStandard_service
47+
lardata::DetectorClocksService
48+
)
49+
50+
install_headers()
51+
install_fhicl()
52+
install_source()

0 commit comments

Comments
 (0)