CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes
FastL1Region Class Reference

#include <FastL1Region.h>

Public Member Functions

double CalcSumE ()
 
double CalcSumEmE ()
 
double CalcSumEmEt ()
 
double CalcSumEt ()
 
double CalcSumHadE ()
 
double CalcSumHadEt ()
 
void Dump ()
 
 FastL1Region ()
 
void FillEMCrystals (const CaloTowerConstituentsMap *theTowerConstituentsMap, const CaloTopology *calotopo, const CaloGeometry *cGeom, const EcalRecHitCollection *ec0, const EcalRecHitCollection *ec1, FastL1RegionMap *m_RMap)
 
void FillTower (const CaloTower &t, int &tid, edm::ESHandle< CaloGeometry > &cGeom)
 
void FillTower_Scaled (const CaloTower &t, int &tid, bool doRCTTrunc, edm::ESHandle< CaloGeometry > &cGeom)
 
void FillTowerZero (const CaloTower &t, int &tid)
 
FastL1BitInfo getBitInfo ()
 
CaloTowerCollection GetCaloTowers ()
 
int GetEastId ()
 
double GetEMCrystalEnergy (int itwr, int icell)
 
bool GetFGBit (int i)
 
bool GetHCFGBit (int i)
 
bool GetHOEBit (int i)
 
int GetId ()
 
int GetiEta ()
 
int GetiPhi ()
 
double GetJetE ()
 
double GetJetE3x3 ()
 
double GetJetEt ()
 
double GetJetEt3x3 ()
 
bool GetMIPBit ()
 
int GetNEId ()
 
int GetNorthId ()
 
int GetNWId ()
 
bool GetQuietBit ()
 
std::pair< double, double > getRegionCenterEtaPhi (const edm::EventSetup &c)
 
int GetSEId ()
 
int GetSouthId ()
 
int GetSWId ()
 
bool GetTauBit ()
 
std::pair< int, int > GetTowerNorthEtaPhi (int ieta, int iphi)
 
int GetWestId ()
 
int HighestEmEtTowerID ()
 
int HighestEtTowerID ()
 
int HighestHadEtTowerID ()
 
void SetDoBitInfo (bool doIt)
 
void SetEMCrystalEnergy (int itwr, int icell, double en)
 
void SetEtaPhiIndex (int eta, int phi, int ind)
 
void SetFGBit (int twrid, bool FGBIT)
 
void SetHCFGBit (int twrid, bool FGBIT)
 
void SetHOEBit (int twrid, bool FGBIT)
 
void SetJetE (double jE)
 
void SetJetE3x3 (double jE)
 
void SetJetEt (double jEt)
 
void SetJetEt3x3 (double jEt)
 
void SetParameters (const L1Config &)
 
void SetRegionBits (edm::Event const &e)
 
void SetRegionEnergy ()
 
void SetTowerBits ()
 
double SumE ()
 
double SumEmE ()
 
double SumEmEt ()
 
double SumEt ()
 
double SumHadE ()
 
double SumHadEt ()
 
 ~FastL1Region ()
 

Public Attributes

FastL1BitInfo BitInfo
 
bool doBitInfo
 

Private Member Functions

void SetFGBit ()
 
void SetHCFGBit ()
 
void SetHOEBit ()
 
void SetMIPBit ()
 
void SetQuietBit ()
 
void SetTauBit (edm::Event const &e)
 

Private Attributes

L1Config Config
 
double EMCrystalEnergy [16][25]
 
bool fgBit [16]
 
bool hcfgBit [16]
 
bool hOeBit [16]
 
int id
 
int ieta
 
int iphi
 
double jetE
 
double jetE3x3
 
double jetEt
 
double jetEt3x3
 
bool mipBit
 
bool quietBit
 
double sumE
 
double sumEt
 
bool tauBit
 
CaloTowerCollection Towers
 

Detailed Description

Description: Container class for L1 regions.

Implementation: <Notes on="" implementation>="">

Definition at line 110 of file FastL1Region.h.

Constructor & Destructor Documentation

FastL1Region::FastL1Region ( )

Definition at line 22 of file FastL1Region.cc.

References Config, L1Config::CrystalEBThreshold, L1Config::CrystalEEThreshold, L1Config::EMActiveLevel, EMCrystalEnergy, L1Config::EMLSB, L1Config::EMNoiseLevel, L1Config::EMSeedEnThreshold, fgBit, L1Config::FGEBThreshold, L1Config::FGEEThreshold, L1Config::HadActiveLevel, L1Config::HadNoiseLevel, hcfgBit, hOeBit, L1Config::hOeThreshold, i, ieta, iphi, j, jetE, jetEt, L1Config::JetLSB, L1Config::JetSeedEtThreshold, mipBit, L1Config::MuonNoiseLevel, L1Config::noFGThreshold, L1Config::noTauVetoLevel, quietBit, L1Config::QuietRegionThreshold, tauBit, L1Config::TowerEBScale, L1Config::TowerEBThreshold, L1Config::TowerEEScale, L1Config::TowerEEThreshold, L1Config::TowerEMLSB, L1Config::TowerHadLSB, L1Config::TowerHBScale, L1Config::TowerHBThreshold, L1Config::TowerHEScale, L1Config::TowerHEThreshold, and Towers.

23 {
25 
26  jetE = 0.;
27  jetEt = 0.;
28 
29  id = 999;
30  ieta = 999;
31  iphi = 999;
32 
33  tauBit = false;
34  quietBit = false;
35  mipBit = false;
36  for(int i=0;i<16;i++) {
37  hcfgBit[i] = false;
38  fgBit[i] = false;
39  hOeBit[i] = false;
40  for (int j=0;j<25;j++) {
41  EMCrystalEnergy[i][j] = 0. ; // 16x25 Crystals
42  }
43  }
44 
45  // default values
47  Config.EMActiveLevel = 3.;
49  Config.noTauVetoLevel = 10000.;
50  Config.hOeThreshold = 0.05;
51  Config.FGEBThreshold = 0.8;
52  Config.noFGThreshold = 50.;
53  Config.FGEEThreshold = 0.8;
55  Config.EMNoiseLevel = 2.;
56  Config.HadNoiseLevel = 2.;
61 
62  Config.TowerEMLSB = 1.;
63  Config.TowerHadLSB = 1.;
64  Config.EMLSB = 1.;
65  Config.JetLSB = 1.;
66 
68  Config.TowerEEThreshold = 0.45;
71 
72  Config.TowerEBScale = 1.0;
73  Config.TowerEEScale = 1.0;
74  Config.TowerHBScale = 1.0;
75  Config.TowerHEScale = 1.0;
76 
77 
78  //Config.EmInputs;
79  //Config.xTowerInput;
80 
81 }
double FGEBThreshold
Definition: FastL1Region.h:67
double FGEEThreshold
Definition: FastL1Region.h:68
int i
Definition: DBlmapReader.cc:9
double TowerEEScale
Definition: FastL1Region.h:86
double HadActiveLevel
Definition: FastL1Region.h:61
double noTauVetoLevel
Definition: FastL1Region.h:65
double QuietRegionThreshold
Definition: FastL1Region.h:70
double hOeThreshold
Definition: FastL1Region.h:66
double EMActiveLevel
Definition: FastL1Region.h:60
bool hOeBit[16]
Definition: FastL1Region.h:236
double TowerEBScale
Definition: FastL1Region.h:85
double TowerHEThreshold
Definition: FastL1Region.h:83
bool fgBit[16]
Definition: FastL1Region.h:235
double HadNoiseLevel
Definition: FastL1Region.h:63
double TowerHEScale
Definition: FastL1Region.h:88
double TowerHBScale
Definition: FastL1Region.h:87
double TowerEMLSB
Definition: FastL1Region.h:75
double TowerHBThreshold
Definition: FastL1Region.h:82
double CrystalEBThreshold
Definition: FastL1Region.h:72
double JetSeedEtThreshold
Definition: FastL1Region.h:57
double noFGThreshold
Definition: FastL1Region.h:69
int j
Definition: DBlmapReader.cc:9
double TowerEEThreshold
Definition: FastL1Region.h:81
double EMNoiseLevel
Definition: FastL1Region.h:62
CaloTowerCollection Towers
Definition: FastL1Region.h:216
double EMCrystalEnergy[16][25]
Definition: FastL1Region.h:218
double TowerHadLSB
Definition: FastL1Region.h:76
double EMLSB
Definition: FastL1Region.h:77
edm::SortedCollection< CaloTower > CaloTowerCollection
Definition: CaloTowerFwd.h:15
double JetLSB
Definition: FastL1Region.h:78
double CrystalEEThreshold
Definition: FastL1Region.h:73
double MuonNoiseLevel
Definition: FastL1Region.h:71
L1Config Config
Definition: FastL1Region.h:242
double EMSeedEnThreshold
Definition: FastL1Region.h:58
bool hcfgBit[16]
Definition: FastL1Region.h:237
double TowerEBThreshold
Definition: FastL1Region.h:80
FastL1Region::~FastL1Region ( )

