LDMX Software
Public Member Functions | Private Attributes | List of all members
recon::EcalPreselectionSkimmer Class Reference

Public Member Functions

 EcalPreselectionSkimmer (const std::string &name, framework::Process &process)
 Constructor.
 
virtual ~EcalPreselectionSkimmer ()=default
 Destructor.
 
virtual void configure (framework::config::Parameters &) final
 Callback for the EventProcessor to configure itself from the given set of parameters.
 
virtual void produce (framework::Event &event) final
 Run the processor and select events that pass pre-selection in ECAL.
 
- Public Member Functions inherited from framework::Producer
 Producer (const std::string &name, Process &process)
 Class constructor.
 
virtual void beforeNewRun (ldmx::RunHeader &header)
 Handle allowing producers to modify run headers before the run begins.
 
- Public Member Functions inherited from framework::EventProcessor
 EventProcessor (const std::string &name, Process &process)
 Class constructor.
 
virtual ~EventProcessor ()
 Class destructor.
 
virtual void onNewRun (const ldmx::RunHeader &runHeader)
 Callback for the EventProcessor to take any necessary action when the run being processed changes.
 
virtual void onFileOpen (EventFile &eventFile)
 Callback for the EventProcessor to take any necessary action when a new event input ROOT file is opened.
 
virtual void onFileClose (EventFile &eventFile)
 Callback for the EventProcessor to take any necessary action when a event input ROOT file is closed.
 
virtual void onProcessStart ()
 Callback for the EventProcessor to take any necessary action when the processing of events starts, such as creating histograms.
 
virtual void onProcessEnd ()
 Callback for the EventProcessor to take any necessary action when the processing of events finishes, such as calculating job-summary quantities.
 
template<class T >
const T & getCondition (const std::string &condition_name)
 Access a conditions object for the current event.
 
TDirectory * getHistoDirectory ()
 Access/create a directory in the histogram file for this event processor to create histograms and analysis tuples.
 
void setStorageHint (framework::StorageControl::Hint hint)
 Mark the current event as having the given storage control hint from this module.
 
void setStorageHint (framework::StorageControl::Hint hint, const std::string &purposeString)
 Mark the current event as having the given storage control hint from this module and the given purpose string.
 
int getLogFrequency () const
 Get the current logging frequency from the process.
 
int getRunNumber () const
 Get the run number from the process.
 
std::string getName () const
 Get the processor name.
 
void createHistograms (const std::vector< framework::config::Parameters > &histos)
 Internal function which is used to create histograms passed from the python configuration @parma histos vector of Parameters that configure histograms to create.
 

Private Attributes

std::string ecal_veto_name_
 Collection Name for veto object.
 
std::string ecal_veto_pass_
 Pass Name for veto object.
 
double summed_det_max_
 Max value for summed det.
 
double summed_tight_iso_max_
 Max value for summed tigh iso.
 
double ecal_back_energy_max_
 Max value for ecal back energy.
 
int n_readout_hits_max_
 Max value for num readout hits.
 
double shower_rms_max_
 Max value for shower rms.
 
double shower_y_std_max_
 Max value for shower rms in Y.
 
double shower_x_std_max_
 Max value for shower rms in X.
 
double max_cell_dep_max_
 Max value for maximal cell deposition.
 
int std_layer_hit_max_
 Max value for std layer hits.
 
int n_straight_tracks_max_
 Max value for num straight tracks.
 
double bdt_disc_min_
 Min value for the BDT disc variable.
 
int fiducial_level_
 Level of interest in fiducial events 0: don't care if it's fiducial or not, 1: keep fiducial events only, 2: keep non-fid events only.
 

Additional Inherited Members

- Static Public Member Functions inherited from framework::EventProcessor
static void declare (const std::string &classname, int classtype, EventProcessorMaker *)
 Internal function which is part of the PluginFactory machinery.
 
- Static Public Attributes inherited from framework::Producer
static const int CLASSTYPE {1}
 Constant used to track EventProcessor types by the PluginFactory.
 
- Protected Member Functions inherited from framework::EventProcessor
void abortEvent ()
 Abort the event immediately.
 
- Protected Attributes inherited from framework::EventProcessor
HistogramHelper histograms_
 Interface class for making and filling histograms.
 
NtupleManagerntuple_ {NtupleManager::getInstance()}
 Manager for any ntuples.
 
logging::logger theLog_
 The logger for this EventProcessor.
 

Detailed Description

Definition at line 18 of file EcalPreselectionSkimmer.h.

Constructor & Destructor Documentation

◆ EcalPreselectionSkimmer()

recon::EcalPreselectionSkimmer::EcalPreselectionSkimmer ( const std::string &  name,
framework::Process process 
)

Constructor.

Definition at line 11 of file EcalPreselectionSkimmer.cxx.

