CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
GlobalHaloAlgo Class Reference

#include <GlobalHaloAlgo.h>

Public Member Functions

reco::GlobalHaloData Calculate (const CaloGeometry &TheCaloGeometry, const CSCGeometry &TheCSCGeometry, const reco::CaloMET &TheCaloMET, edm::Handle< edm::View< reco::Candidate > > &TheCaloTowers, edm::Handle< CSCSegmentCollection > &TheCSCSegments, edm::Handle< CSCRecHit2DCollection > &TheCSCRecHits, edm::Handle< reco::MuonCollection > &TheMuons, const reco::CSCHaloData &TheCSCHaloData, const reco::EcalHaloData &TheEcalHaloData, const reco::HcalHaloData &TheHcalHaloData, bool ishlt=false)
 
 GlobalHaloAlgo ()
 
void SetCaloTowerEtThreshold (float EtMin)
 
void setDPhicalosegmThresholdforCSCCaloMatchingEB (float x)
 
void setDPhicalosegmThresholdforCSCCaloMatchingEE (float x)
 
void setDPhicalosegmThresholdforCSCCaloMatchingHB (float x)
 
void setDPhicalosegmThresholdforCSCCaloMatchingHE (float x)
 
void setDtcalosegmThresholdforCSCCaloMatchingEB (float x)
 
void setDtcalosegmThresholdforCSCCaloMatchingEE (float x)
 
void setDtcalosegmThresholdforCSCCaloMatchingHB (float x)
 
void setDtcalosegmThresholdforCSCCaloMatchingHE (float x)
 
void SetEcalMatchingRadius (float min, float max)
 
void setEtThresholdforCSCCaloMatchingEB (float x)
 
void setEtThresholdforCSCCaloMatchingEE (float x)
 
void setEtThresholdforCSCCaloMatchingHB (float x)
 
void setEtThresholdforCSCCaloMatchingHE (float x)
 
void SetHcalMatchingRadius (float min, float max)
 
void SetMaxSegmentTheta (float x)
 
void setRcaloMinRsegmHighThresholdforCSCCaloMatchingEB (float x)
 
void setRcaloMinRsegmHighThresholdforCSCCaloMatchingEE (float x)
 
void setRcaloMinRsegmHighThresholdforCSCCaloMatchingHB (float x)
 
void setRcaloMinRsegmHighThresholdforCSCCaloMatchingHE (float x)
 
void setRcaloMinRsegmLowThresholdforCSCCaloMatchingEB (float x)
 
void setRcaloMinRsegmLowThresholdforCSCCaloMatchingEE (float x)
 
void setRcaloMinRsegmLowThresholdforCSCCaloMatchingHB (float x)
 
void setRcaloMinRsegmLowThresholdforCSCCaloMatchingHE (float x)
 
 ~GlobalHaloAlgo ()
 

Private Member Functions

void AddtoBeamHaloEBEERechits (edm::RefVector< EcalRecHitCollection > &bhtaggedrechits, reco::GlobalHaloData &thehalodata, bool isbarrel)
 
void AddtoBeamHaloHBHERechits (edm::RefVector< HBHERecHitCollection > &bhtaggedrechits, reco::GlobalHaloData &thehalodata)
 
bool ApplyMatchingCuts (int subdet, bool ishlt, double rhet, double segZ, double rhZ, double segR, double rhR, double segT, double rhT, double segPhi, double rhPhi)
 
bool SegmentMatchingEB (reco::GlobalHaloData &thehalodata, const std::vector< reco::HaloClusterCandidateECAL > &haloclustercands, float iZ, float iR, float iT, float iPhi, bool ishlt)
 
bool SegmentMatchingEE (reco::GlobalHaloData &thehalodata, const std::vector< reco::HaloClusterCandidateECAL > &haloclustercands, float iZ, float iR, float iT, float iPhi, bool ishlt)
 
bool SegmentMatchingHB (reco::GlobalHaloData &thehalodata, const std::vector< reco::HaloClusterCandidateHCAL > &haloclustercands, float iZ, float iR, float iT, float iPhi, bool ishlt)
 
bool SegmentMatchingHE (reco::GlobalHaloData &thehalodata, const std::vector< reco::HaloClusterCandidateHCAL > &haloclustercands, float iZ, float iR, float iT, float iPhi, bool ishlt)
 

Private Attributes

float dphi_thresh_segvsrh_eb
 
float dphi_thresh_segvsrh_ee
 
float dphi_thresh_segvsrh_hb
 
float dphi_thresh_segvsrh_he
 
float dr_highthresh_segvsrh_eb
 
float dr_highthresh_segvsrh_ee
 
float dr_highthresh_segvsrh_hb
 
float dr_highthresh_segvsrh_he
 
float dr_lowthresh_segvsrh_eb
 
float dr_lowthresh_segvsrh_ee
 
float dr_lowthresh_segvsrh_hb
 
float dr_lowthresh_segvsrh_he
 
float dt_segvsrh_eb
 
float dt_segvsrh_ee
 
float dt_segvsrh_hb
 
float dt_segvsrh_he
 
float Ecal_R_Max
 
float Ecal_R_Min
 
float et_thresh_rh_eb
 
float et_thresh_rh_ee
 
float et_thresh_rh_hb
 
float et_thresh_rh_he
 
float Hcal_R_Max
 
float Hcal_R_Min
 
float max_segment_theta
 
float TowerEtThreshold
 

Detailed Description

Definition at line 60 of file GlobalHaloAlgo.h.

Constructor & Destructor Documentation

◆ GlobalHaloAlgo()

GlobalHaloAlgo::GlobalHaloAlgo ( )

Definition at line 32 of file GlobalHaloAlgo.cc.

32  {
33  // Defaults are "loose"
34  Ecal_R_Min = 110.; // Tight: 200.
35  Ecal_R_Max = 330.; // Tight: 250.
36  Hcal_R_Min = 110.; // Tight: 220.
37  Hcal_R_Max = 490.; // Tight: 350.
38 }

◆ ~GlobalHaloAlgo()

GlobalHaloAlgo::~GlobalHaloAlgo ( )
inline

Definition at line 65 of file GlobalHaloAlgo.h.

65 {}

Member Function Documentation

◆ AddtoBeamHaloEBEERechits()

void GlobalHaloAlgo::AddtoBeamHaloEBEERechits ( edm::RefVector< EcalRecHitCollection > &  bhtaggedrechits,
reco::GlobalHaloData thehalodata,
bool  isbarrel 
)
private

Definition at line 600 of file GlobalHaloAlgo.cc.

602  {
603  for (size_t ihit = 0; ihit < bhtaggedrechits.size(); ++ihit) {
604  bool alreadyincl = false;
605  edm::Ref<EcalRecHitCollection> rhRef(bhtaggedrechits[ihit]);
607  if (isbarrel)
608  refrhcoll = thehalodata.GetEBRechits();
609  else
610  refrhcoll = thehalodata.GetEERechits();
611  for (size_t jhit = 0; jhit < refrhcoll.size(); jhit++) {
612  edm::Ref<EcalRecHitCollection> rhitRef(refrhcoll[jhit]);
613  if (rhitRef->detid() == rhRef->detid())
614  alreadyincl = true;
615  if (rhitRef->detid() == rhRef->detid())
616  break;
617  }
618  if (!alreadyincl && isbarrel)
619  thehalodata.GetEBRechits().push_back(rhRef);
620  if (!alreadyincl && !isbarrel)
621  thehalodata.GetEERechits().push_back(rhRef);
622  }
623 }

References reco::GlobalHaloData::GetEBRechits(), reco::GlobalHaloData::GetEERechits(), and edm::RefVector< C, T, F >::size().

◆ AddtoBeamHaloHBHERechits()

void GlobalHaloAlgo::AddtoBeamHaloHBHERechits ( edm::RefVector< HBHERecHitCollection > &  bhtaggedrechits,
reco::GlobalHaloData thehalodata 
)
private

Definition at line 625 of file GlobalHaloAlgo.cc.

626  {
627  for (size_t ihit = 0; ihit < bhtaggedrechits.size(); ++ihit) {
628  bool alreadyincl = false;
629  edm::Ref<HBHERecHitCollection> rhRef(bhtaggedrechits[ihit]);
631  refrhcoll = thehalodata.GetHBHERechits();
632  for (size_t jhit = 0; jhit < refrhcoll.size(); jhit++) {
633  edm::Ref<HBHERecHitCollection> rhitRef(refrhcoll[jhit]);
634  if (rhitRef->detid() == rhRef->detid())
635  alreadyincl = true;
636  if (rhitRef->detid() == rhRef->detid())
637  break;
638  }
639  if (!alreadyincl)
640  thehalodata.GetHBHERechits().push_back(rhRef);
641  }
642 }