Definition at line 84 of file FastL1Region.cc.

85 {
86 }

Member Function Documentation

double FastL1Region::CalcSumE ( )

Definition at line 678 of file FastL1Region.cc.

References i, and Towers.

Referenced by SetRegionEnergy(), and SumE().

679 {
680  double sume=0;
681  for (int i=0; i<16; i++) {
682  sume += Towers[i].emEnergy();
683  sume += Towers[i].hadEnergy();
684 
685  }
686  return sume;
687 }
int i
Definition: DBlmapReader.cc:9
CaloTowerCollection Towers
Definition: FastL1Region.h:216
double FastL1Region::CalcSumEmE ( )

Definition at line 690 of file FastL1Region.cc.

References i, and Towers.

Referenced by SumEmE().

691 {
692  double sume=0;
693  for (int i=0; i<16; i++) {
694  sume += Towers[i].emEnergy();
695  }
696  return sume;
697 }
int i
Definition: DBlmapReader.cc:9
CaloTowerCollection Towers
Definition: FastL1Region.h:216
double FastL1Region::CalcSumEmEt ( )

Definition at line 656 of file FastL1Region.cc.

References i, and Towers.

Referenced by SumEmEt().

657 {
658  double sumet=0;
659  for (int i=0; i<16; i++) {
660  sumet += Towers[i].emEt();
661  }
662 
663  return sumet;
664 }
int i
Definition: DBlmapReader.cc:9
CaloTowerCollection Towers
Definition: FastL1Region.h:216
double FastL1Region::CalcSumEt ( )

Definition at line 644 of file FastL1Region.cc.

References i, and Towers.

Referenced by SetRegionEnergy(), and SumEt().

645 {
646  double sumet=0;
647  for (int i=0; i<16; i++) {
648  sumet += Towers[i].emEt();
649  sumet += Towers[i].hadEt();
650  }
651 
652  return sumet;
653 }
int i
Definition: DBlmapReader.cc:9
CaloTowerCollection Towers
Definition: FastL1Region.h:216
double FastL1Region::CalcSumHadE ( )

Definition at line 700 of file FastL1Region.cc.

References i, and Towers.

Referenced by SumHadE().

701 {
702  double sume=0;
703  for (int i=0; i<16; i++) {
704  sume += Towers[i].hadEnergy();
705  }
706  return sume;
707 }
int i
Definition: DBlmapReader.cc:9
CaloTowerCollection Towers
Definition: FastL1Region.h:216
double FastL1Region::CalcSumHadEt ( )

Definition at line 667 of file FastL1Region.cc.

References i, and Towers.

Referenced by SumHadEt().

668 {
669  double sumet=0;
670  for (int i=0; i<16; i++) {
671  sumet += Towers[i].hadEt();
672  }
673 
674  return sumet;
675 }
int i
Definition: DBlmapReader.cc:9
CaloTowerCollection Towers
Definition: FastL1Region.h:216
void FastL1Region::Dump ( void  )

Definition at line 730 of file FastL1Region.cc.

References gather_cfg::cout, GetEastId(), GetId(), GetNEId(), GetNorthId(), GetNWId(), GetSEId(), GetSouthId(), GetSWId(), and GetWestId().

731 {
732 
733  // test tower filling:
734  /*
735  CaloTowerCollection::const_iterator t;
736  int count = 0;
737  for (t=Towers.begin(); t!=Towers.end(); t++) {
738  std::cout << count << ") " << t->energy() << " | " << t->eta() << " | " << t->phi() << std::endl;
739  count++;
740  }
741  std::cout << std::endl;
742  */
743 
744  // test region neighbours:
745  std::cout << this->GetNWId() << " " << this->GetNorthId() << " " << this->GetNEId() << std::endl;
746  std::cout << this->GetWestId() << " " << this->GetId() << " " << this->GetEastId() << std::endl;
747  std::cout << this->GetSWId() << " " << this->GetSouthId() << " " << this->GetSEId() << std::endl;
748  std::cout << std::endl;
749 
750 }
tuple cout
Definition: gather_cfg.py:121
void FastL1Region::FillEMCrystals ( const CaloTowerConstituentsMap theTowerConstituentsMap,
const CaloTopology calotopo,
const CaloGeometry cGeom,
const EcalRecHitCollection ec0,
const EcalRecHitCollection ec1,
FastL1RegionMap m_RMap 
)

Definition at line 120 of file FastL1Region.cc.

References edm::SortedCollection< T, SORT >::begin(), Config, L1Config::CrystalEBThreshold, L1Config::CrystalEEThreshold, CaloTopology::east(), EMCrystalEnergy, L1Config::EMNoiseLevel, edm::SortedCollection< T, SORT >::end(), relval_parameters_module::energy, fgBit, L1Config::FGEEThreshold, GetiEta(), i, CaloTowerDetId::ieta(), EBDetId::ieta(), ieta, CaloTowerDetId::iphi(), EBDetId::iphi(), iphi, L1Config::noFGThreshold, CaloTopology::north(), SetTowerBits(), CaloTopology::south(), EBDetId::tower_ieta(), EBDetId::tower_iphi(), L1Config::TowerEEThreshold, CaloTowerConstituentsMap::towerOf(), Towers, and CaloTopology::west().

