test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
reco::BeamHaloSummaryProducer Class Reference

#include <BeamHaloSummaryProducer.h>

Inheritance diagram for reco::BeamHaloSummaryProducer:
edm::stream::EDProducer<> edm::stream::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 BeamHaloSummaryProducer (const edm::ParameterSet &)
 
 ~BeamHaloSummaryProducer ()
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
- Public Member Functions inherited from edm::stream::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducerBase ()
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (std::string const &iProcessName, std::string const &iModuleLabel, bool iPrint, std::vector< char const * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Member Functions

virtual void produce (edm::Event &, const edm::EventSetup &) override
 

Private Attributes

edm::EDGetTokenT< CSCHaloDatacschalodata_token_
 
edm::EDGetTokenT< EcalHaloDataecalhalodata_token_
 
edm::EDGetTokenT< GlobalHaloDataglobalhalodata_token_
 
edm::EDGetTokenT< HcalHaloDatahcalhalodata_token_
 
edm::InputTag IT_CSCHaloData
 
edm::InputTag IT_EcalHaloData
 
edm::InputTag IT_GlobalHaloData
 
edm::InputTag IT_HcalHaloData
 
float L_EcalPhiWedgeConfidence
 
int L_EcalPhiWedgeConstituents
 
float L_EcalPhiWedgeEnergy
 
float L_EcalPhiWedgeToF
 
float L_EcalShowerShapesAngle
 
float L_EcalShowerShapesRoundness
 
float L_EcalSuperClusterEnergy
 
int L_EcalSuperClusterSize
 
float L_HcalPhiWedgeConfidence
 
int L_HcalPhiWedgeConstituents
 
float L_HcalPhiWedgeEnergy
 
float L_HcalPhiWedgeToF
 
int problematicStripMinLength
 
float T_EcalPhiWedgeConfidence
 
int T_EcalPhiWedgeConstituents
 
float T_EcalPhiWedgeEnergy
 
float T_EcalPhiWedgeToF
 
float T_EcalShowerShapesAngle
 
float T_EcalShowerShapesRoundness
 
float T_EcalSuperClusterEnergy
 
int T_EcalSuperClusterSize
 
float T_HcalPhiWedgeConfidence
 
int T_HcalPhiWedgeConstituents
 
float T_HcalPhiWedgeEnergy
 
float T_HcalPhiWedgeToF
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T...> CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T...> HasAbility
 
typedef
CacheTypes::LuminosityBlockCache 
LuminosityBlockCache
 
typedef
LuminosityBlockContextT
< LuminosityBlockCache,
RunCache, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDProducerBase
typedef EDProducerAdaptorBase ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::stream::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 58 of file BeamHaloSummaryProducer.h.

Constructor & Destructor Documentation

BeamHaloSummaryProducer::BeamHaloSummaryProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 15 of file BeamHaloSummaryProducer.cc.

References edm::ParameterSet::getParameter().

16 {
17  IT_CSCHaloData = iConfig.getParameter<edm::InputTag>("CSCHaloDataLabel");
18  IT_EcalHaloData = iConfig.getParameter<edm::InputTag>("EcalHaloDataLabel");
19  IT_HcalHaloData = iConfig.getParameter<edm::InputTag>("HcalHaloDataLabel");
20  IT_GlobalHaloData = iConfig.getParameter<edm::InputTag>("GlobalHaloDataLabel");
21 
22  L_EcalPhiWedgeEnergy = (float) iConfig.getParameter<double>("l_EcalPhiWedgeEnergy");
23  L_EcalPhiWedgeConstituents = iConfig.getParameter<int>("l_EcalPhiWedgeConstituents");
24  L_EcalPhiWedgeToF = (float)iConfig.getParameter<double>("l_EcalPhiWedgeToF");
25  L_EcalPhiWedgeConfidence = (float)iConfig.getParameter<double>("l_EcalPhiWedgeConfidence");
26  L_EcalShowerShapesRoundness = (float)iConfig.getParameter<double>("l_EcalShowerShapesRoundness");
27  L_EcalShowerShapesAngle =(float) iConfig.getParameter<double>("l_EcalShowerShapesAngle");
28  L_EcalSuperClusterSize = (int) iConfig.getParameter<int>("l_EcalSuperClusterSize");
29  L_EcalSuperClusterEnergy = (float) iConfig.getParameter<double>("l_EcalSuperClusterEnergy");
30 
31  T_EcalPhiWedgeEnergy = (float)iConfig.getParameter<double>("t_EcalPhiWedgeEnergy");
32  T_EcalPhiWedgeConstituents = iConfig.getParameter<int>("t_EcalPhiWedgeConstituents");
33  T_EcalPhiWedgeToF = (float)iConfig.getParameter<double>("t_EcalPhiWedgeToF");
34  T_EcalPhiWedgeConfidence = (float)iConfig.getParameter<double>("t_EcalPhiWedgeConfidence");
35  T_EcalShowerShapesRoundness = (float)iConfig.getParameter<double>("t_EcalShowerShapesRoundness");
36  T_EcalShowerShapesAngle = (float)iConfig.getParameter<double>("t_EcalShowerShapesAngle");
37  T_EcalSuperClusterSize = (int) iConfig.getParameter<int>("t_EcalSuperClusterSize");
38  T_EcalSuperClusterEnergy = (float) iConfig.getParameter<double>("t_EcalSuperClusterEnergy");
39 
40  L_HcalPhiWedgeEnergy = (float)iConfig.getParameter<double>("l_HcalPhiWedgeEnergy");
41  L_HcalPhiWedgeConstituents = iConfig.getParameter<int>("l_HcalPhiWedgeConstituents");
42  L_HcalPhiWedgeToF = (float)iConfig.getParameter<double>("l_HcalPhiWedgeToF");
43  L_HcalPhiWedgeConfidence = (float)iConfig.getParameter<double>("l_HcalPhiWedgeConfidence");
44 
45  T_HcalPhiWedgeEnergy = (float)iConfig.getParameter<double>("t_HcalPhiWedgeEnergy");
46  T_HcalPhiWedgeConstituents = iConfig.getParameter<int>("t_HcalPhiWedgeConstituents");
47  T_HcalPhiWedgeToF = (float)iConfig.getParameter<double>("t_HcalPhiWedgeToF");
48  T_HcalPhiWedgeConfidence = (float)iConfig.getParameter<double>("t_HcalPhiWedgeConfidence");
49 
50  problematicStripMinLength = (int)iConfig.getParameter<int>("problematicStripMinLength");
51 
52  cschalodata_token_ = consumes<CSCHaloData>(IT_CSCHaloData);
53  ecalhalodata_token_ = consumes<EcalHaloData>(IT_EcalHaloData);
54  hcalhalodata_token_ = consumes<HcalHaloData>(IT_HcalHaloData);
55  globalhalodata_token_ = consumes<GlobalHaloData>(IT_GlobalHaloData);
56 
57  produces<BeamHaloSummary>();
58 }
T getParameter(std::string const &) const
edm::EDGetTokenT< HcalHaloData > hcalhalodata_token_
edm::EDGetTokenT< EcalHaloData > ecalhalodata_token_
edm::EDGetTokenT< GlobalHaloData > globalhalodata_token_
edm::EDGetTokenT< CSCHaloData > cschalodata_token_
BeamHaloSummaryProducer::~BeamHaloSummaryProducer ( )

Definition at line 300 of file BeamHaloSummaryProducer.cc.

300 {}

Member Function Documentation

void BeamHaloSummaryProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Implements edm::stream::EDProducerBase.

Definition at line 60 of file BeamHaloSummaryProducer.cc.

References funct::abs(), angle(), BeamHaloSummary_cfi::BeamHaloSummary, edm::Event::getByToken(), reco::GlobalHaloData::GetHaloPatternFoundEB(), reco::GlobalHaloData::GetHaloPatternFoundEE(), reco::GlobalHaloData::GetHaloPatternFoundHB(), reco::GlobalHaloData::GetHaloPatternFoundHE(), reco::GlobalHaloData::GetMatchedEcalPhiWedges(), reco::GlobalHaloData::GetMatchedHcalPhiWedges(), reco::HcalHaloData::GetPhiWedges(), reco::HcalHaloData::getProblematicStrips(), reco::CSCHaloData::GetSegmentIsCaloMatched(), reco::GlobalHaloData::GetSegmentIsEBCaloMatched(), reco::GlobalHaloData::GetSegmentIsEECaloMatched(), reco::GlobalHaloData::GetSegmentIsHBCaloMatched(), reco::GlobalHaloData::GetSegmentIsHECaloMatched(), reco::CSCHaloData::GetSegmentsInBothEndcaps(), reco::CSCHaloData::GetSegmentsInBothEndcaps_Loose_dTcut_TrkMuUnVeto(), reco::CSCHaloData::GetSegmentsInBothEndcaps_Loose_TrkMuUnVeto(), reco::EcalHaloData::GetShowerShapesAngle(), reco::EcalHaloData::GetShowerShapesRoundness(), reco::EcalHaloData::GetSuperClusters(), i, gen::n, reco::CSCHaloData::NFlatHaloSegments(), reco::CSCHaloData::NFlatHaloSegments_TrkMuUnVeto(), reco::CSCHaloData::NOutOfTimeHits(), reco::CSCHaloData::NTracksSmalldT(), reco::CSCHaloData::NumberOfHaloTracks(), reco::CSCHaloData::NumberOfHaloTriggers(), reco::CSCHaloData::NumberOfHaloTriggers_TrkMuUnVeto(), reco::CSCHaloData::NumberOfOutOfTimeTriggers(), edm::Handle< T >::product(), edm::Event::put(), and edm::RefVector< C, T, F >::size().

61 {
62  // BeamHaloSummary object
63  std::auto_ptr<BeamHaloSummary> TheBeamHaloSummary( new BeamHaloSummary() );
64 
65  // CSC Specific Halo Data
66  Handle<CSCHaloData> TheCSCHaloData;
67  // iEvent.getByLabel(IT_CSCHaloData, TheCSCHaloData);
68  iEvent.getByToken(cschalodata_token_, TheCSCHaloData);
69 
70  const CSCHaloData CSCData = (*TheCSCHaloData.product() );
71 
72  //CSCLoose Id for 2011
73  if( CSCData.NumberOfHaloTriggers() ||
74  CSCData.NumberOfHaloTracks() ||
75  (CSCData.NOutOfTimeHits() > 10 && CSCData.NFlatHaloSegments() > 2 ) ||
76  CSCData.GetSegmentsInBothEndcaps() ||
77  CSCData.NTracksSmalldT() )
78  TheBeamHaloSummary->GetCSCHaloReport()[0] = 1;
79 
80  //CSCTight Id for 2011
81  if( (CSCData.NumberOfHaloTriggers() && CSCData.NumberOfHaloTracks()) ||
82  (CSCData.NOutOfTimeHits() > 10 && CSCData.NumberOfHaloTriggers() ) ||
83  (CSCData.NOutOfTimeHits() > 10 && CSCData.NumberOfHaloTracks() ) ||
84  CSCData.GetSegmentsInBothEndcaps() ||
85  (CSCData.NTracksSmalldT() && CSCData.NumberOfHaloTracks() ) ||
86  (CSCData.NFlatHaloSegments() > 3 && (CSCData.NumberOfHaloTriggers() || CSCData.NumberOfHaloTracks()) ))
87  TheBeamHaloSummary->GetCSCHaloReport()[1] = 1;
88 
89  //CSCLoose Id from 2010
90  if( CSCData.NumberOfHaloTriggers() || CSCData.NumberOfHaloTracks() || CSCData.NumberOfOutOfTimeTriggers() )
91  TheBeamHaloSummary->GetCSCHaloReport()[2] = 1;
92 
93  //CSCTight Id from 2010
94  if( (CSCData.NumberOfHaloTriggers() && CSCData.NumberOfHaloTracks()) ||
95  (CSCData.NumberOfHaloTriggers() && CSCData.NumberOfOutOfTimeTriggers()) ||
96  (CSCData.NumberOfHaloTracks() && CSCData.NumberOfOutOfTimeTriggers() ) )
97  TheBeamHaloSummary->GetCSCHaloReport()[3] = 1;
98 
99  //CSCTight Id for 2015
100  if( (CSCData.NumberOfHaloTriggers_TrkMuUnVeto() && CSCData.NumberOfHaloTracks()) ||
101  (CSCData.NOutOfTimeHits() > 10 && CSCData.NumberOfHaloTriggers_TrkMuUnVeto() ) ||
102  (CSCData.NOutOfTimeHits() > 10 && CSCData.NumberOfHaloTracks() ) ||
104  (CSCData.NTracksSmalldT() && CSCData.NumberOfHaloTracks() ) ||
105  (CSCData.NFlatHaloSegments() > 3 && (CSCData.NumberOfHaloTriggers_TrkMuUnVeto() || CSCData.NumberOfHaloTracks()) ))
106  TheBeamHaloSummary->GetCSCHaloReport()[4] = 1;
107 
108  //Update
109  if( (CSCData.NumberOfHaloTriggers_TrkMuUnVeto() && CSCData.NFlatHaloSegments_TrkMuUnVeto() ) ||
111  CSCData.GetSegmentIsCaloMatched()
112  )
113  TheBeamHaloSummary->GetCSCHaloReport()[5] = 1;
114 
115 
116 
117  //Ecal Specific Halo Data
118  Handle<EcalHaloData> TheEcalHaloData;
119  // iEvent.getByLabel(IT_EcalHaloData, TheEcalHaloData);
120  iEvent.getByToken(ecalhalodata_token_, TheEcalHaloData);
121 
122  const EcalHaloData EcalData = (*TheEcalHaloData.product() );
123 
124  bool EcalLooseId = false, EcalTightId = false;
125  /* COMMENTED OUT, NEEDS TO BE TUNED
126  const std::vector<PhiWedge> EcalWedges = EcalData.GetPhiWedges();
127  for( std::vector<PhiWedge>::const_iterator iWedge = EcalWedges.begin() ; iWedge != EcalWedges.end() ; iWedge++ )
128  {
129  bool EcaliPhi = false;
130 
131  //Loose Id
132  if(iWedge-> Energy() > L_EcalPhiWedgeEnergy && iWedge->NumberOfConstituents() > L_EcalPhiWedgeConstituents && std::abs(iWedge->ZDirectionConfidence()) > L_EcalPhiWedgeConfidence)
133  {
134  EcalLooseId = true;
135  EcaliPhi = true;
136  }
137 
138  //Tight Id
139  if( iWedge-> Energy() > T_EcalPhiWedgeEnergy && iWedge->NumberOfConstituents() > T_EcalPhiWedgeConstituents && iWedge->ZDirectionConfidence() > L_EcalPhiWedgeConfidence )
140  {
141  EcalTightId = true;
142  EcaliPhi = true;
143  }
144 
145  for( unsigned int i = 0 ; i < TheBeamHaloSummary->GetEcaliPhiSuspects().size() ; i++ )
146  {
147  if( iWedge->iPhi() == TheBeamHaloSummary->GetEcaliPhiSuspects()[i] )
148  {
149  EcaliPhi = false; // already stored this iPhi
150  continue;
151  }
152  }
153 
154  if( EcaliPhi )
155  TheBeamHaloSummary->GetEcaliPhiSuspects().push_back( iWedge->iPhi() ) ;
156  }
157  */
158 
159  edm::ValueMap<float> vm_Angle = EcalData.GetShowerShapesAngle();
160  edm::ValueMap<float> vm_Roundness = EcalData.GetShowerShapesRoundness();
161 
162  //Access selected SuperClusters
163  for(unsigned int n = 0 ; n < EcalData.GetSuperClusters().size() ; n++ )
164  {
166 
167  float angle = vm_Angle[cluster];
168  float roundness = vm_Roundness[cluster];
169 
170  //Loose Selection
171  if( (angle > 0. && angle < L_EcalShowerShapesAngle ) && ( roundness > 0. && roundness < L_EcalShowerShapesRoundness ) )
172  {
173  if( cluster->energy() > L_EcalSuperClusterEnergy && cluster->size() > (unsigned int) L_EcalSuperClusterSize )
174  EcalLooseId = true;
175  }
176 
177  //Tight Selection
178  if( (angle > 0. && angle < T_EcalShowerShapesAngle ) && ( roundness > 0. && roundness < T_EcalShowerShapesRoundness ) )
179  {
180  if( cluster->energy() > T_EcalSuperClusterEnergy && cluster->size() > (unsigned int)T_EcalSuperClusterSize )
181  EcalTightId = true;
182  }
183  }
184 
185  if( EcalLooseId )
186  TheBeamHaloSummary->GetEcalHaloReport()[0] = 1;
187  if( EcalTightId )
188  TheBeamHaloSummary->GetEcalHaloReport()[1] = 1;
189 
190  // Hcal Specific Halo Data
191  Handle<HcalHaloData> TheHcalHaloData;
192  // iEvent.getByLabel(IT_HcalHaloData, TheHcalHaloData);
193  iEvent.getByToken(hcalhalodata_token_, TheHcalHaloData);
194 
195  const HcalHaloData HcalData = (*TheHcalHaloData.product() );
196  const std::vector<PhiWedge> HcalWedges = HcalData.GetPhiWedges();
197  bool HcalLooseId = false, HcalTightId = false;
198  for( std::vector<PhiWedge>::const_iterator iWedge = HcalWedges.begin() ; iWedge != HcalWedges.end() ; iWedge++ )
199  {
200  bool HcaliPhi = false;
201  //Loose Id
202  if( iWedge-> Energy() > L_HcalPhiWedgeEnergy && iWedge->NumberOfConstituents() > L_HcalPhiWedgeConstituents && std::abs(iWedge->ZDirectionConfidence()) > L_HcalPhiWedgeConfidence)
203  {
204  HcalLooseId = true;
205  HcaliPhi = true;
206  }
207 
208  //Tight Id
209  if( iWedge-> Energy() > T_HcalPhiWedgeEnergy && iWedge->NumberOfConstituents() > T_HcalPhiWedgeConstituents && std::abs(iWedge->ZDirectionConfidence()) > T_HcalPhiWedgeConfidence)
210  {
211  HcalTightId = true;
212  HcaliPhi = true;
213  }
214 
215  for( unsigned int i = 0 ; i < TheBeamHaloSummary->GetHcaliPhiSuspects().size() ; i++ )
216  {
217  if( iWedge->iPhi() == TheBeamHaloSummary->GetHcaliPhiSuspects()[i] )
218  {
219  HcaliPhi = false; // already stored this iPhi
220  continue;
221  }
222  }
223  if( HcaliPhi )
224  TheBeamHaloSummary->GetHcaliPhiSuspects().push_back( iWedge->iPhi() ) ;
225  }
226 
227  if( HcalLooseId )
228  TheBeamHaloSummary->GetHcalHaloReport()[0] = 1;
229  if( HcalTightId )
230  TheBeamHaloSummary->GetHcalHaloReport()[1] = 1;
231 
232 
233  for( unsigned int i = 0 ; i < HcalData.getProblematicStrips().size() ; i++ ) {
234  auto const& problematicStrip = HcalData.getProblematicStrips()[i];
235  if(problematicStrip.cellTowerIds.size() < (unsigned int)problematicStripMinLength) continue;
236 
237  TheBeamHaloSummary->getProblematicStrips().push_back(problematicStrip);
238  }
239 
240 
241  // Global Halo Data
242  Handle<GlobalHaloData> TheGlobalHaloData;
243  // iEvent.getByLabel(IT_GlobalHaloData, TheGlobalHaloData);
244  iEvent.getByToken(globalhalodata_token_, TheGlobalHaloData);
245 
246  bool GlobalLooseId = false;
247  bool GlobalTightId = false;
248  const GlobalHaloData GlobalData = (*TheGlobalHaloData.product() );
249  const std::vector<PhiWedge> MatchedHcalWedges = GlobalData.GetMatchedHcalPhiWedges();
250  const std::vector<PhiWedge> MatchedEcalWedges = GlobalData.GetMatchedEcalPhiWedges();
251 
252  //Loose Id
253  if( MatchedEcalWedges.size() || MatchedHcalWedges.size() )
254  GlobalLooseId = true;
255 
256  //Tight Id
257  for( std::vector<PhiWedge>::const_iterator iWedge = MatchedEcalWedges.begin() ; iWedge != MatchedEcalWedges.end(); iWedge ++ )
258  {
259  if( iWedge->NumberOfConstituents() > T_EcalPhiWedgeConstituents )
260  GlobalTightId = true;
261  if( std::abs(iWedge->ZDirectionConfidence() > T_EcalPhiWedgeConfidence) )
262  GlobalTightId = true;
263  }
264 
265  for( std::vector<PhiWedge>::const_iterator iWedge = MatchedHcalWedges.begin() ; iWedge != MatchedHcalWedges.end(); iWedge ++ )
266  {
267  if( iWedge->NumberOfConstituents() > T_HcalPhiWedgeConstituents )
268  GlobalTightId = true;
269  if( std::abs(iWedge->ZDirectionConfidence()) > T_HcalPhiWedgeConfidence )
270  GlobalTightId = true;
271  }
272 
273  if( GlobalLooseId )
274  TheBeamHaloSummary->GetGlobalHaloReport()[0] = 1;
275  if( GlobalTightId )
276  TheBeamHaloSummary->GetGlobalHaloReport()[1] = 1;
277 
278  //GlobalTight Id for 2016
279  if((GlobalData.GetSegmentIsEBCaloMatched() || GlobalData.GetHaloPatternFoundEB() ) ||
280  (GlobalData.GetSegmentIsEECaloMatched() || GlobalData.GetHaloPatternFoundEE() ) ||
281  (GlobalData.GetSegmentIsHBCaloMatched() || GlobalData.GetHaloPatternFoundHB() ) ||
282  (GlobalData.GetSegmentIsHECaloMatched() || GlobalData.GetHaloPatternFoundHE() )
283  )
284  TheBeamHaloSummary->GetGlobalHaloReport()[2] = 1;
285 
286  //Global SuperTight Id for 2016
287  if((GlobalData.GetSegmentIsEBCaloMatched() && GlobalData.GetHaloPatternFoundEB() ) ||
288  (GlobalData.GetSegmentIsEECaloMatched() && GlobalData.GetHaloPatternFoundEE() ) ||
289  (GlobalData.GetSegmentIsHBCaloMatched() && GlobalData.GetHaloPatternFoundHB() ) ||
290  (GlobalData.GetSegmentIsHECaloMatched() && GlobalData.GetHaloPatternFoundHE() )
291  )
292  TheBeamHaloSummary->GetGlobalHaloReport()[3] = 1;
293 
294 
295 
296  iEvent.put(TheBeamHaloSummary);
297  return;
298 }
bool GetSegmentIsEECaloMatched() const
int i
Definition: DBlmapReader.cc:9
int NumberOfHaloTracks(HaloData::Endcap z=HaloData::both) const
Definition: CSCHaloData.cc:65
edm::ValueMap< float > & GetShowerShapesRoundness()
Definition: EcalHaloData.h:43
edm::EDGetTokenT< HcalHaloData > hcalhalodata_token_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
short int NFlatHaloSegments_TrkMuUnVeto() const
Definition: CSCHaloData.h:63
edm::RefVector< reco::SuperClusterCollection > & GetSuperClusters()
Definition: EcalHaloData.h:38
edm::ValueMap< float > & GetShowerShapesAngle()
Definition: EcalHaloData.h:46
short int NumberOfOutOfTimeTriggers(HaloData::Endcap z=HaloData::both) const
Definition: CSCHaloData.cc:55
std::vector< PhiWedge > & GetMatchedEcalPhiWedges()
short int NFlatHaloSegments() const
Definition: CSCHaloData.h:56
bool GetHaloPatternFoundEE() const
bool GetSegmentsInBothEndcaps() const
Definition: CSCHaloData.h:57
edm::EDGetTokenT< EcalHaloData > ecalhalodata_token_
int NumberOfHaloTriggers_TrkMuUnVeto(HaloData::Endcap z=HaloData::both) const
Definition: CSCHaloData.cc:44
bool GetSegmentIsHECaloMatched() const
bool GetSegmentIsEBCaloMatched() const
edm::EDGetTokenT< GlobalHaloData > globalhalodata_token_
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:121
short int NTracksSmalldT() const
Definition: CSCHaloData.h:51
bool GetSegmentIsCaloMatched() const
Definition: CSCHaloData.h:58
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool GetSegmentsInBothEndcaps_Loose_dTcut_TrkMuUnVeto() const
Definition: CSCHaloData.h:65
short int NOutOfTimeHits() const
Definition: CSCHaloData.h:49
bool GetHaloPatternFoundHE() const
int NumberOfHaloTriggers(HaloData::Endcap z=HaloData::both) const
Definition: CSCHaloData.cc:32
T const * product() const
Definition: Handle.h:81
bool GetHaloPatternFoundHB() const
std::vector< PhiWedge > & GetMatchedHcalPhiWedges()
const std::vector< HaloTowerStrip > & getProblematicStrips() const
Definition: HcalHaloData.h:52
edm::EDGetTokenT< CSCHaloData > cschalodata_token_
size_type size() const
Size of the RefVector.
Definition: RefVector.h:107
const std::vector< PhiWedge > & GetPhiWedges() const
Definition: HcalHaloData.h:48
bool GetHaloPatternFoundEB() const
bool GetSegmentsInBothEndcaps_Loose_TrkMuUnVeto() const
Definition: CSCHaloData.h:64
bool GetSegmentIsHBCaloMatched() const
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11

Member Data Documentation

edm::EDGetTokenT<CSCHaloData> reco::BeamHaloSummaryProducer::cschalodata_token_
private

Definition at line 73 of file BeamHaloSummaryProducer.h.

edm::EDGetTokenT<EcalHaloData> reco::BeamHaloSummaryProducer::ecalhalodata_token_
private

Definition at line 74 of file BeamHaloSummaryProducer.h.

edm::EDGetTokenT<GlobalHaloData> reco::BeamHaloSummaryProducer::globalhalodata_token_
private

Definition at line 76 of file BeamHaloSummaryProducer.h.

edm::EDGetTokenT<HcalHaloData> reco::BeamHaloSummaryProducer::hcalhalodata_token_
private

Definition at line 75 of file BeamHaloSummaryProducer.h.

edm::InputTag reco::BeamHaloSummaryProducer::IT_CSCHaloData
private

Definition at line 68 of file BeamHaloSummaryProducer.h.

edm::InputTag reco::BeamHaloSummaryProducer::IT_EcalHaloData
private

Definition at line 69 of file BeamHaloSummaryProducer.h.

edm::InputTag reco::BeamHaloSummaryProducer::IT_GlobalHaloData
private

Definition at line 71 of file BeamHaloSummaryProducer.h.

edm::InputTag reco::BeamHaloSummaryProducer::IT_HcalHaloData
private

Definition at line 70 of file BeamHaloSummaryProducer.h.

float reco::BeamHaloSummaryProducer::L_EcalPhiWedgeConfidence
private

Definition at line 81 of file BeamHaloSummaryProducer.h.

int reco::BeamHaloSummaryProducer::L_EcalPhiWedgeConstituents
private

Definition at line 79 of file BeamHaloSummaryProducer.h.

float reco::BeamHaloSummaryProducer::L_EcalPhiWedgeEnergy
private

Definition at line 78 of file BeamHaloSummaryProducer.h.

float reco::BeamHaloSummaryProducer::L_EcalPhiWedgeToF
private

Definition at line 80 of file BeamHaloSummaryProducer.h.

float reco::BeamHaloSummaryProducer::L_EcalShowerShapesAngle
private

Definition at line 83 of file BeamHaloSummaryProducer.h.

float reco::BeamHaloSummaryProducer::L_EcalShowerShapesRoundness
private

Definition at line 82 of file BeamHaloSummaryProducer.h.

float reco::BeamHaloSummaryProducer::L_EcalSuperClusterEnergy
private

Definition at line 85 of file BeamHaloSummaryProducer.h.

int reco::BeamHaloSummaryProducer::L_EcalSuperClusterSize
private

Definition at line 84 of file BeamHaloSummaryProducer.h.

float reco::BeamHaloSummaryProducer::L_HcalPhiWedgeConfidence
private

Definition at line 99 of file BeamHaloSummaryProducer.h.

int reco::BeamHaloSummaryProducer::L_HcalPhiWedgeConstituents
private

Definition at line 97 of file BeamHaloSummaryProducer.h.

float reco::BeamHaloSummaryProducer::L_HcalPhiWedgeEnergy
private

Definition at line 96 of file BeamHaloSummaryProducer.h.

float reco::BeamHaloSummaryProducer::L_HcalPhiWedgeToF
private

Definition at line 98 of file BeamHaloSummaryProducer.h.

int reco::BeamHaloSummaryProducer::problematicStripMinLength
private

Definition at line 106 of file BeamHaloSummaryProducer.h.

float reco::BeamHaloSummaryProducer::T_EcalPhiWedgeConfidence
private

Definition at line 90 of file BeamHaloSummaryProducer.h.

int reco::BeamHaloSummaryProducer::T_EcalPhiWedgeConstituents
private

Definition at line 88 of file BeamHaloSummaryProducer.h.

float reco::BeamHaloSummaryProducer::T_EcalPhiWedgeEnergy
private

Definition at line 87 of file BeamHaloSummaryProducer.h.

float reco::BeamHaloSummaryProducer::T_EcalPhiWedgeToF
private

Definition at line 89 of file BeamHaloSummaryProducer.h.

float reco::BeamHaloSummaryProducer::T_EcalShowerShapesAngle
private

Definition at line 92 of file BeamHaloSummaryProducer.h.

float reco::BeamHaloSummaryProducer::T_EcalShowerShapesRoundness
private

Definition at line 91 of file BeamHaloSummaryProducer.h.

float reco::BeamHaloSummaryProducer::T_EcalSuperClusterEnergy
private

Definition at line 94 of file BeamHaloSummaryProducer.h.

int reco::BeamHaloSummaryProducer::T_EcalSuperClusterSize
private

Definition at line 93 of file BeamHaloSummaryProducer.h.

float reco::BeamHaloSummaryProducer::T_HcalPhiWedgeConfidence
private

Definition at line 104 of file BeamHaloSummaryProducer.h.

int reco::BeamHaloSummaryProducer::T_HcalPhiWedgeConstituents
private

Definition at line 102 of file BeamHaloSummaryProducer.h.

float reco::BeamHaloSummaryProducer::T_HcalPhiWedgeEnergy
private

Definition at line 101 of file BeamHaloSummaryProducer.h.

float reco::BeamHaloSummaryProducer::T_HcalPhiWedgeToF
private

Definition at line 103 of file BeamHaloSummaryProducer.h.