Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Seeding of L2 muons: propagate L1 cands to ME2 if propagation to MB2 fails #14505

Merged
merged 2 commits into from May 18, 2016
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
14 changes: 14 additions & 0 deletions RecoMuon/L2MuonSeedGenerator/src/L2MuonSeedGeneratorFromL1T.cc
Expand Up @@ -217,6 +217,11 @@ void L2MuonSeedGeneratorFromL1T::produce(edm::Event& iEvent, const edm::EventSet
if( pt < 1.0) pt = 1.0;
}

// Fallback solution using ME2
DetId fallback_id;
theta < Geom::pi()/2. ? fallback_id = CSCDetId(1,2,0,0,0) : fallback_id = CSCDetId(2,2,0,0,0);
const DetLayer* ME2DetLayer = theService->detLayerGeometry()->idToLayer(fallback_id);

vec.setMag(radius);

GlobalPoint pos(vec.x(),vec.y(),vec.z());
Expand Down Expand Up @@ -292,6 +297,15 @@ void L2MuonSeedGeneratorFromL1T::produce(edm::Event& iEvent, const edm::EventSet
detsWithStates = detLayer->compatibleDets(tsos,
*theService->propagator(thePropagatorName),
*theEstimator);

if (detsWithStates.size() == 0 && barrel ) {
// try again to propagate but using ME2 as reference
tsos = theService->propagator(thePropagatorName)->propagate(state, ME2DetLayer->surface());
detsWithStates = ME2DetLayer->compatibleDets(tsos,
*theService->propagator(thePropagatorName),
*theEstimator);
}

if (detsWithStates.size()){

TrajectoryStateOnSurface newTSOS = detsWithStates.front().second;
Expand Down