126 {
127  //std::vector< std::pair <std::string,std::string> > la;
128  //la.resize(2);
130  //la[0].first = "ecalRecHit";
131  //la[0].second = "EcalRecHitsEB";
133  //la[1].first = "ecalRecHit";
134  //la[1].second = "EcalRecHitsEE";
135 
136 
137  double ethres = Config.CrystalEBThreshold;
138 
139  // EB
140  //e.getByLabel(la[0].first,la[0].second,ec);
141  //e.getByLabel(Config.EmInputs.at(0),ec);
142 
143  ethres = Config.CrystalEBThreshold;
144  for(EcalRecHitCollection::const_iterator ecItr = ec0->begin();
145  ecItr != ec0->end(); ++ecItr) {
146  //CaloRecHit recHit = (CaloRecHit)(*ecItr);
147  if (ecItr->energy()<ethres) continue;
148 
149  EBDetId detId = ecItr->detid();
150 
151  //int hiphi = detId.tower_iphi();
152  int hieta = detId.tower_ieta();
153  int eieta = detId.ieta();
154  int eiphi = detId.iphi();
155  int crIeta = 999;
156  if (hieta>0)
157  crIeta = (eieta-1)%5;
158  else
159  crIeta = 4 + (eieta+1)%5;
160  int crIphi = (eiphi - 1)%5;
161 
162  //const GlobalPoint gP = cGeom->getPosition(detId);
163 
164  //CaloTowerDetId towerDetId = theTowerConstituentsMap->towerOf(detId);
165  // loop over towers
166  for(int i=0;i<16;i++) {
167  //int hiphi = m_RMap->convertFromECal_to_HCal_iphi(detId.tower_iphi());
168  //int hiphi = m_RMap->convertFromHCal_to_ECal_iphi(detId.tower_iphi());
169  int hiphi = detId.tower_iphi();
170  if ( !Towers[i].id().iphi()==hiphi || !Towers[i].id().ieta()==hieta ) continue;
171  EMCrystalEnergy[i][crIeta + 5*crIphi] = ecItr->energy();
172  }
173  }
174 
175  // After having filled crsystal info set all veto bits
176  SetTowerBits();
177 
178  // EE FG bits are filled here!!!
179  //e.getByLabel(la[1].first,la[1].second,ec);
180 
181  if (GetiEta()==4 || GetiEta()==5 || GetiEta()==6 ||
182  GetiEta()==15 || GetiEta()==16 || GetiEta()==17 ) {
183 
184  //e.getByLabel(Config.EmInputs.at(1),ec);
185  ethres = Config.CrystalEEThreshold;
186  double towerEnergy[16];
187  // loop over towers
188  for(int i=0;i<16;i++) {
189  fgBit[i] = false; // re-iniate
190 
191  //if (Towers[i].hadEt()>Config.HadNoiseLevel && Towers[i].emEt()>Config.EMNoiseLevel ) {
192  if (Towers[i].emEt()>=Config.EMNoiseLevel ) {
193  //if (Towers[i].emEnergy()>Config.EMNoiseLevel ) {
194  //towerEnergy[i] = Towers[i].hadEt() + Towers[i].emEt();
195  towerEnergy[i] = Towers[i].hadEnergy() + Towers[i].emEnergy();
196  } else {
197  fgBit[i] = false;
198  continue;
199  }
200 
201  // EB/EE transition area: unset fg bits
202  // if (std::abs(Towers[i].id().ieta())==16 || std::abs(Towers[i].id().ieta())==17) {
203  // fgBit[i] = false;
204  // continue;
205  // }
206  if (Towers[i].emEt()>Config.noFGThreshold) {
207  fgBit[i] = false;
208  continue;
209  }
210 
211  //CaloRecHit maxRecHit;
212  //CaloRecHit maxRecHit2;
213  double maxRecHit=-1.;
214  double maxRecHit2=-1.;
215  DetId maxDetId;
216 
217  double max2En = 0.;
218 
219  for(EcalRecHitCollection::const_iterator ecItr = ec1->begin();
220  ecItr != ec1->end(); ++ecItr) {
221  //CaloRecHit recHit = (CaloRecHit)(*ecItr);
222  if (ecItr->energy()<ethres) continue;
223 
224  EEDetId detId = ecItr->detid();
225 
226  CaloTowerDetId towerDetId = theTowerConstituentsMap->towerOf(detId);
227  //int hiphi = m_RMap->convertFromECal_to_HCal_iphi(towerDetId.iphi());
228  int hiphi = towerDetId.iphi();
229  if (Towers[i].id().iphi()==hiphi &&
230  Towers[i].id().ieta()==towerDetId.ieta() ) {
231  if (maxRecHit<ecItr->energy()) {
232  maxRecHit = ecItr->energy();
233  maxDetId = detId;
234  }
235  }
236  }
237 
238  std::vector<DetId> westV = calotopo->west(maxDetId);
239  std::vector<DetId> eastV = calotopo->east(maxDetId);
240  std::vector<DetId> southV = calotopo->south(maxDetId);
241  std::vector<DetId> northV = calotopo->north(maxDetId);
242  for(EcalRecHitCollection::const_iterator ecItr = ec1->begin();
243  ecItr != ec1->end(); ++ecItr) {
244  //CaloRecHit recHit = (CaloRecHit)(*ecItr);
245  if (ecItr->energy()<ethres) continue;
246 
247  EEDetId detId = ecItr->detid();
248 
249  CaloTowerDetId towerDetId = theTowerConstituentsMap->towerOf(detId);
250  //int hiphi = m_RMap->convertFromECal_to_HCal_iphi(towerDetId.iphi());
251  int hiphi = towerDetId.iphi();
252  if (Towers[i].id().iphi()==hiphi &&
253  Towers[i].id().ieta()==towerDetId.ieta() ) {
254  if (
255  (!westV.empty() && detId==westV[0]) ||
256  (!eastV.empty() && detId==eastV[0]) ||
257  (!northV.empty() && detId==northV[0]) ||
258  (!southV.empty() && detId==southV[0])
259  ) {
260  if (maxRecHit2<ecItr->energy()) {
261  maxRecHit2 = ecItr->energy();
262  }
263  max2En += ecItr->energy();
264  }
265  }
266  }
267 
268  double eeThres = Config.FGEEThreshold;
269  //double totE = maxRecHit.energy() + max2En;
270  double totE = maxRecHit + maxRecHit2;
271  if (towerEnergy[i]>(Config.TowerEEThreshold)) {
272  //double totE = maxRecHit.energy() + maxRecHit2.energy();
273  //if (totE/towerEnergy[i]<Config.FGEBThreshold) fgBit[i] = true;
274  if (totE/towerEnergy[i]<eeThres) fgBit[i] = true;
275  }
276 
277  }
278  }
279 
280 
281 }
double FGEEThreshold
Definition: FastL1Region.h:68
int i
Definition: DBlmapReader.cc:9
int tower_ieta() const
get the HCAL/trigger ieta of this crystal
Definition: EBDetId.h:55
int tower_iphi() const
get the HCAL/trigger iphi of this crystal
Definition: EBDetId.cc:114
void SetTowerBits()
std::vector< EcalRecHit >::const_iterator const_iterator
bool fgBit[16]
Definition: FastL1Region.h:235
int iphi() const
get the crystal iphi
Definition: EBDetId.h:53
CaloTowerDetId towerOf(const DetId &id) const
Get the tower id for this det id (or null if not known)
double CrystalEBThreshold
Definition: FastL1Region.h:72
int iphi() const
get the tower iphi
double noFGThreshold
Definition: FastL1Region.h:69
std::vector< DetId > east(const DetId &id) const
Get the neighbors of the given cell in east direction.
Definition: CaloTopology.cc:38
int ieta() const
get the crystal ieta
Definition: EBDetId.h:51
std::vector< DetId > north(const DetId &id) const
Get the neighbors of the given cell in north direction.
Definition: CaloTopology.cc:48
double TowerEEThreshold
Definition: FastL1Region.h:81
const_iterator end() const
double EMNoiseLevel
Definition: FastL1Region.h:62
Definition: DetId.h:18
CaloTowerCollection Towers
Definition: FastL1Region.h:216
std::vector< DetId > west(const DetId &id) const
Get the neighbors of the given cell in west direction.
Definition: CaloTopology.cc:43
double EMCrystalEnergy[16][25]
Definition: FastL1Region.h:218
double CrystalEEThreshold
Definition: FastL1Region.h:73
L1Config Config
Definition: FastL1Region.h:242
int ieta() const
get the tower ieta
std::vector< DetId > south(const DetId &id) const
Get the neighbors of the given cell in south direction.
Definition: CaloTopology.cc:53
const_iterator begin() const
void FastL1Region::FillTower ( const CaloTower t,
int &  tid,
edm::ESHandle< CaloGeometry > &  cGeom 
)

