197 std::vector<double> coreCanid;
198 std::vector<double>::const_iterator ci;
200 std::vector<DetId> usedHits;
210 bool edge_type1=seedid.
ietaAbs()==39 && (seedid.
iphi()%4)==3;
214 for (de=-2; de<=2; de++)
215 for (dp=-4;dp<=4; dp+=2) {
216 phiWrap=seedid.
iphi()+dp;
224 if (edge_type1 && de==seedid.
zside()) {
251 double eRatio=(e_long-e_short)/
std::max(1.0,(e_long+e_short));
255 if (dp==0 && de==0) clusterOk=
false;
260 if (dp==0 && de==0) clusterOk=
false;
287 usedHits.push_back(idl.rawId());
291 if ((de>-2)&&(de<2)&&(dp>-4)&&(dp<4)) {
295 if ((dp==0)&&(de==0)) {
300 if ((de>-2)&&(de<2)&&(dp>-4)&&(dp<4)&&(e_long>(.5*e_seed))) {
301 coreCanid.push_back(e_long);
307 double d_p = p.
phi()-sp.
phi();
312 double d_e = p.
eta()-sp.
eta();
327 if (dp==0 && de==0) clusterOk=
false;
332 usedHits.push_back(ids.rawId());
336 if ((de>-2)&&(de<2)&&(dp>-4)&&(dp<4)) {
340 if ((dp==0)&&(de==0)) {
347 if (!clusterOk)
return false;
351 for (ci=coreCanid.begin();ci!=coreCanid.end();ci++){
352 if(ci==coreCanid.begin()){
354 }
else if (*ci>.5*l_1e){
364 double eta=w_e/w+sp.
eta();
366 double phi=(wp_e/w)+sp.
phi();
374 static const double HFEtaBounds[14] = {2.853, 2.964, 3.139, 3.314, 3.489, 3.664, 3.839, 4.013, 4.191, 4.363, 4.538, 4.716, 4.889, 5.191};
375 double RcellEta = fabs(eta);
376 double Cphi = (phi>0.)?(fmod((phi),0.087*2)/(0.087*2)):((fmod((phi),0.087*2)/(0.087*2))+1.0);
378 for (
int icell = 0; icell < 12; icell++ ){
379 if ( (RcellEta>HFEtaBounds[icell]) && (RcellEta<HFEtaBounds[icell+1]) )
380 Rbin = (RcellEta - HFEtaBounds[icell])/(HFEtaBounds[icell+1] - HFEtaBounds[icell]);
393 HFEMClusterShape myClusShp(l_1, s_1, l_3, s_3, l_5,s_5, l_1e,Ceta, Cphi,seedid);
int zside() const
get the z-side of the cell (1/-1)
std::vector< double > m_correctionByEta
Geom::Phi< T > phi() const
std::vector< T >::const_iterator const_iterator
friend class CompareHFCore
const T & max(const T &a, const T &b)
int ieta() const
get the cell ieta
const GlobalPoint & getPosition(const DetId &id) const
Get the position of a given detector id.
int ietaAbs() const
get the absolute value of the cell ieta
const_iterator end() const
static int indexByEta(HcalDetId id)
int iphi() const
get the cell iphi
Log< T >::type log(const T &t)
XYZPointD XYZPoint
point in space with cartesian internal representation
iterator find(key_type k)
bool isPMTHit(const HFRecHit &hfr)