Skip to content

Commit

Permalink
Merge pull request cms-sw#39115 from ahussein1194/hussein_branch
Browse files Browse the repository at this point in the history
Adding time info to the rpc  points extrapolated from the CSC and DT segments
  • Loading branch information
cmsbuild authored Aug 24, 2022
2 parents 6b34888 + e4be1ca commit 0a8b6ea
Show file tree
Hide file tree
Showing 8 changed files with 364 additions and 337 deletions.
171 changes: 99 additions & 72 deletions RecoLocalMuon/RPCRecHit/plugins/CSCSegtoRPC.cc

Large diffs are not rendered by default.

5 changes: 4 additions & 1 deletion RecoLocalMuon/RPCRecHit/plugins/CSCSegtoRPC.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
#include "DataFormats/RPCRecHit/interface/RPCRecHit.h"
#include "DataFormats/RPCRecHit/interface/RPCRecHitCollection.h"
#include "DataFormats/CSCRecHit/interface/CSCSegmentCollection.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"

#include <memory>

Expand All @@ -16,7 +17,7 @@ class MuonGeometryRecord;

class CSCSegtoRPC {
public:
explicit CSCSegtoRPC(edm::ConsumesCollector iC);
explicit CSCSegtoRPC(edm::ConsumesCollector iC, const edm::ParameterSet&);
std::unique_ptr<RPCRecHitCollection> thePoints(CSCSegmentCollection const* allCSCSegments,
edm::EventSetup const& iSetup,
bool debug,
Expand All @@ -26,6 +27,8 @@ class CSCSegtoRPC {
edm::ESGetToken<RPCGeometry, MuonGeometryRecord> rpcGeoToken_;
edm::ESGetToken<CSCGeometry, MuonGeometryRecord> cscGeoToken_;
edm::ESGetToken<CSCObjectMap, MuonGeometryRecord> cscMapToken_;
int minBX;
int maxBX;
};

#endif
372 changes: 190 additions & 182 deletions RecoLocalMuon/RPCRecHit/plugins/DTSegtoRPC.cc

Large diffs are not rendered by default.

5 changes: 4 additions & 1 deletion RecoLocalMuon/RPCRecHit/plugins/DTSegtoRPC.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
#include "DataFormats/DTRecHit/interface/DTRecSegment4DCollection.h"
#include "DataFormats/RPCRecHit/interface/RPCRecHit.h"
#include "DataFormats/RPCRecHit/interface/RPCRecHitCollection.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"

#include <memory>

Expand All @@ -16,7 +17,7 @@ class MuonGeometryRecord;

class DTSegtoRPC {
public:
explicit DTSegtoRPC(edm::ConsumesCollector iC);
explicit DTSegtoRPC(edm::ConsumesCollector iC, const edm::ParameterSet&);
std::unique_ptr<RPCRecHitCollection> thePoints(DTRecSegment4DCollection const* all4DSegments,
edm::EventSetup const& iSetup,
bool debug,
Expand All @@ -33,6 +34,8 @@ class DTSegtoRPC {
double MaxD;
double MaxDrb4;
double MaxDistanceBetweenSegments;
int minPhiBX;
int maxPhiBX;
};

#endif
60 changes: 47 additions & 13 deletions RecoLocalMuon/RPCRecHit/plugins/RPCPointProducer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
//

#include "RPCPointProducer.h"
#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
#include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"

// system include files

Expand All @@ -25,22 +28,53 @@

// user include files

void RPCPointProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
edm::ParameterSetDescription desc;
desc.add<bool>("incldt", true);
desc.add<bool>("inclcsc", true);
desc.add<bool>("incltrack", false);
desc.addUntracked<bool>("debug", false);
desc.add<double>("rangestrips", 4.);
desc.add<double>("rangestripsRB4", 4.);
desc.add<double>("MinCosAng", 0.85);
desc.add<double>("MaxD", 80.0);
desc.add<double>("MaxDrb4", 150.0);
desc.add<double>("ExtrapolatedRegion", 0.5);
desc.add<edm::InputTag>("cscSegments", edm::InputTag("hltCscSegments"));
desc.add<edm::InputTag>("dt4DSegments", edm::InputTag("hltDt4DSegments"));
desc.add<edm::InputTag>("tracks", edm::InputTag("standAloneMuons"));
desc.add<int>("minBX", -2);
desc.add<int>("maxBX", 2);
edm::ParameterSetDescription descNested;
descNested.add<bool>("DoPredictionsOnly", false);
descNested.add<std::string>("Fitter", "KFFitterForRefitInsideOut");
descNested.add<std::string>("TrackerRecHitBuilder", "WithTrackAngle");
descNested.add<std::string>("Smoother", "KFSmootherForRefitInsideOut");
descNested.add<std::string>("MuonRecHitBuilder", "MuonRecHitBuilder");
descNested.add<std::string>("RefitDirection", "alongMomentum");
descNested.add<bool>("RefitRPCHits", false);
descNested.add<std::string>("Propagator", "SmartPropagatorAnyRKOpposite");
desc.add<edm::ParameterSetDescription>("TrackTransformer", descNested);

descriptions.add("rpcPointProducer", desc);
}

RPCPointProducer::RPCPointProducer(const edm::ParameterSet& iConfig)
: incldt(iConfig.getUntrackedParameter<bool>("incldt", true)),
inclcsc(iConfig.getUntrackedParameter<bool>("inclcsc", true)),
incltrack(iConfig.getUntrackedParameter<bool>("incltrack", true)),
debug(iConfig.getUntrackedParameter<bool>("debug", false)),
MinCosAng(iConfig.getUntrackedParameter<double>("MinCosAng", 0.95)),
MaxD(iConfig.getUntrackedParameter<double>("MaxD", 80.)),
MaxDrb4(iConfig.getUntrackedParameter<double>("MaxDrb4", 150.)),
ExtrapolatedRegion(iConfig.getUntrackedParameter<double>("ExtrapolatedRegion", 0.5)) {
: incldt(iConfig.getParameter<bool>("incldt")),
inclcsc(iConfig.getParameter<bool>("inclcsc")),
incltrack(iConfig.getParameter<bool>("incltrack")),
debug(iConfig.getUntrackedParameter<bool>("debug")),
MinCosAng(iConfig.getParameter<double>("MinCosAng")),
MaxD(iConfig.getParameter<double>("MaxD")),
MaxDrb4(iConfig.getParameter<double>("MaxDrb4")),
ExtrapolatedRegion(iConfig.getParameter<double>("ExtrapolatedRegion")) {
if (incldt) {
dt4DSegments = consumes<DTRecSegment4DCollection>(iConfig.getParameter<edm::InputTag>("dt4DSegments"));
dtSegtoRPC = std::make_unique<DTSegtoRPC>(consumesCollector());
dtSegtoRPC = std::make_unique<DTSegtoRPC>(consumesCollector(), iConfig);
}
if (inclcsc) {
cscSegments = consumes<CSCSegmentCollection>(iConfig.getParameter<edm::InputTag>("cscSegments"));
cscSegtoRPC = std::make_unique<CSCSegtoRPC>(consumesCollector());
cscSegtoRPC = std::make_unique<CSCSegtoRPC>(consumesCollector(), iConfig);
}
if (incltrack) {
tracks = consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("tracks"));
Expand All @@ -63,7 +97,7 @@ void RPCPointProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup
"RPCDTExtrapolatedPoints");
} else {
if (debug)
std::cout << "RPCHLT Invalid DTSegments collection" << std::endl;
LogDebug("RPCPointProducer") << "RPCHLT Invalid DTSegments collection" << std::endl;
}
}

Expand All @@ -75,7 +109,7 @@ void RPCPointProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup
"RPCCSCExtrapolatedPoints");
} else {
if (debug)
std::cout << "RPCHLT Invalid CSCSegments collection" << std::endl;
LogDebug("RPCPointProducer") << "RPCHLT Invalid CSCSegments collection" << std::endl;
}
}
if (incltrack) {
Expand All @@ -85,7 +119,7 @@ void RPCPointProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup
iEvent.put(tracktoRPC->thePoints(alltracks.product(), iSetup, debug), "RPCTrackExtrapolatedPoints");
} else {
if (debug)
std::cout << "RPCHLT Invalid Tracks collection" << std::endl;
LogDebug("RPCPointProducer") << "RPCHLT Invalid Tracks collection" << std::endl;
}
}
}
4 changes: 4 additions & 0 deletions RecoLocalMuon/RPCRecHit/plugins/RPCPointProducer.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,17 @@
#include "CSCSegtoRPC.h"
#include "TracktoRPC.h"