Definition at line 292 of file FastL1Region.cc.

References funct::abs(), Config, CaloTower::emEt(), reco::LeafCandidate::energy(), reco::LeafCandidate::eta(), CaloTower::hadEt(), CaloTower::id(), CaloTower::outerEt(), reco::LeafCandidate::px(), reco::LeafCandidate::py(), RCTEnergyTrunc(), L1Config::TowerEBThreshold, L1Config::TowerEEThreshold, L1Config::TowerEMLSB, L1Config::TowerHadLSB, L1Config::TowerHBThreshold, L1Config::TowerHEThreshold, and Towers.

293 {
294  double EThres = 0.;
295  double HThres = 0.;
296  double EBthres = Config.TowerEBThreshold;
297  double HBthres = Config.TowerHBThreshold;
298  double EEthres = Config.TowerEEThreshold;
299  double HEthres = Config.TowerHEThreshold;
300 
301  if(std::abs(t.eta())<2.322) {
302  EThres = EBthres;
303  } else {
304  EThres = EEthres;
305  }
306  if(std::abs(t.eta())<2.322) {
307  HThres = HBthres;
308  } else {
309  HThres = HEthres;
310  }
311 
312  double upperThres = 1024.;
313  double emet = RCTEnergyTrunc(t.emEt(),Config.TowerEMLSB,upperThres);
314  double hadet = RCTEnergyTrunc(t.hadEt(),Config.TowerHadLSB,upperThres);
315  //double eme = RCTEnergyTrunc(t.emEnergy(),Config.TowerEMLSB,upperThres);
316  //double hade = RCTEnergyTrunc(t.hadEnergy(),Config.TowerHadLSB,upperThres);
317 
318  if ( emet<EThres) emet = 0.;
319  if ( hadet<HThres) hadet = 0.;
320  //if ( eme<EThres) emet = 0.;
321  //if ( hade<HThres) hadet = 0.;
322 
323  GlobalPoint gP = cGeom->getPosition(t.id());
324  math::XYZTLorentzVector lvec(t.px(),t.py(),t.px(),t.energy());
325  //Towers[tid] = CaloTower(t);
326  //Towers[tid] = CaloTower(t.id(),t.momentum(),emet,hadet,t.outerEt(),0,0);
327  Towers[tid] = CaloTower(t.id(),emet,hadet,t.outerEt(),0,0,lvec,gP,gP);
328 }
virtual double energy() const GCC11_FINAL
energy
double hadEt() const
Definition: CaloTower.h:83
double outerEt() const
Definition: CaloTower.h:84
double TowerHEThreshold
Definition: FastL1Region.h:83
virtual double py() const GCC11_FINAL
y coordinate of momentum vector
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
double TowerEMLSB
Definition: FastL1Region.h:75
double TowerHBThreshold
Definition: FastL1Region.h:82
virtual double px() const GCC11_FINAL
x coordinate of momentum vector
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
virtual float eta() const GCC11_FINAL
momentum pseudorapidity
double TowerEEThreshold
Definition: FastL1Region.h:81
CaloTowerDetId id() const
Definition: CaloTower.h:70
CaloTowerCollection Towers
Definition: FastL1Region.h:216
double TowerHadLSB
Definition: FastL1Region.h:76
double RCTEnergyTrunc(double et, double Resol=1., double thres=1024.)
L1Config Config
Definition: FastL1Region.h:242
double TowerEBThreshold
Definition: FastL1Region.h:80
double emEt() const
Definition: CaloTower.h:82
void FastL1Region::FillTower_Scaled ( const CaloTower t,
int &  tid,
bool  doRCTTrunc,
edm::ESHandle< CaloGeometry > &  cGeom 
)

Definition at line 333 of file FastL1Region.cc.

References funct::abs(), Config, CaloTower::emEnergy(), CaloTower::emEt(), reco::LeafCandidate::energy(), reco::LeafCandidate::eta(), CaloTower::hadEnergy(), CaloTower::hadEt(), CaloTower::id(), CaloTower::outerEt(), reco::LeafCandidate::px(), reco::LeafCandidate::py(), RCTEnergyTrunc(), L1Config::TowerEBScale, L1Config::TowerEBThreshold, L1Config::TowerEEScale, L1Config::TowerEEThreshold, L1Config::TowerEMLSB, L1Config::TowerHadLSB, L1Config::TowerHBScale, L1Config::TowerHBThreshold, L1Config::TowerHEScale, L1Config::TowerHEThreshold, and Towers.

