Loading [MathJax]/extensions/tex2jax.js
Iguana 0.8.0
Implementation Guardian of Analysis Algorithms
iguana::clas12::FiducialFilter Class Reference

#include <Algorithm.h>

Detailed Description

Algorithm: Filter the REC::Particle bank by applying DC (drift chamber) and ECAL (electromagnetic calorimeter) fiducial cuts

Currently these are the "legacy" Pass 1 fiducial cuts tuned for Run Group A.

Algorithm Name:
   clas12::FiducialFilter
Algorithm Type:
Filter
Algorithm Inputs and Outputs:
Input BanksREC::Particle, RUN::config, and others (see below)
Output BanksREC::Particle

The following additional banks are needed:

Configuration Options:
YAML configuration, which includes the default option values:
clas12::FiducialFilter:
pass: 1
# cut levels for PCAL homogeneous cuts; one of 'loose', 'medium', or 'tight'
pcal_electron_cut_level: loose # for electrons and positrons
pcal_photon_cut_level: medium # for photons
# enable/disable certain cuts for more fine-grained control
enable_pcal_cuts: 1
enable_dc_cuts: 1
Table of options and descriptions:
NameTypeDescription
pass int cook type to use for assigning fiducial cuts
pcal_electron_cut_level string cut level for PCAL homogeneous cuts for electrons and positrons, one of: loose, medium, tight
pcal_photon_cut_level string cut level for PCAL homogeneous cuts for photons, one of: loose, medium, tight
enable_pcal_cuts int enable (1) or disable (0) PCAL cuts
enable_dc_cuts int enable (1) or disable (0) DC cuts

Definition at line 28 of file Algorithm.h.

Public Types

enum  CutLevel { loose , medium , tight }
 cut levels, currently only used for PCAL cuts More...

Public Member Functions

void Start (hipo::banklist &banks) override
 Initialize this algorithm before any events are processed, with the intent to process banks
void Run (hipo::banklist &banks) const override
 Run this algorithm for an event.
void Stop () override
 Finalize this algorithm after all events are processed.
bool FilterRgaPass1 (int const pcal_sector, float const pcal_lv, float const pcal_lw, bool const pcal_found, int const dc_sector, float const dc_r1_x, float const dc_r1_y, float const dc_r1_z, bool const dc_r1_found, float const dc_r2_x, float const dc_r2_y, float const dc_r2_z, bool const dc_r2_found, float const dc_r3_x, float const dc_r3_y, float const dc_r3_z, bool const dc_r3_found, float const torus, int const pid) const
 Action Function: top-level fiducial cut for RG-A Pass 1
bool FilterPcalHomogeneous (int const pcal_sector, float const lv, float const lw, float const torus, int const pid) const
 Action Function: EC hit position homogeneous cut on lv and lw
bool FilterDcXY (int const dc_sector, float const r1_x, float const r1_y, float const r1_z, float const r2_x, float const r2_y, float const r2_z, float const r3_x, float const r3_y, float const r3_z, float const torus, int const pid) const
 Action Function: filter using DC XY fiducial cut
bool FilterDcThetaPhi (int const dc_sector, float const r1_x, float const r1_y, float const r1_z, float const r2_x, float const r2_y, float const r2_z, float const r3_x, float const r3_y, float const r3_z, float const torus, int const pid) const
 Action Function: filter using DC theta-phi fiducial cut
Public Member Functions inherited from iguana::Algorithm
 Algorithm (std::string_view name)
void Start ()
 Initialize this algorithm before any events are processed, with the intent to process bank rows rather than full banks;.
template<typename OPTION_TYPE>
OPTION_TYPE SetOption (std::string const &key, const OPTION_TYPE val)
template<typename OPTION_TYPE>
OPTION_TYPE GetOptionScalar (std::string const &key, YAMLReader::node_path_t node_path={}) const
template<typename OPTION_TYPE>
std::vector< OPTION_TYPE > GetOptionVector (std::string const &key, YAMLReader::node_path_t node_path={}) const
template<typename OPTION_TYPE>
std::set< OPTION_TYPE > GetOptionSet (std::string const &key, YAMLReader::node_path_t node_path={}) const
void SetName (std::string_view name)
std::unique_ptr< YAMLReader > const & GetConfig () const
void SetConfig (std::unique_ptr< YAMLReader > &&yaml_config)
void SetConfigFile (std::string const &name)
void SetConfigDirectory (std::string const &name)
Public Member Functions inherited from iguana::Object
 Object (std::string_view name="", Logger::Level lev=Logger::DEFAULT_LEVEL)
std::unique_ptr< Logger > & Log ()
void SetName (std::string_view name)
std::string GetName () const
void SetLogLevel (std::string_view lev)
void SetLogLevel (Logger::Level const lev)
std::unique_ptr< Logger > & GetLog ()

Additional Inherited Members

Protected Member Functions inherited from iguana::Algorithm
void ParseYAMLConfig ()
 Parse YAML configuration files. Sets m_yaml_config.
hipo::bank & GetBank (hipo::banklist &banks, hipo::banklist::size_type const idx, std::string const &expected_bank_name="") const noexcept(false)
hipo::banklist::size_type GetBankIndex (hipo::banklist &banks, std::string const &bank_name) const noexcept(false)
hipo::schema CreateBank (hipo::banklist &banks, hipo::banklist::size_type &bank_idx, std::string const &bank_name) const noexcept(false)
void ShowBanks (hipo::banklist &banks, std::string_view message="", Logger::Level const level=Logger::trace) const
void ShowBank (hipo::bank &bank, std::string_view message="", Logger::Level const level=Logger::trace) const
template<typename OPTION_TYPE>
std::optional< OPTION_TYPE > GetCachedOption (std::string const &key) const
Protected Attributes inherited from iguana::Algorithm
std::string m_class_name
 Class name of this algorithm.
