61 auto TheBeamHaloSummary = std::make_unique<BeamHaloSummary>();
71 if (
CSCData.NumberOfHaloTriggers() ||
CSCData.NumberOfHaloTracks() ||
72 (
CSCData.NOutOfTimeHits() > 10 &&
CSCData.NFlatHaloSegments() > 2) ||
CSCData.GetSegmentsInBothEndcaps() ||
74 TheBeamHaloSummary->GetCSCHaloReport()[0] = 1;
77 if ((
CSCData.NumberOfHaloTriggers() &&
CSCData.NumberOfHaloTracks()) ||
78 (
CSCData.NOutOfTimeHits() > 10 &&
CSCData.NumberOfHaloTriggers()) ||
79 (
CSCData.NOutOfTimeHits() > 10 &&
CSCData.NumberOfHaloTracks()) ||
CSCData.GetSegmentsInBothEndcaps() ||
81 (
CSCData.NFlatHaloSegments() > 3 && (
CSCData.NumberOfHaloTriggers() ||
CSCData.NumberOfHaloTracks())))
82 TheBeamHaloSummary->GetCSCHaloReport()[1] = 1;
85 if (
CSCData.NumberOfHaloTriggers() ||
CSCData.NumberOfHaloTracks() ||
CSCData.NumberOfOutOfTimeTriggers())
86 TheBeamHaloSummary->GetCSCHaloReport()[2] = 1;
89 if ((
CSCData.NumberOfHaloTriggers() &&
CSCData.NumberOfHaloTracks()) ||
90 (
CSCData.NumberOfHaloTriggers() &&
CSCData.NumberOfOutOfTimeTriggers()) ||
91 (
CSCData.NumberOfHaloTracks() &&
CSCData.NumberOfOutOfTimeTriggers()))
92 TheBeamHaloSummary->GetCSCHaloReport()[3] = 1;
95 if ((
CSCData.NumberOfHaloTriggers_TrkMuUnVeto() &&
CSCData.NumberOfHaloTracks()) ||
96 (
CSCData.NOutOfTimeHits() > 10 &&
CSCData.NumberOfHaloTriggers_TrkMuUnVeto()) ||
98 CSCData.GetSegmentsInBothEndcaps_Loose_TrkMuUnVeto() ||
100 (
CSCData.NFlatHaloSegments() > 3 && (
CSCData.NumberOfHaloTriggers_TrkMuUnVeto() ||
CSCData.NumberOfHaloTracks())))
101 TheBeamHaloSummary->GetCSCHaloReport()[4] = 1;
104 if ((
CSCData.NumberOfHaloTriggers_TrkMuUnVeto() &&
CSCData.NFlatHaloSegments_TrkMuUnVeto()) ||
105 CSCData.GetSegmentsInBothEndcaps_Loose_dTcut_TrkMuUnVeto() ||
CSCData.GetSegmentIsCaloMatched())
106 TheBeamHaloSummary->GetCSCHaloReport()[5] = 1;
115 bool EcalLooseId =
false, EcalTightId =
false;
157 float angle = vm_Angle[cluster];
158 float roundness = vm_Roundness[cluster];
176 TheBeamHaloSummary->GetEcalHaloReport()[0] = 1;
178 TheBeamHaloSummary->GetEcalHaloReport()[1] = 1;
186 const std::vector<PhiWedge>& HcalWedges = HcalData.
GetPhiWedges();
187 bool HcalLooseId =
false, HcalTightId =
false;
188 for (std::vector<PhiWedge>::const_iterator iWedge = HcalWedges.begin(); iWedge != HcalWedges.end(); iWedge++) {
189 bool HcaliPhi =
false;
204 for (
unsigned int i = 0;
i < TheBeamHaloSummary->GetHcaliPhiSuspects().size();
i++) {
205 if (iWedge->iPhi() == TheBeamHaloSummary->GetHcaliPhiSuspects()[
i]) {
211 TheBeamHaloSummary->GetHcaliPhiSuspects().push_back(iWedge->iPhi());
215 TheBeamHaloSummary->GetHcalHaloReport()[0] = 1;
217 TheBeamHaloSummary->GetHcalHaloReport()[1] = 1;
224 TheBeamHaloSummary->getProblematicStrips().push_back(problematicStrip);
232 bool GlobalLooseId =
false;
233 bool GlobalTightId =
false;
239 if (!MatchedEcalWedges.empty() || !MatchedHcalWedges.empty())
240 GlobalLooseId =
true;
243 for (std::vector<PhiWedge>::const_iterator iWedge = MatchedEcalWedges.begin(); iWedge != MatchedEcalWedges.end();
246 GlobalTightId =
true;
248 GlobalTightId =
true;
251 for (std::vector<PhiWedge>::const_iterator iWedge = MatchedHcalWedges.begin(); iWedge != MatchedHcalWedges.end();
254 GlobalTightId =
true;
256 GlobalTightId =
true;
260 TheBeamHaloSummary->GetGlobalHaloReport()[0] = 1;
262 TheBeamHaloSummary->GetGlobalHaloReport()[1] = 1;
269 TheBeamHaloSummary->GetGlobalHaloReport()[2] = 1;
276 TheBeamHaloSummary->GetGlobalHaloReport()[3] = 1;
edm::ValueMap< float > & GetShowerShapesRoundness()
edm::EDGetTokenT< HcalHaloData > hcalhalodata_token_
bool GetHaloPatternFoundHB() const
float L_HcalPhiWedgeConfidence
float T_EcalPhiWedgeConfidence
edm::RefVector< reco::SuperClusterCollection > & GetSuperClusters()
edm::ValueMap< float > & GetShowerShapesAngle()
T const * product() const
bool GetSegmentIsHECaloMatched() const
bool GetHaloPatternFoundEB() const
float L_EcalShowerShapesAngle
std::vector< PhiWedge > & GetMatchedEcalPhiWedges()
int L_EcalSuperClusterSize
edm::EDGetTokenT< EcalHaloData > ecalhalodata_token_
bool GetSegmentIsEECaloMatched() const
const std::vector< HaloTowerStrip > & getProblematicStrips() const
edm::EDGetTokenT< GlobalHaloData > globalhalodata_token_
int T_EcalPhiWedgeConstituents
Abs< T >::type abs(const T &t)
float T_EcalShowerShapesAngle
float L_EcalShowerShapesRoundness
float T_EcalSuperClusterEnergy
float T_HcalPhiWedgeEnergy
size_type size() const
Size of the RefVector.
int T_EcalSuperClusterSize
bool GetHaloPatternFoundEE() const
float L_HcalPhiWedgeEnergy
std::vector< PhiWedge > & GetMatchedHcalPhiWedges()
edm::EDGetTokenT< CSCHaloData > cschalodata_token_
float T_HcalPhiWedgeConfidence
bool GetSegmentIsEBCaloMatched() const
bool GetHaloPatternFoundHE() const
int problematicStripMinLength
const std::vector< PhiWedge > & GetPhiWedges() const
float T_EcalShowerShapesRoundness
float L_EcalSuperClusterEnergy
bool GetSegmentIsHBCaloMatched() const
int T_HcalPhiWedgeConstituents
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
int L_HcalPhiWedgeConstituents