Skip to content

Commit

Permalink
Merge pull request #14306 from jshlee/ME0SegmentBugfix
Browse files Browse the repository at this point in the history
bug fix for Me0 segments
  • Loading branch information
cmsbuild committed May 10, 2016
2 parents 2e4f7d2 + f677425 commit 276b469
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 24 deletions.
51 changes: 28 additions & 23 deletions RecoMuon/DetLayers/src/MuonME0DetLayerGeometryBuilder.cc
Expand Up @@ -32,22 +32,24 @@ MuonME0DetLayerGeometryBuilder::buildEndcapLayers(const ME0Geometry& geo) {
for (int endcap = -1; endcap<=1; endcap+=2) {
int iendcap = (endcap==1) ? 0 : 1; // +1: forward, -1: backward

vector<int> rolls;
std::vector<int> rings;
std::vector<int> chambers;
for(int roll = ME0DetId::minRollId+1; roll <= ME0DetId::maxRollId; ++roll) {
rolls.push_back(roll);
}
for(int chamber = ME0DetId::minChamberId+1; chamber <= ME0DetId::maxChamberId; chamber++ ){
chambers.push_back(chamber);
}
for(int layer = ME0DetId::minLayerId; layer <= ME0DetId::maxLayerId; ++layer) {
vector<int> rolls;
//std::vector<int> rings;
std::vector<int> chambers;
for(int roll = ME0DetId::minRollId+1; roll <= ME0DetId::maxRollId; ++roll) {
rolls.push_back(roll);
}
for(int chamber = ME0DetId::minChamberId+1; chamber <= ME0DetId::maxChamberId; chamber++ ){
chambers.push_back(chamber);
}

LogTrace(metname) << "Encap = " << endcap
<< "Chambers = " << chambers.size()
<< "Rolls = " << rolls.size();
MuRingForwardLayer* ringLayer = buildLayer(endcap, chambers, rolls, geo);
LogTrace(metname) << "Encap = " << endcap
<< "Chambers = " << chambers.size()
<< "Rolls = " << rolls.size();
MuRingForwardLayer* ringLayer = buildLayer(endcap, layer, chambers, rolls, geo);

if (ringLayer) result[iendcap].push_back(ringLayer);
if (ringLayer) result[iendcap].push_back(ringLayer);
}
}
pair<vector<DetLayer*>, vector<DetLayer*> > res_pair(result[0], result[1]);

Expand All @@ -57,6 +59,7 @@ MuonME0DetLayerGeometryBuilder::buildEndcapLayers(const ME0Geometry& geo) {

MuRingForwardLayer*
MuonME0DetLayerGeometryBuilder::buildLayer(int endcap,
int layer,
vector<int>& chambers,
vector<int>& rolls,
const ME0Geometry& geo) {
Expand All @@ -73,7 +76,7 @@ MuonME0DetLayerGeometryBuilder::buildLayer(int endcap,
vector<const GeomDet*> frontDets, backDets;

for(std::vector<int>::iterator chamber=chambers.begin(); chamber<chambers.end(); chamber++) {
ME0DetId me0Id(endcap,1,(*chamber), 0);
ME0DetId me0Id(endcap,layer,(*chamber), (*roll));
const GeomDet* geomDet = geo.idToDet(me0Id);

if (geomDet !=0) {
Expand Down Expand Up @@ -103,15 +106,17 @@ MuonME0DetLayerGeometryBuilder::buildLayer(int endcap,
}

}
LogTrace(metname) << "About to make a MuRingForwardLayer";
result = new MuRingForwardLayer(frontRings);

LogTrace(metname) << "New MuRingForwardLayer with " << frontRings.size()
<< " and " << backRings.size()
<< " rings, at Z " << result->position().z()
<< " R1: " << result->specificSurface().innerRadius()
<< " R2: " << result->specificSurface().outerRadius();

LogTrace(metname) << "About to make a MuRingForwardLayer";
if(frontRings.size()!=0) result = new MuRingForwardLayer(frontRings);
else result = 0;
if(result != 0){
LogTrace(metname) << "New MuRingForwardLayer with " << frontRings.size()
<< " and " << backRings.size()
<< " rings, at Z " << result->position().z()
<< " R1: " << result->specificSurface().innerRadius()
<< " R2: " << result->specificSurface().outerRadius();
}
return result;

}
Expand Down
2 changes: 1 addition & 1 deletion RecoMuon/DetLayers/src/MuonME0DetLayerGeometryBuilder.h
Expand Up @@ -34,7 +34,7 @@ class MuonME0DetLayerGeometryBuilder {
private:
//static MuRingForwardDoubleLayer* buildLayer(int endcap,int layer,std::vector<int>& chambers,std::vector<int>& rolls,const ME0Geometry& geo);
//static MuRingForwardLayer* buildLayer(int endcap,int layer,std::vector<int>& chambers,std::vector<int>& rolls,const ME0Geometry& geo);
static MuRingForwardLayer* buildLayer(int endcap,std::vector<int>& chambers,std::vector<int>& rolls,const ME0Geometry& geo);
static MuRingForwardLayer* buildLayer(int endcap, int layer, std::vector<int>& chambers,std::vector<int>& rolls,const ME0Geometry& geo);
static bool isFront(const ME0DetId & me0Id);
static MuDetRing * makeDetRing(std::vector<const GeomDet*> & geomDets);

Expand Down
1 change: 1 addition & 0 deletions RecoMuon/MuonIdentification/plugins/ME0SegmentMatcher.cc
Expand Up @@ -200,6 +200,7 @@ void ME0SegmentMatcher::produce(edm::Event& ev, const edm::EventSetup& setup) {
//lastrecostate = ThisshProp->propagateWithPath(startrecostate, *plane);
//ThisshProp->propagate(startrecostate, *plane,lastrecostate);
lastrecostate = ThisshProp->propagate(initrecostate,*plane);
if (!lastrecostate.isValid()) continue;

FreeTrajectoryState finalrecostate(*lastrecostate.freeTrajectoryState());
//lastrecostate.getFreeState(finalrecostate);
Expand Down

0 comments on commit 276b469

Please sign in to comment.