334 {
335 
336  double EThres = 0.;
337  double HThres = 0.;
338  double EBthres = Config.TowerEBThreshold;
339  double HBthres = Config.TowerHBThreshold;
340  double EEthres = Config.TowerEEThreshold;
341  double HEthres = Config.TowerHEThreshold;
342 
343  if(std::abs(t.eta())<2.322) {
344  EThres = EBthres;
345  } else {
346  EThres = EEthres;
347  }
348  if(std::abs(t.eta())<2.322) {
349  HThres = HBthres;
350  } else {
351  HThres = HEthres;
352  }
353 
354  double emScale = 1.0;
355  double hadScale = 1.0;
356  //double outerScale = 1.0;
357 
358  if (std::abs(t.eta()>1.3050) && std::abs(t.eta())<3.0) {
359  hadScale = Config.TowerHEScale;
360  emScale = Config.TowerEEScale;
361  }
362  if (std::abs(t.eta()<1.3050)) {
363  hadScale = Config.TowerHBScale;
364  emScale = Config.TowerEBScale;
365  }
366 
367  double emet = emScale * t.emEt();
368  double hadet = hadScale * t.hadEt();
369  double eme = emScale * t.emEnergy();
370  double hade = hadScale * t.hadEnergy();
371 
372  if (doRCTTrunc) {
373  double upperThres = 1024.;
374  emet = RCTEnergyTrunc(emet,Config.TowerEMLSB,upperThres);
375  hadet = RCTEnergyTrunc(hadet,Config.TowerHadLSB,upperThres);
376  eme = RCTEnergyTrunc(eme,Config.TowerEMLSB,upperThres);
377  hade = RCTEnergyTrunc(hade,Config.TowerHadLSB,upperThres);
378  }
379  if ( emet<EThres) emet = 0.;
380  if ( hadet<HThres) hadet = 0.;
381  //if ( eme<EThres) emet = 0.;
382  //if ( hade<HThres) hadet = 0.;
383 
384  /*
385  if (t.emEt()>0. || t.hadEt()>0.) {
386  std::cout<<"+++ "
387  <<t.emEt()<<" "<<t.hadEt()<<" "
388  <<t.eta()<<" "<<t.phi()<<" "
389  <<std::endl;
390  }
391  */
392 
393  //Towers[tid] = CaloTower(t);
394  //Towers[tid] = CaloTower(t.id(),t.momentum(),emet,hadet,0.,0,0);
395  //edm::ESHandle<CaloGeometry> cGeom;
396  //c.get<CaloGeometryRecord>().get(cGeom);
397  GlobalPoint gP = cGeom->getPosition(t.id());
398  math::XYZTLorentzVector lvec(t.px(),t.py(),t.px(),t.energy());
399  //Towers[tid] = CaloTower(t);
400  //Towers[tid] = CaloTower(t.id(),t.momentum(),emet,hadet,t.outerEt(),0,0);
401  Towers[tid] = CaloTower(t.id(),emet,hadet,t.outerEt(),0,0,lvec,gP,gP);
402 
403  //std::cout<<tid<<" "<<Towers[tid].emEt()<< " " <<Towers[tid].hadEt()<< std::endl;
404 
405 }
virtual double energy() const GCC11_FINAL
energy
double TowerEEScale
Definition: FastL1Region.h:86
double hadEt() const
Definition: CaloTower.h:83
double outerEt() const
Definition: CaloTower.h:84
double TowerEBScale
Definition: FastL1Region.h:85
double TowerHEThreshold
Definition: FastL1Region.h:83
virtual double py() const GCC11_FINAL
y coordinate of momentum vector
double TowerHEScale
Definition: FastL1Region.h:88
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
double TowerHBScale
Definition: FastL1Region.h:87
double TowerEMLSB
Definition: FastL1Region.h:75
double emEnergy() const
Definition: CaloTower.h:77
double TowerHBThreshold
Definition: FastL1Region.h:82
virtual double px() const GCC11_FINAL
x coordinate of momentum vector
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
virtual float eta() const GCC11_FINAL
momentum pseudorapidity
double TowerEEThreshold
Definition: FastL1Region.h:81
double hadEnergy() const
Definition: CaloTower.h:78
CaloTowerDetId id() const
Definition: CaloTower.h:70
CaloTowerCollection Towers
Definition: FastL1Region.h:216
double TowerHadLSB
Definition: FastL1Region.h:76
double RCTEnergyTrunc(double et, double Resol=1., double thres=1024.)
L1Config Config
Definition: FastL1Region.h:242
double TowerEBThreshold
Definition: FastL1Region.h:80
double emEt() const
Definition: CaloTower.h:82
void FastL1Region::FillTowerZero ( const CaloTower t,
int &  tid 
)

Definition at line 285 of file FastL1Region.cc.

References Towers.

286 {
287  Towers[tid] = CaloTower(t);
288  //std::cout<<"--- "<<Towers[tid].emEt()<<" "<<Towers[tid].hadEt()<<std::endl;
289 }
CaloTowerCollection Towers
Definition: FastL1Region.h:216
FastL1BitInfo FastL1Region::getBitInfo ( )
inline

Definition at line 192 of file FastL1Region.h.

References BitInfo.

192 { return BitInfo; }
FastL1BitInfo BitInfo
Definition: FastL1Region.h:196
CaloTowerCollection FastL1Region::GetCaloTowers ( )
inline

Definition at line 156 of file FastL1Region.h.

References Towers.

156 { return Towers; };
CaloTowerCollection Towers
Definition: FastL1Region.h:216
int FastL1Region::GetEastId ( )

Definition at line 766 of file FastL1Region.cc.

References ieta, and iphi.

Referenced by Dump().

767 { if (ieta != 21) return (iphi*22 + ieta+1); else return 999; }
double FastL1Region::GetEMCrystalEnergy ( int  itwr,
int  icell 
)
inline

Definition at line 158 of file FastL1Region.h.

References EMCrystalEnergy.

158 { return EMCrystalEnergy[itwr][icell]; };
double EMCrystalEnergy[16][25]
Definition: FastL1Region.h:218
bool FastL1Region::GetFGBit ( int  i)
inline

Definition at line 152 of file FastL1Region.h.

References fgBit, and i.

152 { if(i>=0 && i<16) {return fgBit[i];} else { return false; } };
int i
Definition: DBlmapReader.cc:9
bool fgBit[16]
Definition: FastL1Region.h:235
bool FastL1Region::GetHCFGBit ( int  i)
inline

Definition at line 154 of file FastL1Region.h.

References hcfgBit, and i.

154 { if(i>=0 && i<16) return hcfgBit[i]; else return false; };
int i
Definition: DBlmapReader.cc:9
bool hcfgBit[16]
Definition: FastL1Region.h:237
bool FastL1Region::GetHOEBit ( int  i)
inline

Definition at line 153 of file FastL1Region.h.

References hOeBit, and i.

153 { if(i>=0 && i<16) { return hOeBit[i]; } else { return false; } };
int i
Definition: DBlmapReader.cc:9
bool hOeBit[16]
Definition: FastL1Region.h:236
int FastL1Region::GetId ( )
inline

Definition at line 134 of file FastL1Region.h.

References id.

Referenced by Dump().

134 { return id; };
int FastL1Region::GetiEta ( )
inline

Definition at line 132 of file FastL1Region.h.

References ieta.

Referenced by FillEMCrystals(), and SetFGBit().

132 { return ieta; };
int FastL1Region::GetiPhi ( )
inline

Definition at line 133 of file FastL1Region.h.

References iphi.

133 { return iphi; };
double FastL1Region::GetJetE ( )
inline

Definition at line 172 of file FastL1Region.h.

References jetE.

172 { return jetE; };
double FastL1Region::GetJetE3x3 ( )
inline

Definition at line 183 of file FastL1Region.h.

References jetE3x3.

183 { return jetE3x3; };
double jetE3x3
Definition: FastL1Region.h:224
double FastL1Region::GetJetEt ( )
inline

Definition at line 173 of file FastL1Region.h.

References jetEt.

173 { return jetEt; };
double FastL1Region::GetJetEt3x3 ( )
inline

Definition at line 184 of file FastL1Region.h.

References jetEt3x3.

184 { return jetEt3x3; };
double jetEt3x3
Definition: FastL1Region.h:225
bool FastL1Region::GetMIPBit ( )
inline

Definition at line 151 of file FastL1Region.h.

References mipBit.

151 { return mipBit; };
int FastL1Region::GetNEId ( )

Definition at line 795 of file FastL1Region.cc.

References ieta, and iphi.

Referenced by Dump().

796 {
797  if (ieta != 21) {
798  if (iphi != 17)
799  return ((iphi+1)*22 + ieta+1);
800  else
801  return (ieta+1);
802  } else {
803  return 999;
804  }
805 }
int FastL1Region::GetNorthId ( )

Definition at line 753 of file FastL1Region.cc.

References ieta, and iphi.

Referenced by Dump().

754 { if (iphi != 17) return ((iphi+1)*22 + ieta); else return ieta; }
int FastL1Region::GetNWId ( )

Definition at line 770 of file FastL1Region.cc.

References ieta, and iphi.

Referenced by Dump().

771 {
772  if (ieta != 0) {
773  if (iphi != 17)
774  return ((iphi+1)*22 + ieta-1);
775  else
776  return (ieta-1);
777  } else {
778  return 999;
779  }
780 }
bool FastL1Region::GetQuietBit ( )
inline

