Iguana 1.0.0
Implementation Guardian of Analysis Algorithms
Loading...
Searching...
No Matches
iguana::clas12::ZVertexFilter Class Reference

#include <Algorithm.h>

Detailed Description

Algorithm: Filter the REC::Particle (or similar) bank by cutting on Z Vertex

Input and Output Banks:
See Run function(s) for the banks that are processed by this algorithm.
Type: Filter
This algorithm will filter input bank(s).
Configuration Options:
YAML configuration, which includes the default option values:
clas12::ZVertexFilter:
# scattered electron cuts
electron:
# default cuts
- default:
vz: [ -20.0, 20.0 ]
### RUN GROUP A ###########
# RG-A spring2018 inbending, 1st period
- runs: [ 3031, 3087 ]
vz: [ -6.061, 1.819 ]
# RG-A spring2018 outbending, 1st period
- runs: [ 3103, 3293 ]
vz: [ -7.272, 0.909 ]
# RG-A spring2018 inbending, 2nd period
- runs: [ 3306, 3817 ]
vz: [ -6.061, 1.819 ]
# RG-A spring2018 outbending, 2nd period
- runs: [ 3820, 3987 ]
vz: [ -7.272, 0.909 ]
# RG-A spring2018 inbending, 3rd period
- runs: [ 4003, 4325 ]
vz: [ -6.061, 1.819 ]
# RG-A fall2018 inbending
- runs: [ 4763, 5419 ]
vz: [ -6.364, 1.515 ]
# RG-A fall2018 outbending
- runs: [ 5423, 5666 ]
vz: [ -7.879, 0.303 ]
# RG-A spring2019 inbending
- runs: [ 6616, 6783 ]
vz: [ -6.364, 1.515 ]
### RUN GROUP B ###########
# FIXME: these are not yet the official, common RG-B vertex cuts; for now,
# they are just the cuts that C. Dilks is using for SIDIS analysis.
# RG-B spring2019 inbending # FIXME: not official (see FIXME above)
- runs: [ 6156, 6603 ]
vz: [ -8.0, 3.0 ]
# RG-B fall2019 outbending # FIXME: not official (see FIXME above)
- runs: [ 11093, 11283 ]
vz: [ -10.0, 2.5 ]
# RG-B spring2020 inbending # FIXME: not official (see FIXME above)
- runs: [ 11323, 11571 ]
vz: [ -8.0, 3.0 ]
Table of options and descriptions:
NameTypeDescription
electron_vz list[double] lower and upper electron \(z\)-vertex cuts; run-range dependent; cuts are not applied to FT electrons (FD and CD only)

Definition at line 14 of file Algorithm.h.

Public Member Functions

bool Filter (double const zvertex, int const pid, int const status, concurrent_key_t const key) const
 Action Function: checks if the Z Vertex is within specified bounds if pid is one for which the filter should be applied to.; Cuts applied to particles in FD or CD (ie not in FT).
std::vector< double > GetElectronZcuts (concurrent_key_t const key) const
int GetRunNum (concurrent_key_t const key) const
concurrent_key_t PrepareEvent (int const runnum) const
 Action Function: prepare the event
bool Run (hipo::bank &particleBank, hipo::bank const &configBank) const
 Run Function: Process an event's hipo::bank objects
bool Run (hipo::banklist &banks) const override
 Run Function: Process an event's hipo::banklist
void SetElectronZcuts (double zcut_lower, double zcut_upper, concurrent_key_t const key)
 sets the z-vertex cuts
void Start (hipo::banklist &banks) override
 Initialize this algorithm before any events are processed, with the intent to process banks.
void Stop () override
 Finalize this algorithm after all events are processed.
Public Member Functions inherited from iguana::Algorithm
 Algorithm (std::string_view name)
std::unique_ptr< YAMLReader > const & GetConfig () const
hipo::bank GetCreatedBank (std::string const &bank_name="") const noexcept(false)
std::string GetCreatedBankName () const noexcept(false)
std::vector< std::string > GetCreatedBankNames () const noexcept(false)
hipo::schema GetCreatedBankSchema (std::string const &bank_name="") const noexcept(false)
template<typename OPTION_TYPE>
OPTION_TYPE GetOptionScalar (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
template<typename OPTION_TYPE>
std::vector< OPTION_TYPE > GetOptionVector (std::string const &key, YAMLReader::node_path_t node_path={}) const
void SetConfig (std::unique_ptr< YAMLReader > &&yaml_config)
void SetConfigDirectory (std::string const &name)
void SetConfigFile (std::string const &name)
void SetName (std::string_view name)
template<typename OPTION_TYPE>
OPTION_TYPE SetOption (std::string const &key, const OPTION_TYPE val)
void Start ()
 Initialize this algorithm before any events are processed, with the intent to process bank rows rather than full banks;.
Public Member Functions inherited from iguana::Object
std::unique_ptr< Logger > & GetLog ()
std::string GetName () const
std::unique_ptr< Logger > & Log ()
 Object (std::string_view name="", Logger::Level lev=Logger::DEFAULT_LEVEL)
void SetLogLevel (Logger::Level const lev)
void SetLogLevel (std::string_view lev)
void SetName (std::string_view name)

Additional Inherited Members

Protected Member Functions inherited from iguana::Algorithm
hipo::schema CreateBank (hipo::banklist &banks, hipo::banklist::size_type &bank_idx, std::string const &bank_name) const noexcept(false)
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)
template<typename OPTION_TYPE>
std::optional< OPTION_TYPE > GetCachedOption (std::string const &key) const
void ParseYAMLConfig ()
 Parse YAML configuration files. Sets m_yaml_config.
