Skip to content

Commit

Permalink
Inverse skimming in vetos (#1563)
Browse files Browse the repository at this point in the history
  • Loading branch information
tvami authored Feb 3, 2025
1 parent 5e2ae55 commit 9bf6acc
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 6 deletions.
1 change: 1 addition & 0 deletions Ecal/include/Ecal/EcalVetoProcessor.h
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,7 @@ class EcalVetoProcessor : public framework::Producer {
std::string rec_coll_name_;
bool recoil_from_tracking_;
std::string track_collection_;
bool inverse_skim_{false};

/** Name of the collection which will containt the results. */
std::string collectionName_{"EcalVeto"};
Expand Down
1 change: 1 addition & 0 deletions Ecal/python/vetos.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ def __init__(self,name = 'ecalVeto') :
self.rec_pass_name = ''
self.recoil_from_tracking = False # Will be True soon
self.track_collection = 'RecoilTracks'
self.inverse_skim = False


class DNNEcalVetoProcessor(ldmxcfg.Producer) :
Expand Down
16 changes: 13 additions & 3 deletions Ecal/src/Ecal/EcalVetoProcessor.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ void EcalVetoProcessor::configure(framework::config::Parameters &parameters) {
rec_coll_name_ = parameters.getParameter<std::string>("rec_coll_name");
recoil_from_tracking_ = parameters.getParameter<bool>("recoil_from_tracking");
track_collection_ = parameters.getParameter<std::string>("track_collection");
inverse_skim_ = parameters.getParameter<bool>("inverse_skim");
}

void EcalVetoProcessor::clearProcessor() {
Expand Down Expand Up @@ -1150,10 +1151,19 @@ void EcalVetoProcessor::produce(framework::Event &event) {

// If the event passes the veto, keep it. Otherwise,
// drop the event.
if (result.passesVeto()) {
setStorageHint(framework::hint_shouldKeep);
if (!inverse_skim_) {
if (result.passesVeto()) {
setStorageHint(framework::hint_shouldKeep);
} else {
setStorageHint(framework::hint_shouldDrop);
}
} else {
setStorageHint(framework::hint_shouldDrop);
// Invert the skimming logic
if (result.passesVeto()) {
setStorageHint(framework::hint_shouldDrop);
} else {
setStorageHint(framework::hint_shouldKeep);
}
}

event.add(collectionName_, result);
Expand Down
1 change: 1 addition & 0 deletions Hcal/include/Hcal/HcalVetoProcessor.h
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ class HcalVetoProcessor : public framework::Producer {
bool exclude_recoil_ele_;
std::string track_collection_;
float dr_from_recoil_max_;
bool inverse_skim_{false};
}; // HcalVetoProcessor
} // namespace hcal

Expand Down
1 change: 1 addition & 0 deletions Hcal/python/hcal.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ def __init__(self,name = 'hcalVeto') :
self.input_hit_coll_name= "HcalRecHits";
self.input_hit_pass_name = ''
self.output_coll_name= "HcalVeto";
self.inverse_skim = False;

class HcalWABVetoProcessor(ldmxcfg.Producer) :
"""Configuration for WAB veto in HCal
Expand Down
17 changes: 14 additions & 3 deletions Hcal/src/Hcal/HcalVetoProcessor.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ void HcalVetoProcessor::configure(framework::config::Parameters &parameters) {
parameters.getParameter<std::string>("track_collection", "RecoilTracks");
dr_from_recoil_max_ =
parameters.getParameter<double>("dr_from_recoil_max", 100);
inverse_skim_ = parameters.getParameter<bool>("inverse_skim");
}

void HcalVetoProcessor::produce(framework::Event &event) {
Expand Down Expand Up @@ -176,10 +177,20 @@ void HcalVetoProcessor::produce(framework::Event &event) {
result.setTotalPE(total_PE);
result.setNumValidHits(num_valid_hits);

if (passes_veto) {
setStorageHint(framework::hint_shouldKeep);
// Skimming rules
if (!inverse_skim_) {
if (passes_veto) {
setStorageHint(framework::hint_shouldKeep);
} else {
setStorageHint(framework::hint_shouldDrop);
}
} else {
setStorageHint(framework::hint_shouldDrop);
// Inverse skimming rules
if (passes_veto) {
setStorageHint(framework::hint_shouldDrop);
} else {
setStorageHint(framework::hint_shouldKeep);
}
}

event.add(output_coll_name_, result);
Expand Down

0 comments on commit 9bf6acc

Please sign in to comment.