Definition at line 150 of file FastL1Region.h.

References quietBit.

150 { return quietBit; };
std::pair< double, double > FastL1Region::getRegionCenterEtaPhi ( const edm::EventSetup c)

Definition at line 711 of file FastL1Region.cc.

References PV3DBase< T, PVType, FrameType >::eta(), eta(), edm::EventSetup::get(), phi, PV3DBase< T, PVType, FrameType >::phi(), and Towers.

712 {
714  //c.get<IdealGeometryRecord>().get(cGeom);
715  c.get<CaloGeometryRecord>().get(cGeom);
716 
717  const GlobalPoint gP1 = cGeom->getPosition(Towers[5].id());
718  //const GlobalPoint gP2 = cGeom->getPosition(Towers[6].id());
719  //const GlobalPoint gP3 = cGeom->getPosition(Towers[10].id());
720 
721  double eta = gP1.eta();
722  double phi = gP1.phi();
723 
724  return std::pair<double, double>(eta, phi);
725 }
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
T eta() const
CaloTowerCollection Towers
Definition: FastL1Region.h:216
const T & get() const
Definition: EventSetup.h:55
T eta() const
Definition: PV3DBase.h:76
Definition: DDAxes.h:10
int FastL1Region::GetSEId ( )

Definition at line 808 of file FastL1Region.cc.

References ieta, and iphi.

Referenced by Dump().

809 {
810  if (ieta != 21) {
811  if (iphi != 0)
812  return ((iphi-1)*22 + ieta+1);
813  else
814  return (17*22 + ieta+1);
815  } else {
816  return 999;
817  }
818 }
int FastL1Region::GetSouthId ( )

Definition at line 758 of file FastL1Region.cc.

References ieta, and iphi.

Referenced by Dump().

759 { if (iphi != 0) return ((iphi-1)*22 + ieta); else return (17*22 + ieta); }
int FastL1Region::GetSWId ( )

Definition at line 783 of file FastL1Region.cc.

References ieta, and iphi.

Referenced by Dump().

784 {
785  if (ieta != 0) {
786  if (iphi != 0)
787  return ((iphi-1)*22 + ieta-1);
788  else
789  return (17*22 + ieta-1);
790  } else {
791  return 999;
792  }
793 }
bool FastL1Region::GetTauBit ( )
inline

Definition at line 149 of file FastL1Region.h.

References tauBit.

149 { return tauBit; };
std::pair<int, int> FastL1Region::GetTowerNorthEtaPhi ( int  ieta,
int  iphi 
)
int FastL1Region::GetWestId ( )

Definition at line 762 of file FastL1Region.cc.

References ieta, and iphi.

Referenced by Dump().

763 { if (ieta != 0) return (iphi*22 + ieta-1); else return 999; }
int FastL1Region::HighestEmEtTowerID ( )

Definition at line 612 of file FastL1Region.cc.

References BitInfo, doBitInfo, i, FastL1BitInfo::setHighestEmEtTowerID(), and Towers.

613 {
614  int hid = -1;
615  double tmpet=0.;
616  for (int i=0; i<16; i++) {
617  if ( (Towers[i].emEt()) > tmpet) {
618  tmpet = (Towers[i].emEt());
619  hid = i;
620  }
621  }
622 
624  return hid;
625 }
int i
Definition: DBlmapReader.cc:9
CaloTowerCollection Towers
Definition: FastL1Region.h:216
FastL1BitInfo BitInfo
Definition: FastL1Region.h:196
void setHighestEmEtTowerID(int id)
Definition: FastL1BitInfo.h:36
int FastL1Region::HighestEtTowerID ( )

Definition at line 595 of file FastL1Region.cc.

References BitInfo, doBitInfo, i, FastL1BitInfo::setHighestEtTowerID(), and Towers.

596 {
597  int hid = -1;
598  double tmpet=0.;
599  for (int i=0; i<16; i++) {
600  if ( (Towers[i].emEt()+Towers[i].hadEt()) > tmpet) {
601  tmpet = (Towers[i].emEt()+Towers[i].hadEt());
602  hid = i;
603  }
604  }
605 
607 
608  return hid;
609 }
int i
Definition: DBlmapReader.cc:9
void setHighestEtTowerID(int id)
Definition: FastL1BitInfo.h:35
CaloTowerCollection Towers
Definition: FastL1Region.h:216
FastL1BitInfo BitInfo
Definition: FastL1Region.h:196
int FastL1Region::HighestHadEtTowerID ( )

Definition at line 628 of file FastL1Region.cc.

References BitInfo, doBitInfo, i, FastL1BitInfo::setHighestHadEtTowerID(), and Towers.

629 {
630  int hid = -1;
631  double tmpet=0.;
632  for (int i=0; i<16; i++) {
633  if ( (Towers[i].hadEt()) > tmpet) {
634  tmpet = (Towers[i].hadEt());
635  hid = i;
636  }
637  }
638 
640  return hid;
641 }
int i
Definition: DBlmapReader.cc:9
CaloTowerCollection Towers
Definition: FastL1Region.h:216
void setHighestHadEtTowerID(int id)
Definition: FastL1BitInfo.h:37
FastL1BitInfo BitInfo
Definition: FastL1Region.h:196
void FastL1Region::SetDoBitInfo ( bool  doIt)
inline

Definition at line 177 of file FastL1Region.h.

References doBitInfo.

177 {doBitInfo = doIt;}
void FastL1Region::SetEMCrystalEnergy ( int  itwr,
int  icell,
double  en 
)
inline

Definition at line 157 of file FastL1Region.h.

References EMCrystalEnergy.

157 { EMCrystalEnergy[itwr][icell] = en; };
double EMCrystalEnergy[16][25]
Definition: FastL1Region.h:218
void FastL1Region::SetEtaPhiIndex ( int  eta,
int  phi,
int  ind 
)
inline

Definition at line 129 of file FastL1Region.h.

References eta(), ieta, iphi, and phi.

130  { ieta=eta; iphi=phi; id=ind; };
T eta() const
Definition: DDAxes.h:10
void FastL1Region::SetFGBit ( int  twrid,
bool  FGBIT 
)

Definition at line 451 of file FastL1Region.cc.

References fgBit.

452 {
453  fgBit[twrid] = FGBIT;
454 }
bool fgBit[16]
Definition: FastL1Region.h:235
void FastL1Region::SetFGBit ( )
private

Definition at line 467 of file FastL1Region.cc.

References Config, EMCrystalEnergy, L1Config::EMNoiseLevel, fgBit, L1Config::FGEBThreshold, GetiEta(), i, j, L1Config::noFGThreshold, L1Config::TowerEBThreshold, and Towers.

Referenced by SetTowerBits().

