54 #include "CLHEP/Units/GlobalPhysicalConstants.h"
56 #include <Math/VectorUtil.h>
57 #include <Math/Point3D.h>
63 using namespace reco ;
65 namespace EgAmbiguityTools
78 int gsfHitCounter1 = 0 ;
81 ( elHitsIt1 = e1->gsfTrack()->recHitsBegin() ;
82 elHitsIt1 != e1->gsfTrack()->recHitsEnd() ;
83 elHitsIt1++, gsfHitCounter1++ )
84 {
if (((**elHitsIt1).isValid())) break ; }
86 int gsfHitCounter2 = 0 ;
89 ( elHitsIt2 = e2->gsfTrack()->recHitsBegin() ;
90 elHitsIt2 != e2->gsfTrack()->recHitsEnd() ;
91 elHitsIt2++, gsfHitCounter2++ )
92 {
if (((**elHitsIt2).isValid())) break ; }
94 uint32_t gsfHit1 = gsfHitPattern1.
getHitPattern(gsfHitCounter1) ;
95 uint32_t gsfHit2 = gsfHitPattern2.
getHitPattern(gsfHitCounter2) ;
99 {
return (gsfHitPattern1.
getLayer(gsfHit1)<gsfHitPattern2.
getLayer(gsfHit2)) ; }
107 const HitPattern & gsfHitPattern1 = gsfTrackRef1->hitPattern() ;
108 const HitPattern & gsfHitPattern2 = gsfTrackRef2->hitPattern() ;
110 unsigned int shared = 0;
112 int gsfHitCounter1 = 0;
114 elHitsIt1 != gsfTrackRef1->recHitsEnd(); elHitsIt1++, gsfHitCounter1++) {
115 if(!((**elHitsIt1).isValid()))
118 uint32_t gsfHit = gsfHitPattern1.
getHitPattern(gsfHitCounter1);
125 int gsfHitsCounter2 = 0;
127 gsfHitsIt2 != gsfTrackRef2->recHitsEnd(); gsfHitsIt2++, gsfHitsCounter2++) {
128 if(!((**gsfHitsIt2).isValid()))
131 uint32_t gsfHit2 = gsfHitPattern2.
getHitPattern(gsfHitsCounter2);
155 const HitPattern& gsfHitPattern1 = gsfTrackRef1->hitPattern();
156 const HitPattern& gsfHitPattern2 = gsfTrackRef2->hitPattern();
158 unsigned int shared = 0;
160 int gsfHitCounter1 = 0;
162 elHitsIt1 != gsfTrackRef1->recHitsEnd(); elHitsIt1++, gsfHitCounter1++) {
163 if(!((**elHitsIt1).isValid()))
166 uint32_t gsfHit = gsfHitPattern1.
getHitPattern(gsfHitCounter1);
173 int gsfHitsCounter2 = 0;
175 gsfHitsIt2 != gsfTrackRef2->recHitsEnd(); gsfHitsIt2++, gsfHitsCounter2++) {
176 if(!((**gsfHitsIt2).isValid()))
179 uint32_t gsfHit2 = gsfHitPattern2.
getHitPattern(gsfHitsCounter2);
186 if ((**elHitsIt1).geographicalId() == (**gsfHitsIt2).geographicalId()) shared++;
204 std::vector< std::pair<DetId, float> >::iterator ih1;
205 std::vector< std::pair<DetId, float> >::iterator ih2;
207 for(ih1 = v_id1.begin();ih1 != v_id1.end(); ih1++) {
209 for(ih2 = v_id2.begin();ih2 != v_id2.end(); ih2++) {
211 if ( (*ih1).first != (*ih2).first )
continue;
216 if ((itt=reducedEBRecHits->find((*ih1).first))!=reducedEBRecHits->end())
217 fractionShared += itt->energy();
218 }
else if ((*ih1).first.subdetId() ==
EcalEndcap) {
219 if ((itt=reducedEERecHits->find((*ih1).first))!=reducedEERecHits->end())
220 fractionShared += itt->energy();
235 double energyShared = 0;
238 energyShared +=
sharedEnergy(&(**icl1),&(**icl2),reducedEBRecHits,reducedEERecHits );
uint32_t getSubStructure(uint32_t pattern) const
float eSuperClusterOverP() const
std::vector< T >::const_iterator const_iterator
bool stripTIBHitFilter(uint32_t pattern) const
const std::vector< std::pair< DetId, float > > & hitsAndFractions() const
uint32_t getLayer(uint32_t pattern) const
bool stripTOBHitFilter(uint32_t pattern) const
bool pixelHitFilter(uint32_t pattern) const
uint32_t getHitPattern(int position) const
bool stripTIDHitFilter(uint32_t pattern) const
bool stripTECHitFilter(uint32_t pattern) const