10 PFClusterRef_(PFClusterRef)
16 for(
int i=0;
i<5; ++
i)
27 const auto & PFRecHits=
30 for(
auto it = PFRecHits.begin();
31 it != PFRecHits.end(); ++it){
32 const auto & RefPFRecHit = it->recHitRef();
33 auto frac=it->fraction();
34 float E= RefPFRecHit->energy()*
frac;
38 auto const & pyr =
dynamic_cast<TruncatedPyramid const &
>(RefPFRecHit->caloCell());
40 position=RefPFRecHit->position();
41 idseed = RefPFRecHit->detId();
64 double ThetaCentr = -center_pos.theta()+0.5*
Pi;
65 double ThetaWidth = (Pi/180.)*
cos(ThetaCentr);
67 double EtaCry = (Theta-ThetaCentr)/ThetaWidth;
71 if(
abs(CrysIEta_)==1 ||
abs(CrysIEta_)==2 )
73 if(
abs(CrysIEta_)>2 &&
abs(CrysIEta_)<24)
75 if(
abs(CrysIEta_)==24)
77 if(
abs(CrysIEta_)==25)
79 if(
abs(CrysIEta_)==26)
81 if(
abs(CrysIEta_)==27)
83 if(
abs(CrysIEta_)>27 &&
abs(CrysIEta_)<44)
85 if(
abs(CrysIEta_)==44)
87 if(
abs(CrysIEta_)==45)
89 if(
abs(CrysIEta_)==46)
91 if(
abs(CrysIEta_)==47)
93 if(
abs(CrysIEta_)>47 &&
abs(CrysIEta_)<64)
95 if(
abs(CrysIEta_)==64)
97 if(
abs(CrysIEta_)==65)
99 if(
abs(CrysIEta_)==66)
101 if(
abs(CrysIEta_)==67)
103 if(
abs(CrysIEta_)>67 &&
abs(CrysIEta_)<84)
105 if(
abs(CrysIEta_)==84)
107 if(
abs(CrysIEta_)==85)
115 float X0 = 0.89;
float T0 = 1.2;
119 double XCentr = center_pos.x();
120 double YCentr = center_pos.y();
121 double XWidth = 2.59;
122 double YWidth = 2.59;
130 const std::vector< reco::PFRecHitFraction >& PFRecHits=
PFClusterRef_->recHitFractions();
131 for(std::vector< reco::PFRecHitFraction >::const_iterator it = PFRecHits.begin(); it != PFRecHits.end(); ++it){
133 DetId id=RefPFRecHit->detId();
134 double frac=it->fraction();
135 float E=RefPFRecHit->energy()*
frac;
140 if(
abs(deta)>2 ||
abs(dphi)>2)
continue;
145 int ind1=EBidSeed.
ieta()-EBid.ieta();
146 int ind2=EBidSeed.
iphi()-EBid.iphi();
147 if(EBidSeed.
ieta() * EBid.ieta() > 0){
148 ind1=EBid.ieta()-EBidSeed.
ieta();
156 if( (EBidSeed.
iphi()<5&&EBid.iphi()>355) || (EBidSeed.
iphi()>355&&EBid.iphi()<5)) {
158 ind2 =
shift + EBidSeed.
iphi() - EBid.iphi();
182 if(
abs(dx)>2 ||
abs(dy>2))
continue;
185 int ind1=EEid.ix()-EEidSeed.
ix();
186 int ind2=EEid.iy()-EEidSeed.
iy();
200 double numeratorEtaWidth = 0.;
201 double numeratorPhiWidth = 0.;
202 double numeratorEtaPhiWidth = 0.;
205 const std::vector< reco::PFRecHitFraction >& PFRecHits=
PFClusterRef_->recHitFractions();
206 for(std::vector< reco::PFRecHitFraction >::const_iterator it = PFRecHits.begin(); it != PFRecHits.end(); ++it){
208 float E=RefPFRecHit->energy() * it->fraction();
209 double dEta = RefPFRecHit->position().eta() - ClustEta;
210 double dPhi = RefPFRecHit->position().phi() - ClustPhi;
213 numeratorEtaWidth += E * dEta * dEta;
214 numeratorPhiWidth += E * dPhi *
dPhi;
215 numeratorEtaPhiWidth += E * fabs(dPhi) * fabs(dEta);
static int distanceX(const EEDetId &a, const EEDetId &b)
double Phi_mpi_pi(double x)
reco::PFClusterRef PFClusterRef_
int iphi() const
get the crystal iphi
uint32_t rawId() const
get the raw id
static int distanceEta(const EBDetId &a, const EBDetId &b)
math::XYZVector seedAxis_
double dPhi(double phi1, double phi2)
static int distancePhi(const EBDetId &a, const EBDetId &b)
Cos< T >::type cos(const T &t)
Abs< T >::type abs(const T &t)
PFPhotonClusters(reco::PFClusterRef PFClusterRef)
int ieta() const
get the crystal ieta
static int distanceY(const EEDetId &a, const EEDetId &b)
static const int MAX_IPHI
const GlobalPoint getPosition(CCGFloat depth) const
XYZVectorD XYZVector
spatial vector with cartesian internal representation
A base class to handle the particular shape of Ecal Xtals. Taken from ORCA Calorimetry Code...
static int position[264][3]
static unsigned int const shift
math::XYZVector seedPosition_