468 {
469  double ratioCut = Config.FGEBThreshold;
470 
471  double stripEnergy[16][5];
472  double duostripEnergy[16][4];
473  double towerEnergy[16];
474 
475  if (GetiEta()>=7 && GetiEta()<=14) {
476  //Barrel
477  for (int i=0; i<16; i++) {
478  //if (Towers[i].hadEt()>Config.HadNoiseLevel && Towers[i].emEt()>Config.EMNoiseLevel ) {
479  if (Towers[i].emEt()>Config.EMNoiseLevel ) {
480  //towerEnergy[i] = Towers[i].hadEt() + Towers[i].emEt();
481  towerEnergy[i] = Towers[i].hadEnergy() + Towers[i].emEnergy();
482  } else {
483  fgBit[i] = false;
484  continue;
485  }
486 
487  // EB/EE transition area: unset fg bits
488  //if (std::abs(Towers[i].id().ieta())==16 || std::abs(Towers[i].id().ieta())==17) {
489  //fgBit[i] = false;
490  //continue;
491  //}
492  if (Towers[i].emEt()>Config.noFGThreshold) {
493  fgBit[i] = false;
494  continue;
495  }
496 
497  bool fgflag = false;
498  for (int j=0; j<5; j++) {
499  stripEnergy[i][j] = EMCrystalEnergy[i][j] + EMCrystalEnergy[i][j+5] + EMCrystalEnergy[i][j+10] +
500  EMCrystalEnergy[i][j+15] + EMCrystalEnergy[i][j+20];
501  }
502  for (int j=0; j<4; j++) {
503  duostripEnergy[i][j] = stripEnergy[i][j] + stripEnergy[i][j+1];
504  if (towerEnergy[i]>(Config.TowerEBThreshold)) {
505  //std::cout<<duostripEnergy[i][j]<<" |"<<towerEnergy[i]<<" |"<<duostripEnergy[i][j]/towerEnergy[i]<<std::endl;
506  if ( (duostripEnergy[i][j] / towerEnergy[i]) > ratioCut) {
507  fgflag = true;
508  }
509  //std::cout<<duostripEnergy[i][j]<<" | "<<towerEnergy[i]<<": "<<duostripEnergy[i][j]/towerEnergy[i]<<std::endl;
510  }
511  }
512 
513  if (fgflag) {
514  fgBit[i] = false;
515  } else {
516  fgBit[i] = true;
517  }
518  //std::cout<<GetiEta()<<" | "<<i<<": "<<fgBit[i]<<std::endl;
519  //std::cout<<"********************************************"<<std::endl;
520  }
521  } else {
522  // Endcap FG bit is already filled in fillEMCrystals()!!!
523  }
524 
525 }
double FGEBThreshold
Definition: FastL1Region.h:67
int i
Definition: DBlmapReader.cc:9
bool fgBit[16]
Definition: FastL1Region.h:235
double noFGThreshold
Definition: FastL1Region.h:69
int j
Definition: DBlmapReader.cc:9
double EMNoiseLevel
Definition: FastL1Region.h:62
CaloTowerCollection Towers
Definition: FastL1Region.h:216
double EMCrystalEnergy[16][25]
Definition: FastL1Region.h:218
L1Config Config
Definition: FastL1Region.h:242
double TowerEBThreshold
Definition: FastL1Region.h:80
void FastL1Region::SetHCFGBit ( int  twrid,
bool  FGBIT 
)

Definition at line 456 of file FastL1Region.cc.

457 {
458  ;
459 }
void FastL1Region::SetHCFGBit ( )
private

Definition at line 430 of file FastL1Region.cc.

Referenced by SetTowerBits().

431 {
432  // temporary: check definition
433  // if (Tower->hadEt>100GeV) hcfgBit = true; ????
434  //for (int i=0; i<16; i++) {
435  //}
436 }
void FastL1Region::SetHOEBit ( int  twrid,
bool  FGBIT 
)

Definition at line 461 of file FastL1Region.cc.

References hOeBit.

462 {
463  hOeBit[twrid] = FGBIT;
464 }
bool hOeBit[16]
Definition: FastL1Region.h:236
void FastL1Region::SetHOEBit ( )
private

Definition at line 408 of file FastL1Region.cc.

References Config, L1Config::EMNoiseLevel, L1Config::HadNoiseLevel, hOeBit, L1Config::hOeThreshold, i, and Towers.

Referenced by SetTowerBits().

409 {
410  double fracThres = Config.hOeThreshold;
411 
412  for (int i=0; i<16; i++) {
413  //if (Towers[i].hadEt()>Config.HadNoiseLevel && Towers[i].emEt()>Config.EMNoiseLevel ) {
414  if (Towers[i].hadEnergy()>Config.HadNoiseLevel && Towers[i].emEnergy()>Config.EMNoiseLevel ) {
415  if((Towers[i].hadEt()/Towers[i].emEt()) > fracThres) {
416  hOeBit[i] = true;
417  }
418  }
419  }
420 }
int i
Definition: DBlmapReader.cc:9
double hOeThreshold
Definition: FastL1Region.h:66
bool hOeBit[16]
Definition: FastL1Region.h:236
double HadNoiseLevel
Definition: FastL1Region.h:63
double EMNoiseLevel
Definition: FastL1Region.h:62
CaloTowerCollection Towers
Definition: FastL1Region.h:216
L1Config Config
Definition: FastL1Region.h:242
void FastL1Region::SetJetE ( double  jE)
inline

Definition at line 174 of file FastL1Region.h.

References jetE.

174 { jetE = jE; };
void FastL1Region::SetJetE3x3 ( double  jE)
inline

Definition at line 185 of file FastL1Region.h.

References jetE3x3.

185 { jetE3x3 = jE; };
double jetE3x3
Definition: FastL1Region.h:224
void FastL1Region::SetJetEt ( double  jEt)
inline

Definition at line 175 of file FastL1Region.h.

References jetEt.

175 { jetEt = jEt; };
void FastL1Region::SetJetEt3x3 ( double  jEt)
inline

Definition at line 186 of file FastL1Region.h.

References jetEt3x3.

186 { jetEt3x3 = jEt; };
double jetEt3x3
Definition: FastL1Region.h:225
void FastL1Region::SetMIPBit ( )
private

Definition at line 439 of file FastL1Region.cc.

References hcfgBit, i, mipBit, and quietBit.

Referenced by SetRegionBits().

440 {
441  if (quietBit)
442  for (int i=0; i<16; i++) {
443  if (hcfgBit) {
444  mipBit = true;
445  return;
446  }
447  }
448 }
int i
Definition: DBlmapReader.cc:9
bool hcfgBit[16]
Definition: FastL1Region.h:237
void FastL1Region::SetParameters ( const L1Config iconfig)

Definition at line 90 of file FastL1Region.cc.

References Config.

91 {
92  Config = iconfig;
93 }
L1Config Config
Definition: FastL1Region.h:242
void FastL1Region::SetQuietBit ( )
private

Definition at line 423 of file FastL1Region.cc.

References Config, quietBit, L1Config::QuietRegionThreshold, and SumEt().

Referenced by SetRegionBits().

424 {
426  quietBit = true;
427 }
double SumEt()
Definition: FastL1Region.h:161
double QuietRegionThreshold
Definition: FastL1Region.h:70
L1Config Config
Definition: FastL1Region.h:242
void FastL1Region::SetRegionBits ( edm::Event const &  e)

Definition at line 103 of file FastL1Region.cc.

References SetMIPBit(), SetQuietBit(), and SetTauBit().

104 {
105  SetTauBit(e);
106  SetQuietBit();
107  SetMIPBit();
108 }
void SetQuietBit()
void SetTauBit(edm::Event const &e)
void SetMIPBit()
void FastL1Region::SetRegionEnergy ( )

Definition at line 96 of file FastL1Region.cc.

References CalcSumE(), CalcSumEt(), sumE, and sumEt.

97 {
98  sumE = CalcSumE();
99  sumEt = CalcSumEt();
100 }
double CalcSumEt()
double CalcSumE()
void FastL1Region::SetTauBit ( edm::Event const &  e)
private