13 : framework::Producer(name, process) {}
Base class for a module which produces a data product.

Member Function Documentation

◆ configure()

void recon::EcalPreselectionSkimmer::configure ( framework::config::Parameters parameters)
finalvirtual

Callback for the EventProcessor to configure itself from the given set of parameters.

The parameters a processor has access to are the member variables of the python class in the sequence that has className equal to the EventProcessor class name.

For an example, look at MyProcessor.

Parameters
parametersParameters for configuration.

Reimplemented from framework::EventProcessor.

Definition at line 15 of file EcalPreselectionSkimmer.cxx.

15 {
16 ecal_veto_name_ = ps.getParameter<std::string>("ecal_veto_name");
17 ecal_veto_pass_ = ps.getParameter<std::string>("ecal_veto_pass");
18 summed_det_max_ = ps.getParameter<double>("summed_det_max"); // MeV
20 ps.getParameter<double>("summed_tight_iso_max"); // MeV
22 ps.getParameter<double>("ecal_back_energy_max"); // MeV
23 n_readout_hits_max_ = ps.getParameter<int>("n_readout_hits_max");
24 shower_rms_max_ = ps.getParameter<double>("shower_rms_max");
25 shower_y_std_max_ = ps.getParameter<double>("shower_y_std_max");
26 shower_x_std_max_ = ps.getParameter<double>("shower_x_std_max");
27 max_cell_dep_max_ = ps.getParameter<double>("max_cell_dep_max"); // MeV
28 std_layer_hit_max_ = ps.getParameter<int>("std_layer_hit_max");
29 n_straight_tracks_max_ = ps.getParameter<int>("n_straight_tracks_max");
30 bdt_disc_min_ = ps.getParameter<double>("bdt_disc_min");
31 fiducial_level_ = ps.getParameter<int>("fiducial_level");
32
33 return;
34}
int n_straight_tracks_max_
Max value for num straight tracks.
double ecal_back_energy_max_
Max value for ecal back energy.
int std_layer_hit_max_
Max value for std layer hits.
double bdt_disc_min_
Min value for the BDT disc variable.
std::string ecal_veto_name_
Collection Name for veto object.
int n_readout_hits_max_
Max value for num readout hits.
double summed_det_max_
Max value for summed det.
double shower_x_std_max_
Max value for shower rms in X.
double summed_tight_iso_max_
Max value for summed tigh iso.
double shower_y_std_max_
Max value for shower rms in Y.
double shower_rms_max_
Max value for shower rms.
double max_cell_dep_max_
Max value for maximal cell deposition.
std::string ecal_veto_pass_
Pass Name for veto object.
int fiducial_level_
Level of interest in fiducial events 0: don't care if it's fiducial or not, 1: keep fiducial events o...

References bdt_disc_min_, ecal_back_energy_max_, ecal_veto_name_, ecal_veto_pass_, fiducial_level_, framework::config::Parameters::getParameter(), max_cell_dep_max_, n_readout_hits_max_, n_straight_tracks_max_, shower_rms_max_, shower_x_std_max_, shower_y_std_max_, std_layer_hit_max_, summed_det_max_, and summed_tight_iso_max_.

◆ produce()

void recon::EcalPreselectionSkimmer::produce ( framework::Event event)
finalvirtual

Run the processor and select events that pass pre-selection in ECAL.

Parameters
eventThe event to process.

Implements framework::Producer.

Definition at line 36 of file EcalPreselectionSkimmer.cxx.