namespace edm {
class ConfigurationDescriptions;
}
//
// class decleration
//

class RPCPointProducer : public edm::stream::EDProducer<> {
public:
explicit RPCPointProducer(const edm::ParameterSet&);
static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);

private:
void produce(edm::Event&, const edm::EventSetup&) override;
Expand Down
33 changes: 0 additions & 33 deletions RecoLocalMuon/RPCRecHit/python/rpcPointProducer_cfi.py

This file was deleted.

51 changes: 16 additions & 35 deletions RecoLocalMuon/RPCRecHit/test/testRPCPointProducer.py
Original file line number Diff line number Diff line change
@@ -1,49 +1,30 @@
import FWCore.ParameterSet.Config as cms
process = cms.Process("OwnParticles")

##process = cms.Process("RPCPointProducer")
process = cms.Process("OWNPARTICLES")

process.load("Geometry.MuonCommonData.muonIdealGeometryXML_cfi")
process.load("Geometry.RPCGeometry.rpcGeometry_cfi")
process.load("Geometry.CSCGeometry.cscGeometry_cfi")
process.load("Geometry.DTGeometry.dtGeometry_cfi")
process.load('Configuration.Geometry.GeometryExtended2018Reco_cff')
process.load('Configuration.Geometry.GeometryExtended2018_cff')
process.load("Geometry.MuonNumbering.muonNumberingInitialization_cfi")

