|
![CMS Logo](/cmsdoxygen/common/rightImage.jpg) |
#include <EcalTrigPrimFunctionalAlgo.h>
|
| EcalTrigPrimFunctionalAlgo (const EcalElectronicsMapping *theMapping, int binofmax, bool tcpFormat, bool debug, bool famos, bool TPinfoPrintout) |
|
| EcalTrigPrimFunctionalAlgo (const EcalTrigTowerConstituentsMap *eTTmap, const CaloSubdetectorGeometry *endcapGeometry, const EcalElectronicsMapping *theMapping, int binofmax, bool tcpFormat, bool debug, bool famos, bool TPinfoPrintout) |
|
void | run (const EBDigiCollection *col, EcalTrigPrimDigiCollection &result, EcalTrigPrimDigiCollection &resultTcp) |
|
void | run (const EEDigiCollection *col, EcalTrigPrimDigiCollection &result, EcalTrigPrimDigiCollection &resultTcp) |
|
void | run_part1_EB (EBDigiCollection const *col) |
|
void | run_part1_EE (EEDigiCollection const *col) |
|
template<class Coll > |
void | run_part2 (Coll const *col, std::vector< std::vector< std::pair< int, std::vector< typename Coll::Digi >>>> &towerMap, EcalTrigPrimDigiCollection &result, EcalTrigPrimDigiCollection &resultTcp) |
|
void | setPointers (const EcalTPGLinearizationConst *ecaltpLin, const EcalTPGPedestals *ecaltpPed, const EcalTPGSlidingWindow *ecaltpgSlidW, const EcalTPGWeightIdMap *ecaltpgWeightMap, const EcalTPGWeightGroup *ecaltpgWeightGroup, const EcalTPGOddWeightIdMap *ecaltpgOddWeightMap, const EcalTPGOddWeightGroup *ecaltpgOddWeightGroup, const EcalTPGFineGrainStripEE *ecaltpgFgStripEE, const EcalTPGCrystalStatus *ecaltpgBadX, const EcalTPGStripStatus *ecaltpgStripStatus, const EcalTPGTPMode *ecaltpgTPMode) |
|
void | setPointers2 (const EcalTPGFineGrainEBGroup *ecaltpgFgEBGroup, const EcalTPGLutGroup *ecaltpgLutGroup, const EcalTPGLutIdMap *ecaltpgLut, const EcalTPGFineGrainEBIdMap *ecaltpgFineGrainEB, const EcalTPGFineGrainTowerEE *ecaltpgFineGrainTowerEE, const EcalTPGTowerStatus *ecaltpgBadTT, const EcalTPGSpike *ecaltpgSpike, const EcalTPGTPMode *ecaltpgTPMode) |
|
virtual | ~EcalTrigPrimFunctionalAlgo () |
|
EcalTrigPrimFunctionalAlgo is the main algorithm class for TPG It coordinates all the aother algorithms Structure is as close as possible to electronics
- Author
- Ursula Berthon, Stephanie Baffioni, LLR Palaiseau
- Version
- 1st Version may 2006
-
2nd Version jul 2006
-
3rd Version sep 2007 introducing new Records closer to the db
EcalTrigPrimFunctionalAlgo is the main algorithm class for TPG It coordinates all the other algorithms Structure is very close to electronics
- Author
- Ursula Berthon, Stephanie Baffioni, LLR Palaiseau
- Version
- 1st Version may 2006
-
2nd Version jul 2006
Definition at line 46 of file EcalTrigPrimFunctionalAlgo.h.
◆ anonymous enum
◆ anonymous enum
◆ EcalTrigPrimFunctionalAlgo() [1/2]
◆ EcalTrigPrimFunctionalAlgo() [2/2]
EcalTrigPrimFunctionalAlgo::EcalTrigPrimFunctionalAlgo |
( |
const EcalElectronicsMapping * |
theMapping, |
|
|
int |
binofmax, |
|
|
bool |
tcpFormat, |
|
|
bool |
debug, |
|
|
bool |
famos, |
|
|
bool |
TPinfoPrintout |
|
) |
| |
|
explicit |
◆ ~EcalTrigPrimFunctionalAlgo()
EcalTrigPrimFunctionalAlgo::~EcalTrigPrimFunctionalAlgo |
( |
| ) |
|
|
virtual |
◆ clean()
template<class T >
void EcalTrigPrimFunctionalAlgo::clean |
( |
std::vector< std::vector< std::pair< int, std::vector< T >>>> & |
towerMap | ) |
|
|
private |
◆ fillMap()
template<class Coll >
void EcalTrigPrimFunctionalAlgo::fillMap |
( |
Coll const * |
col, |
|
|
std::vector< std::vector< std::pair< int, std::vector< typename Coll::Digi >>>> & |
towerMap |
|
) |
| |
|
private |
Definition at line 295 of file EcalTrigPrimFunctionalAlgo.h.
303 LogDebug(
"EcalTPG") <<
"Fill mapping, Collection size = " <<
col->size();
304 for (
unsigned int i = 0;
i <
col->size(); ++
i) {
311 for (
unsigned int ij = 0; ij < towerMap[
index].size(); ++ij)
318 int ncryst = towerMap[
index][stripnr - 1].first;
321 <<
"! Too many xtals for TT " << coarser <<
" stripnr " << stripnr <<
" xtalid " <<
samples.id();
329 <<
"[EcalTrigPrimFunctionalAlgo] (found " <<
col->size() <<
" frames in " << towerMap.size()
332 LogDebug(
"EcalTPG") <<
"FillMap - FillMap Collection size=0 !!!!";
References cuy::col, TrendClient_cfi::Digi, findStripNr(), first, getIndex(), hitTowers_, mps_fire::i, LogDebug, nbMaxXtals_, nrTowers_, EgammaValidation_cff::samples, and edm::second().
Referenced by run_part1_EB(), and run_part1_EE().
◆ findStripNr() [1/2]
int EcalTrigPrimFunctionalAlgo::findStripNr |
( |
const EBDetId & |
id | ) |
|
|
private |
◆ findStripNr() [2/2]
int EcalTrigPrimFunctionalAlgo::findStripNr |
( |
const EEDetId & |
id | ) |
|
|
private |
◆ getIndex() [1/2]
◆ getIndex() [2/2]
◆ init()
void EcalTrigPrimFunctionalAlgo::init |
( |
void |
| ) |
|
|
private |
Definition at line 95 of file EcalTrigPrimFunctionalAlgo.cc.
98 etcp_ = std::make_unique<EcalFenixTcp>(
References binOfMaximum_, debug_, estrip_, etcp_, famos_, hitTowers_, initStructures(), maxNrSamples_, maxNrSamplesOut_, maxNrTowers_, nbMaxStrips_, nbMaxXtals_, tcpFormat_, theMapping_, towerMapEB_, towerMapEE_, towtp2_, towtp_, and tpInfoPrintout_.
Referenced by EcalTrigPrimFunctionalAlgo().
◆ initStructures()
template<class T >
void EcalTrigPrimFunctionalAlgo::initStructures |
( |
std::vector< std::vector< std::pair< int, std::vector< T >>>> & |
towMap | ) |
|
|
private |
◆ run() [1/2]
◆ run() [2/2]
◆ run_part1_EB()
◆ run_part1_EE()
◆ run_part2()
Definition at line 183 of file EcalTrigPrimFunctionalAlgo.h.
195 std::vector<typename Coll::Digi>
dummy;
199 estrip_->getFGVB()->setbadStripMissing(
false);
201 for (
int itow = 0; itow <
nrTowers_; ++itow) {
203 std::cout <<
"+++++++++++++++++++++++++++++++++++++++++++++++++" << std::endl;
211 for (
unsigned int i = 0;
i < towerMap[itow].size(); ++
i) {
215 if ((towerMap[
index])[
i].first > 0) {
217 std::cout <<
"-------------------------------------------------" << std::endl;
218 std::cout <<
"on Strip index " <<
i << std::endl;
224 bool isInInnerRings =
false;
226 isInInnerRings =
true;
232 if (isInInnerRings) {
234 int phi = 2 * ((thisTower.
iphi() - 1) / 2);
254 for (
int nrt = 0; nrt < nrTowers; nrt++) {
265 LogDebug(
"EcalTPG") <<
" For tower " << itow <<
" created TP nr " << nrTP <<
" with Et "
267 result.push_back(tptow[nrt]);
271 for (
int nrt = 0; nrt < nrTowers; nrt++) {
References binOfMaximum_, EcalTriggerPrimitiveDigi::compressedEt(), gather_cfg::cout, hgcalPerformanceValidation::df, TrendClient_cfi::Digi, EcalEndcap, estrip_, EgHLTOffHistBins_cfi::et, etcp_, first, castor_dqm_sourceclient-live_cfg::firstSample, hitTowers_, mps_fire::i, EcalTrigTowerDetId::ietaAbs(), EcalTrigTowerDetId::iphi(), CastorRawToDigi_cfi::lastSample, LogDebug, nrSamples_, nrTowers_, phi, edm::SortedCollection< T, SORT >::push_back(), mps_fire::result, edm::second(), EcalTriggerPrimitiveDigi::setSample(), EcalTriggerPrimitiveDigi::setSize(), striptp_, EcalTrigTowerDetId::subDet(), tcpFormat_, towtp2_, towtp_, tpInfoPrintout_, and EcalTrigTowerDetId::zside().
Referenced by run().
◆ setPointers()
void EcalTrigPrimFunctionalAlgo::setPointers |
( |
const EcalTPGLinearizationConst * |
ecaltpLin, |
|
|
const EcalTPGPedestals * |
ecaltpPed, |
|
|
const EcalTPGSlidingWindow * |
ecaltpgSlidW, |
|
|
const EcalTPGWeightIdMap * |
ecaltpgWeightMap, |
|
|
const EcalTPGWeightGroup * |
ecaltpgWeightGroup, |
|
|
const EcalTPGOddWeightIdMap * |
ecaltpgOddWeightMap, |
|
|
const EcalTPGOddWeightGroup * |
ecaltpgOddWeightGroup, |
|
|
const EcalTPGFineGrainStripEE * |
ecaltpgFgStripEE, |
|
|
const EcalTPGCrystalStatus * |
ecaltpgBadX, |
|
|
const EcalTPGStripStatus * |
ecaltpgStripStatus, |
|
|
const EcalTPGTPMode * |
ecaltpgTPMode |
|
) |
| |
|
inline |
◆ setPointers2()
◆ barrelOnly_
bool EcalTrigPrimFunctionalAlgo::barrelOnly_ |
|
private |
◆ binOfMaximum_
int EcalTrigPrimFunctionalAlgo::binOfMaximum_ |
|
private |
◆ debug_
bool EcalTrigPrimFunctionalAlgo::debug_ |
|
private |
◆ estrip_
◆ etcp_
std::unique_ptr<EcalFenixTcp> EcalTrigPrimFunctionalAlgo::etcp_ |
|
private |
◆ eTTmap_
◆ famos_
bool EcalTrigPrimFunctionalAlgo::famos_ |
|
private |
◆ hitTowers_
◆ maxNrSamples_
int EcalTrigPrimFunctionalAlgo::maxNrSamples_ |
|
private |
◆ maxNrSamplesOut_
const unsigned int EcalTrigPrimFunctionalAlgo::maxNrSamplesOut_ = 10 |
|
staticprivate |
◆ maxNrTowers_
const unsigned int EcalTrigPrimFunctionalAlgo::maxNrTowers_ = 2448 |
|
staticprivate |
◆ maxNrTPs_
const unsigned int EcalTrigPrimFunctionalAlgo::maxNrTPs_ = 2448 |
|
staticprivate |
◆ nrSamples_
const unsigned int EcalTrigPrimFunctionalAlgo::nrSamples_ = 5 |
|
staticprivate |
◆ nrTowers_
int EcalTrigPrimFunctionalAlgo::nrTowers_ |
|
private |
◆ striptp_
std::vector<std::vector<int> > EcalTrigPrimFunctionalAlgo::striptp_ |
|
private |
◆ tcpFormat_
bool EcalTrigPrimFunctionalAlgo::tcpFormat_ |
|
private |
◆ theEndcapGeometry_
◆ theMapping_
◆ threshold
float EcalTrigPrimFunctionalAlgo::threshold |
|
private |
◆ towerMapEB_
std::vector<std::vector<std::pair<int, std::vector<EBDataFrame> > > > EcalTrigPrimFunctionalAlgo::towerMapEB_ |
|
private |
◆ towerMapEE_
std::vector<std::vector<std::pair<int, std::vector<EEDataFrame> > > > EcalTrigPrimFunctionalAlgo::towerMapEE_ |
|
private |
◆ towtp2_
◆ towtp_
◆ tpInfoPrintout_
bool EcalTrigPrimFunctionalAlgo::tpInfoPrintout_ |
|
private |
int iphi() const
get the tower iphi
void initStructures(std::vector< std::vector< std::pair< int, std::vector< T >>>> &towMap)
static const unsigned int maxNrTowers_
const EcalTrigTowerConstituentsMap * eTTmap_
std::vector< double > vec1
Ecal trigger electronics identification [32:20] Unused (so far) [19:13] TCC id [12:6] TT id [5:3] pse...
int ietaAbs() const
get the absolute value of the tower ieta
void run_part1_EB(EBDigiCollection const *col)
std::vector< std::vector< std::pair< int, std::vector< EEDataFrame > > > > towerMapEE_
void run_part2(Coll const *col, std::vector< std::vector< std::pair< int, std::vector< typename Coll::Digi >>>> &towerMap, EcalTrigPrimDigiCollection &result, EcalTrigPrimDigiCollection &resultTcp)
U second(std::pair< T, U > const &p)
void clean(std::vector< std::vector< std::pair< int, std::vector< T >>>> &towerMap)
std::vector< std::pair< int, EcalTrigTowerDetId > > hitTowers_
std::unique_ptr< EcalFenixTcp > etcp_
int zside() const
get the z-side of the tower (1/-1)
void push_back(T const &t)
Log< level::Warning, false > LogWarning
std::vector< EcalTriggerPrimitiveSample > towtp2_
static const unsigned int nrSamples_
const CaloSubdetectorGeometry * theEndcapGeometry_
int getIndex(const EBDigiCollection *, EcalTrigTowerDetId &id)
std::unique_ptr< EcalFenixStrip > estrip_
int pseudoStripId() const
get the tower id
void setSample(int i, const EcalTriggerPrimitiveSample &sam)
EcalTriggerElectronicsId getTriggerElectronicsId(const DetId &id) const
Get the trigger electronics id for this det id.
int findStripNr(const EBDetId &id)
Log< level::Error, false > LogError
EcalSubdetector subDet() const
get the subDetector associated to the Trigger Tower
std::vector< std::vector< std::pair< int, std::vector< EBDataFrame > > > > towerMapEB_
void fillMap(Coll const *col, std::vector< std::vector< std::pair< int, std::vector< typename Coll::Digi >>>> &towerMap)
std::vector< EcalTriggerPrimitiveSample > towtp_
int compressedEt() const
get the encoded/compressed Et of interesting sample
void run_part1_EE(EEDigiCollection const *col)
std::vector< std::vector< int > > striptp_
const EcalElectronicsMapping * theMapping_
static const unsigned int maxNrSamplesOut_