Definition at line 534 of file FastL1Region.cc.

References BitInfo, Config, doBitInfo, L1Config::EMActiveLevel, L1Config::HadActiveLevel, i, FastL1BitInfo::setEmTauVeto(), FastL1BitInfo::setHadTauVeto(), FastL1BitInfo::setIsolationVeto(), FastL1BitInfo::setTauVeto(), tauBit, Towers, and vetoPatterns.

Referenced by SetRegionBits().

535 {
536  float emThres = Config.EMActiveLevel;
537  float hadThres = Config.HadActiveLevel;
538 
539  if (doBitInfo) BitInfo.setIsolationVeto(false);
540  if (doBitInfo) BitInfo.setTauVeto(false);
541  if (doBitInfo) BitInfo.setEmTauVeto(false);
542  if (doBitInfo) BitInfo.setHadTauVeto(false);
543 
544  // init pattern containers
545  unsigned emEtaPat = 0;
546  unsigned emPhiPat = 0;
547  unsigned hadEtaPat = 0;
548  unsigned hadPhiPat = 0;
549  unsigned one = 1;
550 
551 
552  // fill hits as bit pattern
553  for (int i=0; i<16; i++) {
554  if(Towers[i].emEt() > emThres) {
555  emEtaPat |= (one << (unsigned)(i%4));
556  emPhiPat |= (one << (unsigned)(i/4));
557  }
558 
559  if( Towers[i].hadEt() > hadThres) {
560  hadEtaPat |= (one << (unsigned)(i%4));
561  hadPhiPat |= (one << (unsigned)(i/4));
562  }
563 
564  }
565 
566  for(std::vector<unsigned>::const_iterator i = vetoPatterns.begin();
567  i != vetoPatterns.end(); i++) {
568  unsigned etaPattern = emEtaPat | hadEtaPat;
569  unsigned phiPattern = emPhiPat | hadPhiPat;
570 
571  // em pattern
572  if(emEtaPat == *i || emPhiPat == *i) {
573  if (doBitInfo) BitInfo.setEmTauVeto(true);
574  }
575  // had pattern
576  if(hadEtaPat == *i || hadPhiPat == *i) {
577  if (doBitInfo) BitInfo.setHadTauVeto(true);
578  }
579 
580  if(etaPattern == *i || phiPattern == *i) // combined pattern
581  //if(emEtaPat == *i || emPhiPat == *i || hadEtaPat == *i || hadPhiPat == *i)
582  {
583  tauBit = true;
584  if (doBitInfo) BitInfo.setTauVeto(true);
585  return;
586  }
587  }
588 
589  tauBit = false;
590 
591 }
int i
Definition: DBlmapReader.cc:9
void setTauVeto(bool tauVeto)
Definition: FastL1BitInfo.h:24
double HadActiveLevel
Definition: FastL1Region.h:61
double EMActiveLevel
Definition: FastL1Region.h:60
void setHadTauVeto(bool hadTauVeto)
Definition: FastL1BitInfo.h:26
void setIsolationVeto(bool isolationVeto)
Definition: FastL1BitInfo.h:27
CaloTowerCollection Towers
Definition: FastL1Region.h:216
void setEmTauVeto(bool emTauVeto)
Definition: FastL1BitInfo.h:25
FastL1BitInfo BitInfo
Definition: FastL1Region.h:196
L1Config Config
Definition: FastL1Region.h:242
static const std::vector< unsigned > vetoPatterns
void FastL1Region::SetTowerBits ( )

Definition at line 111 of file FastL1Region.cc.

References SetFGBit(), SetHCFGBit(), and SetHOEBit().

Referenced by FillEMCrystals().

112 {
113  SetFGBit();
114  SetHOEBit();
115  SetHCFGBit();
116 }
void SetHCFGBit()
void SetHOEBit()
double FastL1Region::SumE ( )
inline

Definition at line 160 of file FastL1Region.h.

References CalcSumE().

160 { return CalcSumE(); };
double CalcSumE()
double FastL1Region::SumEmE ( )
inline

Definition at line 162 of file FastL1Region.h.

References CalcSumEmE().

162 { return CalcSumEmE(); };
double CalcSumEmE()
double FastL1Region::SumEmEt ( )
inline

Definition at line 163 of file FastL1Region.h.

References CalcSumEmEt().

163 { return CalcSumEmEt(); };
double CalcSumEmEt()
double FastL1Region::SumEt ( )
inline

Definition at line 161 of file FastL1Region.h.

References CalcSumEt().

Referenced by SetQuietBit().

161 { return CalcSumEt(); };
double CalcSumEt()
double FastL1Region::SumHadE ( )
inline

Definition at line 164 of file FastL1Region.h.

References CalcSumHadE().

164 { return CalcSumHadE(); };
double CalcSumHadE()
double FastL1Region::SumHadEt ( )
inline

Definition at line 165 of file FastL1Region.h.

References CalcSumHadEt().

165 { return CalcSumHadEt(); };
double CalcSumHadEt()

Member Data Documentation

FastL1BitInfo FastL1Region::BitInfo
L1Config FastL1Region::Config
private
bool FastL1Region::doBitInfo
double FastL1Region::EMCrystalEnergy[16][25]
private
bool FastL1Region::fgBit[16]
private

Definition at line 235 of file FastL1Region.h.

Referenced by FastL1Region(), FillEMCrystals(), GetFGBit(), and SetFGBit().

bool FastL1Region::hcfgBit[16]
private

Definition at line 237 of file FastL1Region.h.

Referenced by FastL1Region(), GetHCFGBit(), and SetMIPBit().

bool FastL1Region::hOeBit[16]
private

Definition at line 236 of file FastL1Region.h.

Referenced by FastL1Region(), GetHOEBit(), and SetHOEBit().

int FastL1Region::id
private

Definition at line 227 of file FastL1Region.h.

Referenced by GetId(), and NodeCut.MatchId::match().

int FastL1Region::ieta
private
int FastL1Region::iphi
private
double FastL1Region::jetE
private

Definition at line 222 of file FastL1Region.h.

Referenced by FastL1Region(), GetJetE(), and SetJetE().

double FastL1Region::jetE3x3
private

Definition at line 224 of file FastL1Region.h.

Referenced by GetJetE3x3(), and SetJetE3x3().

double FastL1Region::jetEt
private

Definition at line 223 of file FastL1Region.h.

Referenced by FastL1Region(), GetJetEt(), and SetJetEt().

double FastL1Region::jetEt3x3
private

Definition at line 225 of file FastL1Region.h.

Referenced by GetJetEt3x3(), and SetJetEt3x3().

bool FastL1Region::mipBit
private

Definition at line 233 of file FastL1Region.h.

Referenced by FastL1Region(), GetMIPBit(), and SetMIPBit().

bool FastL1Region::quietBit
private

Definition at line 232 of file FastL1Region.h.

Referenced by FastL1Region(), GetQuietBit(), SetMIPBit(), and SetQuietBit().

double FastL1Region::sumE
private

Definition at line 240 of file FastL1Region.h.

Referenced by SetRegionEnergy().

double FastL1Region::sumEt
private

Definition at line 239 of file FastL1Region.h.

Referenced by SetRegionEnergy().

bool FastL1Region::tauBit
private

Definition at line 231 of file FastL1Region.h.

Referenced by FastL1Region(), GetTauBit(), and SetTauBit().

CaloTowerCollection FastL1Region::Towers
private