Skip to content

Commit

Permalink
Merge pull request #11137 from lathomas/CMSSW_7_5_X
Browse files Browse the repository at this point in the history
CSC Beam Halo filter update
  • Loading branch information
davidlange6 committed Oct 21, 2015
2 parents 3fba5e3 + 0387bd3 commit 871650f
Show file tree
Hide file tree
Showing 18 changed files with 446 additions and 57 deletions.
2 changes: 2 additions & 0 deletions DataFormats/METReco/interface/BeamHaloSummary.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ namespace reco {

const bool CSCLooseHaloId() const { return CSCHaloReport.size() ? CSCHaloReport[0] : false ; }
const bool CSCTightHaloId() const { return CSCHaloReport.size() > 1 ? CSCHaloReport[1] : false ; }
const bool CSCTightHaloIdTrkMuUnveto() const { return CSCHaloReport.size() > 4 ? CSCHaloReport[4] : false ; }
const bool CSCTightHaloId2015() const { return CSCHaloReport.size() > 5 ? CSCHaloReport[5] : false ; }

const bool GlobalLooseHaloId() const { return GlobalHaloReport.size() ? GlobalHaloReport[0] : false ; }
const bool GlobalTightHaloId() const { return GlobalHaloReport.size() > 1 ? GlobalHaloReport[1] : false ; }
Expand Down
22 changes: 19 additions & 3 deletions DataFormats/METReco/interface/CSCHaloData.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@ namespace reco {

// Number of HaloTriggers in +/- endcap
int NumberOfHaloTriggers (HaloData::Endcap z= HaloData::both) const ;
int NumberOfHaloTriggers_TrkMuUnVeto (HaloData::Endcap z= HaloData::both) const ;
int NHaloTriggers(HaloData::Endcap z = HaloData::both ) const { return NumberOfHaloTriggers(z);}

// Number of Halo Tracks in +/- endcap
int NumberOfHaloTracks(HaloData::Endcap z= HaloData::both) const ;
int NHaloTracks(HaloData::Endcap z = HaloData::both) const { return NumberOfHaloTracks(z) ;}
Expand All @@ -53,15 +55,20 @@ namespace reco {
// MLR
short int NFlatHaloSegments() const{ return nFlatHaloSegments; }
bool GetSegmentsInBothEndcaps() const{ return segments_in_both_endcaps; }
bool GetSegmentIsCaloMatched() const{ return segmentiscalomatched; }
// End MLR
short int NFlatHaloSegments_TrkMuUnVeto() const{ return nFlatHaloSegments_TrkMuUnVeto; }
bool GetSegmentsInBothEndcaps_Loose_TrkMuUnVeto() const{ return segments_in_both_endcaps_loose_TrkMuUnVeto;}
bool GetSegmentsInBothEndcaps_Loose_dTcut_TrkMuUnVeto() const{ return segments_in_both_endcaps_loose_dtcut_TrkMuUnVeto;}


// Get Reference to the Tracks
edm::RefVector<reco::TrackCollection>& GetTracks(){return TheTrackRefs;}
const edm::RefVector<reco::TrackCollection>& GetTracks()const {return TheTrackRefs;}

// Set Number of Halo Triggers
void SetNumberOfHaloTriggers(int PlusZ, int MinusZ ){ nTriggers_PlusZ =PlusZ; nTriggers_MinusZ = MinusZ ;}

void SetNumberOfHaloTriggers_TrkMuUnVeto(int PlusZ, int MinusZ ){ nTriggers_PlusZ_TrkMuUnVeto =PlusZ; nTriggers_MinusZ_TrkMuUnVeto = MinusZ ;}
// Set number of chamber-level triggers with non-collision timing
void SetNOutOfTimeTriggers(short int PlusZ,short int MinusZ){ nOutOfTimeTriggers_PlusZ = PlusZ ; nOutOfTimeTriggers_MinusZ = MinusZ;}
// Set number of CSCRecHits with non-collision timing
Expand All @@ -85,14 +92,20 @@ namespace reco {
void SetNFlatHaloSegments(short int nSegments) {nFlatHaloSegments = nSegments;}
void SetSegmentsBothEndcaps(bool b) { segments_in_both_endcaps = b; }
// End MLR
void SetNFlatHaloSegments_TrkMuUnVeto(short int nSegments) {nFlatHaloSegments_TrkMuUnVeto = nSegments;}
void SetSegmentsBothEndcaps_Loose_TrkMuUnVeto(bool b) { segments_in_both_endcaps_loose_TrkMuUnVeto = b; }
void SetSegmentsBothEndcaps_Loose_dTcut_TrkMuUnVeto(bool b) { segments_in_both_endcaps_loose_dtcut_TrkMuUnVeto = b; }
void SetSegmentIsCaloMatched(bool b) { segmentiscalomatched = b; }

private:
edm::RefVector<reco::TrackCollection> TheTrackRefs;

// The GlobalPoints from constituent rechits nearest to the calorimeter of CSC tracks
std::vector<GlobalPoint> TheGlobalPositions;
int nTriggers_PlusZ;
int nTriggers_MinusZ;

int nTriggers_PlusZ_TrkMuUnVeto;
int nTriggers_MinusZ_TrkMuUnVeto;
// CSC halo trigger reported by the HLT
bool HLTAccept;

Expand All @@ -117,7 +130,10 @@ namespace reco {
short int nFlatHaloSegments;
bool segments_in_both_endcaps;
// end MLR

short int nFlatHaloSegments_TrkMuUnVeto;
bool segments_in_both_endcaps_loose_TrkMuUnVeto;
bool segments_in_both_endcaps_loose_dtcut_TrkMuUnVeto;
bool segmentiscalomatched ;
};


Expand Down
2 changes: 1 addition & 1 deletion DataFormats/METReco/src/BeamHaloSummary.cc
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ using namespace reco;

BeamHaloSummary::BeamHaloSummary()
{
for( unsigned int i = 0 ; i < 4 ; i++ )
for( unsigned int i = 0 ; i < 6 ; i++ )
{
CSCHaloReport.push_back(0);
if( i < 2 )
Expand Down
13 changes: 13 additions & 0 deletions DataFormats/METReco/src/CSCHaloData.cc
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,19 @@ int CSCHaloData::NumberOfHaloTriggers(HaloData::Endcap z) const
return nTriggers_MinusZ + nTriggers_PlusZ;
}



int CSCHaloData::NumberOfHaloTriggers_TrkMuUnVeto(HaloData::Endcap z) const
{
if( z == HaloData::plus )
return nTriggers_PlusZ_TrkMuUnVeto;
else if( z == HaloData::minus )
return nTriggers_MinusZ_TrkMuUnVeto;
else
return nTriggers_MinusZ_TrkMuUnVeto + nTriggers_PlusZ_TrkMuUnVeto;
}


short int CSCHaloData::NumberOfOutOfTimeTriggers(HaloData::Endcap z ) const
{
if( z == HaloData::plus )
Expand Down
3 changes: 2 additions & 1 deletion DataFormats/METReco/src/classes_def.xml
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,8 @@
</class>
<class name="edm::Wrapper<reco::HcalHaloData>"/>

<class name="reco::CSCHaloData" ClassVersion="10">
<class name="reco::CSCHaloData" ClassVersion="11">
<version ClassVersion="11" checksum="1723373351"/>
<version ClassVersion="10" checksum="3522217120"/>
</class>
<class name="edm::Wrapper<reco::CSCHaloData>"/>
Expand Down
12 changes: 8 additions & 4 deletions PhysicsTools/PatAlgos/python/slimming/metFilterPaths_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,18 @@

## We don't use "import *" because the cff contains some modules for which the C++ class doesn't exist
## and this triggers an error under unscheduled mode
from RecoMET.METFilters.metFilters_cff import HBHENoiseFilterResultProducer, HBHENoiseFilter, HBHENoiseIsoFilter, CSCTightHaloFilter, hcalLaserEventFilter, EcalDeadCellTriggerPrimitiveFilter, eeBadScFilter, ecalLaserCorrFilter, EcalDeadCellBoundaryEnergyFilter, primaryVertexFilter
from RecoMET.METFilters.metFilters_cff import HBHENoiseFilterResultProducer, HBHENoiseFilter, HBHENoiseIsoFilter, hcalLaserEventFilter
from RecoMET.METFilters.metFilters_cff import EcalDeadCellTriggerPrimitiveFilter, eeBadScFilter, ecalLaserCorrFilter, EcalDeadCellBoundaryEnergyFilter
from RecoMET.METFilters.metFilters_cff import primaryVertexFilter, CSCTightHaloFilter, CSCTightHaloTrkMuUnvetoFilter, CSCTightHalo2015Filter
from RecoMET.METFilters.metFilters_cff import goodVertices, trackingFailureFilter, trkPOGFilters, manystripclus53X, toomanystripclus53X, logErrorTooManyClusters
from RecoMET.METFilters.metFilters_cff import metFilters

# individual filters
Flag_HBHENoiseFilter = cms.Path(HBHENoiseFilterResultProducer * HBHENoiseFilter)
Flag_HBHENoiseIsoFilter = cms.Path(HBHENoiseFilterResultProducer * HBHENoiseIsoFilter)
Flag_CSCTightHaloFilter = cms.Path(CSCTightHaloFilter)
Flag_CSCTightHaloTrkMuUnvetoFilter = cms.Path(CSCTightHaloTrkMuUnvetoFilter)
Flag_CSCTightHalo2015Filter = cms.Path(CSCTightHalo2015Filter)
Flag_hcalLaserEventFilter = cms.Path(hcalLaserEventFilter)
Flag_EcalDeadCellTriggerPrimitiveFilter = cms.Path(EcalDeadCellTriggerPrimitiveFilter)
Flag_EcalDeadCellBoundaryEnergyFilter = cms.Path(EcalDeadCellBoundaryEnergyFilter)
Expand All @@ -28,13 +32,13 @@
Flag_METFilters = cms.Path(metFilters)

#add your new path here!!
allMetFilterPaths=['HBHENoiseFilter','HBHENoiseIsoFilter','CSCTightHaloFilter','hcalLaserEventFilter','EcalDeadCellTriggerPrimitiveFilter','EcalDeadCellBoundaryEnergyFilter','goodVertices','eeBadScFilter',
allMetFilterPaths=['HBHENoiseFilter','HBHENoiseIsoFilter','CSCTightHaloFilter','CSCTightHaloTrkMuUnvetoFilter','CSCTightHalo2015Filter','hcalLaserEventFilter','EcalDeadCellTriggerPrimitiveFilter','EcalDeadCellBoundaryEnergyFilter','goodVertices','eeBadScFilter',
'ecalLaserCorrFilter','trkPOGFilters','trkPOG_manystripclus53X','trkPOG_toomanystripclus53X','trkPOG_logErrorTooManyClusters','METFilters']


def miniAOD_customizeMETFiltersFastSim(process):
"""Replace some MET filters that don't work in FastSim with trivial bools"""
for X in 'CSCTightHaloFilter', 'HBHENoiseFilter', 'HBHENoiseIsoFilter', 'HBHENoiseFilterResultProducer':
for X in 'CSCTightHaloFilter', 'CSCTightHaloTrkMuUnvetoFilter','CSCTightHalo2015Filter', 'HBHENoiseFilter', 'HBHENoiseIsoFilter', 'HBHENoiseFilterResultProducer':
process.globalReplace(X, cms.EDFilter("HLTBool", result=cms.bool(True)))
for X in 'manystripclus53X', 'toomanystripclus53X', 'logErrorTooManyClusters':
process.globalReplace(X, cms.EDFilter("HLTBool", result=cms.bool(False)))
Expand Down
23 changes: 21 additions & 2 deletions RecoMET/METAlgorithms/interface/CSCHaloAlgo.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,14 @@
#include "DataFormats/GeometryVector/interface/GlobalVector.h"
#include "DataFormats/GeometryVector/interface/LocalPoint.h"
#include "DataFormats/GeometryVector/interface/LocalVector.h"
#include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
#include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
#include "DataFormats/L1CSCTrackFinder/interface/L1CSCTrackCollection.h"
#include "DataFormats/L1CSCTrackFinder/interface/L1CSCStatusDigiCollection.h"
#include "DataFormats/L1GlobalMuonTrigger/interface/L1MuRegionalCand.h"
#include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTReadoutRecord.h"
#include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTReadoutCollection.h"
#include "DataFormats/Math/interface/deltaPhi.h"
#include "DataFormats/MuonDetId/interface/CSCIndexer.h"
#include "DataFormats/MuonDetId/interface/CSCDetId.h"
#include "DataFormats/MuonDetId/interface/RPCDetId.h"
Expand All @@ -56,12 +59,14 @@
#include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2DCollection.h"
#include "DataFormats/TrackReco/interface/TrackFwd.h"
#include "DataFormats/TrackReco/interface/Track.h"

#include "DataFormats/VertexReco/interface/Vertex.h"
#include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h"
#include "Geometry/CaloGeometry/interface/CaloGeometry.h"
#include "Geometry/CSCGeometry/interface/CSCGeometry.h"
#include "Geometry/CSCGeometry/interface/CSCChamber.h"
#include "Geometry/CSCGeometry/interface/CSCLayer.h"
#include "Geometry/CSCGeometry/interface/CSCLayerGeometry.h"
#include "Geometry/Records/interface/CaloGeometryRecord.h"
#include "L1Trigger/CSCTrackFinder/interface/CSCSectorReceiverLUT.h"
#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
#include "MagneticField/Engine/interface/MagneticField.h"
Expand All @@ -77,6 +82,7 @@
#include "DataFormats/Common/interface/TriggerResults.h"
#include "FWCore/Framework/interface/Event.h"


namespace edm {
class TriggerNames;
}
Expand All @@ -90,9 +96,11 @@ class CSCHaloAlgo {
const edm::Handle<reco::MuonTimeExtraMap> TheCSCTimeMap,
edm::Handle<reco::MuonCollection>& TheMuons, edm::Handle<CSCSegmentCollection>& TheCSCSegments,
edm::Handle<CSCRecHit2DCollection>& TheCSCRecHits,edm::Handle < L1MuGMTReadoutCollection >& TheL1GMTReadout,
edm::Handle<HBHERecHitCollection>& hbhehits,edm::Handle<EcalRecHitCollection>& ecalebhits,
edm::Handle<EcalRecHitCollection>& ecaleehits,
edm::Handle<edm::TriggerResults>& TheHLTResults, const edm::TriggerNames * triggerNames,
const edm::Handle<CSCALCTDigiCollection>& TheALCTs, MuonSegmentMatcher *TheMatcher,
const edm::Event &TheEvent);
const edm::Event &TheEvent, const edm::EventSetup &TheEventSetup);

std::vector<edm::InputTag> vIT_HLTBit;

Expand Down Expand Up @@ -140,6 +148,17 @@ class CSCHaloAlgo {
float max_segment_phi_diff;
float max_segment_theta;
// End MLR
float et_thresh_rh_hbhe, dphi_thresh_segvsrh_hbhe,dr_lowthresh_segvsrh_hbhe, dr_highthresh_segvsrh_hbhe, dt_lowthresh_segvsrh_hbhe,dt_highthresh_segvsrh_hbhe;
float et_thresh_rh_eb, dphi_thresh_segvsrh_eb,dr_lowthresh_segvsrh_eb, dr_highthresh_segvsrh_eb, dt_lowthresh_segvsrh_eb,dt_highthresh_segvsrh_eb;
float et_thresh_rh_ee, dphi_thresh_segvsrh_ee,dr_lowthresh_segvsrh_ee, dr_highthresh_segvsrh_ee, dt_lowthresh_segvsrh_ee,dt_highthresh_segvsrh_ee;



const CaloGeometry *geo;
math::XYZPoint getPosition(const DetId &id, reco::Vertex::Point vtx);
bool HCALSegmentMatching(edm::Handle<HBHERecHitCollection>& rechitcoll, float et_thresh_rh, float dphi_thresh_segvsrh, float dr_lowthresh_segvsrh, float dr_highthresh_segvsrh, float dt_lowthresh_segvsrh , float dt_highthresh_segvsrh , float iZ, float iR, float iT, float iPhi);
bool ECALSegmentMatching(edm::Handle<EcalRecHitCollection>& rechitcoll, float et_thresh_rh, float dphi_thresh_segvsrh, float dr_lowthresh_segvsrh, float dr_highthresh_segvsrh, float dt_lowthresh_segvsrh, float dt_highthresh_segvsrh , float iZ, float iR, float iT, float iPhi );

};

#endif

0 comments on commit 871650f

Please sign in to comment.