5#ifndef TRIGL0GEPPERF_GEPPI0ALG_H
6#define TRIGL0GEPPERF_GEPPI0ALG_H
39#include "Identifier/Identifier.h"
45 typedef std::vector<std::vector<const CaloCell*>>
CellVectors;
49 GepPi0Alg(
const std::string& name, ISvcLocator* pSvcLocator);
52 virtual StatusCode
execute(
const EventContext& )
const override;
57 mutable std::atomic<size_t>
m_id{0l};
61 this,
"caloCells",
"AllCalo",
"key to read in a CaloCell constainer"};
66 "EMB1CellsFromCaloCells",
67 "AlgTool to provide vectors of CaloCells ot GepPi0Alg"};
74 "SG Key of CaloNoise data object"};
82 "caloDetDescrManager",
83 "CaloDetDescrManager",
84 "SG Key of the CaloDetDescrManager in the Consition Store"};
91 "+- neighborhood extent in eta"};
98 "+- neighborhood extent in phi"};
104 {
"TWINPEAKS",
"CRAWL"},
105 "list of pi0 detection strategies to be run"};
109 this,
"seed_signif_cut", {2.0},
"twin peak min peak e/noise"};
114 this,
"tp_signif_cut", {2.0},
"twin peak min peak e/noise"};
117 this,
"crawl_signif_cut", {2.0},
"crawl min peak e/noise"};
120 this,
"er_neta", {1},
"crawl number of steps eta"};
123 this,
"er_nphi", {10},
"crawl number of steps phi"};
127 this,
"dump",
false,
"flag to trigger writing out debug information"};
134 const std::vector<const CaloCell*>& laremCells,
135 const std::vector<const CaloCell*>& emb1Cells,
145 const std::vector<const CaloCell*>& laremCells,
146 const std::vector<const CaloCell*>& emb1Cells,
158 const std::vector<const CaloCell*>& laremCells,
159 const std::vector<const CaloCell*>& emb1Cells,
170 const std::vector<const CaloCell*>& laremCells,
171 std::vector<const CaloCell*>& neighs,
180 const std::vector<std::string>& paths_pat)
const;
186 const std::vector<const CaloCell*>& peaks,
187 const std::vector<double>& peak_signifs)
const;
Definition of CaloDetDescrManager.
An algorithm that can be simultaneously executed in multiple threads.
Helper class for offline cell identifiers.
Data object for each calorimeter readout cell.
This class provides the client interface for accessing the detector description information common to...
Gaudi::Property< int > m_er_neta
Gaudi::Property< float > m_tp_signifcut
StatusCode sort_strategy(const CaloCell *seed, const std::vector< const CaloCell * > &laremCells, const std::vector< const CaloCell * > &emb1Cells, std::size_t iseed, const CaloNoise *, const CaloDetDescrManager *) const
StatusCode dump_twinpeaks(std::size_t iseed, const CaloCell *seed, double seed_signif, const std::vector< const CaloCell * > &neighborhood, const std::vector< const CaloCell * > &peaks, const std::vector< double > &peak_signifs) const
StatusCode neighborhood(const CaloCell *, const std::vector< const CaloCell * > &laremCells, std::vector< const CaloCell * > &neighs, const CaloDetDescrManager *) const
StatusCode crawl_strategy(const CaloCell *seed, const std::vector< const CaloCell * > &laremCells, const std::vector< const CaloCell * > &emb1Cells, std::size_t iseed, const CaloNoise *, const CaloDetDescrManager *) const
Gaudi::Property< int > m_er_nphi
virtual StatusCode initialize() override
StatusCode dump_crawl(std::size_t iseed, const CaloCell *seed, float seed_signif, const CellVectors &, const PathsSignif &, const std::vector< std::string > &paths_pat) const
virtual StatusCode execute(const EventContext &) const override
StatusCode twinpeaks_strategy(const CaloCell *seed, const std::vector< const CaloCell * > &laremCells, const std::vector< const CaloCell * > &emb1Cells, std::size_t iseed, const CaloNoise *, const CaloDetDescrManager *) const
Gaudi::Property< float > m_neigh_half_eta
Gaudi::Property< float > m_neigh_half_phi
Gaudi::Property< std::vector< std::string > > m_strategies
std::vector< std::vector< const CaloCell * > > CellVectors
Gaudi::Property< bool > m_dump
SG::ReadHandleKey< CaloCellContainer > m_allCaloCellsKey
ToolHandle< ICaloCellsProducer > m_cellsProducer
Gaudi::Property< float > m_seed_signifcut
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
SG::ReadCondHandleKey< CaloNoise > m_totalNoiseKey
Gaudi::Property< float > m_crawl_signifcut
std::vector< std::vector< float > > PathsSignif
const CaloCell_ID * m_calocell_id
GepPi0Alg(const std::string &name, ISvcLocator *pSvcLocator)
std::atomic< size_t > m_id
Property holding a SG store/key/clid from which a ReadHandle is made.