LDMX Software
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 process (Event &event) final
 Processing an event for a Producer is calling produce.
 
- Public Member Functions inherited from framework::EventProcessor
 DECLARE_FACTORY (EventProcessor, EventProcessor *, const std::string &, Process &)
 declare that we have a factory for this class
 
 EventProcessor (const std::string &name, Process &process)
 Class constructor.
 
virtual ~EventProcessor ()=default
 Class destructor.
 
virtual void beforeNewRun (ldmx::RunHeader &run_header)
 Callback for Producers to add parameters to the run header before conditions are initialized.
 
virtual void onNewRun (const ldmx::RunHeader &run_header)
 Callback for the EventProcessor to take any necessary action when the run being processed changes.
 
virtual void onFileOpen (EventFile &event_file)
 Callback for the EventProcessor to take any necessary action when a new event input ROOT file is opened.
 
virtual void onFileClose (EventFile &event_file)
 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.
 
std::string ecal_mip_name_
 Collection Name for mip result object.
 
std::string ecal_mip_pass_
 Pass Name for mip result 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

- Protected Member Functions inherited from framework::EventProcessor
void abortEvent ()
 Abort the event immediately.
 
- Protected Attributes inherited from framework::EventProcessor
HistogramPool histograms_
 helper object for making and filling histograms
 
NtupleManagerntuple_ {NtupleManager::getInstance()}
 Manager for any ntuples.
 
logging::logger the_log_
 The logger for this EventProcessor.
 

Detailed Description

Definition at line 19 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.

Base class for a module which produces a data product.
virtual void process(Event &event) final
Processing an event for a Producer is calling produce.

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.get<std::string>("ecal_veto_name");
17 ecal_veto_pass_ = ps.get<std::string>("ecal_veto_pass");
18 ecal_mip_name_ = ps.get<std::string>("ecal_mip_name");
19 ecal_mip_pass_ = ps.get<std::string>("ecal_mip_pass");
20 summed_det_max_ = ps.get<double>("summed_det_max"); // MeV
21 summed_tight_iso_max_ = ps.get<double>("summed_tight_iso_max"); // MeV
22 ecal_back_energy_max_ = ps.get<double>("ecal_back_energy_max"); // MeV
23 n_readout_hits_max_ = ps.get<int>("n_readout_hits_max");
24 shower_rms_max_ = ps.get<double>("shower_rms_max");
25 shower_y_std_max_ = ps.get<double>("shower_y_std_max");
26 shower_x_std_max_ = ps.get<double>("shower_x_std_max");
27 max_cell_dep_max_ = ps.get<double>("max_cell_dep_max"); // MeV
28 std_layer_hit_max_ = ps.get<int>("std_layer_hit_max");
29 n_straight_tracks_max_ = ps.get<int>("n_straight_tracks_max");
30 bdt_disc_min_ = ps.get<double>("bdt_disc_min");
31 fiducial_level_ = ps.get<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_.
std::string ecal_mip_name_
Collection Name for mip result object.
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...
std::string ecal_mip_pass_
Pass Name for mip result object.

References bdt_disc_min_, ecal_back_energy_max_, ecal_mip_name_, ecal_mip_pass_, ecal_veto_name_, ecal_veto_pass_, fiducial_level_, framework::config::Parameters::get(), 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 passed_preselection{false};
38 bool fiducial_decision{true};
39 const auto &ecal_veto{
41 const auto &mip_result{
43 // Boolean to if we skim for fiducial / nonfiducial
44 fiducial_decision = (fiducial_level_ == 0 ||
45 (fiducial_level_ == 1 && ecal_veto.getFiducial()) ||
46 (fiducial_level_ == 2 && !ecal_veto.getFiducial()));
47
48 // Boolean to check if we pass preselection
49 passed_preselection =
50 (ecal_veto.getSummedDet() < summed_det_max_) &&
51 (ecal_veto.getSummedTightIso() < summed_tight_iso_max_) &&
52 (ecal_veto.getEcalBackEnergy() < ecal_back_energy_max_) &&
53 (ecal_veto.getNReadoutHits() < n_readout_hits_max_) &&
54 (ecal_veto.getShowerRMS() < shower_rms_max_) &&
55 (ecal_veto.getYStd() < shower_y_std_max_) &&
56 (ecal_veto.getXStd() < shower_x_std_max_) &&
57 (ecal_veto.getMaxCellDep() < max_cell_dep_max_) &&
58 (ecal_veto.getStdLayerHit() < std_layer_hit_max_) &&
59 (mip_result.getNStraightTracks() < n_straight_tracks_max_) &&
60 (ecal_veto.getDisc() > bdt_disc_min_) && fiducial_decision;
61
62 // Tell the skimmer to keep or drop the event based on whether preselection
63 // passed
64 if (passed_preselection) {
65 ldmx_log(debug) << "This event passed preselection!";
67 } else {
69 }
70 // Add the boolean to the event
71 event.add("EcalPreselectionDecision", passed_preselection);
72}
void setStorageHint(framework::StorageControl::Hint hint)
Mark the current event as having the given storage control hint from this module_.
constexpr StorageControl::Hint HINT_SHOULD_DROP
storage control hint alias for backwards compatibility
constexpr StorageControl::Hint HINT_SHOULD_KEEP
storage control hint alias for backwards compatibility

References bdt_disc_min_, ecal_back_energy_max_, ecal_mip_name_, ecal_mip_pass_, ecal_veto_name_, ecal_veto_pass_, fiducial_level_, framework::HINT_SHOULD_DROP, framework::HINT_SHOULD_KEEP, 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 67 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 51 of file EcalPreselectionSkimmer.h.

Referenced by configure(), and produce().

◆ ecal_mip_name_

std::string recon::EcalPreselectionSkimmer::ecal_mip_name_
private

Collection Name for mip result object.

Definition at line 43 of file EcalPreselectionSkimmer.h.

Referenced by configure(), and produce().

◆ ecal_mip_pass_

std::string recon::EcalPreselectionSkimmer::ecal_mip_pass_
private

Pass Name for mip result object.

Definition at line 45 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 39 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 41 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 74 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 61 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 53 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 65 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 55 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 59 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 57 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 63 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 47 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 49 of file EcalPreselectionSkimmer.h.

Referenced by configure(), and produce().


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