bool m_rows_only
 If true, algorithm can only operate on bank rows; Algorithm::GetBank, and therefore Algorithm::Run, cannot be called.
std::string m_default_config_file
 Default configuration file name.
std::string o_user_config_file
std::string o_user_config_dir
std::mutex m_mutex
 A mutex for this algorithm.
Protected Attributes inherited from iguana::Object
std::string m_name
 The name of this object.
std::unique_ptr< Loggerm_log
 Logger instance for this object
Inheritance diagram for iguana::clas12::FiducialFilter:
Inheritance graph

Member Enumeration Documentation

◆ CutLevel

cut levels, currently only used for PCAL cuts

Definition at line 36 of file Algorithm.h.

Member Function Documentation

◆ FilterDcThetaPhi()

bool iguana::clas12::FiducialFilter::FilterDcThetaPhi ( int const dc_sector,
float const r1_x,
float const r1_y,
float const r1_z,
float const r2_x,
float const r2_y,
float const r2_z,
float const r3_x,
float const r3_y,
float const r3_z,
float const torus,
int const pid ) const

Action Function: filter using DC theta-phi fiducial cut

Function Type
scalar filter
Parameters
dc_sectorDC sector
r1_xDC region 1 x
r1_yDC region 1 y
r1_zDC region 1 z
r2_xDC region 2 x
r2_yDC region 2 y
r2_zDC region 2 z
r3_xDC region 3 x
r3_yDC region 3 y
r3_zDC region 3 z
torusthe torus magnetic field sign
pidthe PDG of the particle
Returns
true if passes fiducial cuts

◆ FilterDcXY()

bool iguana::clas12::FiducialFilter::FilterDcXY ( int const dc_sector,
float const r1_x,
float const r1_y,
float const r1_z,
float const r2_x,
float const r2_y,
float const r2_z,
float const r3_x,
float const r3_y,
float const r3_z,
float const torus,
int const pid ) const

Action Function: filter using DC XY fiducial cut

Function Type
scalar filter
Parameters
dc_sectorDC sector
r1_xDC region 1 x
r1_yDC region 1 y
r1_zDC region 1 z
r2_xDC region 2 x
r2_yDC region 2 y
r2_zDC region 2 z
r3_xDC region 3 x
r3_yDC region 3 y
r3_zDC region 3 z
torusthe torus magnetic field sign
pidthe PDG of the particle
Returns
true if passes fiducial cuts

◆ FilterPcalHomogeneous()

bool iguana::clas12::FiducialFilter::FilterPcalHomogeneous ( int const pcal_sector,
float const lv,
float const lw,
float const torus,
int const pid ) const

Action Function: EC hit position homogeneous cut on lv and lw

Function Type
scalar filter
Parameters
pcal_sectorPCAL sector
lvPCAL lv
lwPCAL lw
torusthe torus magnetic field sign
pidthe PDG of the particle

◆ FilterRgaPass1()

bool iguana::clas12::FiducialFilter::FilterRgaPass1 ( int const pcal_sector,
float const pcal_lv,
float const pcal_lw,
bool const pcal_found,
int const dc_sector,
float const dc_r1_x,
float const dc_r1_y,
float const dc_r1_z,
bool const dc_r1_found,
float const dc_r2_x,
float const dc_r2_y,
float const dc_r2_z,
bool const dc_r2_found,
float const dc_r3_x,
float const dc_r3_y,
float const dc_r3_z,
bool const dc_r3_found,
float const torus,
int const pid ) const

Action Function: top-level fiducial cut for RG-A Pass 1

Function Type
scalar filter
Parameters
pcal_sectorPCAL sector
pcal_lvPCAL lv
pcal_lwPCAL lw
pcal_foundif PCAL info exists for this particle, this should be true
dc_sectorDC sector
dc_r1_xDC region 1 x
dc_r1_yDC region 1 y
dc_r1_zDC region 1 z
dc_r1_foundif DC region 1 info exists for this particle, this should be true
dc_r2_xDC region 2 x
dc_r2_yDC region 2 y
dc_r2_zDC region 2 z
dc_r2_foundif DC region 2 info exists for this particle, this should be true
dc_r3_xDC region 3 x
dc_r3_yDC region 3 y
dc_r3_zDC region 3 z
dc_r3_foundif DC region 3 info exists for this particle, this should be true
torusthe torus magnetic field sign
pidthe PDG of the particle
Returns
true if passes fiducial cuts

◆ Run()

void iguana::clas12::FiducialFilter::Run ( hipo::banklist & banks) const
overridevirtual

Run this algorithm for an event.

Parameters
banksthe list of banks to process

Implements iguana::Algorithm.

◆ Start()

void iguana::clas12::FiducialFilter::Start ( hipo::banklist & banks)
overridevirtual

Initialize this algorithm before any events are processed, with the intent to process banks

use this method if you intend to use Algorithm::Run.

Parameters
banksthe list of banks this algorithm will use, so that Algorithm::Run can cache the indices of the banks that it needs

Implements iguana::Algorithm.

◆ Stop()

void iguana::clas12::FiducialFilter::Stop ( )
overridevirtual

Finalize this algorithm after all events are processed.

Implements iguana::Algorithm.


The documentation for this class was generated from the following file:
  • /__w/iguana/iguana/iguana_src/src/iguana/algorithms/clas12/FiducialFilter/Algorithm.h