References reco::GlobalHaloData::GetHBHERechits(), and edm::RefVector< C, T, F >::size().

◆ ApplyMatchingCuts()

bool GlobalHaloAlgo::ApplyMatchingCuts ( int  subdet,
bool  ishlt,
double  rhet,
double  segZ,
double  rhZ,
double  segR,
double  rhR,
double  segT,
double  rhT,
double  segPhi,
double  rhPhi 
)
private

Definition at line 496 of file GlobalHaloAlgo.cc.

506  {
507  //Std::Absolute time wrt BX
508  double tBXrh = rhT + sqrt(rhR * rhR + rhZ * rhZ) / c_cm_per_ns;
509  double tBXseg = segT + sqrt(segR * segR + segZ * segZ) / c_cm_per_ns;
510  //Time at z=0, under beam halo hypothesis
511  double tcorseg = tBXseg - std::abs(segZ) / c_cm_per_ns; //Outgoing beam halo
512  double tcorsegincbh = tBXseg + std::abs(segZ) / c_cm_per_ns; //Ingoing beam halo
513  double truedt[4] = {1000, 1000, 1000, 1000};
514  //There are four types of segments associated to beam halo, test each hypothesis:
515  //IT beam halo, ingoing track
516  double twindow_seg = 15;
517  if (std::abs(tcorsegincbh) < twindow_seg)
518  truedt[0] = tBXrh - tBXseg - std::abs(rhZ - segZ) / c_cm_per_ns;
519  //IT beam halo, outgoing track
520  if (std::abs(tcorseg) < twindow_seg)
521  truedt[1] = tBXseg - tBXrh - std::abs(rhZ - segZ) / c_cm_per_ns;
522  //OT beam halo (from next BX), ingoing track
523  if (tcorsegincbh > 25 - twindow_seg && std::abs(tcorsegincbh) < 25 + twindow_seg)
524  truedt[2] = tBXrh - tBXseg - std::abs(rhZ - segZ) / c_cm_per_ns;
525  //OT beam halo (from next BX), outgoing track
526  if (tcorseg > 25 - twindow_seg && tcorseg < 25 + twindow_seg)
527  truedt[3] = tBXseg - tBXrh - std::abs(rhZ - segZ) / c_cm_per_ns;
528 
529  if (subdet == EB) {
530  if (rhet < et_thresh_rh_eb)
531  return false;
532  if (rhet < 20 && ishlt)
533  return false;
534  if (std::abs(deltaPhi(rhPhi, segPhi)) > dphi_thresh_segvsrh_eb)
535  return false;
536  if (rhR - segR < dr_lowthresh_segvsrh_eb)
537  return false;
538  if (rhR - segR > dr_highthresh_segvsrh_eb)
539  return false;
540  if (std::abs(truedt[0]) > dt_segvsrh_eb && std::abs(truedt[1]) > dt_segvsrh_eb &&
541  std::abs(truedt[2]) > dt_segvsrh_eb && std::abs(truedt[3]) > dt_segvsrh_eb)
542  return false;
543  return true;
544  }
545 
546  if (subdet == EE) {
547  if (rhet < et_thresh_rh_ee)
548  return false;
549  if (rhet < 20 && ishlt)
550  return false;
551  if (std::abs(deltaPhi(rhPhi, segPhi)) > dphi_thresh_segvsrh_ee)
552  return false;
553  if (rhR - segR < dr_lowthresh_segvsrh_ee)
554  return false;
555  if (rhR - segR > dr_highthresh_segvsrh_ee)
556  return false;
557  if (std::abs(truedt[0]) > dt_segvsrh_ee && std::abs(truedt[1]) > dt_segvsrh_ee &&
558  std::abs(truedt[2]) > dt_segvsrh_ee && std::abs(truedt[3]) > dt_segvsrh_ee)
559  return false;
560  return true;
561  }
562 
563  if (subdet == HB) {
564  if (rhet < et_thresh_rh_hb)
565  return false;
566  if (rhet < 20 && ishlt)
567  return false;
568  if (std::abs(deltaPhi(rhPhi, segPhi)) > dphi_thresh_segvsrh_hb)
569  return false;
570  if (rhR - segR < dr_lowthresh_segvsrh_hb)
571  return false;
572  if (rhR - segR > dr_highthresh_segvsrh_hb)
573  return false;
574  if (std::abs(truedt[0]) > dt_segvsrh_hb && std::abs(truedt[1]) > dt_segvsrh_hb &&
575  std::abs(truedt[2]) > dt_segvsrh_hb && std::abs(truedt[3]) > dt_segvsrh_hb)
576  return false;
577  return true;
578  }
579 
580  if (subdet == HE) {
581  if (rhet < et_thresh_rh_he)
582  return false;
583  if (rhet < 20 && ishlt)
584  return false;
585  if (std::abs(deltaPhi(rhPhi, segPhi)) > dphi_thresh_segvsrh_he)
586  return false;
587  if (rhR - segR < dr_lowthresh_segvsrh_he)
588  return false;
589  if (rhR - segR > dr_highthresh_segvsrh_he)
590  return false;
591  if (std::abs(truedt[0]) > dt_segvsrh_he && std::abs(truedt[1]) > dt_segvsrh_he &&
592  std::abs(truedt[2]) > dt_segvsrh_he && std::abs(truedt[3]) > dt_segvsrh_he)
593  return false;
594  return true;
595  }
596 
597  return false;
598 }

References funct::abs(), SiPixelRawToDigiRegional_cfi::deltaPhi, EB, EE, HB, HE, and mathSSE::sqrt().

◆ Calculate()

reco::GlobalHaloData GlobalHaloAlgo::Calculate ( const CaloGeometry TheCaloGeometry,
const CSCGeometry TheCSCGeometry,
const reco::CaloMET TheCaloMET,
edm::Handle< edm::View< reco::Candidate > > &  TheCaloTowers,
edm::Handle< CSCSegmentCollection > &  TheCSCSegments,
edm::Handle< CSCRecHit2DCollection > &  TheCSCRecHits,
edm::Handle< reco::MuonCollection > &  TheMuons,
const reco::CSCHaloData TheCSCHaloData,
const reco::EcalHaloData TheEcalHaloData,
const reco::HcalHaloData TheHcalHaloData,
bool  ishlt = false 
)

Definition at line 40 of file GlobalHaloAlgo.cc.