process.load("DQMServices.Components.MEtoEDMConverter_cfi")
process.load("DQMServices.Core.DQM_cfg")
process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
process.GlobalTag.globaltag = "START53_V27::All"

process.load("Configuration.StandardSequences.Services_cff")
process.load("Configuration.StandardSequences.GeometryDB_cff")
process.load("Configuration.StandardSequences.Reconstruction_cff")
process.load("Configuration.StandardSequences.MagneticField_AutoFromDBCurrent_cff")
process.GlobalTag.globaltag = "124X_dataRun3_Express_v5"

process.load("FWCore.MessageService.MessageLogger_cfi")

process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(10) )
process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(2000) )

process.source = cms.Source("PoolSource",
fileNames = cms.untracked.vstring(
# '/store/data/Commissioning10/Cosmics/RECO/v3/000/127/155/005F9301-2E16-DF11-B60B-0030487CD6B4.root'
'/store/data/Run2012D/RPCMonitor/RAW/v1/000/207/900/1AFE2D3D-A836-E211-B86A-001D09F23D1D.root'
)
)
fileNames = cms.untracked.vstring(

# local copy for test only:
'file:/eos/cms/store/group/dpg_rpc/comm_rpc/Sandbox/mileva/testRPCMon2022/1cb9263a-550d-4e86-92f3-f01574867137.root'
)
)

process.load("RecoLocalMuon.RPCRecHit.rpcPointProducer_cff")
process.rpcPointProducer.tracks = cms.InputTag("cosmicMuons") # for cosmicMuons

process.out = cms.OutputModule("PoolOutputModule",
outputCommands = cms.untracked.vstring('drop *',
'keep *_dt4DSegments_*_*',
'keep *_cscSegments_*_*',
'keep *_rpcPointProducer_*_*',
'keep *_rpcRecHits_*_*',
'keep *_standAloneMuons_*_*',
'keep *_cosmicMuons_*_*',
'keep *_globalMuons_*_*'),
fileName = cms.untracked.string('output.root')
)

process.rpcPointProducer.ExtrapolatedRegion = 0.6 # in stripl/2 in Y and stripw*nstrips/2 in X
process.rpcPointProducer.cscSegments = ('dTandCSCSegmentsinTracks','SelectedCscSegments','OwnParticles')
process.rpcPointProducer.dt4DSegments = ('dTandCSCSegmentsinTracks','SelectedDtSegments','OwnParticles')

process.p = cms.Path(process.rpcPointProducer)

process.e = cms.EndPath(process.out)

0 comments on commit 0a8b6ea

Please sign in to comment.