Skip to content

Commit

Permalink
Merge pull request #11266 from lathomas/CMSSW_7_6_X
Browse files Browse the repository at this point in the history
CSC Beam Halo filter update
  • Loading branch information
cmsbuild committed Sep 18, 2015
2 parents c71b5af + dce64eb commit 6a209c6
Show file tree
Hide file tree
Showing 11 changed files with 312 additions and 52 deletions.
8 changes: 5 additions & 3 deletions DataFormats/METReco/interface/BeamHaloSummary.h
Expand Up @@ -42,6 +42,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 Expand Up @@ -72,10 +74,10 @@ namespace reco {

std::vector<int>& GetGlobaliPhiSuspects() { return GlobaliPhiSuspects ;}
const std::vector<int>& GetGlobaliPhiSuspects() const { return GlobaliPhiSuspects ;}

std::vector<HaloTowerStrip>& getProblematicStrips() { return problematicStrips ;}
const std::vector<HaloTowerStrip>& getProblematicStrips() const { return problematicStrips ;}

private:
std::vector<char> HcalHaloReport;
std::vector<char> EcalHaloReport;
Expand All @@ -87,7 +89,7 @@ namespace reco {
std::vector<int> GlobaliPhiSuspects;

std::vector<HaloTowerStrip> problematicStrips;

};

}
Expand Down
22 changes: 19 additions & 3 deletions DataFormats/METReco/interface/CSCHaloData.h
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
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
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
11 changes: 8 additions & 3 deletions DataFormats/METReco/src/classes_def.xml
Expand Up @@ -164,7 +164,9 @@
</class>
<class name="edm::Wrapper<reco::EcalHaloData>"/>

<class name="reco::HcalHaloData" ClassVersion="11">
<class name="reco::HcalHaloData" ClassVersion="13">
<version ClassVersion="13" checksum="3305429659"/>
<version ClassVersion="12" checksum="3928363167"/>
<version ClassVersion="10" checksum="3928363167"/>
<version ClassVersion="11" checksum="3305429659"/>
</class>
Expand All @@ -173,7 +175,8 @@
<class name="std::vector<HaloTowerStrip>"/>
<class name="edm::Wrapper<std::vector<HaloTowerStrip> >"/>

<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 All @@ -183,7 +186,9 @@
</class>
<class name="edm::Wrapper<reco::GlobalHaloData>"/>

<class name="reco::BeamHaloSummary" ClassVersion="11">
<class name="reco::BeamHaloSummary" ClassVersion="13">
<version ClassVersion="13" checksum="146570384"/>
<version ClassVersion="12" checksum="1514181401"/>
<version ClassVersion="10" checksum="1514181401"/>
<version ClassVersion="11" checksum="146570384"/>
</class>
Expand Down
23 changes: 21 additions & 2 deletions RecoMET/METAlgorithms/interface/CSCHaloAlgo.h
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;
float et_thresh_rh_eb, dphi_thresh_segvsrh_eb,dr_lowthresh_segvsrh_eb, dr_highthresh_segvsrh_eb, dt_lowthresh_segvsrh_eb;
float et_thresh_rh_ee, dphi_thresh_segvsrh_ee,dr_lowthresh_segvsrh_ee, dr_highthresh_segvsrh_ee, dt_lowthresh_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 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 iZ, float iR, float iT, float iPhi );

};

#endif

0 comments on commit 6a209c6

Please sign in to comment.