19 reco::TrackCollection::const_iterator trkItr,
34 double maxNearP = -1.0;
38 reco::TrackCollection::const_iterator trkItr2;
39 for (trkItr2 = trkCollection->begin(); trkItr2 != trkCollection->end(); ++trkItr2) {
42 bool trkQuality = pTrack2->
quality(trackQuality_);
43 if ((trkItr2 != trkItr) && trkQuality) {
53 std::cout <<
"chargeIsolation:: EB cell " << (
EBDetId)(anyCell) <<
" for pt " << pTrack2->
p()
57 if (maxNearP < pTrack2->
p())
58 maxNearP = pTrack2->
p();
64 std::cout <<
"chargeIsolation:: EE cell " << (
EEDetId)(anyCell) <<
" for pt " << pTrack2->
p()
68 if (maxNearP < pTrack2->
p())
69 maxNearP = pTrack2->
p();
81 bool isIsolated =
false;
85 for (
int dx = -ieta;
dx < ieta + 1; ++
dx) {
86 for (
int dy = -iphi;
dy < iphi + 1; ++
dy) {
90 if (thisDet !=
DetId(0)) {
91 if (thisDet == anyCell) {
105 const DetId& coreDet,
106 reco::TrackCollection::const_iterator trkItr,
119 std::vector<DetId> vdets =
spr::matrixECALIds(coreDet, ieta, iphi, geo, caloTopology, debug);
122 std::cout <<
"chargeIsolation:: eta/phi/dets " << ieta <<
" " << iphi <<
" " << vdets.size() << std::endl;
124 double maxNearP = -1.0;
128 reco::TrackCollection::const_iterator trkItr2;
129 for (trkItr2 = trkCollection->begin(); trkItr2 != trkCollection->end(); ++trkItr2) {
132 bool trkQuality = pTrack2->
quality(trackQuality_);
133 if ((trkItr2 != trkItr) && trkQuality) {
143 std::cout <<
"chargeIsolation:: EB cell " << (
EBDetId)(anyCell) <<
" for pt " << pTrack2->
p()
147 if (maxNearP < pTrack2->
p())
148 maxNearP = pTrack2->
p();
154 std::cout <<
"chargeIsolation:: EE cell " << (
EEDetId)(anyCell) <<
" for pt " << pTrack2->
p()
158 if (maxNearP < pTrack2->
p())
159 maxNearP = pTrack2->
p();
172 reco::TrackCollection::const_iterator trkItr,
174 const DetId ClosestCell,
183 std::vector<DetId> dets(1, ClosestCell);
189 std::vector<DetId> vdets =
spr::matrixHCALIds(dets, topology, ieta, iphi,
false, debug);
193 for (
unsigned int i = 0;
i < vdets.size();
i++) {
194 std::cout <<
"HcalDetId in " << 2 * ieta + 1 <<
"x" << 2 * iphi + 1 <<
" " << (
HcalDetId)vdets[
i] << std::endl;
198 double maxNearP = -1.0;
201 reco::TrackCollection::const_iterator trkItr2;
202 for (trkItr2 = trkCollection->begin(); trkItr2 != trkCollection->end(); ++trkItr2) {
205 bool trkQuality = pTrack2->
quality(trackQuality_);
206 if ((trkItr2 != trkItr) && trkQuality) {
213 std::cout <<
"Track2 (p,eta,phi) " << pTrack2->
p() <<
" " << pTrack2->
eta() <<
" " << pTrack2->
phi()
221 std::cout <<
"chargeIsolation:: HCAL cell " << (
HcalDetId)(anyCell) <<
" for pt " << pTrack2->
p()
225 if (maxNearP < pTrack2->
p())
226 maxNearP = pTrack2->
p();
double p() const
momentum vector magnitude
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
static const double etaBEEcal
CaloTopology const * topology(0)
void matrixECALIds(const DetId &det, int ieta, int iphi, const CaloGeometry *geo, const CaloTopology *caloTopology, std::vector< DetId > &vdets, bool debug=false, bool igNoreTransition=true)
bool chargeIsolation(const DetId anyCell, std::vector< DetId > &vdets)
TrackQuality
track quality
static FreeTrajectoryState getFreeTrajectoryState(const edm::EventSetup &, const reco::Track &)
get FreeTrajectoryState from different track representations
double phi() const
azimuthal angle of momentum vector
math::XYZPoint trkGlobPosAtHcal
T offsetBy(int deltaX, int deltaY) const
Free movement of arbitray steps.
double chargeIsolationEcal(unsigned int trkIndex, std::vector< spr::propagatedTrackID > &vdetIds, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, bool debug=false)
double eta() const
pseudorapidity of momentum vector
Abs< T >::type abs(const T &t)
virtual DetId getClosestCell(const GlobalPoint &r) const
void home() const
move the navigator back to the starting point
static TrackQuality qualityByName(const std::string &name)
bool quality(const TrackQuality) const
Track quality.
std::vector< DetId > matrixHCALIds(std::vector< DetId > &dets, const HcalTopology *topology, int ieta, int iphi, bool includeHO=false, bool debug=false)
TrackDetMatchInfo associate(const edm::Event &, const edm::EventSetup &, const FreeTrajectoryState &, const AssociatorParameters &)
math::XYZPoint trkGlobPosAtEcal
Track position at different parts of the calorimeter.
double chargeIsolationHcal(unsigned int trkIndex, std::vector< spr::propagatedTrackID > &vdetIds, const HcalTopology *topology, int ieta, int iphi, bool debug=false)