|
|
Go to the documentation of this file. 1 #ifndef EcalTrigPrimFunctionalAlgo_h
2 #define EcalTrigPrimFunctionalAlgo_h
40 class ETPCoherenceTest;
67 std::vector<std::vector<std::pair<
int, std::vector<typename Coll::Digi>>>> &towerMap,
99 ecaltpgFineGrainTowerEE,
107 void initStructures(std::vector<std::vector<std::pair<
int, std::vector<T>>>> &towMap);
109 void clean(std::vector<std::vector<std::pair<
int, std::vector<T>>>> &towerMap);
110 template <
class Coll>
111 void fillMap(Coll
const *
col, std::vector<std::vector<std::pair<
int, std::vector<typename Coll::Digi>>>> &towerMap);
119 int ind = (
id.ietaAbs() - 18) * 72 +
id.
iphi();
153 std::vector<std::vector<std::pair<int, std::vector<EBDataFrame>>>>
towerMapEB_;
154 std::vector<std::vector<std::pair<int, std::vector<EEDataFrame>>>>
towerMapEE_;
156 std::vector<EcalTriggerPrimitiveSample>
towtp_;
157 std::vector<EcalTriggerPrimitiveSample>
towtp2_;
166 template <
class Coll>
170 std::vector<std::vector<std::pair<
int, std::vector<typename Coll::Digi>>>> &towerMap,
180 std::vector<typename Coll::Digi>
dummy;
186 for (
int itow = 0; itow <
nrTowers_; ++itow) {
192 for (
unsigned int i = 0;
i < towerMap[itow].size(); ++
i) {
196 if ((towerMap[
index])[
i].first > 0) {
201 bool isInInnerRings =
false;
203 isInInnerRings =
true;
209 if (isInInnerRings) {
211 int phi = 2 * ((thisTower.
iphi() - 1) / 2);
231 for (
int nrt = 0; nrt < nrTowers; nrt++) {
242 LogDebug(
"EcalTPG") <<
" For tower " << itow <<
" created TP nr " << nrTP <<
" with Et "
244 result.push_back(tptow[nrt]);
248 for (
int nrt = 0; nrt < nrTowers; nrt++) {
271 template <
class Coll>
273 Coll
const *
col, std::vector<std::vector<std::pair<
int, std::vector<typename Coll::Digi>>>> &towerMap) {
280 LogDebug(
"EcalTPG") <<
"Fill mapping, Collection size = " <<
col->size();
281 for (
unsigned int i = 0;
i <
col->size(); ++
i) {
288 for (
unsigned int ij = 0; ij < towerMap[
index].size(); ++ij)
295 int ncryst = towerMap[
index][stripnr - 1].first;
298 <<
"! Too many xtals for TT " << coarser <<
" stripnr " << stripnr <<
" xtalid " <<
samples.id();
306 <<
"[EcalTrigPrimFunctionalAlgo] (found " <<
col->size() <<
" frames in " << towerMap.size()
309 LogDebug(
"EcalTPG") <<
"FillMap - FillMap Collection size=0 !!!!";
318 (towMap[
i])[
j].first = 0;
329 vec1[
i] = std::pair<
int, std::vector<T>>(0, vec0);
static const unsigned int maxNrTPs_
int iphi() const
get the tower iphi
void initStructures(std::vector< std::vector< std::pair< int, std::vector< T >>>> &towMap)
const CaloSubdetectorGeometry * theEndcapGeometry
static const unsigned int maxNrTowers_
std::vector< double > vec1
void init(const edm::EventSetup &)
int ietaAbs() const
get the absolute value of the tower ieta
void process(const edm::EventSetup &, std::vector< const T > &, int nrxtals, std::vector< int > &out)
void run_part1_EB(EBDigiCollection const *col)
std::vector< std::vector< std::pair< int, std::vector< EEDataFrame > > > > towerMapEE_
U second(std::pair< T, U > const &p)
void setPointers(const EcalTPGPedestals *ecaltpPed, const EcalTPGLinearizationConst *ecaltpLin, const EcalTPGWeightIdMap *ecaltpgWeightMap, const EcalTPGWeightGroup *ecaltpgWeightGroup, const EcalTPGSlidingWindow *ecaltpgSlidW, const EcalTPGFineGrainStripEE *ecaltpgFgStripEE, const EcalTPGCrystalStatus *ecaltpgBadX, const EcalTPGStripStatus *ecaltpgStripStatus)
void clean(std::vector< std::vector< std::pair< int, std::vector< T >>>> &towerMap)
std::vector< std::pair< int, EcalTrigTowerDetId > > hitTowers_
int zside() const
get the z-side of the tower (1/-1)
void push_back(T const &t)
void setPointers(const EcalTPGLinearizationConst *ecaltpLin, const EcalTPGPedestals *ecaltpPed, const EcalTPGSlidingWindow *ecaltpgSlidW, const EcalTPGWeightIdMap *ecaltpgWeightMap, const EcalTPGWeightGroup *ecaltpgWeightGroup, const EcalTPGFineGrainStripEE *ecaltpgFgStripEE, const EcalTPGCrystalStatus *ecaltpgBadX, const EcalTPGStripStatus *ecaltpgStripStatus)
void process(const edm::EventSetup &setup, std::vector< EBDataFrame > &bid, std::vector< std::vector< int >> &tpframetow, int nStr, std::vector< EcalTriggerPrimitiveSample > &tptow, std::vector< EcalTriggerPrimitiveSample > &tptow2, bool isInInnerRings, EcalTrigTowerDetId thisTower)
void run(const edm::EventSetup &, const EBDigiCollection *col, EcalTrigPrimDigiCollection &result, EcalTrigPrimDigiCollection &resultTcp)
std::vector< EcalTriggerPrimitiveSample > towtp2_
void setPointers2(const EcalTPGFineGrainEBGroup *ecaltpgFgEBGroup, const EcalTPGLutGroup *ecaltpgLutGroup, const EcalTPGLutIdMap *ecaltpgLut, const EcalTPGFineGrainEBIdMap *ecaltpgFineGrainEB, const EcalTPGFineGrainTowerEE *ecaltpgFineGrainTowerEE, const EcalTPGTowerStatus *ecaltpgBadTT, const EcalTPGSpike *ecaltpgSpike)
static const unsigned int nrSamples_
int getIndex(const EBDigiCollection *, EcalTrigTowerDetId &id)
virtual ~EcalTrigPrimFunctionalAlgo()
void setSample(int i, const EcalTriggerPrimitiveSample &sam)
edm::ESHandle< EcalTrigTowerConstituentsMap > eTTmap_
EcalFenixStripFgvbEE * getFGVB() const
class representing the Fenix chip, format strip
int findStripNr(const EBDetId &id)
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)
int getIndex(const EEDigiCollection *, EcalTrigTowerDetId &id)
std::vector< EcalTriggerPrimitiveSample > towtp_
int compressedEt() const
get the encoded/compressed Et of interesting sample
void run_part1_EE(EEDigiCollection const *col)
void setbadStripMissing(bool flag)
std::vector< std::vector< int > > striptp_
class representing the Fenix chip, format strip
const EcalElectronicsMapping * theMapping_
void run_part2(const edm::EventSetup &, Coll const *col, std::vector< std::vector< std::pair< int, std::vector< typename Coll::Digi >>>> &towerMap, EcalTrigPrimDigiCollection &result, EcalTrigPrimDigiCollection &resultTcp)
void setPointers(const EcalTPGFineGrainEBGroup *ecaltpgFgEBGroup, const EcalTPGLutGroup *ecaltpgLutGroup, const EcalTPGLutIdMap *ecaltpgLut, const EcalTPGFineGrainEBIdMap *ecaltpgFineGrainEB, const EcalTPGFineGrainTowerEE *ecaltpgFineGrainTowerEE, const EcalTPGTowerStatus *ecaltpgBadTT, const EcalTPGSpike *ecaltpgSpike)
static const unsigned int maxNrSamplesOut_
EcalTrigPrimFunctionalAlgo(const edm::EventSetup &setup, int binofmax, bool tcpFormat, bool barrelOnly, bool debug, bool famos)