Skip to content

Commit

Permalink
Merge pull request #41259 from revering/DisappearingMuonSkim_10_6_X
Browse files Browse the repository at this point in the history
Added skimming filter for disappearing muons [10_6_X Backport]
  • Loading branch information
cmsbuild authored Apr 25, 2023
2 parents c27694c + 3192e08 commit 314c2b0
Show file tree
Hide file tree
Showing 4 changed files with 571 additions and 0 deletions.
105 changes: 105 additions & 0 deletions Configuration/Skimming/interface/DisappearingMuonsSkimming.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
// -*- C++ -*-
//
// Package: Skimming/DisappearingMuonsSkimming
// Class: DisappearingMuonsSkimming
//
/**\class DisappearingMuonsSkimming DisappearingMuonsSkimming.cc Skimming/DisappearingMuonsSkimming/plugins/DisappearingMuonsSkimming.cc
Description: [one line class summary]
Implementation:
[Notes on implementation]
*/
//
// Original Author: Michael Revering
// Created: Tie, 31 Jan 2023 21:22:23 GMT
//
//
#ifndef Configuration_Skimming_DisappearingMuonsSkimming_h
#define Configuration_Skimming_DisappearingMuonsSkimming_h

// system include files
#include <memory>

// user include filter
#include "DataFormats/Common/interface/TriggerResults.h"
#include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
#include "DataFormats/MuonReco/interface/Muon.h"
#include "DataFormats/MuonReco/interface/MuonFwd.h"
#include "DataFormats/TrackReco/interface/Track.h"
#include "DataFormats/VertexReco/interface/Vertex.h"
#include "DataFormats/VertexReco/interface/VertexFwd.h"
#include "FWCore/Framework/interface/one/EDFilter.h"
#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "FWCore/Utilities/interface/EDGetToken.h"
#include "Geometry/CaloGeometry/interface/CaloGeometry.h"
#include "Geometry/Records/interface/CaloGeometryRecord.h"
#include "TrackingTools/Records/interface/TransientTrackRecord.h"
#include "TrackingTools/TransientTrack/interface/TransientTrack.h"
#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h"

//
// class declaration
//

class DisappearingMuonsSkimming : public edm::one::EDFilter<> {
public:
explicit DisappearingMuonsSkimming(const edm::ParameterSet&);
~DisappearingMuonsSkimming() override = default;
static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);

private:
bool filter(edm::Event&, const edm::EventSetup&) override;

bool passTriggers(const edm::Event& iEvent,
const edm::TriggerResults& results,
const std::vector<std::string>& m_muonPathsToPass);

bool findTrackInVertices(const reco::TrackRef& tkToMatch,
const reco::VertexCollection& vertices,
unsigned int& vtxIndex,
unsigned int& trackIndex);

double getTrackIsolation(const reco::TrackRef& tkToMatch, const reco::VertexCollection& vertices);
double getECALIsolation(const edm::Event&, const edm::EventSetup&, const reco::TransientTrack& track);

// ----------member data ---------------------------
const edm::EDGetTokenT<reco::MuonCollection> recoMuonToken_;
const edm::EDGetTokenT<reco::TrackCollection> standaloneMuonToken_;
const edm::EDGetTokenT<reco::TrackCollection> trackCollectionToken_;
const edm::EDGetTokenT<reco::VertexCollection> primaryVerticesToken_;
const edm::EDGetTokenT<EcalRecHitCollection> reducedEndcapRecHitCollectionToken_;
const edm::EDGetTokenT<EcalRecHitCollection> reducedBarrelRecHitCollectionToken_;
const edm::EDGetTokenT<edm::TriggerResults> trigResultsToken_;
const edm::ESGetToken<TransientTrackBuilder, TransientTrackRecord> transientTrackToken_;
const edm::ESGetToken<CaloGeometry, CaloGeometryRecord> geometryToken_;
const std::vector<std::string> muonPathsToPass_;

//options
const double minMuPt_;
const double maxMuEta_;
const double minTrackEta_;
const double maxTrackEta_;
const double minTrackPt_;
const double maxTransDCA_;
const double maxLongDCA_;
const double maxVtxChi_;
const double minInvMass_;
const double maxInvMass_;
const double trackIsoConesize_;
const double trackIsoInnerCone_;
const double ecalIsoConesize_;
const double minEcalHitE_;
const double maxTrackIso_;
const double maxEcalIso_;
const double minSigInvMass_;
const double maxSigInvMass_;
const double minStandaloneDr_;
const double maxStandaloneDE_;
const bool keepOffPeak_;
const bool keepSameSign_;
const bool keepTotalRegion_;
const bool keepPartialRegion_;
};
#endif
24 changes: 24 additions & 0 deletions Configuration/Skimming/python/PDWG_EXODisappMuon_cff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import FWCore.ParameterSet.Config as cms

import HLTrigger.HLTfilters.hltHighLevel_cfi as hlt

from Configuration.EventContent.EventContent_cff import AODSIMEventContent
EXODisappMuonSkimContent = AODSIMEventContent.clone()
EXODisappMuonSkimContent.outputCommands.append('keep *_hbhereco_*_*')
EXODisappMuonSkimContent.outputCommands.append('keep *_horeco_*_*')
EXODisappMuonSkimContent.outputCommands.append('keep *_csc2DRecHits_*_*')

exoDisappMuonsHLT = hlt.hltHighLevel.clone(
throw = False,
andOr = True,
HLTPaths = [
"HLT_IsoMu*_v*"
]
)

from Configuration.Skimming.disappearingMuonsSkimming_cfi import *
disappMuonsSelection = disappearingMuonsSkimming.clone()

EXODisappMuonSkimSequence = cms.Sequence(
exoDisappMuonsHLT+disappMuonsSelection
)
11 changes: 11 additions & 0 deletions Configuration/Skimming/python/Skims_PDWG_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,17 @@
dataTier = cms.untracked.string('USER')
)

from Configuration.Skimming.PDWG_EXODisappMuon_cff import *
EXODisappMuonPath = cms.Path(EXODisappMuonSkimSequence)
SKIMStreamEXODisappMuon = cms.FilteredStream(
responsible = 'PDWG',
name = 'EXODisappMuon',
paths = (EXODisappMuonPath),
content = EXODisappMuonSkimContent.outputCommands,
selectEvents = cms.untracked.PSet(),
dataTier = cms.untracked.string('USER')
)

#####################
# For the Data on Data Mixing in TSG
from HLTrigger.Configuration.HLT_Fake1_cff import fragment as _fragment
Expand Down
Loading

0 comments on commit 314c2b0

Please sign in to comment.