void ShowBank (hipo::bank const &bank, std::string_view message="", Logger::Level const level=Logger::trace) const
void ShowBanks (hipo::banklist const &banks, std::string_view message="", Logger::Level const level=Logger::trace) const
void ThrowSinceRenamed (std::string const &new_name, std::string const &version) const noexcept(false)
Protected Attributes inherited from iguana::Algorithm
std::string m_class_name
 Class name of this algorithm.
std::string m_default_config_file
 Default configuration file name.
std::mutex m_mutex
 A mutex for 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 o_user_config_dir
std::string o_user_config_file
Protected Attributes inherited from iguana::Object
std::unique_ptr< Loggerm_log
 Logger instance for this object
std::string m_name
 The name of this object.
Inheritance diagram for iguana::clas12::ZVertexFilter:
Inheritance graph

Member Function Documentation

◆ Filter()

bool iguana::clas12::ZVertexFilter::Filter ( double const zvertex,
int const pid,
int const status,
concurrent_key_t const key ) const

Action Function: checks if the Z Vertex is within specified bounds if pid is one for which the filter should be applied to.; Cuts applied to particles in FD or CD (ie not in FT).

Function Type
scalar filter
Note
This function should be called for each particle
Parameters
zvertexthe particle Z Vertex to check
pidthe particle pid
statusparticle status used to check particle is not in FT
keythe return value of ::PrepareEvent
Returns
true if zvertex is within specified bounds

◆ GetElectronZcuts()

std::vector< double > iguana::clas12::ZVertexFilter::GetElectronZcuts ( concurrent_key_t const key) const
Parameters
keythe return value of ::PrepareEvent
Returns
the current z-vertex cuts

◆ GetRunNum()

int iguana::clas12::ZVertexFilter::GetRunNum ( concurrent_key_t const key) const
Parameters
keythe return value of ::PrepareEvent
Returns
the current run number

◆ PrepareEvent()

concurrent_key_t iguana::clas12::ZVertexFilter::PrepareEvent ( int const runnum) const

Action Function: prepare the event

Function Type
reload
Note
This function should be called for each event
Parameters
runnumthe run number
Returns
the key to be used in ::Filter

◆ Run() [1/2]

bool iguana::clas12::ZVertexFilter::Run ( hipo::bank & particleBank,
hipo::bank const & configBank ) const

Run Function: Process an event's hipo::bank objects

The parameter list explains which banks are input ("in"), output ("out"), or both ("in,out").

Parameters
[in,out]particleBankREC::Particle, which will be filtered
[in]configBankRUN::config
Returns
false if all particles are filtered out

◆ Run() [2/2]

bool iguana::clas12::ZVertexFilter::Run ( hipo::banklist & banks) const
overridevirtual

Run Function: Process an event's hipo::banklist

Parameters
banksthe list of banks to process
Returns
a boolean value, which is typically used to decide whether or not to continue analyzing an event, i.e., it can be used as an event-level filter; not all algorithms use or need this feature; see the algorithm's more specialized Run functions, which have hipo::bank parameters
See also
Specialized Run function(s) above/below; they take individual hipo::bank objects as parameters, and their documentation explains which banks are used by this algorithm and how.

Implements iguana::Algorithm.

◆ SetElectronZcuts()

void iguana::clas12::ZVertexFilter::SetElectronZcuts ( double zcut_lower,
double zcut_upper,
concurrent_key_t const key )

sets the z-vertex cuts

Warning
this method is not thread safe; instead, for thread safety, use ::PrepareEvent and a custom configuration file.
Parameters
zcut_lowerthe lower bound of the cut
zcut_upperthe upper bound of the cut
keythe, for ::GetElectronZcuts

◆ Start()

void iguana::clas12::ZVertexFilter::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::ZVertexFilter::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/ZVertexFilter/Algorithm.h