50  {
51  GlobalHaloData TheGlobalHaloData;
52  float METOverSumEt = TheCaloMET.sumEt() ? TheCaloMET.pt() / TheCaloMET.sumEt() : 0;
53  TheGlobalHaloData.SetMETOverSumEt(METOverSumEt);
54 
55  int EcalOverlapping_CSCRecHits[361] = {};
56  int EcalOverlapping_CSCSegments[361] = {};
57  int HcalOverlapping_CSCRecHits[73] = {};
58  int HcalOverlapping_CSCSegments[73] = {};
59 
60  if (TheCSCSegments.isValid()) {
61  for (CSCSegmentCollection::const_iterator iSegment = TheCSCSegments->begin(); iSegment != TheCSCSegments->end();
62  iSegment++) {
63  bool EcalOverlap[361];
64  bool HcalOverlap[73];
65  for (int i = 0; i < 361; i++) {
66  EcalOverlap[i] = false;
67  if (i < 73)
68  HcalOverlap[i] = false;
69  }
70 
71  std::vector<CSCRecHit2D> Hits = iSegment->specificRecHits();
72  for (std::vector<CSCRecHit2D>::iterator iHit = Hits.begin(); iHit != Hits.end(); iHit++) {
73  DetId TheDetUnitId(iHit->geographicalId());
74  if (TheDetUnitId.det() != DetId::Muon)
75  continue;
76  if (TheDetUnitId.subdetId() != MuonSubdetId::CSC)
77  continue;
78 
79  const GeomDetUnit* TheUnit = TheCSCGeometry.idToDetUnit(TheDetUnitId);
80  LocalPoint TheLocalPosition = iHit->localPosition();
81  const BoundPlane& TheSurface = TheUnit->surface();
82  const GlobalPoint TheGlobalPosition = TheSurface.toGlobal(TheLocalPosition);
83 
84  int Hcal_iphi = Phi_To_HcaliPhi(TheGlobalPosition.phi());
85  int Ecal_iphi = Phi_To_EcaliPhi(TheGlobalPosition.phi());
86  float x = TheGlobalPosition.x();
87  float y = TheGlobalPosition.y();
88 
89  float r = TMath::Sqrt(x * x + y * y);
90 
91  if (r < Ecal_R_Max && r > Ecal_R_Min)
92  EcalOverlap[Ecal_iphi] = true;
93  if (r < Hcal_R_Max && r > Hcal_R_Max)
94  HcalOverlap[Hcal_iphi] = true;
95  }
96  for (int i = 0; i < 361; i++) {
97  if (EcalOverlap[i])
98  EcalOverlapping_CSCSegments[i]++;
99  if (i < 73 && HcalOverlap[i])
100  HcalOverlapping_CSCSegments[i]++;
101  }
102  }
103  }
104  if (TheCSCRecHits.isValid()) {
105  for (CSCRecHit2DCollection::const_iterator iCSCRecHit = TheCSCRecHits->begin(); iCSCRecHit != TheCSCRecHits->end();
106  iCSCRecHit++) {
107  DetId TheDetUnitId(iCSCRecHit->geographicalId());
108  if (TheDetUnitId.det() != DetId::Muon)
109  continue;
110  if (TheDetUnitId.subdetId() != MuonSubdetId::CSC)
111  continue;
112 
113  const GeomDetUnit* TheUnit = TheCSCGeometry.idToDetUnit(TheDetUnitId);
114  LocalPoint TheLocalPosition = iCSCRecHit->localPosition();
115  const BoundPlane& TheSurface = TheUnit->surface();
116  const GlobalPoint TheGlobalPosition = TheSurface.toGlobal(TheLocalPosition);
117 
118  int Hcaliphi = Phi_To_HcaliPhi(TheGlobalPosition.phi());
119  int Ecaliphi = Phi_To_EcaliPhi(TheGlobalPosition.phi());
120  float x = TheGlobalPosition.x();
121  float y = TheGlobalPosition.y();
122 
123  float r = TMath::Sqrt(x * x + y * y);
124 
125  if (r < Ecal_R_Max && r > Ecal_R_Min)
126  EcalOverlapping_CSCRecHits[Ecaliphi]++;
127  if (r < Hcal_R_Max && r > Hcal_R_Max)
128  HcalOverlapping_CSCRecHits[Hcaliphi]++;
129  }
130  }
131 
132  // In development....
133  // Get Ecal Wedges
134  std::vector<PhiWedge> EcalWedges = TheEcalHaloData.GetPhiWedges();
135 
136  // Get Hcal Wedges
137  std::vector<PhiWedge> HcalWedges = TheHcalHaloData.GetPhiWedges();
138 
139  //Get Ref to CSC Tracks
140  //edm::RefVector<reco::TrackCollection> TheCSCTracks = TheCSCHaloData.GetTracks();
141  //for(unsigned int i = 0 ; i < TheCSCTracks.size() ; i++ )
142  //edm::Ref<reco::TrackCollection> iTrack( TheCSCTracks, i );
143 
144  // Get global positions of central most rechit of CSC Halo tracks
145  std::vector<GlobalPoint> TheGlobalPositions = TheCSCHaloData.GetCSCTrackImpactPositions();
146 
147  // Container to store Ecal/Hcal iPhi values matched to impact point of CSC tracks
148  std::vector<int> vEcaliPhi, vHcaliPhi;
149 
150  // Keep track of number of calo pointing CSC halo tracks that do not match to Phi wedges
151  int N_Unmatched_Tracks = 0;
152 
153  for (std::vector<GlobalPoint>::iterator Pos = TheGlobalPositions.begin(); Pos != TheGlobalPositions.end(); Pos++) {
154  // Calculate global phi coordinate for central most rechit in the track
155  float global_phi = Pos->phi();
156  float global_r = TMath::Sqrt(Pos->x() * Pos->x() + Pos->y() * Pos->y());
157 
158  // Convert global phi to iPhi
159  int global_EcaliPhi = Phi_To_EcaliPhi(global_phi);
160  int global_HcaliPhi = Phi_To_HcaliPhi(global_phi);
161  bool MATCHED = false;
162 
163  //Loop over Ecal Phi Wedges
164  for (std::vector<PhiWedge>::iterator iWedge = EcalWedges.begin(); iWedge != EcalWedges.end(); iWedge++) {
165  if ((TMath::Abs(global_EcaliPhi - iWedge->iPhi()) <= 5) && (global_r > Ecal_R_Min && global_r < Ecal_R_Max)) {
166  bool StoreWedge = true;
167  for (unsigned int i = 0; i < vEcaliPhi.size(); i++)
168  if (vEcaliPhi[i] == iWedge->iPhi())
169  StoreWedge = false;
170 
171  if (StoreWedge) {
172  PhiWedge NewWedge(*iWedge);
173  NewWedge.SetOverlappingCSCSegments(EcalOverlapping_CSCSegments[iWedge->iPhi()]);
174  NewWedge.SetOverlappingCSCRecHits(EcalOverlapping_CSCRecHits[iWedge->iPhi()]);
175  vEcaliPhi.push_back(iWedge->iPhi());
176  TheGlobalHaloData.GetMatchedEcalPhiWedges().push_back(NewWedge);
177  }
178  MATCHED = true;
179  }
180  }
181  //Loop over Hcal Phi Wedges
182  for (std::vector<PhiWedge>::iterator iWedge = HcalWedges.begin(); iWedge != HcalWedges.end(); iWedge++) {
183  if ((TMath::Abs(global_HcaliPhi - iWedge->iPhi()) <= 2) && (global_r > Hcal_R_Min && global_r < Hcal_R_Max)) {
184  bool StoreWedge = true;
185  for (unsigned int i = 0; i < vHcaliPhi.size(); i++)
186  if (vHcaliPhi[i] == iWedge->iPhi())
187  StoreWedge = false;
188 
189  if (StoreWedge) {
190  vHcaliPhi.push_back(iWedge->iPhi());
191  PhiWedge NewWedge(*iWedge);
192  NewWedge.SetOverlappingCSCSegments(HcalOverlapping_CSCSegments[iWedge->iPhi()]);
193  NewWedge.SetOverlappingCSCRecHits(HcalOverlapping_CSCRecHits[iWedge->iPhi()]);
194  PhiWedge wedge(*iWedge);
195  TheGlobalHaloData.GetMatchedHcalPhiWedges().push_back(NewWedge);
196  }
197  MATCHED = true;
198  }
199  }
200  if (!MATCHED)
201  N_Unmatched_Tracks++;
202  }
203 
204  // Corrections to MEx, MEy
205  float dMEx = 0.;
206  float dMEy = 0.;
207  // Loop over calotowers and correct the MET for the towers that lie in the trajectory of the CSC Halo Tracks
208  for (edm::View<Candidate>::const_iterator iCandidate = TheCaloTowers->begin(); iCandidate != TheCaloTowers->end();
209  iCandidate++) {
210  const Candidate* c = &(*iCandidate);
211  if (c) {
212  const CaloTower* iTower = dynamic_cast<const CaloTower*>(c);
213  if (iTower->et() < TowerEtThreshold)
214  continue;
215  if (abs(iTower->ieta()) > 24)
216  continue; // not in barrel/endcap
217  int iphi = iTower->iphi();
218  for (unsigned int x = 0; x < vEcaliPhi.size(); x++) {
219  if (iphi == vEcaliPhi[x]) {
220  dMEx += (TMath::Cos(iTower->phi()) * iTower->emEt());
221  dMEy += (TMath::Sin(iTower->phi()) * iTower->emEt());
222  }
223  }
224  for (unsigned int x = 0; x < vHcaliPhi.size(); x++) {
225  if (iphi == vHcaliPhi[x]) {
226  dMEx += (TMath::Cos(iTower->phi()) * iTower->hadEt());
227  dMEy += (TMath::Sin(iTower->phi()) * iTower->hadEt());
228  }
229  }
230  }
231  }
232 
233  TheGlobalHaloData.SetMETCorrections(dMEx, dMEy);
234 
235  std::vector<HaloClusterCandidateECAL> hccandEB = TheEcalHaloData.getHaloClusterCandidatesEB();
236  std::vector<HaloClusterCandidateECAL> hccandEE = TheEcalHaloData.getHaloClusterCandidatesEE();
237  std::vector<HaloClusterCandidateHCAL> hccandHB = TheHcalHaloData.getHaloClusterCandidatesHB();
238  std::vector<HaloClusterCandidateHCAL> hccandHE = TheHcalHaloData.getHaloClusterCandidatesHE();
239 
240  //CSC-calo matching
241  bool ECALBmatched(false), ECALEmatched(false), HCALBmatched(false), HCALEmatched(false);
242 
243  if (TheCSCSegments.isValid()) {
244  for (CSCSegmentCollection::const_iterator iSegment = TheCSCSegments->begin(); iSegment != TheCSCSegments->end();
245  iSegment++) {
246  CSCDetId iCscDetID = iSegment->cscDetId();
247  bool Segment1IsGood = true;
248 
249  //avoid segments from collision muons
250  if (TheMuons.isValid()) {
251  for (reco::MuonCollection::const_iterator mu = TheMuons->begin(); mu != TheMuons->end() && (Segment1IsGood);
252  mu++) {
253  if (!mu->isTrackerMuon() && !mu->isGlobalMuon() && mu->isStandAloneMuon())
254  continue;
255  if (!mu->isGlobalMuon() && mu->isTrackerMuon() && mu->pt() < 3)
256  continue;
257  const std::vector<MuonChamberMatch> chambers = mu->matches();
258  for (std::vector<MuonChamberMatch>::const_iterator kChamber = chambers.begin(); kChamber != chambers.end();
259  kChamber++) {
260  if (kChamber->detector() != MuonSubdetId::CSC)
261  continue;
262  for (std::vector<reco::MuonSegmentMatch>::const_iterator kSegment = kChamber->segmentMatches.begin();
263  kSegment != kChamber->segmentMatches.end();
264  kSegment++) {
265  edm::Ref<CSCSegmentCollection> cscSegRef = kSegment->cscSegmentRef;
266  CSCDetId kCscDetID = cscSegRef->cscDetId();
267 
268  if (kCscDetID == iCscDetID) {
269  Segment1IsGood = false;
270  }
271  }
272  }
273  }
274  }
275  if (!Segment1IsGood)
276  continue;
277 
278  // Get local direction vector; if direction runs parallel to beamline,
279  // count this segment as beam halo candidate.
280  LocalPoint iLocalPosition = iSegment->localPosition();
281  LocalVector iLocalDirection = iSegment->localDirection();
282 
283  GlobalPoint iGlobalPosition = TheCSCGeometry.chamber(iCscDetID)->toGlobal(iLocalPosition);
284  GlobalVector iGlobalDirection = TheCSCGeometry.chamber(iCscDetID)->toGlobal(iLocalDirection);
285 
286  float iTheta = iGlobalDirection.theta();
287  if (iTheta > max_segment_theta && iTheta < TMath::Pi() - max_segment_theta)
288  continue;
289 
290  float iPhi = iGlobalPosition.phi();
291  float iR = sqrt(iGlobalPosition.perp2());
292  float iZ = iGlobalPosition.z();
293  float iT = iSegment->time();
294 
295  //CSC-calo matching:
296  //Here, one checks if any halo cluster can be matched to a CSC segment.
297  //The matching uses both geometric (dphi, dR) and timing information (dt).
298  //The cut values depend on the subdetector considered (e.g. in HB, Rcalo-Rsegment is allowed to be very negative)
299 
300  bool ebmatched = SegmentMatchingEB(TheGlobalHaloData, hccandEB, iZ, iR, iT, iPhi, ishlt);
301  bool eematched = SegmentMatchingEE(TheGlobalHaloData, hccandEE, iZ, iR, iT, iPhi, ishlt);
302  bool hbmatched = SegmentMatchingHB(TheGlobalHaloData, hccandHB, iZ, iR, iT, iPhi, ishlt);
303  bool hematched = SegmentMatchingHE(TheGlobalHaloData, hccandHE, iZ, iR, iT, iPhi, ishlt);
304 
305  ECALBmatched |= ebmatched;
306  ECALEmatched |= eematched;
307  HCALBmatched |= hbmatched;
308  HCALEmatched |= hematched;
309  }
310  }
311 
312  TheGlobalHaloData.SetSegmentIsEBCaloMatched(ECALBmatched);
313  TheGlobalHaloData.SetSegmentIsEECaloMatched(ECALEmatched);
314  TheGlobalHaloData.SetSegmentIsHBCaloMatched(HCALBmatched);
315  TheGlobalHaloData.SetSegmentIsHECaloMatched(HCALEmatched);
316 
317  //Now checking patterns from EcalHaloData and HcalHaloData:
318  //Simply check whether any cluster has a halo pattern
319  //In that case store the rhits in GlobalHaloData
320 
321  bool HaloPatternFoundInEB = false;
322  for (auto& hcand : hccandEB) {
323  if ((hcand.getIsHaloFromPattern() && !ishlt) || (hcand.getIsHaloFromPattern_HLT() && ishlt)) {
324  HaloPatternFoundInEB = true;
325  edm::RefVector<EcalRecHitCollection> bhrhcandidates = hcand.getBeamHaloRecHitsCandidates();
326  AddtoBeamHaloEBEERechits(bhrhcandidates, TheGlobalHaloData, true);
327  }
328  }
329 
330  bool HaloPatternFoundInEE = false;
331  for (auto& hcand : hccandEE) {
332  if ((hcand.getIsHaloFromPattern() && !ishlt) || (hcand.getIsHaloFromPattern_HLT() && ishlt)) {
333  HaloPatternFoundInEE = true;
334  edm::RefVector<EcalRecHitCollection> bhrhcandidates = hcand.getBeamHaloRecHitsCandidates();
335  AddtoBeamHaloEBEERechits(bhrhcandidates, TheGlobalHaloData, false);
336  }
337  }
338 
339  bool HaloPatternFoundInHB = false;
340  for (auto& hcand : hccandHB) {
341  if ((hcand.getIsHaloFromPattern() && !ishlt) || (hcand.getIsHaloFromPattern_HLT() && ishlt)) {
342  HaloPatternFoundInHB = true;
343  edm::RefVector<HBHERecHitCollection> bhrhcandidates = hcand.getBeamHaloRecHitsCandidates();
344  AddtoBeamHaloHBHERechits(bhrhcandidates, TheGlobalHaloData);
345  }
346  }
347 
348  bool HaloPatternFoundInHE = false;
349  for (auto& hcand : hccandHE) {
350  if ((hcand.getIsHaloFromPattern() && !ishlt) || (hcand.getIsHaloFromPattern_HLT() && ishlt)) {
351  HaloPatternFoundInHE = true;
352  edm::RefVector<HBHERecHitCollection> bhrhcandidates = hcand.getBeamHaloRecHitsCandidates();
353  AddtoBeamHaloHBHERechits(bhrhcandidates, TheGlobalHaloData);
354  }
355  }
356  TheGlobalHaloData.SetHaloPatternFoundEB(HaloPatternFoundInEB);
357  TheGlobalHaloData.SetHaloPatternFoundEE(HaloPatternFoundInEE);
358  TheGlobalHaloData.SetHaloPatternFoundHB(HaloPatternFoundInHB);
359  TheGlobalHaloData.SetHaloPatternFoundHE(HaloPatternFoundInHE);
360 
361  return TheGlobalHaloData;
362 }