36 {
37 bool passedPreselection{false};
38 bool fiducialDecision{true};
39 const auto &ecalVeto{
41
42 // Boolean to if we skim for fiducial / nonfiducial
43 fiducialDecision = (fiducial_level_ == 0 ||
44 (fiducial_level_ == 1 && ecalVeto.getFiducial()) ||
45 (fiducial_level_ == 2 && !ecalVeto.getFiducial()));
46
47 // Boolean to check if we pass preselection
48 passedPreselection =
49 (ecalVeto.getSummedDet() < summed_det_max_) &&
50 (ecalVeto.getSummedTightIso() < summed_tight_iso_max_) &&
51 (ecalVeto.getEcalBackEnergy() < ecal_back_energy_max_) &&
52 (ecalVeto.getNReadoutHits() < n_readout_hits_max_) &&
53 (ecalVeto.getShowerRMS() < shower_rms_max_) &&
54 (ecalVeto.getYStd() < shower_y_std_max_) &&
55 (ecalVeto.getXStd() < shower_x_std_max_) &&
56 (ecalVeto.getMaxCellDep() < max_cell_dep_max_) &&
57 (ecalVeto.getStdLayerHit() < std_layer_hit_max_) &&
58 (ecalVeto.getNStraightTracks() < n_straight_tracks_max_) &&
59 (ecalVeto.getDisc() > bdt_disc_min_) && fiducialDecision;
60
61 // Tell the skimmer to keep or drop the event based on whether preselection
62 // passed
63 if (passedPreselection) {
64 ldmx_log(debug) << "This event passed preselection!";
66 } else {
68 }
69 // Add the boolean to the event
70 event.add("EcalPreselectionDecision", passedPreselection);
71}
void setStorageHint(framework::StorageControl::Hint hint)
Mark the current event as having the given storage control hint from this module.
constexpr StorageControl::Hint hint_shouldKeep
storage control hint alias for backwards compatibility
constexpr StorageControl::Hint hint_shouldDrop
storage control hint alias for backwards compatibility

References bdt_disc_min_, ecal_back_energy_max_, ecal_veto_name_, ecal_veto_pass_, fiducial_level_, framework::hint_shouldDrop, framework::hint_shouldKeep, max_cell_dep_max_, n_readout_hits_max_, n_straight_tracks_max_, framework::EventProcessor::setStorageHint(), shower_rms_max_, shower_x_std_max_, shower_y_std_max_, std_layer_hit_max_, summed_det_max_, and summed_tight_iso_max_.

Member Data Documentation

◆ bdt_disc_min_

double recon::EcalPreselectionSkimmer::bdt_disc_min_
private

Min value for the BDT disc variable.

Definition at line 62 of file EcalPreselectionSkimmer.h.

Referenced by configure(), and produce().

◆ ecal_back_energy_max_

double recon::EcalPreselectionSkimmer::ecal_back_energy_max_
private

Max value for ecal back energy.

Definition at line 46 of file EcalPreselectionSkimmer.h.

Referenced by configure(), and produce().

◆ ecal_veto_name_

std::string recon::EcalPreselectionSkimmer::ecal_veto_name_
private

Collection Name for veto object.

Definition at line 38 of file EcalPreselectionSkimmer.h.

Referenced by configure(), and produce().

◆ ecal_veto_pass_

std::string recon::EcalPreselectionSkimmer::ecal_veto_pass_
private

Pass Name for veto object.

Definition at line 40 of file EcalPreselectionSkimmer.h.

Referenced by configure(), and produce().

◆ fiducial_level_

int recon::EcalPreselectionSkimmer::fiducial_level_
private

Level of interest in fiducial events 0: don't care if it's fiducial or not, 1: keep fiducial events only, 2: keep non-fid events only.

Definition at line 69 of file EcalPreselectionSkimmer.h.

Referenced by configure(), and produce().

◆ max_cell_dep_max_

double recon::EcalPreselectionSkimmer::max_cell_dep_max_
private

Max value for maximal cell deposition.

Definition at line 56 of file EcalPreselectionSkimmer.h.

Referenced by configure(), and produce().

◆ n_readout_hits_max_

int recon::EcalPreselectionSkimmer::n_readout_hits_max_
private

Max value for num readout hits.

Definition at line 48 of file EcalPreselectionSkimmer.h.

Referenced by configure(), and produce().

◆ n_straight_tracks_max_

int recon::EcalPreselectionSkimmer::n_straight_tracks_max_
private

Max value for num straight tracks.

Definition at line 60 of file EcalPreselectionSkimmer.h.

Referenced by configure(), and produce().

◆ shower_rms_max_

double recon::EcalPreselectionSkimmer::shower_rms_max_
private

Max value for shower rms.

Definition at line 50 of file EcalPreselectionSkimmer.h.

Referenced by configure(), and produce().

◆ shower_x_std_max_

double recon::EcalPreselectionSkimmer::shower_x_std_max_
private

Max value for shower rms in X.

Definition at line 54 of file EcalPreselectionSkimmer.h.

Referenced by configure(), and produce().

◆ shower_y_std_max_

double recon::EcalPreselectionSkimmer::shower_y_std_max_
private

Max value for shower rms in Y.

Definition at line 52 of file EcalPreselectionSkimmer.h.

Referenced by configure(), and produce().

◆ std_layer_hit_max_

int recon::EcalPreselectionSkimmer::std_layer_hit_max_
private

Max value for std layer hits.

Definition at line 58 of file EcalPreselectionSkimmer.h.

Referenced by configure(), and produce().

◆ summed_det_max_

double recon::EcalPreselectionSkimmer::summed_det_max_
private

Max value for summed det.

Definition at line 42 of file EcalPreselectionSkimmer.h.

Referenced by configure(), and produce().

◆ summed_tight_iso_max_

double recon::EcalPreselectionSkimmer::summed_tight_iso_max_
private

Max value for summed tigh iso.

Definition at line 44 of file EcalPreselectionSkimmer.h.

Referenced by configure(), and produce().


The documentation for this class was generated from the following files: