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

New ME0GeometryBuilder for baseline ME0 geometry #17175

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
4e3b76e
analyze layers and rolls
pietverwilligen Dec 19, 2016
5cea581
build layers and change RollDetId to have roll=1
pietverwilligen Dec 19, 2016
afb2f3d
implement real 1 eta partition in fully functional structure
pietverwilligen Dec 20, 2016
c4a6efa
implement real 1 eta partition in fully functional structure
pietverwilligen Dec 20, 2016
d0efdaa
implement real 1 eta partition in fully functional structure
pietverwilligen Dec 20, 2016
a139a46
implement real 1 eta partition in fully functional structure
pietverwilligen Dec 20, 2016
c85b995
implement real 1 eta partition in fully functional structure
pietverwilligen Dec 20, 2016
9e4056a
implement real 1 eta partition in fully functional structure
pietverwilligen Dec 20, 2016
7b66955
no changes wrt original
pietverwilligen Dec 21, 2016
e8c98a8
give number to the rolls in D1
pietverwilligen Dec 21, 2016
d1e7838
new ME0 GeometryBuilder for D4
pietverwilligen Jan 12, 2017
e44ec54
new ME0 GeometryBuilder for D4
pietverwilligen Jan 12, 2017
931f24b
new ME0 GeometryBuilder for D7
pietverwilligen Jan 12, 2017
072e5e6
new ME0 GeometryBuilder for D8
pietverwilligen Jan 12, 2017
2846762
new ME0 GeometryBuilder for D8
pietverwilligen Jan 12, 2017
2360840
new ME0 GeometryBuilder for D10
pietverwilligen Jan 12, 2017
becf8ef
new ME0 GeometryBuilder for M1
pietverwilligen Jan 12, 2017
690ebee
cleanup
pietverwilligen Jan 13, 2017
02e986b
simplify by changing default false -> true
pietverwilligen Jan 13, 2017
379469d
simplify by changing default false -> true
pietverwilligen Jan 13, 2017
093d282
simplify by changing default false -> true
pietverwilligen Jan 13, 2017
177ceee
simplify by changing default false -> true
pietverwilligen Jan 13, 2017
acd74a9
simplify by changing default false -> true
pietverwilligen Jan 13, 2017
a84767e
simplify by changing default false -> true
pietverwilligen Jan 13, 2017
cf6ca03
simplify by changing default false -> true
pietverwilligen Jan 13, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@
from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import *
from Geometry.GEMGeometryBuilder.gemGeometry_cfi import *
from Geometry.GEMGeometryBuilder.me0Geometry_cfi import *
ME0GeometryESModule.use10EtaPart = cms.bool(True)
from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import *
from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import *

Expand Down
9 changes: 4 additions & 5 deletions Configuration/Geometry/scripts/dict2023Geometry.py
Original file line number Diff line number Diff line change
Expand Up @@ -343,16 +343,16 @@
'Geometry/MuonCommonData/data/PhaseII/TDR_BaseLine/me0.xml',
],
2 : [
'Geometry/MuonCommonData/data/PhaseII/muonNumbering.xml',
'Geometry/MuonCommonData/data/PhaseII/TDR_BaseLine/muonNumbering.xml',
],
3 : [
'Geometry/MuonSimData/data/PhaseII/muonSens.xml',
'Geometry/MuonSimData/data/PhaseII/ME0EtaPart/muonSens.xml',
'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml',
'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml',
'Geometry/CSCGeometryBuilder/data/cscSpecs.xml',
'Geometry/RPCGeometryBuilder/data/PhaseII/RPCSpecs.xml',
'Geometry/GEMGeometryBuilder/data/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v5/GEMSpecs.xml',
'Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml',
],
4 : [
'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml',
Expand Down Expand Up @@ -404,7 +404,6 @@
'from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import *',
'from Geometry.GEMGeometryBuilder.gemGeometry_cfi import *',
'from Geometry.GEMGeometryBuilder.me0Geometry_cfi import *',
'ME0GeometryESModule.use10EtaPart = cms.bool(True)',
'from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import *',
'from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import *',
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,20 +88,20 @@
'Geometry/ForwardCommonData/data/cmszdc.xml',
)+
cms.vstring(
'Geometry/MuonCommonData/data/PhaseII/muonNumbering.xml',
'Geometry/MuonCommonData/data/PhaseII/TDR_BaseLine/muonNumbering.xml',
'Geometry/EcalSimData/data/ecalsens.xml',
'Geometry/HcalCommonData/data/Phase0/hcalsenspmf.xml',
'Geometry/HcalSimData/data/hf.xml',
'Geometry/HcalSimData/data/hfpmt.xml',
'Geometry/HcalSimData/data/hffibrebundle.xml',
'Geometry/HcalSimData/data/CaloUtil.xml',
'Geometry/MuonSimData/data/PhaseII/muonSens.xml',
'Geometry/MuonSimData/data/PhaseII/ME0EtaPart/muonSens.xml',
'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml',
'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml',
'Geometry/CSCGeometryBuilder/data/cscSpecs.xml',
'Geometry/RPCGeometryBuilder/data/PhaseII/RPCSpecs.xml',
'Geometry/GEMGeometryBuilder/data/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v5/GEMSpecs.xml',
'Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml',
'Geometry/ForwardCommonData/data/brmsens.xml',
'Geometry/ForwardSimData/data/zdcsens.xml',
'Geometry/HcalSimData/data/HcalProdCuts.xml',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@
'Geometry/ForwardCommonData/data/cmszdc.xml',
)+
cms.vstring(
'Geometry/MuonCommonData/data/PhaseII/muonNumbering.xml',
'Geometry/MuonCommonData/data/PhaseII/TDR_BaseLine/muonNumbering.xml',
'Geometry/EcalSimData/data/PhaseII/ecalsens.xml',
'Geometry/HcalCommonData/data/PhaseII/HGCal/hcalsenspmf.xml',
'Geometry/HcalSimData/data/hf.xml',
Expand All @@ -97,13 +97,13 @@
'Geometry/HGCalSimData/data/hgcsensv6.xml',
'Geometry/HGCalSimData/data/hgccons.xml',
'Geometry/HGCalSimData/data/hgcProdCuts.xml',
'Geometry/MuonSimData/data/PhaseII/muonSens.xml',
'Geometry/MuonSimData/data/PhaseII/ME0EtaPart/muonSens.xml',
'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml',
'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml',
'Geometry/CSCGeometryBuilder/data/cscSpecs.xml',
'Geometry/RPCGeometryBuilder/data/PhaseII/RPCSpecs.xml',
'Geometry/GEMGeometryBuilder/data/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v5/GEMSpecs.xml',
'Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml',
'Geometry/ForwardCommonData/data/brmsens.xml',
'Geometry/ForwardSimData/data/zdcsens.xml',
'Geometry/HcalSimData/data/HcalProdCuts.xml',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,20 +88,20 @@
'Geometry/ForwardCommonData/data/cmszdc.xml',
)+
cms.vstring(
'Geometry/MuonCommonData/data/PhaseII/muonNumbering.xml',
'Geometry/MuonCommonData/data/PhaseII/TDR_BaseLine/muonNumbering.xml',
'Geometry/EcalSimData/data/ecalsens.xml',
'Geometry/HcalCommonData/data/Phase0/hcalsenspmf.xml',
'Geometry/HcalSimData/data/hf.xml',
'Geometry/HcalSimData/data/hfpmt.xml',
'Geometry/HcalSimData/data/hffibrebundle.xml',
'Geometry/HcalSimData/data/CaloUtil.xml',
'Geometry/MuonSimData/data/PhaseII/muonSens.xml',
'Geometry/MuonSimData/data/PhaseII/ME0EtaPart/muonSens.xml',
'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml',
'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml',
'Geometry/CSCGeometryBuilder/data/cscSpecs.xml',
'Geometry/RPCGeometryBuilder/data/PhaseII/RPCSpecs.xml',
'Geometry/GEMGeometryBuilder/data/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v5/GEMSpecs.xml',
'Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml',
'Geometry/ForwardCommonData/data/brmsens.xml',
'Geometry/ForwardSimData/data/zdcsens.xml',
'Geometry/HcalSimData/data/HcalProdCuts.xml',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@
'Geometry/HGCalCommonData/data/fastTimingElement.xml',
)+
cms.vstring(
'Geometry/MuonCommonData/data/PhaseII/muonNumbering.xml',
'Geometry/MuonCommonData/data/PhaseII/TDR_BaseLine/muonNumbering.xml',
'Geometry/EcalSimData/data/PhaseII/ecalsens.xml',
'Geometry/HcalCommonData/data/PhaseII/HGCal/hcalsenspmf.xml',
'Geometry/HcalSimData/data/hf.xml',
Expand All @@ -100,13 +100,13 @@
'Geometry/HGCalSimData/data/hgcsensv6.xml',
'Geometry/HGCalSimData/data/hgccons.xml',
'Geometry/HGCalSimData/data/hgcProdCuts.xml',
'Geometry/MuonSimData/data/PhaseII/muonSens.xml',
'Geometry/MuonSimData/data/PhaseII/ME0EtaPart/muonSens.xml',
'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml',
'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml',
'Geometry/CSCGeometryBuilder/data/cscSpecs.xml',
'Geometry/RPCGeometryBuilder/data/PhaseII/RPCSpecs.xml',
'Geometry/GEMGeometryBuilder/data/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v5/GEMSpecs.xml',
'Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml',
'Geometry/ForwardCommonData/data/brmsens.xml',
'Geometry/ForwardSimData/data/zdcsens.xml',
'Geometry/HGCalSimData/data/fasttimesens.xml',
Expand Down
163 changes: 85 additions & 78 deletions Geometry/GEMGeometry/test/ME0GeometryAnalyzer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ ME0GeometryAnalyzer::analyze( const edm::Event& /*iEvent*/, const edm::EventSetu
ofos << " GeomDetUnit \t" <<pDD->detUnits().size() << endl;
ofos << " GeomDet \t" <<pDD->dets().size() << endl;
ofos << " GeomDetUnit DetIds\t" <<pDD->detUnitIds().size() << endl;
ofos << " layers \t" <<pDD->layers().size() << endl;
ofos << " eta partitions \t" <<pDD->etaPartitions().size() << endl;

// checking uniqueness of roll detIds
Expand Down Expand Up @@ -109,86 +110,92 @@ ME0GeometryAnalyzer::analyze( const edm::Event& /*iEvent*/, const edm::EventSetu
* sum of all dx + gap = chamber height
*/

for (auto roll : pDD->etaPartitions()){
ME0DetId rId(roll->id());
ofos<<"\tME0EtaPartition , ME0DetId = " << rId.rawId() << ", " << rId << endl;

const BoundPlane& bSurface(roll->surface());
const StripTopology* topology(&(roll->specificTopology()));
// for (auto roll : pDD->etaPartitions()){
for (auto layer : pDD->layers()){
ME0DetId lId(layer->id());
ofos<<"\tME0Layer , ME0DetId = " << lId.rawId() << ", " << lId << endl;
for (auto roll : layer->etaPartitions()){
ME0DetId rId(roll->id());
ofos<<"\tME0EtaPartition , ME0DetId = " << rId.rawId() << ", " << rId << endl;

const BoundPlane& bSurface(roll->surface());
const StripTopology* topology(&(roll->specificTopology()));

// base_bottom, base_top, height, strips, pads (all half length)
auto& parameters(roll->specs()->parameters());
float bottomEdge(parameters[0]);
float topEdge(parameters[1]);
float height(parameters[2]);
// float nStrips(parameters[3]);
//float nPads(parameters[4]);

LocalPoint lCentre( 0., 0., 0. );
GlobalPoint gCentre(bSurface.toGlobal(lCentre));

LocalPoint lTop( 0., height, 0.);
GlobalPoint gTop(bSurface.toGlobal(lTop));

LocalPoint lBottom( 0., -height, 0.);
GlobalPoint gBottom(bSurface.toGlobal(lBottom));

// gx, gy, gz, geta, gphi (center)
double cx(gCentre.x());
double cy(gCentre.y());
double cz(gCentre.z());
double ceta(gCentre.eta());
int cphi(static_cast<int>(gCentre.phi().degrees()));
if (cphi < 0) cphi += 360;

double tx(gTop.x());
double ty(gTop.y());
double tz(gTop.z());
double teta(gTop.eta());
int tphi(static_cast<int>(gTop.phi().degrees()));
if (tphi < 0) tphi += 360;

double bx(gBottom.x());
double by(gBottom.y());
double bz(gBottom.z());
double beta(gBottom.eta());
int bphi(static_cast<int>(gBottom.phi().degrees()));
if (bphi < 0) bphi += 360;

/*
// pitch bottom, pitch top, pitch centre
float pitch(roll->pitch());
float topPitch(roll->localPitch(lTop));
float bottomPitch(roll->localPitch(lBottom));
*/
// Type - should be ME0 Somethng
string type(roll->type().name());

// print info about edges
LocalPoint lEdge1(topology->localPosition(0.));
/*
LocalPoint lEdgeN(topology->localPosition((float)nStrips));

double cstrip1(roll->toGlobal(lEdge1).phi().degrees());
double cstripN(roll->toGlobal(lEdgeN).phi().degrees());
double dphi(cstripN - cstrip1);
if (dphi < 0.) dphi += 360.;
*/
double deta(abs(beta - teta));
const bool printDetails(true);
if (printDetails)
ofos << "\t\tType: " << type << endl
<< "\t\tDimensions[cm]: b = " << bottomEdge*2 << ", B = " << topEdge*2 << ", H = " << height*2 << endl
// << " \tnStrips = " << nStrips << ", nPads = " << nPads << endl
<< "\t\ttop(x,y,z)[cm] = (" << tx << ", " << ty << ", " << tz << "), top (eta,phi) = (" << teta << ", " << tphi << ")" << endl
<< "\t\tcenter(x,y,z) = (" << cx << ", " << cy << ", " << cz << "), center(eta,phi) = (" << ceta << ", " << cphi << ")" << endl
<< "\t\tbottom(x,y,z) = (" << bx << ", " << by << ", " << bz << "), bottom(eta,phi) = (" << beta << ", " << bphi << ")" << endl
<< "\t\tdeta = " << deta << " local position at 0 " << lEdge1
//<< " \tpith (top,center,bottom) = " << topPitch << " " << pitch << " " << bottomPitch << ", dEta = " << deta
//<< ", dPhi = " << dphi
<< endl;
// base_bottom, base_top, height, strips, pads (all half length)
auto& parameters(roll->specs()->parameters());
float bottomEdge(parameters[0]);
float topEdge(parameters[1]);
float height(parameters[2]);
// float nStrips(parameters[3]);
//float nPads(parameters[4]);

LocalPoint lCentre( 0., 0., 0. );
GlobalPoint gCentre(bSurface.toGlobal(lCentre));

LocalPoint lTop( 0., height, 0.);
GlobalPoint gTop(bSurface.toGlobal(lTop));

LocalPoint lBottom( 0., -height, 0.);
GlobalPoint gBottom(bSurface.toGlobal(lBottom));

// gx, gy, gz, geta, gphi (center)
double cx(gCentre.x());
double cy(gCentre.y());
double cz(gCentre.z());
double ceta(gCentre.eta());
int cphi(static_cast<int>(gCentre.phi().degrees()));
if (cphi < 0) cphi += 360;

double tx(gTop.x());
double ty(gTop.y());
double tz(gTop.z());
double teta(gTop.eta());
int tphi(static_cast<int>(gTop.phi().degrees()));
if (tphi < 0) tphi += 360;

double bx(gBottom.x());
double by(gBottom.y());
double bz(gBottom.z());
double beta(gBottom.eta());
int bphi(static_cast<int>(gBottom.phi().degrees()));
if (bphi < 0) bphi += 360;

/*
// pitch bottom, pitch top, pitch centre
float pitch(roll->pitch());
float topPitch(roll->localPitch(lTop));
float bottomPitch(roll->localPitch(lBottom));
*/
// Type - should be ME0 Somethng
string type(roll->type().name());

// print info about edges
LocalPoint lEdge1(topology->localPosition(0.));
/*
LocalPoint lEdgeN(topology->localPosition((float)nStrips));

double cstrip1(roll->toGlobal(lEdge1).phi().degrees());
double cstripN(roll->toGlobal(lEdgeN).phi().degrees());
double dphi(cstripN - cstrip1);
if (dphi < 0.) dphi += 360.;
*/
double deta(abs(beta - teta));
const bool printDetails(true);
if (printDetails)
ofos << "\t\tType: " << type << endl
<< "\t\tDimensions[cm]: b = " << bottomEdge*2 << ", B = " << topEdge*2 << ", H = " << height*2 << endl
// << " \tnStrips = " << nStrips << ", nPads = " << nPads << endl
<< "\t\ttop(x,y,z)[cm] = (" << tx << ", " << ty << ", " << tz << "), top (eta,phi) = (" << teta << ", " << tphi << ")" << endl
<< "\t\tcenter(x,y,z) = (" << cx << ", " << cy << ", " << cz << "), center(eta,phi) = (" << ceta << ", " << cphi << ")" << endl
<< "\t\tbottom(x,y,z) = (" << bx << ", " << by << ", " << bz << "), bottom(eta,phi) = (" << beta << ", " << bphi << ")" << endl
<< "\t\tdeta = " << deta << " local position at 0 " << lEdge1
//<< " \tpith (top,center,bottom) = " << topPitch << " " << pitch << " " << bottomPitch << ", dEta = " << deta
//<< ", dPhi = " << dphi
<< endl;
}
ofos << dashedLine_ << " end" << endl;
}
ofos << dashedLine_ << " end" << endl;

}

//define this as a plug-in
Expand Down
2 changes: 1 addition & 1 deletion Geometry/GEMGeometryBuilder/python/me0Geometry_cfi.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
#
ME0GeometryESModule = cms.ESProducer("ME0GeometryESModule",
useDDD = cms.bool(True),
use10EtaPart = cms.bool(False),
use10EtaPart = cms.bool(True),
)
18 changes: 16 additions & 2 deletions Geometry/GEMGeometryBuilder/src/ME0GeometryBuilderFromDDD.cc
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ ME0Geometry* ME0GeometryBuilderFromDDD::buildGeometry(DDFilteredView& fview, con
ME0DetId rollDetId(me0num.baseNumberToUnitNumber(mbn));
LogDebug("ME0GeometryBuilderFromDDD") << "ME0 eta partition rawId: " << rollDetId.rawId() << ", detId: " << rollDetId;

// chamber id for this partition. everything is the same; but partition number is 0.
// chamber id for this partition. everything is the same; but partition number is 0 and layer number is 0.
ME0DetId chamberId(rollDetId.chamberId());
LogDebug("ME0GeometryBuilderFromDDD") << "ME0 chamber rawId: " << chamberId.rawId() << ", detId: " << chamberId;

Expand Down Expand Up @@ -148,12 +148,26 @@ ME0Geometry* ME0GeometryBuilderFromDDD::buildGeometry(DDFilteredView& fview, con

BoundPlane* bp = new BoundPlane(pos, rot, bounds);
ReferenceCountingPointer<BoundPlane> surf(bp);
ME0EtaPartition* mep = new ME0EtaPartition(rollDetId, surf, e_p_specs);

// Set EtaPartition of RollDetId equal to 1
ME0DetId rollDetId2(rollDetId.region(),rollDetId.layer(),rollDetId.station(),1);
ME0EtaPartition* mep = new ME0EtaPartition(rollDetId2, surf, e_p_specs);

// For Nick ... build also the layer
ME0DetId layerDetId(rollDetId.layerId());
ME0Layer* ml = new ME0Layer(layerDetId, surf);

// Add the eta partition to the geometry
geometry->add(mep);
// Add the eta partition to the layer
ml->add(mep);
// Add the layer to the geometry
geometry->add(ml);

// go to next layer
doSubDets = fview.nextSibling();


}


Expand Down
Loading