References funct::abs(), Abs(), c, CSCGeometry::chamber(), chambers, MuonSubdetId::CSC, CaloTower::emEt(), CaloTower::et(), reco::CSCHaloData::GetCSCTrackImpactPositions(), reco::EcalHaloData::getHaloClusterCandidatesEB(), reco::EcalHaloData::getHaloClusterCandidatesEE(), reco::HcalHaloData::getHaloClusterCandidatesHB(), reco::HcalHaloData::getHaloClusterCandidatesHE(), reco::GlobalHaloData::GetMatchedEcalPhiWedges(), reco::GlobalHaloData::GetMatchedHcalPhiWedges(), reco::EcalHaloData::GetPhiWedges(), reco::HcalHaloData::GetPhiWedges(), CaloTower::hadEt(), mps_fire::i, CSCGeometry::idToDetUnit(), CaloTower::ieta(), LEDCalibrationChannels::iphi, CaloTower::iphi(), edm::HandleBase::isValid(), amptDefaultParameters_cff::mu, DetId::Muon, PV3DBase< T, PVType, FrameType >::perp2(), PV3DBase< T, PVType, FrameType >::phi(), reco::LeafCandidate::phi(), Phi_To_EcaliPhi(), Phi_To_HcaliPhi(), Pi, reco::LeafCandidate::pt(), alignCSCRings::r, reco::GlobalHaloData::SetHaloPatternFoundEB(), reco::GlobalHaloData::SetHaloPatternFoundEE(), reco::GlobalHaloData::SetHaloPatternFoundHB(), reco::GlobalHaloData::SetHaloPatternFoundHE(), reco::GlobalHaloData::SetMETCorrections(), reco::GlobalHaloData::SetMETOverSumEt(), reco::PhiWedge::SetOverlappingCSCRecHits(), reco::PhiWedge::SetOverlappingCSCSegments(), reco::GlobalHaloData::SetSegmentIsEBCaloMatched(), reco::GlobalHaloData::SetSegmentIsEECaloMatched(), reco::GlobalHaloData::SetSegmentIsHBCaloMatched(), reco::GlobalHaloData::SetSegmentIsHECaloMatched(), mathSSE::sqrt(), reco::MET::sumEt(), GeomDet::surface(), PV3DBase< T, PVType, FrameType >::theta(), GeomDet::toGlobal(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

◆ SegmentMatchingEB()

bool GlobalHaloAlgo::SegmentMatchingEB ( reco::GlobalHaloData thehalodata,
const std::vector< reco::HaloClusterCandidateECAL > &  haloclustercands,
float  iZ,
float  iR,
float  iT,
float  iPhi,
bool  ishlt 
)
private

Definition at line 364 of file GlobalHaloAlgo.cc.

370  {
371  bool rhmatchingfound = false;
372 
373  for (auto& hcand : haloclustercands) {
374  if (!ApplyMatchingCuts(EB,
375  ishlt,
376  hcand.getSeedEt(),
377  iZ,
378  hcand.getSeedZ(),
379  iR,
380  hcand.getSeedR(),
381  iT,
382  hcand.getSeedTime(),
383  iPhi,
384  hcand.getSeedPhi()))
385  continue;
386 
387  rhmatchingfound = true;
388 
389  edm::RefVector<EcalRecHitCollection> bhrhcandidates = hcand.getBeamHaloRecHitsCandidates();
390 
391  AddtoBeamHaloEBEERechits(bhrhcandidates, thehalodata, true);
392  }
393 
394  return rhmatchingfound;
395 }

References EB.

◆ SegmentMatchingEE()

bool GlobalHaloAlgo::SegmentMatchingEE ( reco::GlobalHaloData thehalodata,
const std::vector< reco::HaloClusterCandidateECAL > &  haloclustercands,
float  iZ,
float  iR,
float  iT,
float  iPhi,
bool  ishlt 
)
private

Definition at line 397 of file GlobalHaloAlgo.cc.

403  {
404  bool rhmatchingfound = false;
405 
406  for (auto& hcand : haloclustercands) {
407  if (!ApplyMatchingCuts(EE,
408  ishlt,
409  hcand.getSeedEt(),
410  iZ,
411  hcand.getSeedZ(),
412  iR,
413  hcand.getSeedR(),
414  iT,
415  hcand.getSeedTime(),
416  iPhi,
417  hcand.getSeedPhi()))
418  continue;
419 
420  rhmatchingfound = true;
421 
422  edm::RefVector<EcalRecHitCollection> bhrhcandidates = hcand.getBeamHaloRecHitsCandidates();
423 
424  AddtoBeamHaloEBEERechits(bhrhcandidates, thehalodata, false);
425  }
426 
427  return rhmatchingfound;
428 }

References EE.

◆ SegmentMatchingHB()

bool GlobalHaloAlgo::SegmentMatchingHB ( reco::GlobalHaloData thehalodata,
const std::vector< reco::HaloClusterCandidateHCAL > &  haloclustercands,
float  iZ,
float  iR,
float  iT,
float  iPhi,
bool  ishlt 
)
private

Definition at line 430 of file GlobalHaloAlgo.cc.

436  {
437  bool rhmatchingfound = false;
438 
439  for (auto& hcand : haloclustercands) {
440  if (!ApplyMatchingCuts(HB,
441  ishlt,
442  hcand.getSeedEt(),
443  iZ,
444  hcand.getSeedZ(),
445  iR,
446  hcand.getSeedR(),
447  iT,
448  hcand.getSeedTime(),
449  iPhi,
450  hcand.getSeedPhi()))
451  continue;
452 
453  rhmatchingfound = true;
454 
455  edm::RefVector<HBHERecHitCollection> bhrhcandidates = hcand.getBeamHaloRecHitsCandidates();
456 
457  AddtoBeamHaloHBHERechits(bhrhcandidates, thehalodata);
458  }
459 
460  return rhmatchingfound;
461 }

References HB.

◆ SegmentMatchingHE()

bool GlobalHaloAlgo::SegmentMatchingHE ( reco::GlobalHaloData thehalodata,
const std::vector< reco::HaloClusterCandidateHCAL > &  haloclustercands,
float  iZ,
float  iR,
float  iT,
float  iPhi,
bool  ishlt 
)
private

Definition at line 463 of file GlobalHaloAlgo.cc.

469  {
470  bool rhmatchingfound = false;
471 
472  for (auto& hcand : haloclustercands) {
473  if (!ApplyMatchingCuts(HE,
474  ishlt,
475  hcand.getSeedEt(),
476  iZ,
477  hcand.getSeedZ(),
478  iR,
479  hcand.getSeedR(),
480  iT,
481  hcand.getSeedTime(),
482  iPhi,
483  hcand.getSeedPhi()))
484  continue;
485 
486  rhmatchingfound = true;
487 
488  edm::RefVector<HBHERecHitCollection> bhrhcandidates = hcand.getBeamHaloRecHitsCandidates();
489 
490  AddtoBeamHaloHBHERechits(bhrhcandidates, thehalodata);
491  }
492 
493  return rhmatchingfound;
494 }

References HE.

◆ SetCaloTowerEtThreshold()

void GlobalHaloAlgo::SetCaloTowerEtThreshold ( float  EtMin)
inline

Definition at line 91 of file GlobalHaloAlgo.h.

References HLT_FULL_cff::EtMin, and TowerEtThreshold.

◆ setDPhicalosegmThresholdforCSCCaloMatchingEB()

void GlobalHaloAlgo::setDPhicalosegmThresholdforCSCCaloMatchingEB ( float  x)
inline

Definition at line 101 of file GlobalHaloAlgo.h.

References dphi_thresh_segvsrh_eb, and x.

◆ setDPhicalosegmThresholdforCSCCaloMatchingEE()

void GlobalHaloAlgo::setDPhicalosegmThresholdforCSCCaloMatchingEE ( float  x)
inline

Definition at line 107 of file GlobalHaloAlgo.h.

References dphi_thresh_segvsrh_ee, and x.

◆ setDPhicalosegmThresholdforCSCCaloMatchingHB()

void GlobalHaloAlgo::setDPhicalosegmThresholdforCSCCaloMatchingHB ( float  x)
inline

Definition at line 113 of file GlobalHaloAlgo.h.

References dphi_thresh_segvsrh_hb, and x.

◆ setDPhicalosegmThresholdforCSCCaloMatchingHE()

void GlobalHaloAlgo::setDPhicalosegmThresholdforCSCCaloMatchingHE ( float  x)
inline

Definition at line 119 of file GlobalHaloAlgo.h.

References dphi_thresh_segvsrh_he, and x.

◆ setDtcalosegmThresholdforCSCCaloMatchingEB()

void GlobalHaloAlgo::setDtcalosegmThresholdforCSCCaloMatchingEB ( float  x)
inline

Definition at line 100 of file GlobalHaloAlgo.h.

100 { dt_segvsrh_eb = x; }

References dt_segvsrh_eb, and x.

◆ setDtcalosegmThresholdforCSCCaloMatchingEE()

void GlobalHaloAlgo::setDtcalosegmThresholdforCSCCaloMatchingEE ( float  x)
inline

Definition at line 106 of file GlobalHaloAlgo.h.

106 { dt_segvsrh_ee = x; }

References dt_segvsrh_ee, and x.

◆ setDtcalosegmThresholdforCSCCaloMatchingHB()

void GlobalHaloAlgo::setDtcalosegmThresholdforCSCCaloMatchingHB ( float  x)
inline

Definition at line 112 of file GlobalHaloAlgo.h.

112 { dt_segvsrh_hb = x; }

References dt_segvsrh_hb, and x.

◆ setDtcalosegmThresholdforCSCCaloMatchingHE()

void GlobalHaloAlgo::setDtcalosegmThresholdforCSCCaloMatchingHE ( float  x)
inline

Definition at line 118 of file GlobalHaloAlgo.h.

118 { dt_segvsrh_he = x; }

References dt_segvsrh_he, and x.

◆ SetEcalMatchingRadius()

void GlobalHaloAlgo::SetEcalMatchingRadius ( float  min,
float  max 
)
inline

Definition at line 81 of file GlobalHaloAlgo.h.

81  {
82  Ecal_R_Min = min;
83  Ecal_R_Max = max;
84  }

References Ecal_R_Max, Ecal_R_Min, SiStripPI::max, and min().

◆ setEtThresholdforCSCCaloMatchingEB()

void GlobalHaloAlgo::setEtThresholdforCSCCaloMatchingEB ( float  x)
inline

Definition at line 97 of file GlobalHaloAlgo.h.

97 { et_thresh_rh_eb = x; }

References et_thresh_rh_eb, and x.

◆ setEtThresholdforCSCCaloMatchingEE()

void GlobalHaloAlgo::setEtThresholdforCSCCaloMatchingEE ( float  x)
inline

Definition at line 103 of file GlobalHaloAlgo.h.

103 { et_thresh_rh_ee = x; }

References et_thresh_rh_ee, and x.

◆ setEtThresholdforCSCCaloMatchingHB()

void GlobalHaloAlgo::setEtThresholdforCSCCaloMatchingHB ( float  x)
inline

Definition at line 109 of file GlobalHaloAlgo.h.

109 { et_thresh_rh_hb = x; }

References et_thresh_rh_hb, and x.

◆ setEtThresholdforCSCCaloMatchingHE()

void GlobalHaloAlgo::setEtThresholdforCSCCaloMatchingHE ( float  x)
inline

Definition at line 115 of file GlobalHaloAlgo.h.

115 { et_thresh_rh_he = x; }

References et_thresh_rh_he, and x.

◆ SetHcalMatchingRadius()

void GlobalHaloAlgo::SetHcalMatchingRadius ( float  min,
float  max 
)
inline

Definition at line 86 of file GlobalHaloAlgo.h.

86  {
87  Hcal_R_Min = min;
88  Hcal_R_Max = max;
89  }

References Hcal_R_Max, Hcal_R_Min, SiStripPI::max, and min().

◆ SetMaxSegmentTheta()

void GlobalHaloAlgo::SetMaxSegmentTheta ( float  x)
inline

Definition at line 95 of file GlobalHaloAlgo.h.

95 { max_segment_theta = x; }

References max_segment_theta, and x.

◆ setRcaloMinRsegmHighThresholdforCSCCaloMatchingEB()

void GlobalHaloAlgo::setRcaloMinRsegmHighThresholdforCSCCaloMatchingEB ( float  x)
inline

Definition at line 99 of file GlobalHaloAlgo.h.

References dr_highthresh_segvsrh_eb, and x.

◆ setRcaloMinRsegmHighThresholdforCSCCaloMatchingEE()

void GlobalHaloAlgo::setRcaloMinRsegmHighThresholdforCSCCaloMatchingEE ( float  x)
inline

Definition at line 105 of file GlobalHaloAlgo.h.

References dr_highthresh_segvsrh_ee, and x.

◆ setRcaloMinRsegmHighThresholdforCSCCaloMatchingHB()

void GlobalHaloAlgo::setRcaloMinRsegmHighThresholdforCSCCaloMatchingHB ( float  x)
inline

Definition at line 111 of file GlobalHaloAlgo.h.

References dr_highthresh_segvsrh_hb, and x.

◆ setRcaloMinRsegmHighThresholdforCSCCaloMatchingHE()

void GlobalHaloAlgo::setRcaloMinRsegmHighThresholdforCSCCaloMatchingHE ( float  x)
inline

Definition at line 117 of file GlobalHaloAlgo.h.

References dr_highthresh_segvsrh_he, and x.

◆ setRcaloMinRsegmLowThresholdforCSCCaloMatchingEB()

void GlobalHaloAlgo::setRcaloMinRsegmLowThresholdforCSCCaloMatchingEB ( float  x)
inline

Definition at line 98 of file GlobalHaloAlgo.h.

References dr_lowthresh_segvsrh_eb, and x.

◆ setRcaloMinRsegmLowThresholdforCSCCaloMatchingEE()

void GlobalHaloAlgo::setRcaloMinRsegmLowThresholdforCSCCaloMatchingEE ( float  x)
inline

Definition at line 104 of file GlobalHaloAlgo.h.

References dr_lowthresh_segvsrh_ee, and x.

◆ setRcaloMinRsegmLowThresholdforCSCCaloMatchingHB()

void GlobalHaloAlgo::setRcaloMinRsegmLowThresholdforCSCCaloMatchingHB ( float  x)
inline

Definition at line 110 of file GlobalHaloAlgo.h.

References dr_lowthresh_segvsrh_hb, and x.

◆ setRcaloMinRsegmLowThresholdforCSCCaloMatchingHE()

void GlobalHaloAlgo::setRcaloMinRsegmLowThresholdforCSCCaloMatchingHE ( float  x)
inline

Definition at line 116 of file GlobalHaloAlgo.h.

References dr_lowthresh_segvsrh_he, and x.

Member Data Documentation

◆ dphi_thresh_segvsrh_eb

float GlobalHaloAlgo::dphi_thresh_segvsrh_eb
private

Definition at line 132 of file GlobalHaloAlgo.h.

Referenced by setDPhicalosegmThresholdforCSCCaloMatchingEB().

◆ dphi_thresh_segvsrh_ee

float GlobalHaloAlgo::dphi_thresh_segvsrh_ee
private

Definition at line 138 of file GlobalHaloAlgo.h.

Referenced by setDPhicalosegmThresholdforCSCCaloMatchingEE().

◆ dphi_thresh_segvsrh_hb

float GlobalHaloAlgo::dphi_thresh_segvsrh_hb
private

Definition at line 144 of file GlobalHaloAlgo.h.

Referenced by setDPhicalosegmThresholdforCSCCaloMatchingHB().

◆ dphi_thresh_segvsrh_he

float GlobalHaloAlgo::dphi_thresh_segvsrh_he
private

Definition at line 150 of file GlobalHaloAlgo.h.

Referenced by setDPhicalosegmThresholdforCSCCaloMatchingHE().

◆ dr_highthresh_segvsrh_eb

float GlobalHaloAlgo::dr_highthresh_segvsrh_eb
private

Definition at line 134 of file GlobalHaloAlgo.h.

Referenced by setRcaloMinRsegmHighThresholdforCSCCaloMatchingEB().

◆ dr_highthresh_segvsrh_ee

float GlobalHaloAlgo::dr_highthresh_segvsrh_ee
private

Definition at line 140 of file GlobalHaloAlgo.h.

Referenced by setRcaloMinRsegmHighThresholdforCSCCaloMatchingEE().

◆ dr_highthresh_segvsrh_hb

float GlobalHaloAlgo::dr_highthresh_segvsrh_hb
private

Definition at line 146 of file GlobalHaloAlgo.h.

Referenced by setRcaloMinRsegmHighThresholdforCSCCaloMatchingHB().

◆ dr_highthresh_segvsrh_he

float GlobalHaloAlgo::dr_highthresh_segvsrh_he
private

Definition at line 152 of file GlobalHaloAlgo.h.

Referenced by setRcaloMinRsegmHighThresholdforCSCCaloMatchingHE().

◆ dr_lowthresh_segvsrh_eb

float GlobalHaloAlgo::dr_lowthresh_segvsrh_eb
private

Definition at line 133 of file GlobalHaloAlgo.h.

Referenced by setRcaloMinRsegmLowThresholdforCSCCaloMatchingEB().

◆ dr_lowthresh_segvsrh_ee

float GlobalHaloAlgo::dr_lowthresh_segvsrh_ee
private

Definition at line 139 of file GlobalHaloAlgo.h.

Referenced by setRcaloMinRsegmLowThresholdforCSCCaloMatchingEE().

◆ dr_lowthresh_segvsrh_hb

float GlobalHaloAlgo::dr_lowthresh_segvsrh_hb
private

Definition at line 145 of file GlobalHaloAlgo.h.

Referenced by setRcaloMinRsegmLowThresholdforCSCCaloMatchingHB().

◆ dr_lowthresh_segvsrh_he

float GlobalHaloAlgo::dr_lowthresh_segvsrh_he
private

Definition at line 151 of file GlobalHaloAlgo.h.

Referenced by setRcaloMinRsegmLowThresholdforCSCCaloMatchingHE().

◆ dt_segvsrh_eb

float GlobalHaloAlgo::dt_segvsrh_eb
private

Definition at line 135 of file GlobalHaloAlgo.h.

Referenced by setDtcalosegmThresholdforCSCCaloMatchingEB().

◆ dt_segvsrh_ee

float GlobalHaloAlgo::dt_segvsrh_ee
private

Definition at line 141 of file GlobalHaloAlgo.h.

Referenced by setDtcalosegmThresholdforCSCCaloMatchingEE().

◆ dt_segvsrh_hb

float GlobalHaloAlgo::dt_segvsrh_hb
private

Definition at line 147 of file GlobalHaloAlgo.h.

Referenced by setDtcalosegmThresholdforCSCCaloMatchingHB().

◆ dt_segvsrh_he

float GlobalHaloAlgo::dt_segvsrh_he
private

Definition at line 153 of file GlobalHaloAlgo.h.

Referenced by setDtcalosegmThresholdforCSCCaloMatchingHE().

◆ Ecal_R_Max

float GlobalHaloAlgo::Ecal_R_Max
private

Definition at line 123 of file GlobalHaloAlgo.h.

Referenced by SetEcalMatchingRadius().

◆ Ecal_R_Min

float GlobalHaloAlgo::Ecal_R_Min
private

Definition at line 122 of file GlobalHaloAlgo.h.

Referenced by SetEcalMatchingRadius().

◆ et_thresh_rh_eb

float GlobalHaloAlgo::et_thresh_rh_eb
private

Definition at line 131 of file GlobalHaloAlgo.h.

Referenced by setEtThresholdforCSCCaloMatchingEB().

◆ et_thresh_rh_ee

float GlobalHaloAlgo::et_thresh_rh_ee
private

Definition at line 137 of file GlobalHaloAlgo.h.

Referenced by setEtThresholdforCSCCaloMatchingEE().

◆ et_thresh_rh_hb

float GlobalHaloAlgo::et_thresh_rh_hb
private

Definition at line 143 of file GlobalHaloAlgo.h.

Referenced by setEtThresholdforCSCCaloMatchingHB().

◆ et_thresh_rh_he

float GlobalHaloAlgo::et_thresh_rh_he
private

Definition at line 149 of file GlobalHaloAlgo.h.

Referenced by setEtThresholdforCSCCaloMatchingHE().

◆ Hcal_R_Max

float GlobalHaloAlgo::Hcal_R_Max
private

Definition at line 125 of file GlobalHaloAlgo.h.

Referenced by SetHcalMatchingRadius().

◆ Hcal_R_Min

float GlobalHaloAlgo::Hcal_R_Min
private

Definition at line 124 of file GlobalHaloAlgo.h.

Referenced by SetHcalMatchingRadius().

◆ max_segment_theta

float GlobalHaloAlgo::max_segment_theta
private

Definition at line 129 of file GlobalHaloAlgo.h.

Referenced by SetMaxSegmentTheta().

◆ TowerEtThreshold

float GlobalHaloAlgo::TowerEtThreshold
private

Definition at line 126 of file GlobalHaloAlgo.h.

Referenced by SetCaloTowerEtThreshold().

reco::GlobalHaloData::SetHaloPatternFoundEE
void SetHaloPatternFoundEE(bool b)
Definition: GlobalHaloData.h:76
Vector3DBase< float, LocalTag >
GlobalHaloAlgo::SegmentMatchingEE
bool SegmentMatchingEE(reco::GlobalHaloData &thehalodata, const std::vector< reco::HaloClusterCandidateECAL > &haloclustercands, float iZ, float iR, float iT, float iPhi, bool ishlt)
Definition: GlobalHaloAlgo.cc:397
GlobalHaloAlgo::dt_segvsrh_ee
float dt_segvsrh_ee
Definition: GlobalHaloAlgo.h:141
DDAxes::y
MuonSubdetId::CSC
static constexpr int CSC
Definition: MuonSubdetId.h:12
HLT_FULL_cff.EtMin
EtMin
Definition: HLT_FULL_cff.py:33077
GlobalHaloAlgo::SegmentMatchingHB
bool SegmentMatchingHB(reco::GlobalHaloData &thehalodata, const std::vector< reco::HaloClusterCandidateHCAL > &haloclustercands, float iZ, float iR, float iT, float iPhi, bool ishlt)
Definition: GlobalHaloAlgo.cc:430
mps_fire.i
i
Definition: mps_fire.py:428
reco::GlobalHaloData::SetMETCorrections
void SetMETCorrections(float x, float y)
Definition: GlobalHaloData.h:66
GlobalHaloAlgo::dr_lowthresh_segvsrh_ee
float dr_lowthresh_segvsrh_ee
Definition: GlobalHaloAlgo.h:139
GeomDet
Definition: GeomDet.h:27
reco::GlobalHaloData::GetHBHERechits
edm::RefVector< HBHERecHitCollection > & GetHBHERechits()
Definition: GlobalHaloData.h:51
reco::HcalHaloData::getHaloClusterCandidatesHB
const std::vector< HaloClusterCandidateHCAL > & getHaloClusterCandidatesHB() const
Definition: HcalHaloData.h:52
GlobalHaloAlgo::et_thresh_rh_he
float et_thresh_rh_he
Definition: GlobalHaloAlgo.h:149
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
amptDefaultParameters_cff.mu
mu
Definition: amptDefaultParameters_cff.py:16
min
T min(T a, T b)
Definition: MathUtil.h:58
PV3DBase::theta
Geom::Theta< T > theta() const
Definition: PV3DBase.h:72
EB
Definition: GlobalHaloAlgo.cc:15
reco::MET::sumEt
double sumEt() const
Definition: MET.h:56
GlobalHaloAlgo::dphi_thresh_segvsrh_hb
float dphi_thresh_segvsrh_hb
Definition: GlobalHaloAlgo.h:144
Phi_To_HcaliPhi
int Phi_To_HcaliPhi(float phi)
Definition: GlobalHaloAlgo.cc:16
GlobalHaloAlgo::dr_highthresh_segvsrh_he
float dr_highthresh_segvsrh_he
Definition: GlobalHaloAlgo.h:152
reco::GlobalHaloData::GetEBRechits
edm::RefVector< EcalRecHitCollection > & GetEBRechits()
Definition: GlobalHaloData.h:45
DDAxes::x
edm::RefVector
Definition: EDProductfwd.h:27
reco::LeafCandidate::pt
double pt() const final
transverse momentum
Definition: LeafCandidate.h:146
HB
Definition: GlobalHaloAlgo.cc:15
reco::GlobalHaloData::GetMatchedHcalPhiWedges
std::vector< PhiWedge > & GetMatchedHcalPhiWedges()
Definition: GlobalHaloData.h:39
GlobalHaloAlgo::dr_highthresh_segvsrh_hb
float dr_highthresh_segvsrh_hb
Definition: GlobalHaloAlgo.h:146
GlobalHaloAlgo::max_segment_theta
float max_segment_theta
Definition: GlobalHaloAlgo.h:129
edm::Ref
Definition: AssociativeIterator.h:58
reco::GlobalHaloData::SetSegmentIsHECaloMatched
void SetSegmentIsHECaloMatched(bool b)
Definition: GlobalHaloData.h:72
reco::GlobalHaloData::SetHaloPatternFoundHB
void SetHaloPatternFoundHB(bool b)
Definition: GlobalHaloData.h:77
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
LEDCalibrationChannels.iphi
iphi
Definition: LEDCalibrationChannels.py:64
DetId
Definition: DetId.h:17
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
reco::HcalHaloData::getHaloClusterCandidatesHE
const std::vector< HaloClusterCandidateHCAL > & getHaloClusterCandidatesHE() const
Definition: HcalHaloData.h:55
GlobalHaloAlgo::AddtoBeamHaloEBEERechits
void AddtoBeamHaloEBEERechits(edm::RefVector< EcalRecHitCollection > &bhtaggedrechits, reco::GlobalHaloData &thehalodata, bool isbarrel)
Definition: GlobalHaloAlgo.cc:600
reco::PhiWedge
Definition: PhiWedge.h:13
GlobalHaloAlgo::SegmentMatchingEB
bool SegmentMatchingEB(reco::GlobalHaloData &thehalodata, const std::vector< reco::HaloClusterCandidateECAL > &haloclustercands, float iZ, float iR, float iT, float iPhi, bool ishlt)
Definition: GlobalHaloAlgo.cc:364
Abs
T Abs(T a)
Definition: MathUtil.h:49
SiPixelRawToDigiRegional_cfi.deltaPhi
deltaPhi
Definition: SiPixelRawToDigiRegional_cfi.py:9
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
GlobalHaloAlgo::dr_highthresh_segvsrh_ee
float dr_highthresh_segvsrh_ee
Definition: GlobalHaloAlgo.h:140
CaloTower::ieta
int ieta() const
Definition: CaloTower.h:200
GlobalHaloAlgo::dphi_thresh_segvsrh_he
float dphi_thresh_segvsrh_he
Definition: GlobalHaloAlgo.h:150
Point3DBase< float, LocalTag >
GlobalHaloAlgo::Ecal_R_Max
float Ecal_R_Max
Definition: GlobalHaloAlgo.h:123
GlobalHaloAlgo::dr_lowthresh_segvsrh_he
float dr_lowthresh_segvsrh_he
Definition: GlobalHaloAlgo.h:151
GlobalHaloAlgo::et_thresh_rh_hb
float et_thresh_rh_hb
Definition: GlobalHaloAlgo.h:143
GlobalHaloAlgo::dr_lowthresh_segvsrh_eb
float dr_lowthresh_segvsrh_eb
Definition: GlobalHaloAlgo.h:133
GlobalHaloAlgo::TowerEtThreshold
float TowerEtThreshold
Definition: GlobalHaloAlgo.h:126
reco::GlobalHaloData::SetSegmentIsHBCaloMatched
void SetSegmentIsHBCaloMatched(bool b)
Definition: GlobalHaloData.h:71
reco::GlobalHaloData::GetEERechits
edm::RefVector< EcalRecHitCollection > & GetEERechits()
Definition: GlobalHaloData.h:48
GeomDet::toGlobal
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:49
Phi_To_EcaliPhi
int Phi_To_EcaliPhi(float phi)
Definition: GlobalHaloAlgo.cc:24
reco::GlobalHaloData::SetHaloPatternFoundEB
void SetHaloPatternFoundEB(bool b)
Definition: GlobalHaloData.h:75
GlobalHaloAlgo::et_thresh_rh_eb
float et_thresh_rh_eb
Definition: GlobalHaloAlgo.h:131
reco::GlobalHaloData::SetMETOverSumEt
void SetMETOverSumEt(float x)
Definition: GlobalHaloData.h:65
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
edm::RangeMap::const_iterator
C::const_iterator const_iterator
constant access iterator type
Definition: RangeMap.h:43
CSCDetId
Definition: CSCDetId.h:26
reco::GlobalHaloData
Definition: GlobalHaloData.h:17
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
CaloTower
Definition: CaloTower.h:26
HE
Definition: GlobalHaloAlgo.cc:15
CaloTower::et
double et(double vtxZ) const
Definition: CaloTower.h:150
chambers
static char chambers[264][20]
Definition: ReadPGInfo.cc:243
reco::GlobalHaloData::SetSegmentIsEECaloMatched
void SetSegmentIsEECaloMatched(bool b)
Definition: GlobalHaloData.h:74
reco::EcalHaloData::getHaloClusterCandidatesEB
const std::vector< HaloClusterCandidateECAL > & getHaloClusterCandidatesEB() const
Definition: EcalHaloData.h:47
GlobalHaloAlgo::ApplyMatchingCuts
bool ApplyMatchingCuts(int subdet, bool ishlt, double rhet, double segZ, double rhZ, double segR, double rhR, double segT, double rhT, double segPhi, double rhPhi)
Definition: GlobalHaloAlgo.cc:496
reco::HcalHaloData::GetPhiWedges
const std::vector< PhiWedge > & GetPhiWedges() const
Definition: HcalHaloData.h:45
reco::Candidate
Definition: Candidate.h:27
alignCSCRings.r
r
Definition: alignCSCRings.py:93
GlobalHaloAlgo::SegmentMatchingHE
bool SegmentMatchingHE(reco::GlobalHaloData &thehalodata, const std::vector< reco::HaloClusterCandidateHCAL > &haloclustercands, float iZ, float iR, float iT, float iPhi, bool ishlt)
Definition: GlobalHaloAlgo.cc:463
EE
Definition: GlobalHaloAlgo.cc:15
GlobalHaloAlgo::Ecal_R_Min
float Ecal_R_Min
Definition: GlobalHaloAlgo.h:122
GlobalHaloAlgo::dt_segvsrh_eb
float dt_segvsrh_eb
Definition: GlobalHaloAlgo.h:135
reco::LeafCandidate::phi
double phi() const final
momentum azimuthal angle
Definition: LeafCandidate.h:148
GlobalHaloAlgo::Hcal_R_Max
float Hcal_R_Max
Definition: GlobalHaloAlgo.h:125
CaloTower::hadEt
double hadEt() const
Definition: CaloTower.h:136
BoundPlane
GlobalHaloAlgo::dt_segvsrh_hb
float dt_segvsrh_hb
Definition: GlobalHaloAlgo.h:147
GlobalHaloAlgo::Hcal_R_Min
float Hcal_R_Min
Definition: GlobalHaloAlgo.h:124
reco::GlobalHaloData::SetHaloPatternFoundHE
void SetHaloPatternFoundHE(bool b)
Definition: GlobalHaloData.h:78
reco::CSCHaloData::GetCSCTrackImpactPositions
const std::vector< GlobalPoint > & GetCSCTrackImpactPositions() const
Definition: CSCHaloData.h:100
GlobalHaloAlgo::dr_highthresh_segvsrh_eb
float dr_highthresh_segvsrh_eb
Definition: GlobalHaloAlgo.h:134
GlobalHaloAlgo::dr_lowthresh_segvsrh_hb
float dr_lowthresh_segvsrh_hb
Definition: GlobalHaloAlgo.h:145
CaloTower::iphi
int iphi() const
Definition: CaloTower.h:202
edm::View::const_iterator
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
Pi
const double Pi
Definition: CosmicMuonParameters.h:18
CaloTower::emEt
double emEt() const
Definition: CaloTower.h:135
GlobalHaloAlgo::dphi_thresh_segvsrh_ee
float dphi_thresh_segvsrh_ee
Definition: GlobalHaloAlgo.h:138
DetId::Muon
Definition: DetId.h:26
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
GlobalHaloAlgo::et_thresh_rh_ee
float et_thresh_rh_ee
Definition: GlobalHaloAlgo.h:137
c
auto & c
Definition: CAHitNtupletGeneratorKernelsImpl.h:46
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
reco::GlobalHaloData::GetMatchedEcalPhiWedges
std::vector< PhiWedge > & GetMatchedEcalPhiWedges()
Definition: GlobalHaloData.h:42
GlobalHaloAlgo::AddtoBeamHaloHBHERechits
void AddtoBeamHaloHBHERechits(edm::RefVector< HBHERecHitCollection > &bhtaggedrechits, reco::GlobalHaloData &thehalodata)
Definition: GlobalHaloAlgo.cc:625
edm::RefVector::size
size_type size() const
Size of the RefVector.
Definition: RefVector.h:102
CSCGeometry::idToDetUnit
const GeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
Definition: CSCGeometry.cc:89
GlobalHaloAlgo::dt_segvsrh_he
float dt_segvsrh_he
Definition: GlobalHaloAlgo.h:153
reco::GlobalHaloData::SetSegmentIsEBCaloMatched
void SetSegmentIsEBCaloMatched(bool b)
Definition: GlobalHaloData.h:73
reco::EcalHaloData::getHaloClusterCandidatesEE
const std::vector< HaloClusterCandidateECAL > & getHaloClusterCandidatesEE() const
Definition: EcalHaloData.h:49
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
CSCGeometry::chamber
const CSCChamber * chamber(CSCDetId id) const
Return the chamber corresponding to given DetId.
Definition: CSCGeometry.cc:100
GlobalHaloAlgo::dphi_thresh_segvsrh_eb
float dphi_thresh_segvsrh_eb
Definition: GlobalHaloAlgo.h:132
PV3DBase::perp2
T perp2() const
Definition: PV3DBase.h:68
reco::EcalHaloData::GetPhiWedges
const std::vector< PhiWedge > & GetPhiWedges() const
Definition: EcalHaloData.h:33