diff --git a/CalibFormats/HcalObjects/interface/HcalCalibrationWidthsSet.h b/CalibFormats/HcalObjects/interface/HcalCalibrationWidthsSet.h index 57eb04dfa2229..b3c91bc937ddd 100644 --- a/CalibFormats/HcalObjects/interface/HcalCalibrationWidthsSet.h +++ b/CalibFormats/HcalObjects/interface/HcalCalibrationWidthsSet.h @@ -3,6 +3,7 @@ #include "CalibFormats/HcalObjects/interface/HcalCalibrationWidths.h" #include "DataFormats/HcalDetId/interface/HcalDetId.h" +#include "DataFormats/HcalDetId/interface/HcalZDCDetId.h" #include /** \class HcalCalibrationWidthsSet @@ -20,7 +21,17 @@ class HcalCalibrationWidthsSet { void clear(); private: struct CalibWidthSetObject { - CalibWidthSetObject(const DetId& aid) : id(aid) { } + CalibWidthSetObject(const DetId& aid) { + if (aid.det()==DetId::Hcal) { + HcalDetId hcid(aid); + id = HcalDetId(hcid.subdet(),hcid.ieta(),hcid.iphi(),hcid.depth()); + } else if (aid.det()==DetId::Calo && aid.subdetId()==HcalZDCDetId::SubdetectorId) { + HcalZDCDetId hcid(aid); + id = HcalZDCDetId(hcid.section(),(hcid.zside()>0),hcid.channel()); + } else { + id = aid; + } + } DetId id; HcalCalibrationWidths calib; bool operator<(const CalibWidthSetObject& cso) const { return id < cso.id; } diff --git a/CalibFormats/HcalObjects/interface/HcalCalibrationsSet.h b/CalibFormats/HcalObjects/interface/HcalCalibrationsSet.h index 6e95779d809d7..38c47e36de755 100644 --- a/CalibFormats/HcalObjects/interface/HcalCalibrationsSet.h +++ b/CalibFormats/HcalObjects/interface/HcalCalibrationsSet.h @@ -3,6 +3,7 @@ #include "CalibFormats/HcalObjects/interface/HcalCalibrations.h" #include "DataFormats/HcalDetId/interface/HcalDetId.h" +#include "DataFormats/HcalDetId/interface/HcalZDCDetId.h" #include /** \class HcalCalibrationsSet @@ -20,7 +21,17 @@ class HcalCalibrationsSet { void clear(); private: struct CalibSetObject { - CalibSetObject(const DetId& aid) : id(aid) { } + CalibSetObject(const DetId& aid) { + if (aid.det()==DetId::Hcal) { + HcalDetId hcid(aid); + id = HcalDetId(hcid.subdet(),hcid.ieta(),hcid.iphi(),hcid.depth()); + } else if (aid.det()==DetId::Calo && aid.subdetId()==HcalZDCDetId::SubdetectorId) { + HcalZDCDetId hcid(aid); + id = HcalZDCDetId(hcid.section(),(hcid.zside()>0),hcid.channel()); + } else { + id = aid; + } + } DetId id; HcalCalibrations calib; bool operator<(const CalibSetObject& cso) const { return id < cso.id; } diff --git a/CalibFormats/HcalObjects/src/HcalCalibrationWidthsSet.cc b/CalibFormats/HcalObjects/src/HcalCalibrationWidthsSet.cc index ebc75efa785f9..e651856f35576 100644 --- a/CalibFormats/HcalObjects/src/HcalCalibrationWidthsSet.cc +++ b/CalibFormats/HcalObjects/src/HcalCalibrationWidthsSet.cc @@ -1,5 +1,7 @@ #include "CalibFormats/HcalObjects/interface/HcalCalibrationWidthsSet.h" #include "DataFormats/HcalDetId/interface/HcalGenericDetId.h" +#include "DataFormats/HcalDetId/interface/HcalDetId.h" +#include "DataFormats/HcalDetId/interface/HcalZDCDetId.h" #include "FWCore/Utilities/interface/Exception.h" #include #include @@ -17,18 +19,22 @@ const HcalCalibrationWidths& HcalCalibrationWidthsSet::getCalibrationWidths(cons else { cell = std::find(mItems.begin(),mItems.end(), target); } - if (cell == mItems.end() || cell->id != fId) + if (cell == mItems.end() || + ((fId.det()==DetId::Hcal && HcalDetId(cell->id) != HcalDetId(fId)) || + (fId.det()==DetId::Calo && fId.subdetId()==HcalZDCDetId::SubdetectorId && HcalZDCDetId(cell->id) != HcalZDCDetId(fId)) || + (fId.det()!=DetId::Hcal && (fId.det()==DetId::Calo && fId.subdetId()!=HcalZDCDetId::SubdetectorId) && (cell->id != fId)))) throw cms::Exception ("Conditions not found") << "Unavailable HcalCalibrationWidths for cell " << HcalGenericDetId(fId); return cell->calib; } void HcalCalibrationWidthsSet::setCalibrationWidths(DetId fId, const HcalCalibrationWidths& ca) { + Item target(fId); sorted_=false; - std::vector::iterator cell=std::find(mItems.begin(),mItems.end(),Item(fId)); //slow, but guaranteed + std::vector::iterator cell=std::find(mItems.begin(),mItems.end(),target); //slow, but guaranteed if (cell==mItems.end()) { - mItems.push_back(Item(fId)); - mItems.at(mItems.size()-1).calib=ca; + target.calib=ca; + mItems.push_back(target); return; } cell->calib=ca; diff --git a/CalibFormats/HcalObjects/src/HcalCalibrationsSet.cc b/CalibFormats/HcalObjects/src/HcalCalibrationsSet.cc index 0b06a04c2a7d8..a08aac56184b2 100644 --- a/CalibFormats/HcalObjects/src/HcalCalibrationsSet.cc +++ b/CalibFormats/HcalObjects/src/HcalCalibrationsSet.cc @@ -17,7 +17,10 @@ const HcalCalibrations& HcalCalibrationsSet::getCalibrations(const DetId fId) co else { cell = std::find(mItems.begin(),mItems.end(), target); } - if (cell == mItems.end() || cell->id != fId) + if (cell == mItems.end() || + ((fId.det()==DetId::Hcal && HcalDetId(cell->id) != HcalDetId(fId)) || + (fId.det()==DetId::Calo && fId.subdetId()==HcalZDCDetId::SubdetectorId && HcalZDCDetId(cell->id) != HcalZDCDetId(fId)) || + (fId.det()!=DetId::Hcal && (fId.det()==DetId::Calo && fId.subdetId()!=HcalZDCDetId::SubdetectorId) && (cell->id != fId)))) throw cms::Exception ("Conditions not found") << "Unavailable HcalCalibrations for cell " << HcalGenericDetId(fId); return cell->calib; } diff --git a/CondFormats/HcalObjects/interface/HcalCondObjectContainer.h b/CondFormats/HcalObjects/interface/HcalCondObjectContainer.h index 4c906e64277e4..7a8c48241495a 100644 --- a/CondFormats/HcalObjects/interface/HcalCondObjectContainer.h +++ b/CondFormats/HcalObjects/interface/HcalCondObjectContainer.h @@ -2,6 +2,7 @@ #define HcalCondObjectContainer_h #include +#include #include "DataFormats/HcalDetId/interface/HcalDetId.h" #include "DataFormats/HcalDetId/interface/HcalOtherDetId.h" #include "DataFormats/HcalDetId/interface/HcalCastorDetId.h" @@ -123,7 +124,6 @@ template const Item* HcalCondObjectContainer::getValues(DetId fId, bool throwOnFail) const { unsigned int index=indexFor(fId); - const Item* cell = NULL; if (index<0xFFFFFFFu) { @@ -147,7 +147,6 @@ HcalCondObjectContainer::getValues(DetId fId, bool throwOnFail) const } } } - // Item emptyItem; // if (cell->rawId() == emptyItem.rawId() ) if ((!cell)) { @@ -155,7 +154,9 @@ HcalCondObjectContainer::getValues(DetId fId, bool throwOnFail) const throw cms::Exception ("Conditions not found") << "Unavailable Conditions of type " << myname() << " for cell " << textForId(fId); } - } else if (cell->rawId() != fId) { + } else if ((fId.det()==DetId::Hcal && HcalDetId(cell->rawId()) != HcalDetId(fId)) || + (fId.det()==DetId::Calo && fId.subdetId()==HcalZDCDetId::SubdetectorId && HcalZDCDetId(cell->rawId()) != HcalZDCDetId(fId)) || + (fId.det()!=DetId::Hcal && (fId.det()==DetId::Calo && fId.subdetId()!=HcalZDCDetId::SubdetectorId) && (cell->rawId() != fId))) { if (throwOnFail) { throw cms::Exception ("Conditions mismatch") << "Requested conditions of type " << myname() << " for cell " << textForId(fId) << " got conditions for cell " << textForId(DetId(cell->rawId())); @@ -172,7 +173,9 @@ HcalCondObjectContainer::exists(DetId fId) const const Item* cell = getValues(fId,false); if (cell) - if (cell->rawId() == fId ) + if ((fId.det()==DetId::Hcal && HcalDetId(cell->rawId()) == HcalDetId(fId)) || + (fId.det()==DetId::Calo && fId.subdetId()==HcalZDCDetId::SubdetectorId && HcalZDCDetId(cell->rawId()) == HcalZDCDetId(fId)) || + (fId.det()!=DetId::Hcal && (fId.det()==DetId::Calo && fId.subdetId()!=HcalZDCDetId::SubdetectorId) && (cell->rawId() == fId))) return true; return false; diff --git a/CondFormats/HcalObjects/src/HcalCholeskyMatrices.cc b/CondFormats/HcalObjects/src/HcalCholeskyMatrices.cc index d152415d76358..2d4c57fc554d8 100644 --- a/CondFormats/HcalObjects/src/HcalCholeskyMatrices.cc +++ b/CondFormats/HcalObjects/src/HcalCholeskyMatrices.cc @@ -44,9 +44,12 @@ HcalCholeskyMatrices::getValues(DetId fId, bool throwOnFail) const // HcalCholeskyMatrix emptyHcalCholeskyMatrix; // if (cell->rawId() == emptyHcalCholeskyMatrix.rawId() ) - if ((!cell) || (cell->rawId() != fId ) ) { + if ((!cell) || + (fId.det()==DetId::Hcal && HcalDetId(cell->rawId()) != HcalDetId(fId)) || + (fId.det()==DetId::Calo && fId.subdetId()==HcalZDCDetId::SubdetectorId && HcalZDCDetId(cell->rawId()) != HcalZDCDetId(fId)) || + (fId.det()!=DetId::Hcal && (fId.det()==DetId::Calo && fId.subdetId()!=HcalZDCDetId::SubdetectorId) && (cell->rawId() != fId))) { if (throwOnFail) { - throw cms::Exception ("Conditions not found") + throw cms::Exception ("Conditions not found") << "Unavailable Conditions of type " << myname() << " for cell " << fId.rawId(); } else { cell=0; @@ -63,8 +66,9 @@ HcalCholeskyMatrices::exists(DetId fId) const // HcalCholeskyMatrix emptyHcalCholeskyMatrix; if (cell) - // if (cell->rawId() != emptyHcalCholeskyMatrix.rawId() ) - if (cell->rawId() == fId ) + if ((fId.det()==DetId::Hcal && HcalDetId(cell->rawId()) == HcalDetId(fId)) || + (fId.det()==DetId::Calo && fId.subdetId()==HcalZDCDetId::SubdetectorId && HcalZDCDetId(cell->rawId()) == HcalZDCDetId(fId)) || + (fId.det()!=DetId::Hcal && (fId.det()==DetId::Calo && fId.subdetId()!=HcalZDCDetId::SubdetectorId) && (cell->rawId() == fId))) return true; return false; diff --git a/CondFormats/HcalObjects/src/HcalCovarianceMatrices.cc b/CondFormats/HcalObjects/src/HcalCovarianceMatrices.cc index bcc80055094e0..aa9cd98564a8f 100644 --- a/CondFormats/HcalObjects/src/HcalCovarianceMatrices.cc +++ b/CondFormats/HcalObjects/src/HcalCovarianceMatrices.cc @@ -24,7 +24,7 @@ HcalCovarianceMatrices::initContainer(DetId fId) case(HcalForward) : for (unsigned int i=0; irawId() == emptyHcalCovarianceMatrix.rawId() ) - if ((!cell) || (cell->rawId() != fId ) ) { + if ((!cell) || + (fId.det()==DetId::Hcal && HcalDetId(cell->rawId()) != HcalDetId(fId)) || + (fId.det()==DetId::Calo && fId.subdetId()==HcalZDCDetId::SubdetectorId && HcalZDCDetId(cell->rawId()) != HcalZDCDetId(fId)) || + (fId.det()!=DetId::Hcal && (fId.det()==DetId::Calo && fId.subdetId()!=HcalZDCDetId::SubdetectorId) && (cell->rawId() != fId))) { if (throwOnFail) { - throw cms::Exception ("Conditions not found") + throw cms::Exception ("Conditions not found") << "Unavailable Conditions of type " << myname() << " for cell " << fId.rawId(); } else { cell=0; @@ -68,8 +71,9 @@ HcalCovarianceMatrices::exists(DetId fId) const // HcalCovarianceMatrix emptyHcalCovarianceMatrix; if (cell) - // if (cell->rawId() != emptyHcalCovarianceMatrix.rawId() ) - if (cell->rawId() == fId ) + if ((fId.det()==DetId::Hcal && HcalDetId(cell->rawId()) == HcalDetId(fId)) || + (fId.det()==DetId::Calo && fId.subdetId()==HcalZDCDetId::SubdetectorId && HcalZDCDetId(cell->rawId()) == HcalZDCDetId(fId)) || + (fId.det()!=DetId::Hcal && (fId.det()==DetId::Calo && fId.subdetId()!=HcalZDCDetId::SubdetectorId) && (cell->rawId() == fId))) return true; return false; diff --git a/Configuration/Geometry/python/GeometryExtended2023HGCalMuonReco_cff.py b/Configuration/Geometry/python/GeometryExtended2023HGCalMuonReco_cff.py new file mode 100644 index 0000000000000..7625df2fb0f13 --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2023HGCalMuonReco_cff.py @@ -0,0 +1,47 @@ +import FWCore.ParameterSet.Config as cms + +# Ideal geometry, needed for transient ECAL alignement +from Configuration.Geometry.GeometryExtended2023HGCalMuon_cff import * + +# Reconstruction geometry services +# Tracking Geometry +#bah - well, this is not a cfi! +from Geometry.CommonDetUnit.globalTrackingSLHCGeometry_cfi import * + +#Tracker +from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * +from Geometry.TrackerNumberingBuilder.trackerTopologyConstants_cfi import * + +#Muon +from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * +from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * +from Geometry.GEMGeometry.gemGeometry_cfi import * +from Geometry.GEMGeometry.me0Geometry_cfi import * + +# Alignment +from Geometry.TrackerGeometryBuilder.idealForDigiTrackerSLHCGeometry_cff import * +from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * +from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * +trackerSLHCGeometry.applyAlignment = cms.bool(False) + +# Calorimeters +from Geometry.CaloEventSetup.CaloTopology_cfi import * +from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * + +CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", + SelectedCalos = cms.vstring('HCAL' , + 'ZDC' , + 'CASTOR' , + 'EcalBarrel' , + 'TOWER' ) +) + +from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * +from Geometry.HcalEventSetup.HcalGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * +from Geometry.HcalEventSetup.HcalTopology_cfi import * +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * + +from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * +from Geometry.EcalMapping.EcalMapping_cfi import * +from Geometry.EcalMapping.EcalMappingRecord_cfi import * diff --git a/Configuration/Geometry/python/GeometryExtended2023HGCalMuon_cff.py b/Configuration/Geometry/python/GeometryExtended2023HGCalMuon_cff.py new file mode 100644 index 0000000000000..0120cde4bbb24 --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2023HGCalMuon_cff.py @@ -0,0 +1,4 @@ +import FWCore.ParameterSet.Config as cms + +from Geometry.CMSCommonData.cmsExtendedGeometry2023HGCalMuonXML_cfi import * +from Geometry.TrackerNumberingBuilder.trackerNumberingSLHCGeometry_cfi import * diff --git a/Configuration/Geometry/python/GeometryExtended2023HGCalReco_cff.py b/Configuration/Geometry/python/GeometryExtended2023HGCalReco_cff.py new file mode 100644 index 0000000000000..e190a4227d670 --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2023HGCalReco_cff.py @@ -0,0 +1,47 @@ +import FWCore.ParameterSet.Config as cms + +# Ideal geometry, needed for transient ECAL alignement +from Configuration.Geometry.GeometryExtended2023HGCal_cff import * + +# Reconstruction geometry services +# Tracking Geometry +#bah - well, this is not a cfi! +from Geometry.CommonDetUnit.globalTrackingSLHCGeometry_cfi import * + +#Tracker +from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * +from Geometry.TrackerNumberingBuilder.trackerTopologyConstants_cfi import * + +#Muon +from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * +from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * +from Geometry.GEMGeometry.gemGeometry_cfi import * +from Geometry.GEMGeometry.me0Geometry_cfi import * + +# Alignment +from Geometry.TrackerGeometryBuilder.idealForDigiTrackerSLHCGeometry_cff import * +from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * +from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * +trackerSLHCGeometry.applyAlignment = cms.bool(False) + +# Calorimeters +from Geometry.CaloEventSetup.CaloTopology_cfi import * +from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * + +CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", + SelectedCalos = cms.vstring('HCAL' , + 'ZDC' , + 'CASTOR' , + 'EcalBarrel' , + 'TOWER' ) +) + +from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * +from Geometry.HcalEventSetup.HcalGeometry_cfi import * +from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * +from Geometry.HcalEventSetup.HcalTopology_cfi import * +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * + +from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * +from Geometry.EcalMapping.EcalMapping_cfi import * +from Geometry.EcalMapping.EcalMappingRecord_cfi import * diff --git a/Configuration/Geometry/python/GeometryExtended2023HGCal_cff.py b/Configuration/Geometry/python/GeometryExtended2023HGCal_cff.py new file mode 100644 index 0000000000000..2b746464736a1 --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2023HGCal_cff.py @@ -0,0 +1,4 @@ +import FWCore.ParameterSet.Config as cms + +from Geometry.CMSCommonData.cmsExtendedGeometry2023HGCalXML_cfi import * +from Geometry.TrackerNumberingBuilder.trackerNumberingSLHCGeometry_cfi import * diff --git a/Configuration/Geometry/python/GeometryExtended2023RPCUpscopeReco_cff.py b/Configuration/Geometry/python/GeometryExtended2023RPCUpscopeReco_cff.py new file mode 100644 index 0000000000000..f349544237c7c --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2023RPCUpscopeReco_cff.py @@ -0,0 +1,33 @@ +import FWCore.ParameterSet.Config as cms + +# Ideal geometry, needed for transient ECAL alignement +from Configuration.Geometry.GeometryExtended2023RPCUpscope_cff import * + + + +# Reconstruction geometry services +# Tracking Geometry +#bah - well, this is not a cfi! +from Geometry.CommonDetUnit.globalTrackingSLHCGeometry_cfi import * + +#Tracker +from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * +from Geometry.TrackerNumberingBuilder.trackerTopologyConstants_cfi import * + +#Muon +from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * +from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * + +# Alignment +from Geometry.TrackerGeometryBuilder.idealForDigiTrackerSLHCGeometry_cff import * +from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * +from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * +trackerSLHCGeometry.applyAlignment = cms.bool(False) + +# Calorimeters +from Geometry.CaloEventSetup.CaloTopology_cfi import * +from Geometry.CaloEventSetup.CaloGeometry_cff import * +from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * +from Geometry.EcalMapping.EcalMapping_cfi import * +from Geometry.EcalMapping.EcalMappingRecord_cfi import * + diff --git a/Configuration/Geometry/python/GeometryExtended2023RPCUpscope_cff.py b/Configuration/Geometry/python/GeometryExtended2023RPCUpscope_cff.py new file mode 100644 index 0000000000000..7a1d8e9413526 --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2023RPCUpscope_cff.py @@ -0,0 +1,8 @@ +import FWCore.ParameterSet.Config as cms + +# +# Geometry master configuration +# +# Ideal geometry, needed for simulation +from Geometry.CMSCommonData.cmsExtendedGeometry2023RPCUpscopeXML_cfi import * +from Geometry.TrackerNumberingBuilder.trackerNumberingSLHCGeometry_cfi import * diff --git a/Configuration/Geometry/python/GeometryExtended2023Reco_cff.py b/Configuration/Geometry/python/GeometryExtended2023Reco_cff.py index a264fd7705665..a85ef3e1d804d 100644 --- a/Configuration/Geometry/python/GeometryExtended2023Reco_cff.py +++ b/Configuration/Geometry/python/GeometryExtended2023Reco_cff.py @@ -1,7 +1,7 @@ import FWCore.ParameterSet.Config as cms # Ideal geometry, needed for transient ECAL alignement -from Geometry.CMSCommonData.cmsExtendedGeometry2023HGCalXML_cfi import * +from Configuration.Geometry.GeometryExtended2023_cff import * # Reconstruction geometry services # Tracking Geometry @@ -40,7 +40,6 @@ from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * from Geometry.HcalEventSetup.HcalTopology_cfi import * from Geometry.ForwardGeometry.ForwardGeometry_cfi import * - from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * from Geometry.EcalMapping.EcalMapping_cfi import * from Geometry.EcalMapping.EcalMappingRecord_cfi import * diff --git a/Configuration/Geometry/python/GeometryExtended2023SHCalReco_cff.py b/Configuration/Geometry/python/GeometryExtended2023SHCalReco_cff.py new file mode 100644 index 0000000000000..eb10fceeacc10 --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2023SHCalReco_cff.py @@ -0,0 +1,32 @@ +import FWCore.ParameterSet.Config as cms + +# Ideal geometry, needed for transient ECAL alignement +from Configuration.Geometry.GeometryExtended2023SHCal_cff import * + +# Reconstruction geometry services +# Tracking Geometry +#bah - well, this is not a cfi! +from Geometry.CommonDetUnit.globalTrackingSLHCGeometry_cfi import * + +#Tracker +from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * +from Geometry.TrackerNumberingBuilder.trackerTopologyConstants_cfi import * + +#Muon +from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * +from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * +from Geometry.GEMGeometry.gemGeometry_cfi import * + +# Alignment +from Geometry.TrackerGeometryBuilder.idealForDigiTrackerSLHCGeometry_cff import * +from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * +from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * +trackerSLHCGeometry.applyAlignment = cms.bool(False) + +# Calorimeters +from Geometry.CaloEventSetup.CaloTopology_cfi import * +from Geometry.CaloEventSetup.CaloGeometry_cff import * +from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * +from Geometry.EcalMapping.EcalMapping_cfi import * +from Geometry.EcalMapping.EcalMappingRecord_cfi import * + diff --git a/Configuration/Geometry/python/GeometryExtended2023_cff.py b/Configuration/Geometry/python/GeometryExtended2023_cff.py index 2b746464736a1..d54efafab514f 100644 --- a/Configuration/Geometry/python/GeometryExtended2023_cff.py +++ b/Configuration/Geometry/python/GeometryExtended2023_cff.py @@ -1,4 +1,7 @@ import FWCore.ParameterSet.Config as cms - -from Geometry.CMSCommonData.cmsExtendedGeometry2023HGCalXML_cfi import * +# +# Geometry master configuration +# +# Ideal geometry, needed for simulation +from Geometry.CMSCommonData.cmsExtendedGeometry2023XML_cfi import * from Geometry.TrackerNumberingBuilder.trackerNumberingSLHCGeometry_cfi import * diff --git a/Configuration/StandardSequences/python/GeometryConf.py b/Configuration/StandardSequences/python/GeometryConf.py index 44282009c8c27..bc82b55785601 100644 --- a/Configuration/StandardSequences/python/GeometryConf.py +++ b/Configuration/StandardSequences/python/GeometryConf.py @@ -16,6 +16,7 @@ 'Extended2017' : 'Extended2017,Extended2017Reco', 'Extended2019' : 'Extended2019,Extended2019Reco', 'Extended2023' : 'Extended2023,Extended2023Reco', + 'Extended2023RPCUpscope' : 'Extended2023RPCUpscope,Extended2023RPCUpscopeReco', 'ExtendedPhase2TkBE' : 'ExtendedPhase2TkBE,ExtendedPhase2TkBEReco', 'ExtendedPhase2TkBE5D' : 'ExtendedPhase2TkBE5D,ExtendedPhase2TkBE5DReco', 'ExtendedPhase2TkLB_6PS' : 'ExtendedPhase2TkLB6PS,ExtendedPhase2TkLB6PSReco', diff --git a/DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigi.h b/DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigi.h index 05b98907adc71..f98e9d68a7e73 100644 --- a/DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigi.h +++ b/DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigi.h @@ -90,9 +90,15 @@ class CSCCorrelatedLCTDigi /// LCT phi - gem pad phi for ME11 float getGEMDPhi() const {return gemDPhi;} + /// LCT phi - gem pad phi for ME11 + float getGEMDPhiBits() const {return gemDPhiBits;} + /// set gem pad deltaPhi for ME11 void setGEMDPhi(const float dphi) {gemDPhi = dphi;} + /// set gem pad deltaPhi for ME11 + void setGEMDPhiBits(const uint16_t dphi) {gemDPhiBits = dphi;} + private: uint16_t trknmb; uint16_t valid; @@ -107,6 +113,7 @@ class CSCCorrelatedLCTDigi uint16_t syncErr; uint16_t cscID; float gemDPhi; + uint16_t gemDPhiBits; }; std::ostream & operator<<(std::ostream & o, const CSCCorrelatedLCTDigi& digi); diff --git a/DataFormats/CSCDigi/src/classes_def.xml b/DataFormats/CSCDigi/src/classes_def.xml index 0d693e7798c8b..d364358bdc256 100644 --- a/DataFormats/CSCDigi/src/classes_def.xml +++ b/DataFormats/CSCDigi/src/classes_def.xml @@ -11,8 +11,8 @@ - - + + diff --git a/DataFormats/DetId/interface/DetId.h b/DataFormats/DetId/interface/DetId.h index f9d5b4634cef5..9b1486987f671 100644 --- a/DataFormats/DetId/interface/DetId.h +++ b/DataFormats/DetId/interface/DetId.h @@ -23,7 +23,7 @@ class DetId { static const int kSubdetOffset = 25; - enum Detector { Tracker=1,Muon=2,Ecal=3,Hcal=4,Calo=5 }; + enum Detector { Tracker=1,Muon=2,Ecal=3,Hcal=4,Calo=5,Forward=6 }; /// Create an empty or null id (also for persistence) DetId() : id_(0) { } /// Create an id from a raw number diff --git a/DataFormats/ForwardDetId/BuildFile.xml b/DataFormats/ForwardDetId/BuildFile.xml new file mode 100644 index 0000000000000..ba7066b6b1667 --- /dev/null +++ b/DataFormats/ForwardDetId/BuildFile.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/DataFormats/ForwardDetId/interface/CFCDetId.h b/DataFormats/ForwardDetId/interface/CFCDetId.h new file mode 100644 index 0000000000000..a9c5dd78af8de --- /dev/null +++ b/DataFormats/ForwardDetId/interface/CFCDetId.h @@ -0,0 +1,43 @@ +#ifndef DataFormats_ForwardDetId_CFCDetId_H +#define DataFormats_ForwardDetId_CFCDetId_H 1 + +#include +#include "DataFormats/DetId/interface/DetId.h" +#include "DataFormats/ForwardDetId/interface/ForwardSubdetector.h" + + +class CFCDetId : public DetId { +public: + /** Create a null cellid*/ + CFCDetId(); + /** Create cellid from raw id (0=invalid tower id) */ + CFCDetId(uint32_t rawid); + /** Constructor from subdetector, signed ieta,iphi, depth and type */ + CFCDetId(ForwardSubdetector subdet, int ieta, int iphi, int depth, int type); + /** Constructor from a generic cell id */ + CFCDetId(const DetId& id); + /** Assignment from a generic cell id */ + CFCDetId& operator=(const DetId& id); + + /// get the subdetector + ForwardSubdetector subdet() const { return (ForwardSubdetector)(subdetId()); } + /// get the z-side of the cell (1/-1) + int zside() const { return (id_&0x1000000)?(1):(-1); } + /// get the absolute value of the cell ieta + int ietaAbs() const { return (id_>>10)&0x3FF; } + /// get the cell ieta + int ieta() const { return zside()*ietaAbs(); } + /// get the cell iphi + int iphi() const { return id_&0x3FF; } + /// get the tower depth + int depth() const { return (id_>>21)&0x7; } + /// get the fibre type + int type() const { return (id_>>20)&0x1; } + + static const CFCDetId Undefined; + +}; + +std::ostream& operator<<(std::ostream&,const CFCDetId& id); + +#endif diff --git a/DataFormats/ForwardDetId/interface/ForwardSubdetector.h b/DataFormats/ForwardDetId/interface/ForwardSubdetector.h new file mode 100644 index 0000000000000..83af7f8b91048 --- /dev/null +++ b/DataFormats/ForwardDetId/interface/ForwardSubdetector.h @@ -0,0 +1,6 @@ +#ifndef DataFormats_ForwardDetId_ForwardSubDetector_H +#define DataFormats_ForwardDetId_ForwardSubDetector_H 1 + +enum ForwardSubdetector { ForwardEmpty=0, ForwardCFC=1, ForwardBHM=2, HGCEE=3, HGCHE=4}; + +#endif diff --git a/DataFormats/ForwardDetId/interface/HGCEEDetId.h b/DataFormats/ForwardDetId/interface/HGCEEDetId.h new file mode 100644 index 0000000000000..4f8c2f20096e6 --- /dev/null +++ b/DataFormats/ForwardDetId/interface/HGCEEDetId.h @@ -0,0 +1,42 @@ +#ifndef DataFormats_ForwardDetId_HGCEEDetId_H +#define DataFormats_ForwardDetId_HGCEEDetId_H 1 + +#include +#include "DataFormats/DetId/interface/DetId.h" +#include "DataFormats/ForwardDetId/interface/ForwardSubdetector.h" + + +class HGCEEDetId : public DetId { +public: + enum { Subdet=HGCEE}; + /** Create a null cellid*/ + HGCEEDetId(); + /** Create cellid from raw id (0=invalid tower id) */ + HGCEEDetId(uint32_t rawid); + /** Constructor from subdetector, zplus, layer, module, cell numbers */ + HGCEEDetId(ForwardSubdetector subdet, int zp, int lay, int mod, + int cellx, int celly); + /** Constructor from a generic cell id */ + HGCEEDetId(const DetId& id); + /** Assignment from a generic cell id */ + HGCEEDetId& operator=(const DetId& id); + + /// get the subdetector + ForwardSubdetector subdet() const { return HGCEE; } + /// get the z-side of the cell (1/-1) + int zside() const { return (id_&0x1000000)?(1):(-1); } + /// get the absolute value of the cell #'s in x and y + int cellX() const { return (id_>>6)&0x3F; } + int cellY() const { return id_&0x3F; } + /// get the module # + int module() const { return (id_>>12)&0x3F; } + /// get the layer # + int layer() const { return (id_>>18)&0x3F; } + + static const HGCEEDetId Undefined; + +}; + +std::ostream& operator<<(std::ostream&,const HGCEEDetId& id); + +#endif diff --git a/DataFormats/ForwardDetId/interface/HGCHEDetId.h b/DataFormats/ForwardDetId/interface/HGCHEDetId.h new file mode 100644 index 0000000000000..91e3425565009 --- /dev/null +++ b/DataFormats/ForwardDetId/interface/HGCHEDetId.h @@ -0,0 +1,43 @@ +#ifndef DataFormats_ForwardDetId_HGCHEDetId_H +#define DataFormats_ForwardDetId_HGCHEDetId_H 1 + +#include +#include "DataFormats/DetId/interface/DetId.h" +#include "DataFormats/ForwardDetId/interface/ForwardSubdetector.h" + + +class HGCHEDetId : public DetId { +public: + enum { Subdet=HGCHE}; + /** Create a null cellid*/ + HGCHEDetId(); + /** Create cellid from raw id (0=invalid tower id) */ + HGCHEDetId(uint32_t rawid); + /** Constructor from subdetector, zplus, layer, module, cell numbers */ + HGCHEDetId(ForwardSubdetector subdet, int zp, int lay, int mod, + int cellx, int celly); + /** Constructor from a generic cell id */ + HGCHEDetId(const DetId& id); + /** Assignment from a generic cell id */ + HGCHEDetId& operator=(const DetId& id); + + /// get the subdetector + ForwardSubdetector subdet() const { return HGCHE; } + /// get the z-side of the cell (1/-1) + int zside() const { return (id_&0x1000000)?(1):(-1); } + /// get the absolute value of the cell #'s in x and y + int cellX() const { return (id_>>6)&0x3F; } + int cellY() const { return id_&0x3F; } + /// get the module # + int module() const { return (id_>>12)&0x3F; } + /// get the layer # + int layer() const { return (id_>>18)&0x3F; } + + static const HGCHEDetId Undefined; + +}; + +std::ostream& operator<<(std::ostream&,const HGCHEDetId& id); + +#endif + diff --git a/DataFormats/ForwardDetId/src/CFCDetId.cc b/DataFormats/ForwardDetId/src/CFCDetId.cc new file mode 100644 index 0000000000000..2baf0f4c5e14d --- /dev/null +++ b/DataFormats/ForwardDetId/src/CFCDetId.cc @@ -0,0 +1,49 @@ +#include "DataFormats/ForwardDetId/interface/CFCDetId.h" +#include "FWCore/Utilities/interface/Exception.h" +#include + +const CFCDetId CFCDetId::Undefined(ForwardEmpty,0,0,0,0); + +CFCDetId::CFCDetId() : DetId() { +} + +CFCDetId::CFCDetId(uint32_t rawid) : DetId(rawid) { +} + +CFCDetId::CFCDetId(ForwardSubdetector subdet, int ieta, int iphi, int depth, + int type) : DetId(Forward,subdet) { + // (no checking at this point!) + id_ |= ((depth&0x7)<<21) | ((type&0x1)<20) | + ((ieta>0)?(0x1000000|((ieta&0x3FF)<<10)):(((-ieta)&0x3FF)<<10)) | + (iphi&0x3FF); +} + +CFCDetId::CFCDetId(const DetId& gen) { + if (!gen.null()) { + ForwardSubdetector subdet=(ForwardSubdetector(gen.subdetId())); + if (gen.det()!=Forward || (subdet!=ForwardCFC)) { + throw cms::Exception("Invalid DetId") << "Cannot initialize CFCDetId from " << std::hex << gen.rawId() << std::dec; + } + } + id_ = gen.rawId(); +} + +CFCDetId& CFCDetId::operator=(const DetId& gen) { + if (!gen.null()) { + ForwardSubdetector subdet=(ForwardSubdetector(gen.subdetId())); + if (gen.det()!=Forward || (subdet!=ForwardCFC)) { + throw cms::Exception("Invalid DetId") << "Cannot assign CFCDetId from " << std::hex << gen.rawId() << std::dec; + } + } + id_ = gen.rawId(); + return (*this); +} + +std::ostream& operator<<(std::ostream& s,const CFCDetId& id) { + switch (id.subdet()) { + case(ForwardCFC) : return s << "(CFC " << id.ieta() << ',' << id.iphi() << ',' << id.depth() << ',' << id.type() << ')'; + default : return s << id.rawId(); + } +} + + diff --git a/DataFormats/ForwardDetId/src/HGCEEDetId.cc b/DataFormats/ForwardDetId/src/HGCEEDetId.cc new file mode 100644 index 0000000000000..4ccabfdec598e --- /dev/null +++ b/DataFormats/ForwardDetId/src/HGCEEDetId.cc @@ -0,0 +1,48 @@ +#include "DataFormats/ForwardDetId/interface/HGCEEDetId.h" +#include "FWCore/Utilities/interface/Exception.h" +#include + +const HGCEEDetId HGCEEDetId::Undefined(ForwardEmpty,0,0,0,0,0); + +HGCEEDetId::HGCEEDetId() : DetId() { +} + +HGCEEDetId::HGCEEDetId(uint32_t rawid) : DetId(rawid) { +} + +HGCEEDetId::HGCEEDetId(ForwardSubdetector subdet, int zp, int lay, int mod, + int cellx, int celly) : DetId(Forward,subdet) { + // (no checking at this point!) + id_ |= (((zp>0) ? 0x1000000 : 0) | ((lay&0x3F)<<18) | ((mod&0x3F)<12) | + ((cellx&0x3F)<<6) | (celly&0x3F)); +} + +HGCEEDetId::HGCEEDetId(const DetId& gen) { + if (!gen.null()) { + ForwardSubdetector subdet=(ForwardSubdetector(gen.subdetId())); + if (gen.det()!=Forward || (subdet!=HGCEE)) { + throw cms::Exception("Invalid DetId") << "Cannot initialize HGCEEDetId from " << std::hex << gen.rawId() << std::dec; + } + } + id_ = gen.rawId(); +} + +HGCEEDetId& HGCEEDetId::operator=(const DetId& gen) { + if (!gen.null()) { + ForwardSubdetector subdet=(ForwardSubdetector(gen.subdetId())); + if (gen.det()!=Forward || (subdet!=HGCEE)) { + throw cms::Exception("Invalid DetId") << "Cannot assign HGCEEDetId from " << std::hex << gen.rawId() << std::dec; + } + } + id_ = gen.rawId(); + return (*this); +} + +std::ostream& operator<<(std::ostream& s,const HGCEEDetId& id) { + switch (id.subdet()) { + case(HGCEE) : return s << "(HGCEE " << id.zside() << ',' << id.layer() << ',' << id.module() << ',' << id.cellX() << ',' << id.cellY() << ')'; + default : return s << id.rawId(); + } +} + + diff --git a/DataFormats/ForwardDetId/src/HGCHEDetId.cc b/DataFormats/ForwardDetId/src/HGCHEDetId.cc new file mode 100644 index 0000000000000..41519edd19988 --- /dev/null +++ b/DataFormats/ForwardDetId/src/HGCHEDetId.cc @@ -0,0 +1,48 @@ +#include "DataFormats/ForwardDetId/interface/HGCHEDetId.h" +#include "FWCore/Utilities/interface/Exception.h" +#include + +const HGCHEDetId HGCHEDetId::Undefined(ForwardEmpty,0,0,0,0,0); + +HGCHEDetId::HGCHEDetId() : DetId() { +} + +HGCHEDetId::HGCHEDetId(uint32_t rawid) : DetId(rawid) { +} + +HGCHEDetId::HGCHEDetId(ForwardSubdetector subdet, int zp, int lay, int mod, + int cellx, int celly) : DetId(Forward,subdet) { + // (no checking at this point!) + id_ |= (((zp>0) ? 0x1000000 : 0) | ((lay&0x3F)<<18) | ((mod&0x3F)<12) | + ((cellx&0x3F)<<6) | (celly&0x3F)); +} + +HGCHEDetId::HGCHEDetId(const DetId& gen) { + if (!gen.null()) { + ForwardSubdetector subdet=(ForwardSubdetector(gen.subdetId())); + if (gen.det()!=Forward || (subdet!=HGCHE)) { + throw cms::Exception("Invalid DetId") << "Cannot initialize HGCHEDetId from " << std::hex << gen.rawId() << std::dec; + } + } + id_ = gen.rawId(); +} + +HGCHEDetId& HGCHEDetId::operator=(const DetId& gen) { + if (!gen.null()) { + ForwardSubdetector subdet=(ForwardSubdetector(gen.subdetId())); + if (gen.det()!=Forward || (subdet!=HGCHE)) { + throw cms::Exception("Invalid DetId") << "Cannot assign HGCHEDetId from " << std::hex << gen.rawId() << std::dec; + } + } + id_ = gen.rawId(); + return (*this); +} + +std::ostream& operator<<(std::ostream& s,const HGCHEDetId& id) { + switch (id.subdet()) { + case(HGCHE) : return s << "(HGCHE " << id.zside() << ',' << id.layer() << ',' << id.module() << ',' << id.cellX() << ',' << id.cellY() << ')'; + default : return s << id.rawId(); + } +} + + diff --git a/DataFormats/ForwardDetId/src/classes.h b/DataFormats/ForwardDetId/src/classes.h new file mode 100644 index 0000000000000..defa6428e5617 --- /dev/null +++ b/DataFormats/ForwardDetId/src/classes.h @@ -0,0 +1,6 @@ +#include +#include "DataFormats/ForwardDetId/interface/CFCDetId.h" +#include "DataFormats/ForwardDetId/interface/HGCEEDetId.h" +#include "DataFormats/ForwardDetId/interface/HGCHEDetId.h" + + diff --git a/DataFormats/ForwardDetId/src/classes_def.xml b/DataFormats/ForwardDetId/src/classes_def.xml new file mode 100644 index 0000000000000..af12be16278b7 --- /dev/null +++ b/DataFormats/ForwardDetId/src/classes_def.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/DataFormats/HcalDetId/interface/HcalDetId.h b/DataFormats/HcalDetId/interface/HcalDetId.h index d1147697072d1..47e0c95c22d76 100644 --- a/DataFormats/HcalDetId/interface/HcalDetId.h +++ b/DataFormats/HcalDetId/interface/HcalDetId.h @@ -22,24 +22,29 @@ class HcalDetId : public DetId { /** Create cellid from raw id (0=invalid tower id) */ HcalDetId(uint32_t rawid); /** Constructor from subdetector, signed tower ieta,iphi,and depth */ - HcalDetId(HcalSubdetector subdet, int tower_ieta, int tower_iphi, int depth); + HcalDetId(HcalSubdetector subdet, int tower_ieta, int tower_iphi, int depth, bool oldFormat = false); /** Constructor from a generic cell id */ HcalDetId(const DetId& id); /** Assignment from a generic cell id */ HcalDetId& operator=(const DetId& id); + /** Comparison operator */ + bool operator==(DetId id) const; + bool operator!=(DetId id) const; + bool operator<(DetId id) const; /// get the subdetector HcalSubdetector subdet() const { return (HcalSubdetector)(subdetId()); } + bool oldFormat() const { return ((id_&0x1000000)==0)?(true):(false); } /// get the z-side of the cell (1/-1) - int zside() const { return (id_&0x2000)?(1):(-1); } + int zside() const; /// get the absolute value of the cell ieta - int ietaAbs() const { return (id_>>7)&0x3f; } + int ietaAbs() const; /// get the cell ieta int ieta() const { return zside()*ietaAbs(); } /// get the cell iphi - int iphi() const { return id_&0x7F; } + int iphi() const; /// get the tower depth - int depth() const { return (id_>>14)&0x1F; } + int depth() const; /// get the smallest crystal_ieta of the crystal in front of this tower (HB and HE tower 17 only) int crystal_ieta_low() const { return ((ieta()-zside())*5)+zside(); } /// get the largest crystal_ieta of the crystal in front of this tower (HB and HE tower 17 only) diff --git a/DataFormats/HcalDetId/interface/HcalZDCDetId.h b/DataFormats/HcalDetId/interface/HcalZDCDetId.h index caa3ba4ab8e08..c20d629e87b62 100644 --- a/DataFormats/HcalDetId/interface/HcalZDCDetId.h +++ b/DataFormats/HcalDetId/interface/HcalZDCDetId.h @@ -17,7 +17,7 @@ */ class HcalZDCDetId : public DetId { public: - enum Section { Unknown=0, EM=1, HAD=2, LUM=3 }; + enum Section { Unknown=0, EM=1, HAD=2, LUM=3, RPD=4 }; // 1 => CaloTower, 3 => Castor static const int SubdetectorId = 2; @@ -31,15 +31,19 @@ class HcalZDCDetId : public DetId { HcalZDCDetId(const DetId& id); /** Assignment from a generic cell id */ HcalZDCDetId& operator=(const DetId& id); + /** Comparison operator */ + bool operator==(DetId id) const; + bool operator!=(DetId id) const; + bool operator<(DetId id) const; /// get the z-side of the cell (1/-1) - int zside() const { return (id_&0x40)?(1):(-1); } + int zside() const; /// get the section - Section section() const { return (Section)((id_>>4)&0x3); } + Section section() const; /// get the depth (1 for EM, channel + 1 for HAD, not sure yet for LUM, leave as default) - int depth() const { return (((id_>>4)&0x3)==1)?(1):((((id_>>4)&0x3)==2)?((id_&0xF)+1):(id_&0xF)); } + int depth() const; /// get the channel - int channel() const { return id_&0xF; } + int channel() const; uint32_t denseIndex() const ; @@ -54,11 +58,12 @@ class HcalZDCDetId : public DetId { enum { kDepEM = 5, kDepHAD = 4, kDepLUM = 2, + kDepRPD = 12, kDepTot = kDepEM + kDepHAD + kDepLUM }; public: - enum { kSizeForDenseIndexing = 2*kDepTot } ; + enum { kSizeForDenseIndexing = 2*kDepTot + 2*kDepRPD }; }; diff --git a/DataFormats/HcalDetId/src/HcalDetId.cc b/DataFormats/HcalDetId/src/HcalDetId.cc index b72dd21ed5ec8..a2bf0b637db0c 100644 --- a/DataFormats/HcalDetId/src/HcalDetId.cc +++ b/DataFormats/HcalDetId/src/HcalDetId.cc @@ -1,6 +1,6 @@ #include "DataFormats/HcalDetId/interface/HcalDetId.h" #include "FWCore/Utilities/interface/Exception.h" -#include +#include const HcalDetId HcalDetId::Undefined(HcalEmpty,0,0,0); @@ -10,11 +10,17 @@ HcalDetId::HcalDetId() : DetId() { HcalDetId::HcalDetId(uint32_t rawid) : DetId(rawid) { } -HcalDetId::HcalDetId(HcalSubdetector subdet, int tower_ieta, int tower_iphi, int depth) : DetId(Hcal,subdet) { +HcalDetId::HcalDetId(HcalSubdetector subdet, int tower_ieta, int tower_iphi, int depth, bool oldFormat) : DetId(Hcal,subdet) { // (no checking at this point!) - id_ |= ((depth&0x1F)<<14) | - ((tower_ieta>0)?(0x2000|(tower_ieta<<7)):((-tower_ieta)<<7)) | - (tower_iphi&0x7F); + if (oldFormat) { + id_ |= ((depth&0x1F)<<14) | + ((tower_ieta>0)?(0x2000|((tower_ieta&0x3F)<<7)):(((-tower_ieta)&0x3F)<<7)) | + (tower_iphi&0x7F); + } else { + id_ |= (0x1000000) | ((depth&0xF)<<19) | + ((tower_ieta>0)?(0x800000|((tower_ieta&0x1FF)<<10)):(((-tower_ieta)&0x1FF)<<10)) | + (tower_iphi&0x3FF); + } } HcalDetId::HcalDetId(const DetId& gen) { @@ -22,7 +28,8 @@ HcalDetId::HcalDetId(const DetId& gen) { HcalSubdetector subdet=(HcalSubdetector(gen.subdetId())); if (gen.det()!=Hcal || (subdet!=HcalBarrel && subdet!=HcalEndcap && - subdet!=HcalOuter && subdet!=HcalForward )) { + subdet!=HcalOuter && subdet!=HcalForward && + subdet!=HcalTriggerTower && subdet!=HcalOther)) { throw cms::Exception("Invalid DetId") << "Cannot initialize HcalDetId from " << std::hex << gen.rawId() << std::dec; } } @@ -34,15 +41,104 @@ HcalDetId& HcalDetId::operator=(const DetId& gen) { HcalSubdetector subdet=(HcalSubdetector(gen.subdetId())); if (gen.det()!=Hcal || (subdet!=HcalBarrel && subdet!=HcalEndcap && - subdet!=HcalOuter && subdet!=HcalForward )) - { - throw cms::Exception("Invalid DetId") << "Cannot assign HcalDetId from " << std::hex << gen.rawId() << std::dec; - } + subdet!=HcalOuter && subdet!=HcalForward && + subdet!=HcalTriggerTower && subdet!=HcalOther)) { + throw cms::Exception("Invalid DetId") << "Cannot assign HcalDetId from " << std::hex << gen.rawId() << std::dec; + } } id_=gen.rawId(); return (*this); } +bool HcalDetId::operator==(DetId gen) const { + uint32_t rawid = gen.rawId(); + if (rawid == id_) return true; + int zsid, eta, phi, dep; + if ((rawid&0x1000000)==0) { + zsid = (rawid&0x2000)?(1):(-1); + eta = (rawid>>7)&0x3F; + phi = rawid&0x7F; + dep = (rawid>>14)&0x1F; + } else { + zsid = (rawid&0x800000)?(1):(-1); + eta = (rawid>>10)&0x1FF; + phi = rawid&0x3FF; + dep = (rawid>>19)&0xF; + } + bool result=(zsid==zside() && eta==ietaAbs() && phi==iphi() && dep==depth()); + return result; +} + +bool HcalDetId::operator!=(DetId gen) const { + uint32_t rawid = gen.rawId(); + if (rawid == id_) return false; + int zsid, eta, phi, dep; + if ((rawid&0x1000000)==0) { + zsid = (rawid&0x2000)?(1):(-1); + eta = (rawid>>7)&0x3F; + phi = rawid&0x7F; + dep = (rawid>>14)&0x1F; + } else { + zsid = (rawid&0x800000)?(1):(-1); + eta = (rawid>>10)&0x1FF; + phi = rawid&0x3FF; + dep = (rawid>>19)&0xF; + } + bool result=(zsid!=zside() || eta!=ietaAbs() || phi!=iphi() || dep!=depth()); + return result; +} + +bool HcalDetId::operator<(DetId gen) const { + uint32_t rawid = gen.rawId(); + if ((rawid&0x1000000)==(id_&0x1000000)) { + return id_>7)&0x3F; + phi = rawid&0x7F; + dep = (rawid>>14)&0x1F; + } else { + zsid = (rawid&0x800000)?(1):(-1); + eta = (rawid>>10)&0x1FF; + phi = rawid&0x3FF; + dep = (rawid>>19)&0xF; + } + rawid = 0; + if ((id_&0x1000000) == 0) { + rawid |= ((dep&0x1F)<<14) | + ((zsid>0)?(0x2000|((eta&0x3F)<<7)):((eta&0x3F)<<7)) | + (phi&0x7F); + } else { + rawid |= (0x1000000) | ((dep&0xF)<<19) | + ((zsid>0)?(0x800000|((eta&0x1FF)<<10)):((eta&0x1FF)<<10)) | + (phi&0x3FF); + } + return (id_&0x1FFFFFF)>7)&0x3F; + else return (id_>>10)&0x1FF; +} + +int HcalDetId::iphi() const { + if (oldFormat()) return id_&0x7F; + else return id_&0x3FF; +} + +int HcalDetId::depth() const { + if (oldFormat()) return (id_>>14)&0x1F; + else return (id_>>19)&0xF; +} + int HcalDetId::crystal_iphi_low() const { int simple_iphi=((iphi()-1)*5)+1; simple_iphi+=10; diff --git a/DataFormats/HcalDetId/src/HcalZDCDetId.cc b/DataFormats/HcalDetId/src/HcalZDCDetId.cc index 9b4ec2c123b79..5979dc07fde3e 100644 --- a/DataFormats/HcalDetId/src/HcalZDCDetId.cc +++ b/DataFormats/HcalDetId/src/HcalZDCDetId.cc @@ -1,5 +1,6 @@ #include "DataFormats/HcalDetId/interface/HcalZDCDetId.h" #include "FWCore/Utilities/interface/Exception.h" +#include HcalZDCDetId::HcalZDCDetId() : DetId() { } @@ -9,9 +10,11 @@ HcalZDCDetId::HcalZDCDetId(uint32_t rawid) : DetId(rawid) { } HcalZDCDetId::HcalZDCDetId(Section section, bool true_for_positive_eta, int channel) : DetId(DetId::Calo,SubdetectorId) { - id_|=(section&0x3)<<4; - if (true_for_positive_eta) id_|=0x40; - id_|=channel&0xF; + id_|=(section&0x7)<<5; // 3-bits 5:7 (range 0:7) + if (true_for_positive_eta) id_|=0x100; // 1-bit 8:8 (range 0:1) + id_|=channel&0x1F; // 5-bits 0:4 (range 0:31) + id_|=0x10000; // 1-bit 16:16 (change of format) +//std::cout << "HcalZDCDetID::HcalZDCDetId: id_ "<>4)&0x3; + chn = rawid&0xF; + } else { + zsid = (rawid&0x100)?(1):(-1); + sec = (rawid>>5)&0x7; + chn = rawid&0x1F; + } + bool result = (zsid==zside() && sec==section() && chn==channel()); + return result; +} + +bool HcalZDCDetId::operator!=(DetId gen) const { + uint32_t rawid = gen.rawId(); + if (rawid == id_) return false; + int zsid, sec, chn; + if ((rawid&0x10000)==0) { + zsid = (rawid&0x40)?(1):(-1); + sec = (rawid>>4)&0x3; + chn = rawid&0xF; + } else { + zsid = (rawid&0x100)?(1):(-1); + sec = (rawid>>5)&0x7; + chn = rawid&0x1F; + } + bool result = (zsid!=zside() || sec!=section() || chn!=channel()); + return result; +} + +bool HcalZDCDetId::operator<(DetId gen) const { + uint32_t rawid = gen.rawId(); + if ((rawid&0x10000)==(id_&0x10000)) { + return id_>4)&0x3; + chn = rawid&0xF; + } else { + zsid = (rawid&0x100)?(1):(-1); + sec = (rawid>>5)&0x7; + chn = rawid&0x1F; + } + rawid = 0; + if ((id_&0x10000) == 0) { + rawid |= (sec&0x3)<<4; + if (zsid > 0) rawid |= 0x40; + rawid |= chn&0xF; + } else { + rawid |= (sec&0x7)<<5; + if (zsid > 0) rawid |= 0x100; + rawid |= chn&0x1F; + rawid |= 0x10000; + } + return (id_&0x1FFFF)>5)&0x7); + else return (Section)((id_>>4)&0x3); +} + +int HcalZDCDetId::depth() const { + if (section() == EM) return 1; + else if (section() == HAD) return (1+channel()); + else return channel(); +} + +int HcalZDCDetId::channel() const { + if (id_&0x10000) return id_&0x1F; + else return id_&0xF; +} + +uint32_t HcalZDCDetId::denseIndex() const { const int se ( section() ) ; - return ( ( zside()<0 ? 0 : kDepTot ) + channel() - 1 + - ( se == HAD ? kDepEM : - ( se == LUM ? kDepEM + kDepHAD : 0 ) ) ) ; + uint32_t indx = channel() - 1; + if (se == RPD) { + indx += (2*kDepTot + zside()<0 ? 0 : kDepRPD); + } else { + indx += ( (zside()<0 ? 0 : kDepTot) + + ( se == HAD ? kDepEM : + ( se == LUM ? kDepEM + kDepHAD : 0) ) ); + } + return indx; } -HcalZDCDetId -HcalZDCDetId::detIdFromDenseIndex( uint32_t di ) -{ - if( validDenseIndex( di ) ) - { +HcalZDCDetId HcalZDCDetId::detIdFromDenseIndex( uint32_t di ) { + if( validDenseIndex( di ) ) { + if (di >= 2*kDepTot) { const bool lz ( di >= kDepTot ) ; const uint32_t in ( di%kDepTot ) ; const Section se ( in= 2*kDepTot+kDepRPD ) ; + const uint32_t in ((di-2*kDepTot)%kDepRPD ); + const Section se (RPD); + const uint32_t dp ( in+1 ); +// std::cout<<"HcalZDCDetID:: section: "<= 1 && ( ( ( se == EM ) && ( dp <= kDepEM ) ) || ( ( se == HAD ) && ( dp <= kDepHAD ) ) || ( ( se == LUM ) && - ( dp <= kDepLUM ) ) + ( dp <= kDepLUM ) ) || + ( ( se == RPD ) && + ( dp <= kDepRPD ) ) ) ) ; } @@ -78,6 +174,7 @@ std::ostream& operator<<(std::ostream& s,const HcalZDCDetId& id) { case(HcalZDCDetId::EM) : s << " EM "; break; case(HcalZDCDetId::HAD) : s << " HAD "; break; case(HcalZDCDetId::LUM) : s << " LUM "; break; + case(HcalZDCDetId::RPD) : s << " RPD "; break; default : s <<" UNKNOWN "; } return s << id.channel() << "," << id.depth() << ')'; diff --git a/DataFormats/HcalDetId/test/BuildFile.xml b/DataFormats/HcalDetId/test/BuildFile.xml new file mode 100644 index 0000000000000..f38aa54cbc38a --- /dev/null +++ b/DataFormats/HcalDetId/test/BuildFile.xml @@ -0,0 +1,3 @@ + + + diff --git a/DataFormats/HcalDetId/test/HcalDetIdTest.cpp b/DataFormats/HcalDetId/test/HcalDetIdTest.cpp new file mode 100644 index 0000000000000..aead96d9f7eb8 --- /dev/null +++ b/DataFormats/HcalDetId/test/HcalDetIdTest.cpp @@ -0,0 +1,55 @@ +#include "DataFormats/HcalDetId/interface/HcalDetId.h" + +#include +#include + +void testDetId(HcalSubdetector subdet, std::string str) { + + int etamin, etamax, dmin, dmax; + switch(subdet) { + case HcalEndcap: + dmin = 1; dmax = 3; etamin = 17; etamax = 29; + break; + case HcalForward: + dmin = 1; dmax = 2; etamin = 29; etamax = 41; + break; + case HcalOuter: + dmin = 4; dmax = 4; etamin = 1; etamax = 15; + break; + default: + dmin = 1; dmax = 2; etamin = 1; etamax = 16; + break; + } + int phis[4] = {11, 27, 47, 63}; + int zside[2] = {1, -1}; + std::string sp[2] = {" ", " "}; + + std::cout << std::endl << "HCAL Det ID for " << str << " (" << subdet + << ")" << std::endl; + for (int eta=etamin; eta <= etamax; ++eta) { + for (int depth=dmin; depth <= dmax; ++depth) { + for (int fi=0; fi<4; ++fi) { + for (int iz=0; iz<2; ++iz) { + HcalDetId id1 = HcalDetId(subdet, zside[iz]*eta, phis[fi], depth); + HcalDetId id2 = HcalDetId(subdet, zside[iz]*eta, phis[fi], depth, true); + std::cout << "Input " << subdet << ":" << zside[iz]*eta << ":" + << phis[fi] << ":" << depth << sp[iz] << " New " << id1 + << sp[iz] << " Old " << id2 << std::endl; + } + } + } + } + std::cout << std::endl << std::endl; +} + +int main() { + + std::cout << "Test Hcal DetID in old and new Format" << std::endl; + + testDetId (HcalBarrel, "BARREL" ); + testDetId (HcalEndcap, "ENDCAP" ); + testDetId (HcalOuter, "OUTER " ); + testDetId (HcalForward, "FORWARD" ); + + return 0; +} diff --git a/DataFormats/MuonDetId/doc/MuonDetId.doc b/DataFormats/MuonDetId/doc/MuonDetId.doc index cb8fa2f0160e5..0991b0967436d 100644 --- a/DataFormats/MuonDetId/doc/MuonDetId.doc +++ b/DataFormats/MuonDetId/doc/MuonDetId.doc @@ -19,6 +19,8 @@ Concrete DetId classes for muon detectors (all subsystems). - CSCDetId - CSCTriggerNumbering - RPCDetId +- GEMDetId +- ME0DetId The DT DetIds have been specialized for the various levels of the DT geometry: - DTChamberId @@ -35,6 +37,7 @@ None. - testCSCDetId : unit test - testDTDetId : unit test - testRPCDetId : unit test +- testME0DetId : unit test \section status Status and planned development diff --git a/DataFormats/MuonDetId/interface/ME0DetId.h b/DataFormats/MuonDetId/interface/ME0DetId.h new file mode 100644 index 0000000000000..cb99cff2e0755 --- /dev/null +++ b/DataFormats/MuonDetId/interface/ME0DetId.h @@ -0,0 +1,114 @@ +#ifndef MuonDetId_ME0DetId_h +#define MuonDetId_ME0DetId_h + +/** \class ME0DetId + * + * DetUnit identifier for ME0s + * + */ + +#include +#include + +#include +#include + +class ME0DetId :public DetId { + + public: + + ME0DetId(); + + /// Construct from a packed id. It is required that the Detector part of + /// id is Muon and the SubDet part is ME0, otherwise an exception is thrown. + ME0DetId(uint32_t id); + ME0DetId(DetId id); + + + /// Construct from fully qualified identifier. + ME0DetId(int region, + int layer, + int chamber, + int roll); + + + /// Sort Operator based on the raw detector id + bool operator < (const ME0DetId& r) const{ + if (this->layer() == r.layer() ){ + return this->rawId()layer() < r.layer()); + } + } + + /// Region id: 0 for Barrel Not in use, +/-1 For +/- Endcap + int region() const{ + return int((id_>>RegionStartBit_) & RegionMask_) + minRegionId; + } + + /// Layer id: each station have two layers of chambers: layer 1 is the inner chamber and layer 2 is the outer chamber (when present) + int layer() const{ + return int((id_>>LayerStartBit_) & LayerMask_) + minLayerId; + } + + /// Chamber id: it identifies a chamber in a ring it goes from 1 to 36 + int chamber() const{ + return int((id_>>ChamberStartBit_) & ChamberMask_) + minChamberId; + } + + /// Roll id (also known as eta partition): each chamber is divided along the strip direction in + /// several parts (rolls) ME0 up to 10 + int roll() const{ + return int((id_>>RollStartBit_) & RollMask_) + minRollId; // value 0 is used as wild card + } + + + /// Return the corresponding ChamberId + ME0DetId chamberId() const { + return ME0DetId(id_ & chamberIdMask_); + } + + static const int minRegionId= -1; + static const int maxRegionId= 1; + + static const int minChamberId= 0; + static const int maxChamberId= 36; + + static const int minLayerId= 0; + static const int maxLayerId= 31; + + static const int minRollId= 0; + static const int maxRollId= 31; + + private: + static const int RegionNumBits_ = 2; + static const int RegionStartBit_ = 0; + static const int RegionMask_ = 0X3; + + static const int ChamberNumBits_ = 6; + static const int ChamberStartBit_ = RegionStartBit_+RegionNumBits_; + static const unsigned int ChamberMask_ = 0X3F; + + static const int LayerNumBits_ = 5; + static const int LayerStartBit_ = ChamberStartBit_+ChamberNumBits_; + static const unsigned int LayerMask_ = 0X1F; + + static const int RollNumBits_ = 5; + static const int RollStartBit_ = LayerStartBit_+LayerNumBits_; + static const unsigned int RollMask_ = 0X1F; + + static const uint32_t chamberIdMask_ = ~(RollMask_< +#include + +ME0DetId::ME0DetId():DetId(DetId::Muon, MuonSubdetId::ME0){} + + +ME0DetId::ME0DetId(uint32_t id):DetId(id){ + if (det()!=DetId::Muon || subdetId()!=MuonSubdetId::ME0) { + throw cms::Exception("InvalidDetId") << "ME0DetId ctor:" + << " det: " << det() + << " subdet: " << subdetId() + << " is not a valid ME0 id"; + } +} + +ME0DetId::ME0DetId(DetId id):DetId(id) { + if (det()!=DetId::Muon || subdetId()!=MuonSubdetId::ME0) { + throw cms::Exception("InvalidDetId") << "ME0DetId ctor:" + << " det: " << det() + << " subdet: " << subdetId() + << " is not a valid ME0 id"; + } +} + +ME0DetId::ME0DetId(int region, int layer,int chamber, int roll): + DetId(DetId::Muon, MuonSubdetId::ME0) +{ + this->init(region,layer,chamber,roll); +} + +void +ME0DetId::init(int region,int layer,int chamber,int roll) +{ + if ( region < minRegionId || region > maxRegionId || + layer < minLayerId || layer > maxLayerId || + chamber < minChamberId || chamber > maxChamberId || + roll < minRollId || roll > maxRollId) { + throw cms::Exception("InvalidDetId") << "ME0DetId ctor:" + << " Invalid parameters: " + << " region "< + + + diff --git a/DataFormats/MuonDetId/test/BuildFile.xml b/DataFormats/MuonDetId/test/BuildFile.xml index 34d2620550074..a46bb34dc8de6 100644 --- a/DataFormats/MuonDetId/test/BuildFile.xml +++ b/DataFormats/MuonDetId/test/BuildFile.xml @@ -1,6 +1,6 @@ - + diff --git a/DataFormats/MuonDetId/test/testME0DetId.cc b/DataFormats/MuonDetId/test/testME0DetId.cc new file mode 100644 index 0000000000000..9d218052aae72 --- /dev/null +++ b/DataFormats/MuonDetId/test/testME0DetId.cc @@ -0,0 +1,126 @@ +/** + \file + test file for ME0DetId + + \author Marcello Maggi from an example of Stefano ARGIRO + \date 06 Jan 2014 +*/ + +#include +#include +#include + +#include +using namespace std; + +class testME0DetId: public CppUnit::TestFixture +{ +CPPUNIT_TEST_SUITE(testME0DetId); +CPPUNIT_TEST(testOne); +CPPUNIT_TEST(testFail); +CPPUNIT_TEST(testMemberOperators); +CPPUNIT_TEST_SUITE_END(); + +public: + void setUp(){} + void tearDown(){} + + void testOne(); + void testFail(); + void testMemberOperators(); +}; + +///registration of the test so that the runner can find it +CPPUNIT_TEST_SUITE_REGISTRATION(testME0DetId); + +void testME0DetId::testOne(){ + + + for (int region=ME0DetId::minRegionId; region<=ME0DetId::maxRegionId; ++region) + { + for (int layer=ME0DetId::minLayerId; layer<=ME0DetId::maxLayerId; ++layer) + for (int chamber=ME0DetId::minChamberId; chamber<=ME0DetId::maxChamberId; ++chamber){ + for (int roll=ME0DetId::minRollId; roll<=ME0DetId::maxRollId; ++roll){ + + + ME0DetId detid(region, layer, chamber, roll); + CPPUNIT_ASSERT(detid.region() == region); + CPPUNIT_ASSERT(detid.layer() == layer); + CPPUNIT_ASSERT(detid.chamber() == chamber); + CPPUNIT_ASSERT(detid.roll() == roll); + + // test constructor from id + int myId = detid.rawId(); + ME0DetId anotherId(myId); + CPPUNIT_ASSERT(detid==anotherId); + + } + } + } +} + + +void testME0DetId::testFail(){ + + + // contruct using an invalid input index + try { + // Wrong Layer + ME0DetId detid(0,57,0,0); + CPPUNIT_ASSERT("Failed to throw required exception 0" == 0); + detid.rawId(); // avoid compiler warning + } catch (cms::Exception& e) { + // OK + } catch (...) { + CPPUNIT_ASSERT("Threw wrong kind of exception 0" == 0); + } + + try { + // Wrong Region + ME0DetId detid(2,0,0,0); + CPPUNIT_ASSERT("Failed to throw required exception 1" == 0); + detid.rawId(); // avoid compiler warning + } catch (cms::Exception& e) { + // OK + } catch (...) { + CPPUNIT_ASSERT("Threw wrong kind of exception 1" == 0); + } + + try { + // Not existant chamber number + ME0DetId detid(-1,1,37,1); + CPPUNIT_ASSERT("Failed to throw required exception 2" == 0); + detid.rawId(); // avoid compiler warning + } catch (cms::Exception& e) { + // OK + } catch (...) { + CPPUNIT_ASSERT("Threw wrong kind of exception 2" == 0); + } + + // contruct using an invalid input id + try { + ME0DetId detid(100); + CPPUNIT_ASSERT("Failed to throw required exception 3" == 0); + detid.rawId(); // avoid compiler warning + } catch (cms::Exception& e) { + // OK + } catch (...) { + CPPUNIT_ASSERT("Threw wrong kind of exception 3" == 0); + } + +} + + +void testME0DetId::testMemberOperators(){ + ME0DetId unit1(1,5,3,5); + ME0DetId unit2=unit1; + + CPPUNIT_ASSERT(unit2==unit1); + + ME0DetId chamber = unit1.chamberId(); + ME0DetId unit3(1,5,3,0); + + CPPUNIT_ASSERT(chamber==unit3); + + +} diff --git a/Fireworks/Geometry/interface/FWRecoGeometryESProducer.h b/Fireworks/Geometry/interface/FWRecoGeometryESProducer.h index a0e0877df3973..9daeb9e7ec64f 100644 --- a/Fireworks/Geometry/interface/FWRecoGeometryESProducer.h +++ b/Fireworks/Geometry/interface/FWRecoGeometryESProducer.h @@ -35,6 +35,7 @@ class FWRecoGeometryESProducer : public edm::ESProducer void addDTGeometry( void ); void addRPCGeometry( void ); void addGEMGeometry( void ); + void addME0Geometry( void ); void addPixelBarrelGeometry( void ); void addPixelForwardGeometry( void ); void addTIBGeometry( void ); diff --git a/Fireworks/Geometry/python/dumpFWRecoGeometry2017_cfg.py b/Fireworks/Geometry/python/dumpFWRecoGeometry2017_cfg.py new file mode 100644 index 0000000000000..5724ddbfe318d --- /dev/null +++ b/Fireworks/Geometry/python/dumpFWRecoGeometry2017_cfg.py @@ -0,0 +1,34 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("DUMP") +process.load('Configuration.Geometry.GeometryExtended2017_cff') +process.load('Configuration.Geometry.GeometryExtended2017Reco_cff') + +process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:upgrade2017', '') + +process.add_(cms.ESProducer("FWRecoGeometryESProducer")) + +#Adding Timing service: +process.Timing = cms.Service("Timing") +process.options = cms.untracked.PSet( + wantSummary = cms.untracked.bool(True) + ) + +process.source = cms.Source("EmptySource") + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) + ) +process.dump = cms.EDAnalyzer("DumpFWRecoGeometry", + level = cms.untracked.int32(1) + ) + +process.p = cms.Path(process.dump) + +# Automatic addition of the customisation function from SLHCUpgradeSimulations.Configuration.combinedCustoms +from SLHCUpgradeSimulations.Configuration.combinedCustoms import cust_2017 + +#call to customisation function cust_2017 imported from SLHCUpgradeSimulations.Configuration.combinedCustoms +process = cust_2017(process) diff --git a/Fireworks/Geometry/src/FWRecoGeometryESProducer.cc b/Fireworks/Geometry/src/FWRecoGeometryESProducer.cc index caa49511444f3..d09c1993ffc00 100644 --- a/Fireworks/Geometry/src/FWRecoGeometryESProducer.cc +++ b/Fireworks/Geometry/src/FWRecoGeometryESProducer.cc @@ -15,6 +15,7 @@ #include "Geometry/DTGeometry/interface/DTLayer.h" #include "Geometry/RPCGeometry/interface/RPCGeometry.h" #include "Geometry/GEMGeometry/interface/GEMGeometry.h" +#include "Geometry/GEMGeometry/interface/ME0Geometry.h" #include "Geometry/Records/interface/CaloGeometryRecord.h" #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" #include "Geometry/TrackerGeometryBuilder/interface/RectangularPixelTopology.h" @@ -62,7 +63,7 @@ } \ } \ -FWRecoGeometryESProducer::FWRecoGeometryESProducer( const edm::ParameterSet& ) +FWRecoGeometryESProducer::FWRecoGeometryESProducer( const edm::ParameterSet& ps ) : m_current( -1 ) { setWhatProduced( this ); @@ -95,6 +96,7 @@ FWRecoGeometryESProducer::produce( const FWRecoGeometryRecord& record ) addCSCGeometry(); addRPCGeometry(); addGEMGeometry(); + addME0Geometry(); addCaloGeometry(); m_fwGeometry->idToName.resize( m_current + 1 ); @@ -109,12 +111,8 @@ FWRecoGeometryESProducer::addCSCGeometry( void ) { DetId detId( DetId::Muon, 2 ); const CSCGeometry* cscGeometry = (const CSCGeometry*) m_geomRecord->slaveGeometry( detId ); - for( std::vector::const_iterator it = cscGeometry->chambers().begin(), - end = cscGeometry->chambers().end(); - it != end; ++it ) + for(auto chamber : cscGeometry->chambers()) { - const CSCChamber *chamber = *it; - if( chamber ) { unsigned int rawid = chamber->geographicalId(); @@ -123,12 +121,8 @@ FWRecoGeometryESProducer::addCSCGeometry( void ) // // CSC layers geometry // - for( std::vector< const CSCLayer* >::const_iterator lit = chamber->layers().begin(), - lend = chamber->layers().end(); - lit != lend; ++lit ) + for(auto layer : chamber->layers()) { - const CSCLayer* layer = *lit; - if( layer ) { unsigned int rawid = layer->geographicalId(); @@ -161,12 +155,8 @@ FWRecoGeometryESProducer::addDTGeometry( void ) // // DT chambers geometry // - for( std::vector::const_iterator it = dtGeometry->chambers().begin(), - end = dtGeometry->chambers().end(); - it != end; ++it ) + for(auto chamber : dtGeometry->chambers()) { - const DTChamber *chamber = *it; - if( chamber ) { unsigned int rawid = chamber->geographicalId().rawId(); @@ -176,12 +166,8 @@ FWRecoGeometryESProducer::addDTGeometry( void ) } // Fill in DT layer parameters - for( std::vector::const_iterator it = dtGeometry->layers().begin(), - end = dtGeometry->layers().end(); - it != end; ++it ) + for(auto layer : dtGeometry->layers()) { - const DTLayer* layer = *it; - if( layer ) { unsigned int rawid = layer->id().rawId(); @@ -213,24 +199,29 @@ FWRecoGeometryESProducer::addRPCGeometry( void ) // RPC rolls geometry // DetId detId( DetId::Muon, 3 ); - const RPCGeometry* rpcGeom = (const RPCGeometry*) m_geomRecord->slaveGeometry( detId ); - for( std::vector::const_iterator it = rpcGeom->rolls().begin(), - end = rpcGeom->rolls().end(); - it != end; ++it ) + + try { - RPCRoll* roll = (*it); - if( roll ) + const RPCGeometry* rpcGeom = (const RPCGeometry*) m_geomRecord->slaveGeometry( detId ); + for(auto roll : rpcGeom->rolls()) { - unsigned int rawid = roll->geographicalId().rawId(); - unsigned int current = insert_id( rawid ); - fillShapeAndPlacement( current, roll ); - - const StripTopology& topo = roll->specificTopology(); - m_fwGeometry->idToName[current].topology[0] = topo.nstrips(); - m_fwGeometry->idToName[current].topology[1] = topo.stripLength(); - m_fwGeometry->idToName[current].topology[2] = topo.pitch(); + if( roll ) + { + unsigned int rawid = roll->geographicalId().rawId(); + unsigned int current = insert_id( rawid ); + fillShapeAndPlacement( current, roll ); + + const StripTopology& topo = roll->specificTopology(); + m_fwGeometry->idToName[current].topology[0] = topo.nstrips(); + m_fwGeometry->idToName[current].topology[1] = topo.stripLength(); + m_fwGeometry->idToName[current].topology[2] = topo.pitch(); + } } } + catch( cms::Exception &exception ) + { + edm::LogInfo("FWRecoGeometry") << "failed to produce RPC geometry " << exception.what() << std::endl; + } } void @@ -240,34 +231,79 @@ FWRecoGeometryESProducer::addGEMGeometry( void ) // GEM geometry // DetId detId( DetId::Muon, 4 ); - const GEMGeometry* gemGeom = (const GEMGeometry*) m_geomRecord->slaveGeometry( detId ); - for( std::vector::const_iterator it = gemGeom->etaPartitions().begin(), - end = gemGeom->etaPartitions().end(); - it != end; ++it ) - { - GEMEtaPartition* roll = (*it); - if( roll ) - { - unsigned int rawid = (*it)->geographicalId().rawId(); - unsigned int current = insert_id( rawid ); - fillShapeAndPlacement( current, roll ); - - const StripTopology& topo = roll->specificTopology(); - m_fwGeometry->idToName[current].topology[0] = topo.nstrips(); - m_fwGeometry->idToName[current].topology[1] = topo.stripLength(); - m_fwGeometry->idToName[current].topology[2] = topo.pitch(); - - float height = topo.stripLength()/2; - LocalPoint lTop( 0., height, 0.); - LocalPoint lBottom( 0., -height, 0.); - m_fwGeometry->idToName[current].topology[3] = roll->localPitch(lTop); - m_fwGeometry->idToName[current].topology[4] = roll->localPitch(lBottom); - m_fwGeometry->idToName[current].topology[5] = roll->npads(); + + try + { + const GEMGeometry* gemGeom = (const GEMGeometry*) m_geomRecord->slaveGeometry( detId ); + + for(auto roll : gemGeom->etaPartitions()) + { + if( roll ) + { + unsigned int rawid = roll->geographicalId().rawId(); + unsigned int current = insert_id( rawid ); + fillShapeAndPlacement( current, roll ); + + const StripTopology& topo = roll->specificTopology(); + m_fwGeometry->idToName[current].topology[0] = topo.nstrips(); + m_fwGeometry->idToName[current].topology[1] = topo.stripLength(); + m_fwGeometry->idToName[current].topology[2] = topo.pitch(); + + float height = topo.stripLength()/2; + LocalPoint lTop( 0., height, 0.); + LocalPoint lBottom( 0., -height, 0.); + m_fwGeometry->idToName[current].topology[3] = roll->localPitch(lTop); + m_fwGeometry->idToName[current].topology[4] = roll->localPitch(lBottom); + m_fwGeometry->idToName[current].topology[5] = roll->npads(); + } } } + catch( cms::Exception &exception ) + { + edm::LogInfo("FWRecoGeometry") << "failed to produce GEM geometry " << exception.what() << std::endl; + } } +void +FWRecoGeometryESProducer::addME0Geometry( void ) +{ + // + // ME0 geometry + // + DetId detId( DetId::Muon, 5 ); + try + { + const ME0Geometry* me0Geom = (const ME0Geometry*) m_geomRecord->slaveGeometry( detId ); + + for(auto roll : me0Geom->etaPartitions()) + { + if( roll ) + { + unsigned int rawid = roll->geographicalId().rawId(); + unsigned int current = insert_id( rawid ); + fillShapeAndPlacement( current, roll ); + + //const StripTopology& topo = roll->specificTopology(); + // m_fwGeometry->idToName[current].topology[0] = topo.nstrips(); + // m_fwGeometry->idToName[current].topology[1] = topo.stripLength(); + //m_fwGeometry->idToName[current].topology[2] = topo.pitch(); + + //float height = topo.stripLength()/2; + // LocalPoint lTop( 0., height, 0.); + //LocalPoint lBottom( 0., -height, 0.); + //m_fwGeometry->idToName[current].topology[3] = roll->localPitch(lTop); + //m_fwGeometry->idToName[current].topology[4] = roll->localPitch(lBottom); + //m_fwGeometry->idToName[current].topology[5] = roll->npads(); + } + } + } + catch( cms::Exception &exception ) + { + edm::LogInfo("FWRecoGeometry") << "failed to produce ME0 geometry " << exception.what() << std::endl; + } +} + void FWRecoGeometryESProducer::addPixelBarrelGeometry( void ) { diff --git a/Fireworks/Tracks/src/TrackUtils.cc b/Fireworks/Tracks/src/TrackUtils.cc index 7c82706097f64..de44949416132 100644 --- a/Fireworks/Tracks/src/TrackUtils.cc +++ b/Fireworks/Tracks/src/TrackUtils.cc @@ -44,6 +44,7 @@ #include "DataFormats/MuonDetId/interface/CSCDetId.h" #include "DataFormats/MuonDetId/interface/RPCDetId.h" #include "DataFormats/MuonDetId/interface/GEMDetId.h" +#include "DataFormats/MuonDetId/interface/ME0DetId.h" #include "DataFormats/EcalDetId/interface/EcalSubdetector.h" #include "DataFormats/EcalDetId/interface/EEDetId.h" @@ -811,6 +812,15 @@ info(const DetId& id) { << detId.layer(); } break; + case MuonSubdetId::ME0: + { + ME0DetId detId(id.rawId()); + oss << "ME0 chamber (region, chamber, layer): " + << detId.region() << ", " + << detId.chamber() << ", " + << detId.layer(); + } + break; } break; diff --git a/Geometry/CMSCommonData/data/PhaseI/cms.xml b/Geometry/CMSCommonData/data/PhaseI/cms.xml index f85ca8239fc73..65ae61ec733b3 100644 --- a/Geometry/CMSCommonData/data/PhaseI/cms.xml +++ b/Geometry/CMSCommonData/data/PhaseI/cms.xml @@ -12,6 +12,7 @@ + @@ -21,6 +22,7 @@ + diff --git a/Geometry/CMSCommonData/data/PhaseII/caloBase.xml b/Geometry/CMSCommonData/data/PhaseII/caloBase.xml new file mode 100644 index 0000000000000..2c5e2c6dffaa0 --- /dev/null +++ b/Geometry/CMSCommonData/data/PhaseII/caloBase.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/CMSCommonData/data/PhaseII/muonBase.xml b/Geometry/CMSCommonData/data/PhaseII/muonBase.xml new file mode 100644 index 0000000000000..65562b09b6215 --- /dev/null +++ b/Geometry/CMSCommonData/data/PhaseII/muonBase.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/CMSCommonData/data/cms.xml b/Geometry/CMSCommonData/data/cms.xml index d2a89a0311485..2828e74c8bb59 100644 --- a/Geometry/CMSCommonData/data/cms.xml +++ b/Geometry/CMSCommonData/data/cms.xml @@ -10,7 +10,8 @@ - + + @@ -20,6 +21,7 @@ + diff --git a/Geometry/CMSCommonData/data/eta3/etaMax.xml b/Geometry/CMSCommonData/data/eta3/etaMax.xml new file mode 100644 index 0000000000000..e880e7b39146a --- /dev/null +++ b/Geometry/CMSCommonData/data/eta3/etaMax.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Geometry/CMSCommonData/data/eta4/etaMax.xml b/Geometry/CMSCommonData/data/eta4/etaMax.xml new file mode 100644 index 0000000000000..abb22d5db8398 --- /dev/null +++ b/Geometry/CMSCommonData/data/eta4/etaMax.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Geometry/CMSCommonData/data/materials.xml b/Geometry/CMSCommonData/data/materials.xml index 73a7cea6cf5c3..fc6e8af9a2556 100644 --- a/Geometry/CMSCommonData/data/materials.xml +++ b/Geometry/CMSCommonData/data/materials.xml @@ -243,6 +243,9 @@ + + + diff --git a/Geometry/CMSCommonData/python/Phase1_R34F16_cmsSimIdealGeometryXML_cff.py b/Geometry/CMSCommonData/python/Phase1_R34F16_cmsSimIdealGeometryXML_cff.py index d33e2e2f4eaaa..2f8aaf0053c4c 100644 --- a/Geometry/CMSCommonData/python/Phase1_R34F16_cmsSimIdealGeometryXML_cff.py +++ b/Geometry/CMSCommonData/python/Phase1_R34F16_cmsSimIdealGeometryXML_cff.py @@ -2,6 +2,8 @@ from Geometry.CMSCommonData.Phase1_R34F16_cmsSimIdealGeometryXML_cfi import * from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * +from Geometry.HcalCommonData.hcalSimNumberingInitialization_cfi import * +from Geometry.HcalCommonData.hcalRecNumberingInitialization_cfi import * # Reconstruction geometry services # Tracking Geometry diff --git a/Geometry/CMSCommonData/python/Phase1_R34F16_cmsSimIdealGeometryXML_cfi.py b/Geometry/CMSCommonData/python/Phase1_R34F16_cmsSimIdealGeometryXML_cfi.py index 00ac90b0782de..e7618997994c1 100644 --- a/Geometry/CMSCommonData/python/Phase1_R34F16_cmsSimIdealGeometryXML_cfi.py +++ b/Geometry/CMSCommonData/python/Phase1_R34F16_cmsSimIdealGeometryXML_cfi.py @@ -202,7 +202,8 @@ 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', - 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -211,12 +212,15 @@ 'Geometry/EcalCommonData/data/eeF.xml', 'Geometry/EcalCommonData/data/eeB.xml', 'Geometry/HcalCommonData/data/hcalrotations.xml', - 'Geometry/HcalCommonData/data/hcalalgo.xml', + 'Geometry/HcalCommonData/data/PhaseI/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo.xml', 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', - 'Geometry/HcalCommonData/data/hcalendcapalgo.xml', + 'Geometry/HcalCommonData/data/PhaseI/hcalendcapalgo.xml', 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/PhaseI/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/PhaseI/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', @@ -232,7 +236,7 @@ 'Geometry/ForwardCommonData/data/totemRotations.xml', 'Geometry/ForwardCommonData/data/totemt1.xml', 'Geometry/ForwardCommonData/data/totemt2.xml', - 'Geometry/ForwardCommonData/data/ionpump.xml', + 'Geometry/ForwardCommonData/data/ionpump.xml')+cms.vstring( 'Geometry/MuonCommonData/data/muonNumbering.xml', 'Geometry/TrackerCommonData/data/PhaseI/trackerStructureTopology.xml', 'Geometry/TrackerSimData/data/PhaseI/trackersens.xml', diff --git a/Geometry/CMSCommonData/python/cmsAllGeometryXML_cfi.py b/Geometry/CMSCommonData/python/cmsAllGeometryXML_cfi.py index e8d1a8e5140a6..9902e1a6bbfa9 100644 --- a/Geometry/CMSCommonData/python/cmsAllGeometryXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsAllGeometryXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -215,6 +216,8 @@ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', 'Geometry/HcalCommonData/data/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsDesignGeometryXML_cfi.py b/Geometry/CMSCommonData/python/cmsDesignGeometryXML_cfi.py index de000a47ea121..4a92dc006eb17 100644 --- a/Geometry/CMSCommonData/python/cmsDesignGeometryXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsDesignGeometryXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2015XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2015XML_cfi.py index 768082d62cdb2..9aeeef130c4b8 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2015XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2015XML_cfi.py @@ -202,6 +202,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -216,6 +217,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/v1/mbCommon.xml', 'Geometry/MuonCommonData/data/v1/mb1.xml', 'Geometry/MuonCommonData/data/v1/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2016XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2016XML_cfi.py index b7e7296035f08..006ce5aa611d5 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2016XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2016XML_cfi.py @@ -204,6 +204,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -218,6 +219,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/v1/mbCommon.xml', 'Geometry/MuonCommonData/data/v1/mb1.xml', 'Geometry/MuonCommonData/data/v1/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2017XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2017XML_cfi.py index b7e7296035f08..38d33f3afc824 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2017XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2017XML_cfi.py @@ -206,6 +206,7 @@ 'Geometry/EcalCommonData/data/eecon.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eealgo.xml', 'Geometry/EcalCommonData/data/escon.xml', 'Geometry/EcalCommonData/data/esalgo.xml', @@ -218,6 +219,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/v1/mbCommon.xml', 'Geometry/MuonCommonData/data/v1/mb1.xml', 'Geometry/MuonCommonData/data/v1/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2019PFCalXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2019PFCalXML_cfi.py index e27067e30af6d..96144b9ab261f 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2019PFCalXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2019PFCalXML_cfi.py @@ -204,6 +204,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', ## 'Geometry/EcalCommonData/data/eefixed.xml', ## 'Geometry/EcalCommonData/data/eehier.xml', ## 'Geometry/EcalCommonData/data/eealgo.xml', @@ -213,11 +214,14 @@ ## 'Geometry/EcalCommonData/data/eeB.xml', 'Geometry/HcalCommonData/data/hcalrotations.xml', 'Geometry/HcalCommonData/data/PhaseII/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo.xml', 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', ## 'Geometry/HcalCommonData/data/PhaseII/hcalendcapalgo.xml', 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/PhaseII/NoHE/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/PhaseII/NoHE/hcalRecNumbering.xml', 'Geometry/PFCalGeometry/data/pfcal.xml', 'Geometry/MuonCommonData/data/v1/mbCommon.xml', 'Geometry/MuonCommonData/data/v1/mb1.xml', @@ -253,7 +257,7 @@ 'Geometry/TrackerSimData/data/PhaseI/trackersens.xml', 'Geometry/TrackerRecoData/data/PhaseI/trackerRecoMaterial.xml', 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', - 'Geometry/HcalCommonData/data/PhaseII/hcalsenspmf.xml', + 'Geometry/HcalCommonData/data/PhaseII/NoHE/hcalsenspmf.xml', 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2019XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2019XML_cfi.py index 2ae17bacbeca7..e00e861c79ac0 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2019XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2019XML_cfi.py @@ -204,6 +204,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -212,11 +213,14 @@ 'Geometry/EcalCommonData/data/eeF.xml', 'Geometry/EcalCommonData/data/eeB.xml', 'Geometry/HcalCommonData/data/hcalrotations.xml', - 'Geometry/HcalCommonData/data/hcalalgo.xml', + 'Geometry/HcalCommonData/data/PhaseI/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo.xml', 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', - 'Geometry/HcalCommonData/data/hcalendcapalgo.xml', + 'Geometry/HcalCommonData/data/PhaseI/hcalendcapalgo.xml', 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/PhaseI/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/PhaseI/hcalRecNumbering.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', 'Geometry/MuonCommonData/data/v1/mbCommon.xml', 'Geometry/MuonCommonData/data/v1/mb1.xml', @@ -226,7 +230,7 @@ 'Geometry/MuonCommonData/data/design/muonYoke.xml', 'Geometry/MuonCommonData/data/v2/mf.xml', 'Geometry/MuonCommonData/data/v2/rpcf.xml', - 'Geometry/MuonCommonData/data/v4/gemf.xml', + 'Geometry/MuonCommonData/data/v5/gemf.xml', 'Geometry/MuonCommonData/data/v2/csc.xml', 'Geometry/MuonCommonData/data/v2/mfshield.xml', 'Geometry/ForwardCommonData/data/forward.xml', @@ -247,7 +251,7 @@ 'Geometry/ForwardCommonData/data/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml')+cms.vstring( 'Geometry/MuonCommonData/data/v2/muonNumbering.xml', - 'Geometry/MuonCommonData/data/v2/muonGemNumbering.xml', + 'Geometry/MuonCommonData/data/v5/muonGemNumbering.xml', 'Geometry/TrackerCommonData/data/PhaseI/trackerStructureTopology.xml', 'Geometry/TrackerSimData/data/PhaseI/trackersens.xml', 'Geometry/TrackerRecoData/data/PhaseI/trackerRecoMaterial.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2023HGCalMuonXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2023HGCalMuonXML_cfi.py new file mode 100644 index 0000000000000..2e49b57a9ce80 --- /dev/null +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2023HGCalMuonXML_cfi.py @@ -0,0 +1,127 @@ +import FWCore.ParameterSet.Config as cms + +## 2015 + new phase 1 pixel detector + Tracker BarrelEndcap5Dv(described as a pixel detector before the detid migration) + Full PhaseII Muon +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring('Geometry/CMSCommonData/data/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/cmsextent.xml', + 'Geometry/CMSCommonData/data/PhaseI/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/PhaseII/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/PhaseII/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/PhaseI/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavern.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdMaterials.xml', + 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdCylinder.xml', + 'Geometry/TrackerCommonData/data/PhaseII/BarrelEndcap5D/pixfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdDisks.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdInnerDisk1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdInnerDisk2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdInnerDisk3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdOuterDisk1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdOuterDisk2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdOuterDisk3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdblade1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdblade2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdblade3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarmaterial.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarladder.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarladderfull0.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarladderfull1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarladderfull2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarladderfull3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarlayer.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarlayer0.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarlayer1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarlayer2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarlayer3.xml', + 'Geometry/TrackerCommonData/data/PhaseII/BarrelEndcap5D/pixbar.xml', + 'Geometry/TrackerCommonData/data/trackermaterial.xml', + 'Geometry/TrackerCommonData/data/PhaseII/BarrelEndcap5D/tracker.xml', + 'Geometry/TrackerCommonData/data/trackerpixbar.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerpixfwd.xml', + 'Geometry/EcalCommonData/data/PhaseII/eregalgo.xml', + 'Geometry/EcalCommonData/data/ebalgo.xml', + 'Geometry/EcalCommonData/data/ebcon.xml', + 'Geometry/EcalCommonData/data/ebrot.xml', + 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/HcalCommonData/data/hcalrotations.xml', + 'Geometry/HcalCommonData/data/PhaseII/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HGCalCommonData/data/hgcal.xml', + 'Geometry/HGCalCommonData/data/hgcalEE.xml', + 'Geometry/HGCalCommonData/data/hgcalHE.xml', +## 'Geometry/PFCalGeometry/data/pfcal.xml', + 'Geometry/MuonCommonData/data/v1/mbCommon.xml', + 'Geometry/MuonCommonData/data/v1/mb1.xml', + 'Geometry/MuonCommonData/data/v1/mb2.xml', + 'Geometry/MuonCommonData/data/v1/mb3.xml', + 'Geometry/MuonCommonData/data/v1/mb4.xml', + 'Geometry/MuonCommonData/data/design/muonYoke.xml', + 'Geometry/MuonCommonData/data/v7/mf.xml', + 'Geometry/MuonCommonData/data/upscope/rpcf.xml', + 'Geometry/MuonCommonData/data/v6/gemf.xml', + 'Geometry/MuonCommonData/data/v6/gem21.xml', + 'Geometry/MuonCommonData/data/v2/csc.xml', + 'Geometry/MuonCommonData/data/v7/mfshield.xml', + 'Geometry/MuonCommonData/data/v7/me0.xml', + 'Geometry/ForwardCommonData/data/forward.xml', + 'Geometry/ForwardCommonData/data/v2/forwardshield.xml', + 'Geometry/ForwardCommonData/data/brmrotations.xml', + 'Geometry/ForwardCommonData/data/brm.xml', + 'Geometry/ForwardCommonData/data/totemMaterials.xml', + 'Geometry/ForwardCommonData/data/totemRotations.xml', + 'Geometry/ForwardCommonData/data/totemt1.xml', + 'Geometry/ForwardCommonData/data/totemt2.xml', + 'Geometry/ForwardCommonData/data/ionpump.xml', + 'Geometry/ForwardCommonData/data/castor.xml', + 'Geometry/ForwardCommonData/data/zdcmaterials.xml', + 'Geometry/ForwardCommonData/data/lumimaterials.xml', + 'Geometry/ForwardCommonData/data/zdcrotations.xml', + 'Geometry/ForwardCommonData/data/lumirotations.xml', + 'Geometry/ForwardCommonData/data/zdc.xml', + 'Geometry/ForwardCommonData/data/zdclumi.xml', + 'Geometry/ForwardCommonData/data/cmszdc.xml')+cms.vstring( + 'Geometry/MuonCommonData/data/PhaseII/v2/muonNumbering.xml', + 'Geometry/TrackerCommonData/data/PhaseII/BarrelEndcap5D/trackerStructureTopology.xml', + 'Geometry/TrackerSimData/data/PhaseII/BarrelEndcap5D/trackersens.xml', + 'Geometry/TrackerRecoData/data/PhaseII/BarrelEndcap5D/trackerRecoMaterial.xml', + 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', + 'Geometry/HcalCommonData/data/PhaseII/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/v2/muonSens.xml', + 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/RPCSpecs.xml', + 'Geometry/GEMGeometryBuilder/data/v5/GEMSpecs.xml', + 'Geometry/ForwardCommonData/data/brmsens.xml', + 'Geometry/ForwardSimData/data/castorsens.xml', + 'Geometry/ForwardSimData/data/zdcsens.xml', + 'Geometry/HcalSimData/data/HcalProdCuts.xml', + 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/TrackerSimData/data/PhaseII/BarrelEndcap5D/trackerProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', + 'Geometry/MuonSimData/data/v2/muonProdCuts.xml', + 'Geometry/ForwardSimData/data/CastorProdCuts.xml', + 'Geometry/ForwardSimData/data/zdcProdCuts.xml', + 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml'), + rootNodeName = cms.string('cms:OCMS') +) + + diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2023HGCalXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2023HGCalXML_cfi.py index 6a69e6524cefb..33317cc38c42a 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2023HGCalXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2023HGCalXML_cfi.py @@ -9,9 +9,9 @@ 'Geometry/CMSCommonData/data/PhaseI/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase.xml', + 'Geometry/CMSCommonData/data/PhaseII/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase.xml', + 'Geometry/CMSCommonData/data/PhaseII/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', 'Geometry/CMSCommonData/data/PhaseI/beampipe.xml', @@ -54,12 +54,16 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/HcalCommonData/data/hcalrotations.xml', 'Geometry/HcalCommonData/data/PhaseII/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo.xml', 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/PhaseII/NoHE/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/PhaseII/NoHE/hcalRecNumbering.xml', 'Geometry/HGCalCommonData/data/hgcal.xml', 'Geometry/HGCalCommonData/data/hgcalEE.xml', 'Geometry/HGCalCommonData/data/hgcalHE.xml', @@ -70,11 +74,13 @@ 'Geometry/MuonCommonData/data/v1/mb3.xml', 'Geometry/MuonCommonData/data/v1/mb4.xml', 'Geometry/MuonCommonData/data/design/muonYoke.xml', - 'Geometry/MuonCommonData/data/v2/mf.xml', + 'Geometry/MuonCommonData/data/v7/mf.xml', 'Geometry/MuonCommonData/data/v2/rpcf.xml', - 'Geometry/MuonCommonData/data/v4/gemf.xml', + 'Geometry/MuonCommonData/data/v6/gemf.xml', + 'Geometry/MuonCommonData/data/v6/gem21.xml', 'Geometry/MuonCommonData/data/v2/csc.xml', - 'Geometry/MuonCommonData/data/v2/mfshield.xml', + 'Geometry/MuonCommonData/data/v7/mfshield.xml', + 'Geometry/MuonCommonData/data/v7/me0.xml', 'Geometry/ForwardCommonData/data/forward.xml', 'Geometry/ForwardCommonData/data/v2/forwardshield.xml', 'Geometry/ForwardCommonData/data/brmrotations.xml', @@ -92,23 +98,22 @@ 'Geometry/ForwardCommonData/data/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml')+cms.vstring( - 'Geometry/MuonCommonData/data/v2/muonNumbering.xml', - 'Geometry/MuonCommonData/data/v2/muonGemNumbering.xml', + 'Geometry/MuonCommonData/data/v7/muonNumbering.xml', 'Geometry/TrackerCommonData/data/PhaseII/BarrelEndcap5D/trackerStructureTopology.xml', 'Geometry/TrackerSimData/data/PhaseII/BarrelEndcap5D/trackersens.xml', 'Geometry/TrackerRecoData/data/PhaseII/BarrelEndcap5D/trackerRecoMaterial.xml', 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', - 'Geometry/HcalCommonData/data/PhaseII/hcalsenspmf.xml', + 'Geometry/HcalCommonData/data/PhaseII/NoHE/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/v2/muonSens.xml', + 'Geometry/MuonSimData/data/v4/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', 'Geometry/RPCGeometryBuilder/data/RPCSpecs.xml', - 'Geometry/GEMGeometryBuilder/data/v4/GEMSpecs.xml', + 'Geometry/GEMGeometryBuilder/data/v5/GEMSpecs.xml', 'Geometry/ForwardCommonData/data/brmsens.xml', 'Geometry/ForwardSimData/data/castorsens.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', @@ -116,7 +121,7 @@ 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/BarrelEndcap5D/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/MuonSimData/data/muonProdCuts.xml', + 'Geometry/MuonSimData/data/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/CastorProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2023RPCUpscopeXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2023RPCUpscopeXML_cfi.py new file mode 100644 index 0000000000000..6e7730b750f5b --- /dev/null +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2023RPCUpscopeXML_cfi.py @@ -0,0 +1,129 @@ +import FWCore.ParameterSet.Config as cms + +## 2015 + new phase 1 pixel detector + Tracker BarrelEndcap5Dv(described as a pixel detector before the detid migration) + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring('Geometry/CMSCommonData/data/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/cmsextent.xml', + 'Geometry/CMSCommonData/data/PhaseI/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/PhaseI/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavern.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdMaterials.xml', + 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdCylinder.xml', + 'Geometry/TrackerCommonData/data/PhaseII/BarrelEndcap5D/pixfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdDisks.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdInnerDisk1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdInnerDisk2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdInnerDisk3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdOuterDisk1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdOuterDisk2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdOuterDisk3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdblade1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdblade2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdblade3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarmaterial.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarladder.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarladderfull0.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarladderfull1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarladderfull2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarladderfull3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarlayer.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarlayer0.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarlayer1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarlayer2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarlayer3.xml', + 'Geometry/TrackerCommonData/data/PhaseII/BarrelEndcap5D/pixbar.xml', + 'Geometry/TrackerCommonData/data/trackermaterial.xml', + 'Geometry/TrackerCommonData/data/PhaseII/BarrelEndcap5D/tracker.xml', + 'Geometry/TrackerCommonData/data/trackerpixbar.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerpixfwd.xml', + 'Geometry/EcalCommonData/data/eregalgo.xml', + 'Geometry/EcalCommonData/data/ebalgo.xml', + 'Geometry/EcalCommonData/data/ebcon.xml', + 'Geometry/EcalCommonData/data/ebrot.xml', + 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/eefixed.xml', + 'Geometry/EcalCommonData/data/eehier.xml', + 'Geometry/EcalCommonData/data/eealgo.xml', + 'Geometry/EcalCommonData/data/escon.xml', + 'Geometry/EcalCommonData/data/esalgo.xml', + 'Geometry/EcalCommonData/data/eeF.xml', + 'Geometry/EcalCommonData/data/eeB.xml', + 'Geometry/HcalCommonData/data/hcalrotations.xml', + 'Geometry/HcalCommonData/data/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/hcalendcapalgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/MuonCommonData/data/v1/mbCommon.xml', + 'Geometry/MuonCommonData/data/v1/mb1.xml', + 'Geometry/MuonCommonData/data/v1/mb2.xml', + 'Geometry/MuonCommonData/data/v1/mb3.xml', + 'Geometry/MuonCommonData/data/v1/mb4.xml', + 'Geometry/MuonCommonData/data/design/muonYoke.xml', + 'Geometry/MuonCommonData/data/v2/mf.xml', + 'Geometry/MuonCommonData/data/upscope/rpcf.xml', + 'Geometry/MuonCommonData/data/v2/csc.xml', + 'Geometry/MuonCommonData/data/v2/mfshield.xml', + 'Geometry/ForwardCommonData/data/forward.xml', + 'Geometry/ForwardCommonData/data/v2/forwardshield.xml', + 'Geometry/ForwardCommonData/data/brmrotations.xml', + 'Geometry/ForwardCommonData/data/brm.xml', + 'Geometry/ForwardCommonData/data/totemMaterials.xml', + 'Geometry/ForwardCommonData/data/totemRotations.xml', + 'Geometry/ForwardCommonData/data/totemt1.xml', + 'Geometry/ForwardCommonData/data/totemt2.xml', + 'Geometry/ForwardCommonData/data/ionpump.xml', + 'Geometry/ForwardCommonData/data/castor.xml', + 'Geometry/ForwardCommonData/data/zdcmaterials.xml', + 'Geometry/ForwardCommonData/data/lumimaterials.xml', + 'Geometry/ForwardCommonData/data/zdcrotations.xml', + 'Geometry/ForwardCommonData/data/lumirotations.xml', + 'Geometry/ForwardCommonData/data/zdc.xml', + 'Geometry/ForwardCommonData/data/zdclumi.xml', + 'Geometry/ForwardCommonData/data/cmszdc.xml')+cms.vstring( + 'Geometry/MuonCommonData/data/PhaseII/muonNumbering.xml', + 'Geometry/TrackerCommonData/data/PhaseII/BarrelEndcap5D/trackerStructureTopology.xml', + 'Geometry/TrackerSimData/data/PhaseII/BarrelEndcap5D/trackersens.xml', + 'Geometry/TrackerRecoData/data/PhaseII/BarrelEndcap5D/trackerRecoMaterial.xml', + 'Geometry/EcalSimData/data/ecalsens.xml', + 'Geometry/HcalCommonData/data/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/DTGeometryBuilder/data/dtSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/RPCSpecs.xml', + 'Geometry/ForwardCommonData/data/brmsens.xml', + 'Geometry/ForwardSimData/data/castorsens.xml', + 'Geometry/ForwardSimData/data/zdcsens.xml', + 'Geometry/HcalSimData/data/HcalProdCuts.xml', + 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/EcalSimData/data/ESProdCuts.xml', + 'Geometry/TrackerSimData/data/PhaseII/BarrelEndcap5D/trackerProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', + 'Geometry/MuonSimData/data/muonProdCuts.xml', + 'Geometry/ForwardSimData/data/CastorProdCuts.xml', + 'Geometry/ForwardSimData/data/zdcProdCuts.xml', + 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml'), + rootNodeName = cms.string('cms:OCMS') +) + + diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2023SHCalXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2023SHCalXML_cfi.py index 00924560ae14b..02105e321a55e 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2023SHCalXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2023SHCalXML_cfi.py @@ -9,7 +9,7 @@ 'Geometry/CMSCommonData/data/PhaseI/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase.xml', + 'Geometry/CMSCommonData/data/PhaseII/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/CMSCommonData/data/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', @@ -54,12 +54,17 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/HcalCommonData/data/hcalrotations.xml', 'Geometry/HcalCommonData/data/PhaseII/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo.xml', 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/PhaseII/hcalendcapalgo.xml', 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/PhaseII/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/PhaseII/hcalRecNumbering.xml', 'Geometry/HGCalCommonData/data/shashlik.xml', 'Geometry/MuonCommonData/data/v1/mbCommon.xml', 'Geometry/MuonCommonData/data/v1/mb1.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2023XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2023XML_cfi.py new file mode 100644 index 0000000000000..dadf2ce2c3e6d --- /dev/null +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2023XML_cfi.py @@ -0,0 +1,129 @@ +import FWCore.ParameterSet.Config as cms + +## 2015 + new phase 1 pixel detector + Tracker BarrelEndcap5Dv(described as a pixel detector before the detid migration) + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring('Geometry/CMSCommonData/data/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/cmsextent.xml', + 'Geometry/CMSCommonData/data/PhaseI/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/PhaseI/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavern.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdMaterials.xml', + 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdCylinder.xml', + 'Geometry/TrackerCommonData/data/PhaseII/BarrelEndcap5D/pixfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdDisks.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdInnerDisk1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdInnerDisk2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdInnerDisk3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdOuterDisk1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdOuterDisk2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdOuterDisk3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdblade1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdblade2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixfwdblade3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarmaterial.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarladder.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarladderfull0.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarladderfull1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarladderfull2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarladderfull3.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarlayer.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarlayer0.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarlayer1.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarlayer2.xml', + 'Geometry/TrackerCommonData/data/PhaseI/pixbarlayer3.xml', + 'Geometry/TrackerCommonData/data/PhaseII/BarrelEndcap5D/pixbar.xml', + 'Geometry/TrackerCommonData/data/trackermaterial.xml', + 'Geometry/TrackerCommonData/data/PhaseII/BarrelEndcap5D/tracker.xml', + 'Geometry/TrackerCommonData/data/trackerpixbar.xml', + 'Geometry/TrackerCommonData/data/PhaseI/trackerpixfwd.xml', + 'Geometry/EcalCommonData/data/eregalgo.xml', + 'Geometry/EcalCommonData/data/ebalgo.xml', + 'Geometry/EcalCommonData/data/ebcon.xml', + 'Geometry/EcalCommonData/data/ebrot.xml', + 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/eefixed.xml', + 'Geometry/EcalCommonData/data/eehier.xml', + 'Geometry/EcalCommonData/data/eealgo.xml', + 'Geometry/EcalCommonData/data/escon.xml', + 'Geometry/EcalCommonData/data/esalgo.xml', + 'Geometry/EcalCommonData/data/eeF.xml', + 'Geometry/EcalCommonData/data/eeB.xml', + 'Geometry/HcalCommonData/data/hcalrotations.xml', + 'Geometry/HcalCommonData/data/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/hcalendcapalgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/MuonCommonData/data/v1/mbCommon.xml', + 'Geometry/MuonCommonData/data/v1/mb1.xml', + 'Geometry/MuonCommonData/data/v1/mb2.xml', + 'Geometry/MuonCommonData/data/v1/mb3.xml', + 'Geometry/MuonCommonData/data/v1/mb4.xml', + 'Geometry/MuonCommonData/data/design/muonYoke.xml', + 'Geometry/MuonCommonData/data/v2/mf.xml', + 'Geometry/MuonCommonData/data/v2/rpcf.xml', + 'Geometry/MuonCommonData/data/v2/csc.xml', + 'Geometry/MuonCommonData/data/v2/mfshield.xml', + 'Geometry/ForwardCommonData/data/forward.xml', + 'Geometry/ForwardCommonData/data/v2/forwardshield.xml', + 'Geometry/ForwardCommonData/data/brmrotations.xml', + 'Geometry/ForwardCommonData/data/brm.xml', + 'Geometry/ForwardCommonData/data/totemMaterials.xml', + 'Geometry/ForwardCommonData/data/totemRotations.xml', + 'Geometry/ForwardCommonData/data/totemt1.xml', + 'Geometry/ForwardCommonData/data/totemt2.xml', + 'Geometry/ForwardCommonData/data/ionpump.xml', + 'Geometry/ForwardCommonData/data/castor.xml', + 'Geometry/ForwardCommonData/data/zdcmaterials.xml', + 'Geometry/ForwardCommonData/data/lumimaterials.xml', + 'Geometry/ForwardCommonData/data/zdcrotations.xml', + 'Geometry/ForwardCommonData/data/lumirotations.xml', + 'Geometry/ForwardCommonData/data/zdc.xml', + 'Geometry/ForwardCommonData/data/zdclumi.xml', + 'Geometry/ForwardCommonData/data/cmszdc.xml')+cms.vstring( + 'Geometry/MuonCommonData/data/v2/muonNumbering.xml', + 'Geometry/TrackerCommonData/data/PhaseII/BarrelEndcap5D/trackerStructureTopology.xml', + 'Geometry/TrackerSimData/data/PhaseII/BarrelEndcap5D/trackersens.xml', + 'Geometry/TrackerRecoData/data/PhaseII/BarrelEndcap5D/trackerRecoMaterial.xml', + 'Geometry/EcalSimData/data/ecalsens.xml', + 'Geometry/HcalCommonData/data/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/muonSens.xml', + 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/RPCSpecs.xml', + 'Geometry/ForwardCommonData/data/brmsens.xml', + 'Geometry/ForwardSimData/data/castorsens.xml', + 'Geometry/ForwardSimData/data/zdcsens.xml', + 'Geometry/HcalSimData/data/HcalProdCuts.xml', + 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/EcalSimData/data/ESProdCuts.xml', + 'Geometry/TrackerSimData/data/PhaseII/BarrelEndcap5D/trackerProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', + 'Geometry/MuonSimData/data/muonProdCuts.xml', + 'Geometry/ForwardSimData/data/CastorProdCuts.xml', + 'Geometry/ForwardSimData/data/zdcProdCuts.xml', + 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml'), + rootNodeName = cms.string('cms:OCMS') +) + + diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryFlat10PercentXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryFlat10PercentXML_cfi.py index e15d477e6db81..9ee5be35f3665 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryFlat10PercentXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryFlat10PercentXML_cfi.py @@ -201,6 +201,7 @@ 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', 'Geometry/EcalCommonData/data/eefixed.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', 'Geometry/EcalCommonData/data/escon.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryFlat10Services30PercentXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryFlat10Services30PercentXML_cfi.py index f19c1bad1a363..90a252e18942a 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryFlat10Services30PercentXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryFlat10Services30PercentXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryFlat20PercentXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryFlat20PercentXML_cfi.py index 0210398efb9cc..d74f70b591046 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryFlat20PercentXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryFlat20PercentXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryFlat20Services30PercentXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryFlat20Services30PercentXML_cfi.py index 2854c63d7e1dc..59714c1665c2c 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryFlat20Services30PercentXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryFlat20Services30PercentXML_cfi.py @@ -201,6 +201,7 @@ 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', 'Geometry/EcalCommonData/data/eefixed.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', 'Geometry/EcalCommonData/data/escon.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryGFlashXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryGFlashXML_cfi.py index 71f6ceb9dcafc..812f2865463b2 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryGFlashXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryGFlashXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -215,6 +216,8 @@ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', 'Geometry/HcalCommonData/data/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryHFLibraryNoCastorXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryHFLibraryNoCastorXML_cfi.py index 96a3990959d10..5a770b083887e 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryHFLibraryNoCastorXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryHFLibraryNoCastorXML_cfi.py @@ -201,6 +201,7 @@ 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', 'Geometry/EcalCommonData/data/eefixed.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', 'Geometry/EcalCommonData/data/escon.xml', @@ -215,6 +216,8 @@ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', 'Geometry/HcalCommonData/data/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryHFLibraryXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryHFLibraryXML_cfi.py index 40207cc10a99f..4954d7054aaad 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryHFLibraryXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryHFLibraryXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -215,6 +216,8 @@ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', 'Geometry/HcalCommonData/data/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryHFParametrizeXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryHFParametrizeXML_cfi.py index 19128785633f0..1e477b2a193fa 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryHFParametrizeXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryHFParametrizeXML_cfi.py @@ -202,6 +202,7 @@ 'Geometry/EcalCommonData/data/eecon.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eealgo.xml', 'Geometry/EcalCommonData/data/escon.xml', 'Geometry/EcalCommonData/data/esalgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryInflated10PixelBarrelConnToSTXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryInflated10PixelBarrelConnToSTXML_cfi.py index 250ce6eb0660a..75d0752454cda 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryInflated10PixelBarrelConnToSTXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryInflated10PixelBarrelConnToSTXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryInflated10PixelBarrelConnXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryInflated10PixelBarrelConnXML_cfi.py index 570969d641578..416b8116bcddc 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryInflated10PixelBarrelConnXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryInflated10PixelBarrelConnXML_cfi.py @@ -201,6 +201,7 @@ 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', 'Geometry/EcalCommonData/data/eefixed.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', 'Geometry/EcalCommonData/data/escon.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryInflated10TIBFlangeXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryInflated10TIBFlangeXML_cfi.py index ded03ea989bb4..6902cf2679a3c 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryInflated10TIBFlangeXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryInflated10TIBFlangeXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryInflated10TIBTIDMargheritaXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryInflated10TIBTIDMargheritaXML_cfi.py index 56117fdb4de6c..905822fb8e184 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryInflated10TIBTIDMargheritaXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryInflated10TIBTIDMargheritaXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryInflated10TIBTIDServiceCylinderXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryInflated10TIBTIDServiceCylinderXML_cfi.py index 25583006ba181..e7b0890309d15 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryInflated10TIBTIDServiceCylinderXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryInflated10TIBTIDServiceCylinderXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryLiMaxXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryLiMaxXML_cfi.py index b6910a521d4f5..60729a6896b8f 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryLiMaxXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryLiMaxXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryLiMinXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryLiMinXML_cfi.py index 2720be41f53a1..eccbf052296ff 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryLiMinXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryLiMinXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryModularXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryModularXML_cfi.py index 185b0b0ac5275..a04f2cb9b6050 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryModularXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryModularXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryNewBeamPipeXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryNewBeamPipeXML_cfi.py index 2199f730d521d..e03637626d32f 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryNewBeamPipeXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryNewBeamPipeXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryNoCastorXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryNoCastorXML_cfi.py index f9f4c08398342..cb622390387b1 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryNoCastorXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryNoCastorXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryPhase2TkBE5DXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryPhase2TkBE5DXML_cfi.py index 1e7f1d026e425..f5b13ea821628 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryPhase2TkBE5DXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryPhase2TkBE5DXML_cfi.py @@ -204,6 +204,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -218,6 +219,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/v1/mbCommon.xml', 'Geometry/MuonCommonData/data/v1/mb1.xml', 'Geometry/MuonCommonData/data/v1/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryPhase2TkBEXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryPhase2TkBEXML_cfi.py index 1db1673373cb4..b1123d2725f4a 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryPhase2TkBEXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryPhase2TkBEXML_cfi.py @@ -204,6 +204,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -218,6 +219,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/v1/mbCommon.xml', 'Geometry/MuonCommonData/data/v1/mb1.xml', 'Geometry/MuonCommonData/data/v1/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryPhase2TkLB4LPS_2L2SXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryPhase2TkLB4LPS_2L2SXML_cfi.py index b06c0270840e6..20ca68e7323f3 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryPhase2TkLB4LPS_2L2SXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryPhase2TkLB4LPS_2L2SXML_cfi.py @@ -204,6 +204,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -218,6 +219,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/v1/mbCommon.xml', 'Geometry/MuonCommonData/data/v1/mb1.xml', 'Geometry/MuonCommonData/data/v1/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryPhase2TkLB6PSXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryPhase2TkLB6PSXML_cfi.py index 9b5d3d7b35294..2ab9ee5ccc028 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryPhase2TkLB6PSXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryPhase2TkLB6PSXML_cfi.py @@ -205,6 +205,7 @@ 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', 'Geometry/EcalCommonData/data/eefixed.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', 'Geometry/EcalCommonData/data/escon.xml', @@ -218,6 +219,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/v1/mbCommon.xml', 'Geometry/MuonCommonData/data/v1/mb1.xml', 'Geometry/MuonCommonData/data/v1/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryPhaseIBeamPipeXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryPhaseIBeamPipeXML_cfi.py index 65dd993d04153..eb16becd5f2f1 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryPhaseIBeamPipeXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryPhaseIBeamPipeXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryPhaseIIPixelForwardXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryPhaseIIPixelForwardXML_cfi.py index 44325b90170f5..a7de54b082194 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryPhaseIIPixelForwardXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryPhaseIIPixelForwardXML_cfi.py @@ -219,6 +219,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -233,6 +234,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/v1/mbCommon.xml', 'Geometry/MuonCommonData/data/v1/mb1.xml', 'Geometry/MuonCommonData/data/v1/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryPhaseIPixelForwardXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryPhaseIPixelForwardXML_cfi.py index 1c880274620ed..97c7bf766497b 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryPhaseIPixelForwardXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryPhaseIPixelForwardXML_cfi.py @@ -222,6 +222,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -236,6 +237,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryPhaseIPixelXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryPhaseIPixelXML_cfi.py index 6b68d42b14144..608b78a461f1b 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryPhaseIPixelXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryPhaseIPixelXML_cfi.py @@ -204,6 +204,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -218,6 +219,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryPostLS1XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryPostLS1XML_cfi.py index 67a590f2498cc..a82e246e4ad33 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryPostLS1XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryPostLS1XML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/v1/mbCommon.xml', 'Geometry/MuonCommonData/data/v1/mb1.xml', 'Geometry/MuonCommonData/data/v1/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryPostLS2XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryPostLS2XML_cfi.py index ff7f6ca016a0b..3cc191a4c1a29 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryPostLS2XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryPostLS2XML_cfi.py @@ -203,6 +203,7 @@ 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', 'Geometry/EcalCommonData/data/eefixed.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', 'Geometry/EcalCommonData/data/escon.xml', @@ -216,6 +217,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/v1/mbCommon.xml', 'Geometry/MuonCommonData/data/v1/mb1.xml', 'Geometry/MuonCommonData/data/v1/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryServices30PercentXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryServices30PercentXML_cfi.py index 1d9dbd45fd7e2..37db3848c3fa9 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryServices30PercentXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryServices30PercentXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryX0MaxXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryX0MaxXML_cfi.py index 583371ee46242..ef606b86956e0 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryX0MaxXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryX0MaxXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryX0MinXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryX0MinXML_cfi.py index 984930c79f15f..d127d9692dc0e 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryX0MinXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryX0MinXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryXML_cfi.py index 19128785633f0..996c0d91d74bd 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometryZeroMaterialXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometryZeroMaterialXML_cfi.py index 1f08584c5955e..9aa5c4694f8d1 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometryZeroMaterialXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometryZeroMaterialXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsHFPMTAverageXML_cfi.py b/Geometry/CMSCommonData/python/cmsHFPMTAverageXML_cfi.py index 649840ba5d9e0..01632e46ab2f6 100644 --- a/Geometry/CMSCommonData/python/cmsHFPMTAverageXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsHFPMTAverageXML_cfi.py @@ -199,6 +199,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -213,6 +214,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsHFPMTFibreXML_cfi.py b/Geometry/CMSCommonData/python/cmsHFPMTFibreXML_cfi.py index 068b0b5add026..0258283530f93 100644 --- a/Geometry/CMSCommonData/python/cmsHFPMTFibreXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsHFPMTFibreXML_cfi.py @@ -199,6 +199,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -213,6 +214,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsHFPMTXML_cfi.py b/Geometry/CMSCommonData/python/cmsHFPMTXML_cfi.py index 5eb3d2d81c473..975fc2301f763 100644 --- a/Geometry/CMSCommonData/python/cmsHFPMTXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsHFPMTXML_cfi.py @@ -199,6 +199,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', 'Geometry/HcalCommonData/data/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', @@ -230,7 +233,7 @@ 'Geometry/ForwardCommonData/data/totemt1.xml', 'Geometry/ForwardCommonData/data/totemt2.xml', 'Geometry/ForwardCommonData/data/ionpump.xml', - 'Geometry/MuonCommonData/data/muonNumbering.xml', + 'Geometry/MuonCommonData/data/muonNumbering.xml')+cms.vstring( 'Geometry/TrackerCommonData/data/trackerStructureTopology.xml', 'Geometry/TrackerSimData/data/trackersens.xml', 'Geometry/TrackerRecoData/data/trackerRecoMaterial.xml', diff --git a/Geometry/CMSCommonData/python/cmsIdealGeometryAPD1XML_cfi.py b/Geometry/CMSCommonData/python/cmsIdealGeometryAPD1XML_cfi.py index 53a4d59a246f9..4b3ea8b06e0ef 100644 --- a/Geometry/CMSCommonData/python/cmsIdealGeometryAPD1XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsIdealGeometryAPD1XML_cfi.py @@ -199,6 +199,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', 'Geometry/HcalCommonData/data/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsIdealGeometryDB_cff.py b/Geometry/CMSCommonData/python/cmsIdealGeometryDB_cff.py index 66aca445916b4..7578a6801c4cf 100644 --- a/Geometry/CMSCommonData/python/cmsIdealGeometryDB_cff.py +++ b/Geometry/CMSCommonData/python/cmsIdealGeometryDB_cff.py @@ -1,5 +1,7 @@ import FWCore.ParameterSet.Config as cms from Geometry.CMSCommonData.cmsIdealGeometryDB_cfi import * +from Geometry.HcalCommonData.hcalSimNumberingInitialization_cfi import * +from Geometry.HcalCommonData.hcalRecNumberingInitialization_cfi import * from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * diff --git a/Geometry/CMSCommonData/python/cmsIdealGeometryGFlashXML_cfi.py b/Geometry/CMSCommonData/python/cmsIdealGeometryGFlashXML_cfi.py index 825fbb851a5ab..ab52ca98d9b84 100644 --- a/Geometry/CMSCommonData/python/cmsIdealGeometryGFlashXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsIdealGeometryGFlashXML_cfi.py @@ -199,6 +199,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', 'Geometry/HcalCommonData/data/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsIdealGeometryHFLibraryXML_cfi.py b/Geometry/CMSCommonData/python/cmsIdealGeometryHFLibraryXML_cfi.py index 878af12705679..64801de526a22 100644 --- a/Geometry/CMSCommonData/python/cmsIdealGeometryHFLibraryXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsIdealGeometryHFLibraryXML_cfi.py @@ -199,6 +199,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', 'Geometry/HcalCommonData/data/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsIdealGeometryHFParametrizeXML_cfi.py b/Geometry/CMSCommonData/python/cmsIdealGeometryHFParametrizeXML_cfi.py index 4061678503cf4..76c07ec0f8b44 100644 --- a/Geometry/CMSCommonData/python/cmsIdealGeometryHFParametrizeXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsIdealGeometryHFParametrizeXML_cfi.py @@ -199,6 +199,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -213,6 +214,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsIdealGeometryNoAPDXML_cfi.py b/Geometry/CMSCommonData/python/cmsIdealGeometryNoAPDXML_cfi.py index 42ea924a2b2ff..baf7060610ed8 100644 --- a/Geometry/CMSCommonData/python/cmsIdealGeometryNoAPDXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsIdealGeometryNoAPDXML_cfi.py @@ -199,6 +199,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', 'Geometry/HcalCommonData/data/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsIdealGeometryTotemT1XML_cfi.py b/Geometry/CMSCommonData/python/cmsIdealGeometryTotemT1XML_cfi.py index ca838c664134f..a2b7b6ae1f289 100644 --- a/Geometry/CMSCommonData/python/cmsIdealGeometryTotemT1XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsIdealGeometryTotemT1XML_cfi.py @@ -199,6 +199,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', 'Geometry/HcalCommonData/data/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsIdealGeometryXML2_cfi.py b/Geometry/CMSCommonData/python/cmsIdealGeometryXML2_cfi.py index 80b633e2be47b..9bd6a23dd4676 100644 --- a/Geometry/CMSCommonData/python/cmsIdealGeometryXML2_cfi.py +++ b/Geometry/CMSCommonData/python/cmsIdealGeometryXML2_cfi.py @@ -199,6 +199,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -213,6 +214,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsIdealGeometryXML_cff.py b/Geometry/CMSCommonData/python/cmsIdealGeometryXML_cff.py index 40738677b3bb0..34bb8e9a99063 100644 --- a/Geometry/CMSCommonData/python/cmsIdealGeometryXML_cff.py +++ b/Geometry/CMSCommonData/python/cmsIdealGeometryXML_cff.py @@ -1,5 +1,7 @@ import FWCore.ParameterSet.Config as cms from Geometry.CMSCommonData.cmsIdealGeometryXML_cfi import * +from Geometry.HcalCommonData.hcalSimNumberingInitialization_cfi import * +from Geometry.HcalCommonData.hcalRecNumberingInitialization_cfi import * from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * diff --git a/Geometry/CMSCommonData/python/cmsIdealGeometryXML_cfi.py b/Geometry/CMSCommonData/python/cmsIdealGeometryXML_cfi.py index 4061678503cf4..76c07ec0f8b44 100644 --- a/Geometry/CMSCommonData/python/cmsIdealGeometryXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsIdealGeometryXML_cfi.py @@ -199,6 +199,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -213,6 +214,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsMTCCGeometryXML_cff.py b/Geometry/CMSCommonData/python/cmsMTCCGeometryXML_cff.py index 40d577502f605..58f37abd9e027 100644 --- a/Geometry/CMSCommonData/python/cmsMTCCGeometryXML_cff.py +++ b/Geometry/CMSCommonData/python/cmsMTCCGeometryXML_cff.py @@ -1,5 +1,7 @@ import FWCore.ParameterSet.Config as cms from Geometry.CMSCommonData.cmsMTCCGeometryXML_cfi import * +from Geometry.HcalCommonData.hcalSimNumberingInitialization_cfi import * +from Geometry.HcalCommonData.hcalRecNumberingInitialization_cfi import * from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * diff --git a/Geometry/CMSCommonData/python/cmsMTCCGeometryXML_cfi.py b/Geometry/CMSCommonData/python/cmsMTCCGeometryXML_cfi.py index ed515485bc4c6..b4f13095d710b 100644 --- a/Geometry/CMSCommonData/python/cmsMTCCGeometryXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsMTCCGeometryXML_cfi.py @@ -105,6 +105,8 @@ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', 'Geometry/HcalCommonData/data/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/EcalCommonData/data/ecal_MTCC.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', diff --git a/Geometry/CMSCommonData/python/cmsNoCastorGeometryXML_cfi.py b/Geometry/CMSCommonData/python/cmsNoCastorGeometryXML_cfi.py index 9a8fe1868b07b..32eaf631597fb 100644 --- a/Geometry/CMSCommonData/python/cmsNoCastorGeometryXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsNoCastorGeometryXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -215,6 +216,8 @@ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', 'Geometry/HcalCommonData/data/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsPilot2IdealGeometryXML_cff.py b/Geometry/CMSCommonData/python/cmsPilot2IdealGeometryXML_cff.py index 81be0d6f5ea7e..1f885faada712 100644 --- a/Geometry/CMSCommonData/python/cmsPilot2IdealGeometryXML_cff.py +++ b/Geometry/CMSCommonData/python/cmsPilot2IdealGeometryXML_cff.py @@ -1,5 +1,7 @@ import FWCore.ParameterSet.Config as cms from Geometry.CMSCommonData.cmsPilot2IdealGeometryXML_cfi import * +from Geometry.HcalCommonData.hcalSimNumberingInitialization_cfi import * +from Geometry.HcalCommonData.hcalRecNumberingInitialization_cfi import * from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * diff --git a/Geometry/CMSCommonData/python/cmsPilot2IdealGeometryXML_cfi.py b/Geometry/CMSCommonData/python/cmsPilot2IdealGeometryXML_cfi.py index 78b540bab4c02..c635e94360ff2 100644 --- a/Geometry/CMSCommonData/python/cmsPilot2IdealGeometryXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsPilot2IdealGeometryXML_cfi.py @@ -201,6 +201,7 @@ 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', 'Geometry/EcalCommonData/data/eefixed.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', 'Geometry/EcalCommonData/data/escon.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', 'Geometry/HcalCommonData/data/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsPilotIdealGeometryXML_cff.py b/Geometry/CMSCommonData/python/cmsPilotIdealGeometryXML_cff.py index 8f06e08eddaf5..619be158850d2 100644 --- a/Geometry/CMSCommonData/python/cmsPilotIdealGeometryXML_cff.py +++ b/Geometry/CMSCommonData/python/cmsPilotIdealGeometryXML_cff.py @@ -1,5 +1,7 @@ import FWCore.ParameterSet.Config as cms from Geometry.CMSCommonData.cmsPilotIdealGeometryXML_cfi import * +from Geometry.HcalCommonData.hcalSimNumberingInitialization_cfi import * +from Geometry.HcalCommonData.hcalRecNumberingInitialization_cfi import * from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * diff --git a/Geometry/CMSCommonData/python/cmsPilotIdealGeometryXML_cfi.py b/Geometry/CMSCommonData/python/cmsPilotIdealGeometryXML_cfi.py index 551486e08a633..74df3029a20ac 100644 --- a/Geometry/CMSCommonData/python/cmsPilotIdealGeometryXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsPilotIdealGeometryXML_cfi.py @@ -200,6 +200,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -213,6 +214,8 @@ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', 'Geometry/HcalCommonData/data/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsRecoIdealGeometryXML_cff.py b/Geometry/CMSCommonData/python/cmsRecoIdealGeometryXML_cff.py index ed3ec0f26dcad..4d98371a71ba8 100644 --- a/Geometry/CMSCommonData/python/cmsRecoIdealGeometryXML_cff.py +++ b/Geometry/CMSCommonData/python/cmsRecoIdealGeometryXML_cff.py @@ -1,5 +1,7 @@ import FWCore.ParameterSet.Config as cms from Geometry.CMSCommonData.cmsRecoIdealGeometryXML_cfi import * +from Geometry.HcalCommonData.hcalSimNumberingInitialization_cfi import * +from Geometry.HcalCommonData.hcalRecNumberingInitialization_cfi import * from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * diff --git a/Geometry/CMSCommonData/python/cmsRecoIdealGeometryXML_cfi.py b/Geometry/CMSCommonData/python/cmsRecoIdealGeometryXML_cfi.py index 4ac7e86225b50..0539c39c8d1d6 100644 --- a/Geometry/CMSCommonData/python/cmsRecoIdealGeometryXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsRecoIdealGeometryXML_cfi.py @@ -199,6 +199,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', 'Geometry/HcalCommonData/data/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/cmsSimIdealGeometryXML_cff.py b/Geometry/CMSCommonData/python/cmsSimIdealGeometryXML_cff.py index f3254d932a05a..37c011c80f93f 100644 --- a/Geometry/CMSCommonData/python/cmsSimIdealGeometryXML_cff.py +++ b/Geometry/CMSCommonData/python/cmsSimIdealGeometryXML_cff.py @@ -1,5 +1,7 @@ import FWCore.ParameterSet.Config as cms from Geometry.CMSCommonData.cmsSimIdealGeometryXML_cfi import * +from Geometry.HcalCommonData.hcalSimNumberingInitialization_cfi import * +from Geometry.HcalCommonData.hcalRecNumberingInitialization_cfi import * from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * diff --git a/Geometry/CMSCommonData/python/cmsSimIdealGeometryXML_cfi.py b/Geometry/CMSCommonData/python/cmsSimIdealGeometryXML_cfi.py index 4323c65f7728f..76a9c3897b52b 100644 --- a/Geometry/CMSCommonData/python/cmsSimIdealGeometryXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsSimIdealGeometryXML_cfi.py @@ -199,6 +199,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -214,6 +215,8 @@ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', 'Geometry/HcalCommonData/data/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/MuonCommonData/data/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1.xml', 'Geometry/MuonCommonData/data/mb2.xml', diff --git a/Geometry/CMSCommonData/python/ecalOnlyGeometryXML_cfi.py b/Geometry/CMSCommonData/python/ecalOnlyGeometryXML_cfi.py index ea6bbcb34ec91..c2046321dc5df 100644 --- a/Geometry/CMSCommonData/python/ecalOnlyGeometryXML_cfi.py +++ b/Geometry/CMSCommonData/python/ecalOnlyGeometryXML_cfi.py @@ -14,6 +14,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', diff --git a/Geometry/CMSCommonData/python/ecalhcalGeometryXML_cfi.py b/Geometry/CMSCommonData/python/ecalhcalGeometryXML_cfi.py index cbd48217cdef4..1f1c23c0af89a 100644 --- a/Geometry/CMSCommonData/python/ecalhcalGeometryXML_cfi.py +++ b/Geometry/CMSCommonData/python/ecalhcalGeometryXML_cfi.py @@ -21,6 +21,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -33,6 +34,9 @@ 'Geometry/HcalCommonData/data/hcalendcapalgo.xml', 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/ForwardCommonData/data/bundle/forwardshield.xml', 'Geometry/ForwardCommonData/data/forward.xml', 'Geometry/EcalSimData/data/ecalsens.xml', diff --git a/Geometry/CMSCommonData/python/ecalhcalHFLibraryXML_cfi.py b/Geometry/CMSCommonData/python/ecalhcalHFLibraryXML_cfi.py index 15a0c1a83cf19..6addcf0961b84 100644 --- a/Geometry/CMSCommonData/python/ecalhcalHFLibraryXML_cfi.py +++ b/Geometry/CMSCommonData/python/ecalhcalHFLibraryXML_cfi.py @@ -21,6 +21,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -34,6 +35,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/EcalSimData/data/ecalsens.xml', 'Geometry/HcalCommonData/data/hcalsens.xml', 'Geometry/HcalSimData/data/CaloUtil.xml', diff --git a/Geometry/CMSCommonData/python/ecalhcalHFParametrizeXML_cfi.py b/Geometry/CMSCommonData/python/ecalhcalHFParametrizeXML_cfi.py index cbd48217cdef4..25cf8453a51cc 100644 --- a/Geometry/CMSCommonData/python/ecalhcalHFParametrizeXML_cfi.py +++ b/Geometry/CMSCommonData/python/ecalhcalHFParametrizeXML_cfi.py @@ -21,6 +21,7 @@ 'Geometry/EcalCommonData/data/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eefixed.xml', 'Geometry/EcalCommonData/data/eehier.xml', 'Geometry/EcalCommonData/data/eealgo.xml', @@ -33,6 +34,8 @@ 'Geometry/HcalCommonData/data/hcalendcapalgo.xml', 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/ForwardCommonData/data/bundle/forwardshield.xml', 'Geometry/ForwardCommonData/data/forward.xml', 'Geometry/EcalSimData/data/ecalsens.xml', diff --git a/Geometry/CMSCommonData/python/hcalOnlyGeometryXML_cfi.py b/Geometry/CMSCommonData/python/hcalOnlyGeometryXML_cfi.py index 0097304bd4a51..317b9e037356e 100644 --- a/Geometry/CMSCommonData/python/hcalOnlyGeometryXML_cfi.py +++ b/Geometry/CMSCommonData/python/hcalOnlyGeometryXML_cfi.py @@ -20,6 +20,8 @@ 'Geometry/HcalCommonData/data/hcalendcapalgo.xml', 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/ForwardCommonData/data/bundle/forwardshield.xml', 'Geometry/ForwardCommonData/data/forward.xml', 'Geometry/HcalSimData/data/CaloUtil.xml', diff --git a/Geometry/CMSCommonData/python/hcalOnlyHFLibraryXML_cfi.py b/Geometry/CMSCommonData/python/hcalOnlyHFLibraryXML_cfi.py index 4d3e4f6ffe372..ce91077d3f3a6 100644 --- a/Geometry/CMSCommonData/python/hcalOnlyHFLibraryXML_cfi.py +++ b/Geometry/CMSCommonData/python/hcalOnlyHFLibraryXML_cfi.py @@ -21,6 +21,8 @@ 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/HcalCommonData/data/hcalsens.xml', 'Geometry/HcalSimData/data/CaloUtil.xml', 'Geometry/HcalSimData/data/hf.xml', diff --git a/Geometry/CMSCommonData/python/hcalOnlyHFParametrizeXML_cfi.py b/Geometry/CMSCommonData/python/hcalOnlyHFParametrizeXML_cfi.py index 0097304bd4a51..317b9e037356e 100644 --- a/Geometry/CMSCommonData/python/hcalOnlyHFParametrizeXML_cfi.py +++ b/Geometry/CMSCommonData/python/hcalOnlyHFParametrizeXML_cfi.py @@ -20,6 +20,8 @@ 'Geometry/HcalCommonData/data/hcalendcapalgo.xml', 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', 'Geometry/ForwardCommonData/data/bundle/forwardshield.xml', 'Geometry/ForwardCommonData/data/forward.xml', 'Geometry/HcalSimData/data/CaloUtil.xml', diff --git a/Geometry/CommonDetUnit/interface/GeomDetEnumerators.h b/Geometry/CommonDetUnit/interface/GeomDetEnumerators.h index 06248467de5fc..b64a1cb25eaa3 100644 --- a/Geometry/CommonDetUnit/interface/GeomDetEnumerators.h +++ b/Geometry/CommonDetUnit/interface/GeomDetEnumerators.h @@ -8,9 +8,9 @@ */ namespace GeomDetEnumerators { enum Location {barrel, endcap, invalidLoc}; - enum SubDetector {PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap, GEM, invalidDet}; + enum SubDetector {PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap, GEM, ME0, invalidDet}; // gives subdetId in DetId conrrepsonding to the above - constexpr unsigned int subDetId[12]={1,2,3,5,4,6, 0,0,0,0,0, 0}; // don't ask, don't ask, simply do not ask! + constexpr unsigned int subDetId[13]={1,2,3,5,4,6, 0, 0,0,0,0,0, 0}; // don't ask, don't ask, simply do not ask! //inverse (only for tracker) constexpr SubDetector tkDetEnum[8]={invalidDet, PixelBarrel, PixelEndcap, TIB, TID, TOB, TEC, invalidDet}; // don't ask, don't ask, simply do not ask! diff --git a/Geometry/CommonDetUnit/interface/GeomDetType.h b/Geometry/CommonDetUnit/interface/GeomDetType.h index f4d807e0614de..136267fdc5eac 100644 --- a/Geometry/CommonDetUnit/interface/GeomDetType.h +++ b/Geometry/CommonDetUnit/interface/GeomDetType.h @@ -31,6 +31,7 @@ class GeomDetType { bool isCSC() const; bool isRPC() const; bool isGEM() const; + bool isME0() const; bool isMuon() const; private: diff --git a/Geometry/CommonDetUnit/src/GeomDetEnumerators.cc b/Geometry/CommonDetUnit/src/GeomDetEnumerators.cc index fc74b82253a22..6b0135a425a0e 100644 --- a/Geometry/CommonDetUnit/src/GeomDetEnumerators.cc +++ b/Geometry/CommonDetUnit/src/GeomDetEnumerators.cc @@ -18,7 +18,8 @@ std::ostream& operator<<( std::ostream& s, SubDetector m){ else if ( m == CSC ) return s << "CSC"; else if ( m == RPCBarrel ) return s << "RPCBarrel"; else if ( m == RPCEndcap ) return s << "RPCEndcap"; - else if ( m == GEM ) return s << "GEM"; + else if ( m == GEM) return s << "GEM"; + else if ( m == ME0 ) return s << "ME0"; else return s << "?"; } diff --git a/Geometry/CommonDetUnit/src/GeomDetType.cc b/Geometry/CommonDetUnit/src/GeomDetType.cc index 2f549d6184a35..319325edac657 100644 --- a/Geometry/CommonDetUnit/src/GeomDetType.cc +++ b/Geometry/CommonDetUnit/src/GeomDetType.cc @@ -59,8 +59,13 @@ bool GeomDetType::isGEM() const return (theSubDet == GEM ) ; } +bool GeomDetType::isME0() const +{ + return (theSubDet == ME0 ) ; +} + bool GeomDetType::isMuon() const { - return (theSubDet == DT || theSubDet == CSC || isRPC() || theSubDet == GEM) ; + return (theSubDet == DT || theSubDet == CSC || isRPC() || theSubDet == GEM || theSubDet == ME0) ; } diff --git a/Geometry/EcalCommonData/data/PhaseII/eregalgo.xml b/Geometry/EcalCommonData/data/PhaseII/eregalgo.xml index 220180a8c003c..e7e32a071e2e2 100644 --- a/Geometry/EcalCommonData/data/PhaseII/eregalgo.xml +++ b/Geometry/EcalCommonData/data/PhaseII/eregalgo.xml @@ -1,32 +1,34 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/EcalCommonData/data/ectkcable.xml b/Geometry/EcalCommonData/data/ectkcable.xml new file mode 100644 index 0000000000000..d8d34dd31334e --- /dev/null +++ b/Geometry/EcalCommonData/data/ectkcable.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/EcalCommonData/data/eefixed.xml b/Geometry/EcalCommonData/data/eefixed.xml index 4660ab84115e3..91796a79b0ae6 100644 --- a/Geometry/EcalCommonData/data/eefixed.xml +++ b/Geometry/EcalCommonData/data/eefixed.xml @@ -1,1263 +1,1181 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/EcalCommonData/python/EcalOnlyPhase2_cfi.py b/Geometry/EcalCommonData/python/EcalOnlyPhase2_cfi.py new file mode 100644 index 0000000000000..961dba42e780c --- /dev/null +++ b/Geometry/EcalCommonData/python/EcalOnlyPhase2_cfi.py @@ -0,0 +1,25 @@ +import FWCore.ParameterSet.Config as cms + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring('Geometry/CMSCommonData/data/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/normal/cmsextent.xml', + 'Geometry/CMSCommonData/data/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/EcalCommonData/data/PhaseII/eregalgo.xml', + 'Geometry/EcalCommonData/data/ebalgo.xml', + 'Geometry/EcalCommonData/data/ebcon.xml', + 'Geometry/EcalCommonData/data/ebrot.xml', + 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', + 'Geometry/EcalSimData/data/ecalsens.xml', + 'Geometry/HcalSimData/data/CaloUtil.xml', + 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml', + 'Geometry/TrackerCommonData/data/trackermaterial.xml'), + rootNodeName = cms.string('cms:OCMS') +) + + diff --git a/Geometry/EcalCommonData/python/EcalOnly_cfi.py b/Geometry/EcalCommonData/python/EcalOnly_cfi.py index e87f4981905b0..f44cf056ff030 100644 --- a/Geometry/EcalCommonData/python/EcalOnly_cfi.py +++ b/Geometry/EcalCommonData/python/EcalOnly_cfi.py @@ -18,6 +18,7 @@ 'Geometry/EcalCommonData/data/eealgo.xml', 'Geometry/EcalCommonData/data/escon.xml', 'Geometry/EcalCommonData/data/esalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', 'Geometry/EcalCommonData/data/eeF.xml', 'Geometry/EcalCommonData/data/eeB.xml', 'Geometry/EcalSimData/data/ecalsens.xml', diff --git a/Geometry/ForwardCommonData/data/bhm.xml b/Geometry/ForwardCommonData/data/bhm.xml new file mode 100644 index 0000000000000..bd9a50b035a22 --- /dev/null +++ b/Geometry/ForwardCommonData/data/bhm.xml @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/ForwardCommonData/data/bhmsens.xml b/Geometry/ForwardCommonData/data/bhmsens.xml new file mode 100644 index 0000000000000..f1da0196c8a96 --- /dev/null +++ b/Geometry/ForwardCommonData/data/bhmsens.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Geometry/ForwardCommonData/plugins/BuildFile.xml b/Geometry/ForwardCommonData/plugins/BuildFile.xml new file mode 100644 index 0000000000000..1e187ece4a10f --- /dev/null +++ b/Geometry/ForwardCommonData/plugins/BuildFile.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/Geometry/ForwardCommonData/plugins/DDBHMAngular.cc b/Geometry/ForwardCommonData/plugins/DDBHMAngular.cc new file mode 100644 index 0000000000000..b4560c9c53199 --- /dev/null +++ b/Geometry/ForwardCommonData/plugins/DDBHMAngular.cc @@ -0,0 +1,79 @@ +/////////////////////////////////////////////////////////////////////////////// +// File: DDBHMAngular.cc +// Description: Position inside the mother according to phi +/////////////////////////////////////////////////////////////////////////////// + +#include +#include + +#include "DDBHMAngular.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "DetectorDescription/Base/interface/DDutils.h" +#include "DetectorDescription/Core/interface/DDLogicalPart.h" +#include "DetectorDescription/Core/interface/DDCurrentNamespace.h" +#include "DetectorDescription/Core/interface/DDSplit.h" +#include "CLHEP/Units/GlobalSystemOfUnits.h" + +DDBHMAngular::DDBHMAngular() { + LogDebug("HCalGeom") << "DDBHMAngular test: Creating an instance"; +} + +DDBHMAngular::~DDBHMAngular() {} + +void DDBHMAngular::initialize(const DDNumericArguments & nArgs, + const DDVectorArguments & , + const DDMapArguments & , + const DDStringArguments & sArgs, + const DDStringVectorArguments & ) { + + units = int (nArgs["number"]); + rr = nArgs["radius"]; + dphi = nArgs["deltaPhi"]; + LogDebug("HCalGeom") << "DDBHMAngular debug: Parameters for positioning-- " + << units << " copies at radius " << rr/CLHEP::cm + << " cm with delta(phi) " << dphi/CLHEP::deg; + + rotMat = sArgs["Rotation"]; + childName = sArgs["ChildName"]; + LogDebug("HCalGeom") << "DDBHMAngular debug: Parent " << parent().name() + << "\tChild " << childName << "\tRotation matrix " + << rotMat; +} + +void DDBHMAngular::execute(DDCompactView& cpv) { + + DDName child(DDSplit(childName).first, DDSplit(childName).second); + DDName parentName = parent().name(); + std::string rotstr = DDSplit(rotMat).first; + DDRotation rot; + if (rotstr != "NULL") { + std::string rotns = DDSplit(rotMat).second; + rot = DDRotation(DDName(rotstr, rotns)); + } + + for (int jj=0; jj +#include +#include +#include "DetectorDescription/Base/interface/DDTypes.h" +#include "DetectorDescription/Algorithm/interface/DDAlgorithm.h" + +class DDBHMAngular : public DDAlgorithm { + public: + //Constructor and Destructor + DDBHMAngular(); + virtual ~DDBHMAngular(); + + void initialize(const DDNumericArguments & nArgs, + const DDVectorArguments & vArgs, + const DDMapArguments & mArgs, + const DDStringArguments & sArgs, + const DDStringVectorArguments & vsArgs); + + void execute(DDCompactView& cpv); + +private: + + int units; //Number of copies + double rr; //Radial position of the detectors + double dphi; //the distance in phi between the detectors + + std::string rotMat; //Name of the rotation matrix + std::string childName; //Children name +}; + +#endif diff --git a/Geometry/ForwardCommonData/plugins/module.cc b/Geometry/ForwardCommonData/plugins/module.cc new file mode 100644 index 0000000000000..d7894e24b1cf3 --- /dev/null +++ b/Geometry/ForwardCommonData/plugins/module.cc @@ -0,0 +1,7 @@ +//<<<<<< INCLUDES >>>>>> + +#include "DDBHMAngular.h" +#include "DetectorDescription/Algorithm/interface/DDAlgorithmFactory.h" +#include "FWCore/PluginManager/interface/PluginFactory.h" + +DEFINE_EDM_PLUGIN (DDAlgorithmFactory, DDBHMAngular, "forward:DDBHMAngular"); diff --git a/Geometry/ForwardCommonData/python/bhmGeometry_cfi.py b/Geometry/ForwardCommonData/python/bhmGeometry_cfi.py new file mode 100644 index 0000000000000..a68fed7260dc4 --- /dev/null +++ b/Geometry/ForwardCommonData/python/bhmGeometry_cfi.py @@ -0,0 +1,29 @@ +import FWCore.ParameterSet.Config as cms + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring('Geometry/CMSCommonData/data/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/normal/cmsextent.xml', + 'Geometry/CMSCommonData/data/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavern.xml', + 'Geometry/TrackerCommonData/data/tracker.xml', + 'Geometry/ForwardCommonData/data/forward.xml', + 'Geometry/ForwardCommonData/data/forwardshield.xml', + 'Geometry/ForwardCommonData/data/bhm.xml', + 'Geometry/ForwardCommonData/data/brmrotations.xml', + 'Geometry/ForwardCommonData/data/brm.xml'), + rootNodeName = cms.string('cms:OCMS') +) + + diff --git a/Geometry/ForwardCommonData/python/bhmSimGeometryXML_cff.py b/Geometry/ForwardCommonData/python/bhmSimGeometryXML_cff.py new file mode 100644 index 0000000000000..84cafbb4996b8 --- /dev/null +++ b/Geometry/ForwardCommonData/python/bhmSimGeometryXML_cff.py @@ -0,0 +1,5 @@ +import FWCore.ParameterSet.Config as cms + +from Geometry.ForwardCommonData.bhmSimGeometryXML_cfi import * +from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * +from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * diff --git a/Geometry/ForwardCommonData/python/bhmSimGeometryXML_cfi.py b/Geometry/ForwardCommonData/python/bhmSimGeometryXML_cfi.py new file mode 100644 index 0000000000000..550057fbc9156 --- /dev/null +++ b/Geometry/ForwardCommonData/python/bhmSimGeometryXML_cfi.py @@ -0,0 +1,260 @@ +import FWCore.ParameterSet.Config as cms + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring('Geometry/CMSCommonData/data/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/normal/cmsextent.xml', + 'Geometry/CMSCommonData/data/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/TrackerCommonData/data/pixfwdMaterials.xml', + 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq1x2.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq1x5.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq2x3.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq2x4.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq2x5.xml', + 'Geometry/TrackerCommonData/data/pixfwdPanelBase.xml', + 'Geometry/TrackerCommonData/data/pixfwdPanel.xml', + 'Geometry/TrackerCommonData/data/pixfwdBlade.xml', + 'Geometry/TrackerCommonData/data/pixfwdNipple.xml', + 'Geometry/TrackerCommonData/data/pixfwdDisk.xml', + 'Geometry/TrackerCommonData/data/pixfwdCylinder.xml', + 'Geometry/TrackerCommonData/data/pixfwd.xml', + 'Geometry/TrackerCommonData/data/pixbarmaterial.xml', + 'Geometry/TrackerCommonData/data/pixbarladder.xml', + 'Geometry/TrackerCommonData/data/pixbarladderfull.xml', + 'Geometry/TrackerCommonData/data/pixbarladderhalf.xml', + 'Geometry/TrackerCommonData/data/pixbarlayer.xml', + 'Geometry/TrackerCommonData/data/pixbarlayer0.xml', + 'Geometry/TrackerCommonData/data/pixbarlayer1.xml', + 'Geometry/TrackerCommonData/data/pixbarlayer2.xml', + 'Geometry/TrackerCommonData/data/pixbar.xml', + 'Geometry/TrackerCommonData/data/tibtidcommonmaterial.xml', + 'Geometry/TrackerCommonData/data/tibmaterial.xml', + 'Geometry/TrackerCommonData/data/tibmodpar.xml', + 'Geometry/TrackerCommonData/data/tibmodule0.xml', + 'Geometry/TrackerCommonData/data/tibmodule0a.xml', + 'Geometry/TrackerCommonData/data/tibmodule0b.xml', + 'Geometry/TrackerCommonData/data/tibmodule2.xml', + 'Geometry/TrackerCommonData/data/tibstringpar.xml', + 'Geometry/TrackerCommonData/data/tibstring0ll.xml', + 'Geometry/TrackerCommonData/data/tibstring0lr.xml', + 'Geometry/TrackerCommonData/data/tibstring0ul.xml', + 'Geometry/TrackerCommonData/data/tibstring0ur.xml', + 'Geometry/TrackerCommonData/data/tibstring0.xml', + 'Geometry/TrackerCommonData/data/tibstring1ll.xml', + 'Geometry/TrackerCommonData/data/tibstring1lr.xml', + 'Geometry/TrackerCommonData/data/tibstring1ul.xml', + 'Geometry/TrackerCommonData/data/tibstring1ur.xml', + 'Geometry/TrackerCommonData/data/tibstring1.xml', + 'Geometry/TrackerCommonData/data/tibstring2ll.xml', + 'Geometry/TrackerCommonData/data/tibstring2lr.xml', + 'Geometry/TrackerCommonData/data/tibstring2ul.xml', + 'Geometry/TrackerCommonData/data/tibstring2ur.xml', + 'Geometry/TrackerCommonData/data/tibstring2.xml', + 'Geometry/TrackerCommonData/data/tibstring3ll.xml', + 'Geometry/TrackerCommonData/data/tibstring3lr.xml', + 'Geometry/TrackerCommonData/data/tibstring3ul.xml', + 'Geometry/TrackerCommonData/data/tibstring3ur.xml', + 'Geometry/TrackerCommonData/data/tibstring3.xml', + 'Geometry/TrackerCommonData/data/tiblayerpar.xml', + 'Geometry/TrackerCommonData/data/tiblayer0.xml', + 'Geometry/TrackerCommonData/data/tiblayer1.xml', + 'Geometry/TrackerCommonData/data/tiblayer2.xml', + 'Geometry/TrackerCommonData/data/tiblayer3.xml', + 'Geometry/TrackerCommonData/data/tib.xml', + 'Geometry/TrackerCommonData/data/tidmaterial.xml', + 'Geometry/TrackerCommonData/data/tidmodpar.xml', + 'Geometry/TrackerCommonData/data/tidmodule0.xml', + 'Geometry/TrackerCommonData/data/tidmodule0r.xml', + 'Geometry/TrackerCommonData/data/tidmodule0l.xml', + 'Geometry/TrackerCommonData/data/tidmodule1.xml', + 'Geometry/TrackerCommonData/data/tidmodule1r.xml', + 'Geometry/TrackerCommonData/data/tidmodule1l.xml', + 'Geometry/TrackerCommonData/data/tidmodule2.xml', + 'Geometry/TrackerCommonData/data/tidringpar.xml', + 'Geometry/TrackerCommonData/data/tidring0.xml', + 'Geometry/TrackerCommonData/data/tidring0f.xml', + 'Geometry/TrackerCommonData/data/tidring0b.xml', + 'Geometry/TrackerCommonData/data/tidring1.xml', + 'Geometry/TrackerCommonData/data/tidring1f.xml', + 'Geometry/TrackerCommonData/data/tidring1b.xml', + 'Geometry/TrackerCommonData/data/tidring2.xml', + 'Geometry/TrackerCommonData/data/tid.xml', + 'Geometry/TrackerCommonData/data/tidf.xml', + 'Geometry/TrackerCommonData/data/tidb.xml', + 'Geometry/TrackerCommonData/data/tibtidservices.xml', + 'Geometry/TrackerCommonData/data/tibtidservicesf.xml', + 'Geometry/TrackerCommonData/data/tibtidservicesb.xml', + 'Geometry/TrackerCommonData/data/tobmaterial.xml', + 'Geometry/TrackerCommonData/data/tobmodpar.xml', + 'Geometry/TrackerCommonData/data/tobmodule0.xml', + 'Geometry/TrackerCommonData/data/tobmodule2.xml', + 'Geometry/TrackerCommonData/data/tobmodule4.xml', + 'Geometry/TrackerCommonData/data/tobrodpar.xml', + 'Geometry/TrackerCommonData/data/tobrod0c.xml', + 'Geometry/TrackerCommonData/data/tobrod0l.xml', + 'Geometry/TrackerCommonData/data/tobrod0h.xml', + 'Geometry/TrackerCommonData/data/tobrod0.xml', + 'Geometry/TrackerCommonData/data/tobrod1l.xml', + 'Geometry/TrackerCommonData/data/tobrod1h.xml', + 'Geometry/TrackerCommonData/data/tobrod1.xml', + 'Geometry/TrackerCommonData/data/tobrod2c.xml', + 'Geometry/TrackerCommonData/data/tobrod2l.xml', + 'Geometry/TrackerCommonData/data/tobrod2h.xml', + 'Geometry/TrackerCommonData/data/tobrod2.xml', + 'Geometry/TrackerCommonData/data/tobrod3l.xml', + 'Geometry/TrackerCommonData/data/tobrod3h.xml', + 'Geometry/TrackerCommonData/data/tobrod3.xml', + 'Geometry/TrackerCommonData/data/tobrod4c.xml', + 'Geometry/TrackerCommonData/data/tobrod4l.xml', + 'Geometry/TrackerCommonData/data/tobrod4h.xml', + 'Geometry/TrackerCommonData/data/tobrod4.xml', + 'Geometry/TrackerCommonData/data/tobrod5l.xml', + 'Geometry/TrackerCommonData/data/tobrod5h.xml', + 'Geometry/TrackerCommonData/data/tobrod5.xml', + 'Geometry/TrackerCommonData/data/tob.xml', + 'Geometry/TrackerCommonData/data/tecmaterial.xml', + 'Geometry/TrackerCommonData/data/tecmodpar.xml', + 'Geometry/TrackerCommonData/data/tecmodule0.xml', + 'Geometry/TrackerCommonData/data/tecmodule0r.xml', + 'Geometry/TrackerCommonData/data/tecmodule0s.xml', + 'Geometry/TrackerCommonData/data/tecmodule1.xml', + 'Geometry/TrackerCommonData/data/tecmodule1r.xml', + 'Geometry/TrackerCommonData/data/tecmodule1s.xml', + 'Geometry/TrackerCommonData/data/tecmodule2.xml', + 'Geometry/TrackerCommonData/data/tecmodule3.xml', + 'Geometry/TrackerCommonData/data/tecmodule4.xml', + 'Geometry/TrackerCommonData/data/tecmodule4r.xml', + 'Geometry/TrackerCommonData/data/tecmodule4s.xml', + 'Geometry/TrackerCommonData/data/tecmodule5.xml', + 'Geometry/TrackerCommonData/data/tecmodule6.xml', + 'Geometry/TrackerCommonData/data/tecpetpar.xml', + 'Geometry/TrackerCommonData/data/tecring0.xml', + 'Geometry/TrackerCommonData/data/tecring1.xml', + 'Geometry/TrackerCommonData/data/tecring2.xml', + 'Geometry/TrackerCommonData/data/tecring3.xml', + 'Geometry/TrackerCommonData/data/tecring4.xml', + 'Geometry/TrackerCommonData/data/tecring5.xml', + 'Geometry/TrackerCommonData/data/tecring6.xml', + 'Geometry/TrackerCommonData/data/tecring0f.xml', + 'Geometry/TrackerCommonData/data/tecring1f.xml', + 'Geometry/TrackerCommonData/data/tecring2f.xml', + 'Geometry/TrackerCommonData/data/tecring3f.xml', + 'Geometry/TrackerCommonData/data/tecring4f.xml', + 'Geometry/TrackerCommonData/data/tecring5f.xml', + 'Geometry/TrackerCommonData/data/tecring6f.xml', + 'Geometry/TrackerCommonData/data/tecring0b.xml', + 'Geometry/TrackerCommonData/data/tecring1b.xml', + 'Geometry/TrackerCommonData/data/tecring2b.xml', + 'Geometry/TrackerCommonData/data/tecring3b.xml', + 'Geometry/TrackerCommonData/data/tecring4b.xml', + 'Geometry/TrackerCommonData/data/tecring5b.xml', + 'Geometry/TrackerCommonData/data/tecring6b.xml', + 'Geometry/TrackerCommonData/data/tecpetalf.xml', + 'Geometry/TrackerCommonData/data/tecpetalb.xml', + 'Geometry/TrackerCommonData/data/tecpetal0.xml', + 'Geometry/TrackerCommonData/data/tecpetal0f.xml', + 'Geometry/TrackerCommonData/data/tecpetal0b.xml', + 'Geometry/TrackerCommonData/data/tecpetal3.xml', + 'Geometry/TrackerCommonData/data/tecpetal3f.xml', + 'Geometry/TrackerCommonData/data/tecpetal3b.xml', + 'Geometry/TrackerCommonData/data/tecpetal6f.xml', + 'Geometry/TrackerCommonData/data/tecpetal6b.xml', + 'Geometry/TrackerCommonData/data/tecpetal8f.xml', + 'Geometry/TrackerCommonData/data/tecpetal8b.xml', + 'Geometry/TrackerCommonData/data/tecwheel.xml', + 'Geometry/TrackerCommonData/data/tecwheela.xml', + 'Geometry/TrackerCommonData/data/tecwheelb.xml', + 'Geometry/TrackerCommonData/data/tecwheelc.xml', + 'Geometry/TrackerCommonData/data/tecwheeld.xml', + 'Geometry/TrackerCommonData/data/tecwheel6.xml', + 'Geometry/TrackerCommonData/data/tecservices.xml', + 'Geometry/TrackerCommonData/data/tecbackplate.xml', + 'Geometry/TrackerCommonData/data/tec.xml', + 'Geometry/TrackerCommonData/data/trackermaterial.xml', + 'Geometry/TrackerCommonData/data/tracker.xml', + 'Geometry/TrackerCommonData/data/trackerpixbar.xml', + 'Geometry/TrackerCommonData/data/trackerpixfwd.xml', + 'Geometry/TrackerCommonData/data/trackertibtidservices.xml', + 'Geometry/TrackerCommonData/data/trackertib.xml', + 'Geometry/TrackerCommonData/data/trackertid.xml', + 'Geometry/TrackerCommonData/data/trackertob.xml', + 'Geometry/TrackerCommonData/data/trackertec.xml', + 'Geometry/TrackerCommonData/data/trackerbulkhead.xml', + 'Geometry/TrackerCommonData/data/trackerother.xml', + 'Geometry/EcalCommonData/data/eregalgo.xml', + 'Geometry/EcalCommonData/data/ebalgo.xml', + 'Geometry/EcalCommonData/data/ebcon.xml', + 'Geometry/EcalCommonData/data/ebrot.xml', + 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/eefixed.xml', + 'Geometry/EcalCommonData/data/eehier.xml', + 'Geometry/EcalCommonData/data/eealgo.xml', + 'Geometry/EcalCommonData/data/escon.xml', + 'Geometry/EcalCommonData/data/esalgo.xml', + 'Geometry/EcalCommonData/data/eeF.xml', + 'Geometry/EcalCommonData/data/eeB.xml', + 'Geometry/HcalCommonData/data/hcalrotations.xml', + 'Geometry/HcalCommonData/data/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/hcalendcapalgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', + 'Geometry/HcalCommonData/data/hcalforwardmaterial.xml', + 'Geometry/MuonCommonData/data/mbCommon.xml', + 'Geometry/MuonCommonData/data/mb1.xml', + 'Geometry/MuonCommonData/data/mb2.xml', + 'Geometry/MuonCommonData/data/mb3.xml', + 'Geometry/MuonCommonData/data/mb4.xml', + 'Geometry/MuonCommonData/data/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf.xml', + 'Geometry/ForwardCommonData/data/forward.xml', + 'Geometry/ForwardCommonData/data/forwardshield.xml', + 'Geometry/ForwardCommonData/data/brmrotations.xml', + 'Geometry/ForwardCommonData/data/brm.xml', + 'Geometry/ForwardCommonData/data/totemMaterials.xml', + 'Geometry/ForwardCommonData/data/totemRotations.xml', + 'Geometry/ForwardCommonData/data/totemt1.xml', + 'Geometry/ForwardCommonData/data/totemt2.xml', + 'Geometry/ForwardCommonData/data/ionpump.xml', + 'Geometry/ForwardCommonData/data/bhm.xml', + 'Geometry/MuonCommonData/data/muonNumbering.xml', + 'Geometry/TrackerCommonData/data/trackerStructureTopology.xml', + 'Geometry/TrackerSimData/data/trackersens.xml', + 'Geometry/TrackerRecoData/data/trackerRecoMaterial.xml', + 'Geometry/EcalSimData/data/ecalsens.xml', + 'Geometry/HcalCommonData/data/hcalsens.xml', + 'Geometry/HcalSimData/data/CaloUtil.xml', + 'Geometry/HcalSimData/data/hf.xml', + 'Geometry/HcalSimData/data/hffibre.xml', + 'Geometry/MuonSimData/data/muonSens.xml', + 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/RPCSpecs.xml', + 'Geometry/ForwardCommonData/data/brmsens.xml', + 'Geometry/ForwardCommonData/data/bhmsens.xml', + 'Geometry/ForwardSimData/data/bhmProdCuts.xml', + 'Geometry/HcalSimData/data/HcalProdCuts.xml', + 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/EcalSimData/data/ESProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', + 'Geometry/MuonSimData/data/muonProdCuts.xml'), + rootNodeName = cms.string('cms:OCMS') +) + + diff --git a/Geometry/ForwardGeometry/src/ZdcTopology.cc b/Geometry/ForwardGeometry/src/ZdcTopology.cc index a376e50e79119..6a94d76bb48f6 100644 --- a/Geometry/ForwardGeometry/src/ZdcTopology.cc +++ b/Geometry/ForwardGeometry/src/ZdcTopology.cc @@ -240,6 +240,7 @@ int ZdcTopology::ncells(HcalZDCDetId::Section section) const{ case(HcalZDCDetId::EM) : ncells = ICH_EM_MAX; break; case(HcalZDCDetId::HAD) : ncells = ICH_HAD_MAX; break; case(HcalZDCDetId::LUM) : ncells = ICH_LUM_MAX; break; + case(HcalZDCDetId::RPD) : ncells = 0; break; case(HcalZDCDetId::Unknown) : ncells =0; break; } return ncells; @@ -251,6 +252,7 @@ int ZdcTopology::firstCell(HcalZDCDetId::Section section)const { case(HcalZDCDetId::EM) : firstCell = firstEMModule_ ; break; case(HcalZDCDetId::HAD) : firstCell = firstHADModule_; break; case(HcalZDCDetId::LUM) : firstCell = firstLUMModule_; break; + case(HcalZDCDetId::RPD) : firstCell = 0; break; case(HcalZDCDetId::Unknown) : firstCell = 0; break; } return firstCell; @@ -262,6 +264,7 @@ int ZdcTopology::lastCell(HcalZDCDetId::Section section) const { case(HcalZDCDetId::EM) : lastCell = lastEMModule_; break; case(HcalZDCDetId::HAD) : lastCell = lastHADModule_; break; case(HcalZDCDetId::LUM) : lastCell = lastLUMModule_; break; + case(HcalZDCDetId::RPD) : lastCell = 0; break; case(HcalZDCDetId::Unknown) : lastCell = 0; break; } return lastCell; diff --git a/Geometry/ForwardSimData/data/CastorProdCuts.xml b/Geometry/ForwardSimData/data/CastorProdCuts.xml new file mode 100644 index 0000000000000..a500882310745 --- /dev/null +++ b/Geometry/ForwardSimData/data/CastorProdCuts.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml b/Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml new file mode 100644 index 0000000000000..4b4ffbe480e20 --- /dev/null +++ b/Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/Geometry/ForwardSimData/data/bhmProdCuts.xml b/Geometry/ForwardSimData/data/bhmProdCuts.xml new file mode 100644 index 0000000000000..1e2fb81956a93 --- /dev/null +++ b/Geometry/ForwardSimData/data/bhmProdCuts.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/Geometry/ForwardSimData/data/castorsens.xml b/Geometry/ForwardSimData/data/castorsens.xml new file mode 100644 index 0000000000000..9e6c29935fdb4 --- /dev/null +++ b/Geometry/ForwardSimData/data/castorsens.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/Geometry/ForwardSimData/data/pltsens.xml b/Geometry/ForwardSimData/data/pltsens.xml new file mode 100644 index 0000000000000..b083b9f6298ec --- /dev/null +++ b/Geometry/ForwardSimData/data/pltsens.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Geometry/ForwardSimData/data/totemsensT1.xml b/Geometry/ForwardSimData/data/totemsensT1.xml new file mode 100644 index 0000000000000..87edd6d6c0523 --- /dev/null +++ b/Geometry/ForwardSimData/data/totemsensT1.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/ForwardSimData/data/totemsensT2.xml b/Geometry/ForwardSimData/data/totemsensT2.xml new file mode 100644 index 0000000000000..04f31fa32f478 --- /dev/null +++ b/Geometry/ForwardSimData/data/totemsensT2.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/ForwardSimData/data/zdcProdCuts.xml b/Geometry/ForwardSimData/data/zdcProdCuts.xml new file mode 100644 index 0000000000000..ea5f8d45a58ab --- /dev/null +++ b/Geometry/ForwardSimData/data/zdcProdCuts.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Geometry/ForwardSimData/data/zdcsens.xml b/Geometry/ForwardSimData/data/zdcsens.xml new file mode 100644 index 0000000000000..a348c11b9ffdd --- /dev/null +++ b/Geometry/ForwardSimData/data/zdcsens.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/Geometry/GEMGeometry/interface/ME0EtaPartition.h b/Geometry/GEMGeometry/interface/ME0EtaPartition.h new file mode 100644 index 0000000000000..1b4b6f096b393 --- /dev/null +++ b/Geometry/GEMGeometry/interface/ME0EtaPartition.h @@ -0,0 +1,97 @@ +#ifndef Geometry_ME0Geometry_ME0EtaPartition_H +#define Geometry_ME0Geometry_ME0EtaPartition_H + +#include "Geometry/CommonDetUnit/interface/GeomDetUnit.h" +#include "Geometry/CommonDetUnit/interface/GeomDetType.h" +#include "DataFormats/MuonDetId/interface/ME0DetId.h" +#include "DataFormats/GeometryVector/interface/GlobalPoint.h" + +class StripTopology; +class ME0EtaPartitionSpecs; +//class ME0Chamber; + +class ME0EtaPartition : public GeomDetUnit +{ +public: + + ME0EtaPartition(ME0DetId id, BoundPlane::BoundPlanePointer bp, ME0EtaPartitionSpecs* rrs); + ~ME0EtaPartition(); + + const ME0EtaPartitionSpecs* specs() const { return specs_; } + ME0DetId id() const { return id_; } + + const Topology& topology() const; + const StripTopology& specificTopology() const; + + const Topology& padTopology() const; + const StripTopology& specificPadTopology() const; + + const GeomDetType& type() const; + + /// Return the chamber this roll belongs to + //const ME0Chamber* chamber() const; + + // strip-related methods: + + /// number of readout strips in partition + int nstrips() const; + + /// returns center of strip position for INTEGER strip number + /// that has a value range of [1, nstrip] + LocalPoint centreOfStrip(int strip) const; + + /// returns center of strip position for FRACTIONAL strip number + /// that has a value range of [0., nstrip] + LocalPoint centreOfStrip(float strip) const; + LocalError localError(float strip) const; + + /// returns fractional strip number [0..nstrips] for a LocalPoint + /// E.g., if local point hit strip #2, the fractional strip number would be + /// somewhere in the (1., 2] interval + float strip(const LocalPoint& lp) const; + + float pitch() const; + float localPitch(const LocalPoint& lp) const; + + + // ME0-CSC pad-related methods: + + /// number of ME0-CSC trigger readout pads in partition + int npads() const; + + /// returns center of pad position for INTEGER pad number + /// that has a value range of [1, npads] + LocalPoint centreOfPad(int pad) const; + + /// returns center of pad position for FRACTIONAL pad number + /// that has a value range of [0., npads] + LocalPoint centreOfPad(float pad) const; + + /// returns FRACTIONAL pad number [0.,npads] for a point + float pad(const LocalPoint& lp) const; + + /// pad pitch in a center + float padPitch() const; + /// pad pitch at a particular point + float localPadPitch(const LocalPoint& lp) const; + + + // relations between strips and pads: + + /// returns FRACTIONAL pad number [0.,npads] for an integer strip [1,nstrip] + float padOfStrip(int strip) const; + + /// returns first strip (INT number [1,nstrip]) for pad (an integer [1,npads]) + int firstStripInPad(int pad) const; + + /// returns last strip (INT number [1,nstrip]) for pad (an integer [1,npads]) + int lastStripInPad(int pad) const; + +private: + + ME0DetId id_; + ME0EtaPartitionSpecs* specs_; +}; + +#endif + diff --git a/Geometry/GEMGeometry/interface/ME0EtaPartitionSpecs.h b/Geometry/GEMGeometry/interface/ME0EtaPartitionSpecs.h new file mode 100644 index 0000000000000..c92c34a11ad79 --- /dev/null +++ b/Geometry/GEMGeometry/interface/ME0EtaPartitionSpecs.h @@ -0,0 +1,52 @@ +#ifndef Geometry_ME0Geometry_ME0EtaPartitionSpecs_H +#define Geometry_ME0Geometry_ME0EtaPartitionSpecs_H + +/** \class ME0EtaPartitionSpecs + * Storage of the parameters of the ME0 Chamber + * using standard topologies + * + * \author M. Maggi - INFN Bari + * + */ +#include +#include + +class StripTopology; + +#include "Geometry/CommonDetUnit/interface/GeomDetType.h" + + +class ME0EtaPartitionSpecs : public GeomDetType +{ +public: + + typedef std::vector ME0Specs; + + ME0EtaPartitionSpecs( SubDetector rss, const std::string& name, const ME0Specs& pars); + + ~ME0EtaPartitionSpecs(); + + const Topology& topology() const; + + const StripTopology& specificTopology() const; + + const Topology& padTopology() const; + + const StripTopology& specificPadTopology() const; + + const std::string& detName() const; + + const ME0Specs& parameters() const; + +private: + + /// topology of strips + StripTopology* _top; + + /// topology of trigger pads (pad = bundle of strips, basically, a "fat" strip) + StripTopology* _top_pad; + + std::vector _p; + std::string _n; +}; +#endif diff --git a/Geometry/GEMGeometry/interface/ME0Geometry.h b/Geometry/GEMGeometry/interface/ME0Geometry.h new file mode 100644 index 0000000000000..054e25196ccdc --- /dev/null +++ b/Geometry/GEMGeometry/interface/ME0Geometry.h @@ -0,0 +1,76 @@ +#ifndef ME0Geometry_ME0Geometry_h +#define ME0Geometry_ME0Geometry_h + +/** \class ME0Geometry + * + * The model of the geometry of ME0. + * + * \author M. Maggi - INFN Bari + */ + +#include "DataFormats/DetId/interface/DetId.h" +#include "Geometry/CommonDetUnit/interface/TrackingGeometry.h" +#include "Geometry/GEMGeometry/interface/ME0EtaPartition.h" +#include +#include + +class GeomDetType; +class GeomDetUnit; + +class ME0Geometry : public TrackingGeometry { + + public: + /// Default constructor + ME0Geometry(); + + /// Destructor + virtual ~ME0Geometry(); + + // Return a vector of all det types + virtual const DetTypeContainer& detTypes() const; + + // Return a vector of all GeomDetUnit + virtual const DetUnitContainer& detUnits() const; + + // Return a vector of all GeomDet + virtual const DetContainer& dets() const; + + // Return a vector of all GeomDetUnit DetIds + virtual const DetIdContainer& detUnitIds() const; + + // Return a vector of all GeomDet DetIds + virtual const DetIdContainer& detIds() const; + + // Return the pointer to the GeomDetUnit corresponding to a given DetId + virtual const GeomDetUnit* idToDetUnit(DetId) const; + + // Return the pointer to the GeomDet corresponding to a given DetId + virtual const GeomDet* idToDet(DetId) const; + + + //---- Extension of the interface + + /// Return a vector of all ME0 eta partitions + const std::vector& etaPartitions() const; + + /// Return a etaPartition given its id + const ME0EtaPartition* etaPartition(ME0DetId id) const; + + /// Add a ME0 etaPartition to the Geometry + void add(ME0EtaPartition* etaPartition); + + private: + DetUnitContainer theEtaPartitions; + DetContainer theDets; + DetTypeContainer theEtaPartitionTypes; + DetIdContainer theEtaPartitionIds; + DetIdContainer theDetIds; + + // Map for efficient lookup by DetId + mapIdToDet theMap; + + std::vector allEtaPartitions; // Are not owned by this class; are owned by their chamber. + +}; + +#endif diff --git a/Geometry/GEMGeometry/python/me0Geometry_cfi.py b/Geometry/GEMGeometry/python/me0Geometry_cfi.py new file mode 100644 index 0000000000000..9912848fbc8fc --- /dev/null +++ b/Geometry/GEMGeometry/python/me0Geometry_cfi.py @@ -0,0 +1,10 @@ +import FWCore.ParameterSet.Config as cms + +# +# This cfi should be included to build the ME0 geometry model. +# +ME0GeometryESModule = cms.ESProducer("ME0GeometryESModule", + useDDD = cms.untracked.bool(True) +) + + diff --git a/Geometry/GEMGeometry/src/ES_ME0Geometry.cc b/Geometry/GEMGeometry/src/ES_ME0Geometry.cc new file mode 100644 index 0000000000000..487642b374912 --- /dev/null +++ b/Geometry/GEMGeometry/src/ES_ME0Geometry.cc @@ -0,0 +1,4 @@ +#include "Geometry/GEMGeometry/interface/ME0Geometry.h" +#include + +TYPELOOKUP_DATA_REG(ME0Geometry); diff --git a/Geometry/GEMGeometry/src/ME0EtaPartition.cc b/Geometry/GEMGeometry/src/ME0EtaPartition.cc new file mode 100644 index 0000000000000..3083973b90e0d --- /dev/null +++ b/Geometry/GEMGeometry/src/ME0EtaPartition.cc @@ -0,0 +1,151 @@ +#include "Geometry/GEMGeometry/interface/ME0EtaPartition.h" +#include "Geometry/GEMGeometry/interface/ME0EtaPartitionSpecs.h" +#include "Geometry/CommonTopologies/interface/TrapezoidalStripTopology.h" + + +ME0EtaPartition::ME0EtaPartition(ME0DetId id, BoundPlane::BoundPlanePointer bp, ME0EtaPartitionSpecs* rrs) : + GeomDetUnit(bp), id_(id),specs_(rrs) +{ + setDetId(id); +} + +ME0EtaPartition::~ME0EtaPartition() +{ + delete specs_; //Assume the roll owns it specs (specs are not shared) +} + +const Topology& +ME0EtaPartition::topology() const +{ + return specs_->topology(); +} + +const StripTopology& +ME0EtaPartition::specificTopology() const +{ + return specs_->specificTopology(); +} + +const Topology& +ME0EtaPartition::padTopology() const +{ + return specs_->padTopology(); +} + +const StripTopology& +ME0EtaPartition::specificPadTopology() const +{ + return specs_->specificPadTopology(); +} + +const GeomDetType& +ME0EtaPartition::type() const +{ + return (*specs_); +} + +int +ME0EtaPartition::nstrips() const +{ + return this->specificTopology().nstrips(); +} + +LocalPoint +ME0EtaPartition::centreOfStrip(int strip) const +{ + float s = static_cast(strip) - 0.5; + return this->specificTopology().localPosition(s); +} + +LocalPoint +ME0EtaPartition::centreOfStrip(float strip) const +{ + return this->specificTopology().localPosition(strip); +} + +LocalError +ME0EtaPartition::localError(float strip) const +{ + return this->specificTopology().localError(strip, 1./sqrt(12.)); +} + +float +ME0EtaPartition::strip(const LocalPoint& lp) const +{ + return this->specificTopology().strip(lp); +} + +float +ME0EtaPartition::localPitch(const LocalPoint& lp) const +{ + return this->specificTopology().localPitch(lp); +} + +float +ME0EtaPartition::pitch() const +{ + return this->specificTopology().pitch(); +} + + +int +ME0EtaPartition::npads() const +{ + return specificPadTopology().nstrips(); +} + +LocalPoint +ME0EtaPartition::centreOfPad(int pad) const +{ + float p = static_cast(pad) - 0.5; + return specificPadTopology().localPosition(p); +} + +LocalPoint +ME0EtaPartition::centreOfPad(float pad) const +{ + return specificPadTopology().localPosition(pad); +} + +float +ME0EtaPartition::pad(const LocalPoint& lp) const +{ + return specificPadTopology().strip(lp); +} + +float +ME0EtaPartition::localPadPitch(const LocalPoint& lp) const +{ + return specificPadTopology().localPitch(lp); +} + +float +ME0EtaPartition::padPitch() const +{ + return specificPadTopology().pitch(); +} + + +float +ME0EtaPartition::padOfStrip(int strip) const +{ + LocalPoint c_o_s = centreOfStrip(strip); + return pad(c_o_s); +} + +int +ME0EtaPartition::firstStripInPad(int pad) const +{ + float p = static_cast(pad) - 0.9999; + LocalPoint lp = specificPadTopology().localPosition(p); + return static_cast(strip(lp)) + 1; +} + +int +ME0EtaPartition::lastStripInPad(int pad) const +{ + float p = static_cast(pad) - 0.0001; + LocalPoint lp = specificPadTopology().localPosition(p); + return static_cast(strip(lp)) + 1; +} + diff --git a/Geometry/GEMGeometry/src/ME0EtaPartitionSpecs.cc b/Geometry/GEMGeometry/src/ME0EtaPartitionSpecs.cc new file mode 100644 index 0000000000000..3cac0860e5f9c --- /dev/null +++ b/Geometry/GEMGeometry/src/ME0EtaPartitionSpecs.cc @@ -0,0 +1,79 @@ +#include "Geometry/GEMGeometry/interface/ME0EtaPartitionSpecs.h" +#include "Geometry/CommonTopologies/interface/RectangularStripTopology.h" +#include "Geometry/CommonTopologies/interface/TrapezoidalStripTopology.h" + + +using namespace GeomDetEnumerators; + + +ME0EtaPartitionSpecs::ME0EtaPartitionSpecs(SubDetector rss, const std::string& name, const ME0Specs& pars) + : GeomDetType(name, rss), _p(pars), _n(name) +{ + if (rss == ME0 ) + { + float b = _p[0]; + float B = _p[1]; + float h = _p[2]; + float r0 = h*(B + b)/(B - b); + float striplength = h*2; + float strips = _p[3]; + float pitch = (b + B)/strips; + int nstrip =static_cast(strips); + _top = new TrapezoidalStripTopology(nstrip, pitch, striplength, r0); + + float pads = _p[4]; + float pad_pitch = (b + B)/pads; + int npad =static_cast(pads); + _top_pad = new TrapezoidalStripTopology(npad, pad_pitch, striplength, r0); + } else { + _top = nullptr; + _top_pad = nullptr; + } +} + + +ME0EtaPartitionSpecs::~ME0EtaPartitionSpecs() +{ + if (_top) delete _top; + if (_top_pad) delete _top_pad; +} + + +const Topology& +ME0EtaPartitionSpecs::topology() const +{ + return *_top; +} + +const StripTopology& +ME0EtaPartitionSpecs::specificTopology() const +{ + return *_top; +} + + +const Topology& +ME0EtaPartitionSpecs::padTopology() const +{ + return *_top_pad; +} + +const StripTopology& +ME0EtaPartitionSpecs::specificPadTopology() const +{ + return *_top_pad; +} + + +const std::string& +ME0EtaPartitionSpecs::detName() const +{ + return _n; +} + + +const std::vector& +ME0EtaPartitionSpecs::parameters() const +{ + return _p; +} diff --git a/Geometry/GEMGeometry/src/ME0Geometry.cc b/Geometry/GEMGeometry/src/ME0Geometry.cc new file mode 100644 index 0000000000000..bba6be7f0e48c --- /dev/null +++ b/Geometry/GEMGeometry/src/ME0Geometry.cc @@ -0,0 +1,78 @@ +/** Implementation of the Model for ME0 Geometry + * + * \author M. Maggi - INFN Bari + */ + +#include +#include + +ME0Geometry::ME0Geometry(){} + + +ME0Geometry::~ME0Geometry(){} + + +const ME0Geometry::DetTypeContainer& ME0Geometry::detTypes() const{ + return theEtaPartitionTypes; +} + + +const ME0Geometry::DetUnitContainer& ME0Geometry::detUnits() const{ + return theEtaPartitions; +} + + +const ME0Geometry::DetContainer& ME0Geometry::dets() const{ + return theDets; +} + + +const ME0Geometry::DetIdContainer& ME0Geometry::detUnitIds() const{ + return theEtaPartitionIds; +} + + +const ME0Geometry::DetIdContainer& ME0Geometry::detIds() const{ + return theDetIds; +} + + +const GeomDetUnit* ME0Geometry::idToDetUnit(DetId id) const{ + return dynamic_cast(idToDet(id)); +} + +const GeomDet* ME0Geometry::idToDet(DetId id) const{ + mapIdToDet::const_iterator i = theMap.find(id); + return (i != theMap.end()) ? + i->second : 0 ; +} + +/* +const std::vector& ME0Geometry::chambers() const { + return allChambers; +} +*/ + + +const std::vector& ME0Geometry::etaPartitions() const{ + return allEtaPartitions; +} + +const ME0EtaPartition* ME0Geometry::etaPartition(ME0DetId id) const{ + return dynamic_cast(idToDetUnit(id)); +} + + +void +ME0Geometry::add(ME0EtaPartition* etaPartition){ + theDets.push_back(etaPartition); + allEtaPartitions.push_back(etaPartition); + theEtaPartitions.push_back(etaPartition); + theEtaPartitionIds.push_back(etaPartition->geographicalId()); + theDetIds.push_back(etaPartition->geographicalId()); + GeomDetType* _t = const_cast(&etaPartition->type()); + theEtaPartitionTypes.push_back(_t); + theMap.insert(std::pair + (etaPartition->geographicalId(),etaPartition)); +} + diff --git a/Geometry/GEMGeometry/test/BuildFile.xml b/Geometry/GEMGeometry/test/BuildFile.xml index 32b6cf0b6f2e6..7250448aad3a9 100644 --- a/Geometry/GEMGeometry/test/BuildFile.xml +++ b/Geometry/GEMGeometry/test/BuildFile.xml @@ -5,3 +5,5 @@ + + diff --git a/Geometry/GEMGeometry/test/GEMGeometryAnalyzer.cc b/Geometry/GEMGeometry/test/GEMGeometryAnalyzer.cc index 53bfc7d8aaca8..b0f0483974be9 100644 --- a/Geometry/GEMGeometry/test/GEMGeometryAnalyzer.cc +++ b/Geometry/GEMGeometry/test/GEMGeometryAnalyzer.cc @@ -76,7 +76,6 @@ GEMGeometryAnalyzer::analyze( const edm::Event& /*iEvent*/, const edm::EventSetu ofos << " GeomDetUnit DetIds\t" <detUnitIds().size() << endl; ofos << " eta partitions \t" <etaPartitions().size() << endl; ofos << " chambers \t" <chambers().size() << endl; - ofos << " no. eta partitions \t" <etaPartitions().size()/pDD->chambers().size() << endl; ofos << " super chambers \t" <superChambers().size() << endl; ofos << " rings \t\t" <rings().size() << endl; ofos << " stations \t\t" <stations().size() << endl; @@ -97,10 +96,11 @@ GEMGeometryAnalyzer::analyze( const edm::Event& /*iEvent*/, const edm::EventSetu } } } + // checking the number of strips and pads ofos << " total number of strips\t"<regions()) { ofos << " GEMRegion " << region->region() << " has " << region->nStations() << " stations." << endl; for (auto station : region->stations()) { - ofos << " GEMStation " << station->getName() << " has " << station->nRings() << " rings." << endl; + ofos << " GEMStation " << station->getName() << " has " << station->nRings() << " rings." << endl; for (auto ring : station->rings()) { - ofos << " GEMRing " << ring->region() << " " << ring->station() << " " << ring->ring() << " has " << ring->nSuperChambers() << " super chambers." << endl; + ofos << " GEMRing " << ring->region() << " " << ring->station() << " " << ring->ring() << " has " << ring->nSuperChambers() << " super chambers." << endl; + int i = 1; for (auto sch : ring->superChambers()) { GEMDetId schId(sch->id()); - ofos << " GEMSuperChamber " << j << ", GEMDetId = " << schId.rawId() << ", " << schId << " has " << sch->nChambers() << " chambers." << endl; + ofos << " GEMSuperChamber " << i << ", GEMDetId = " << schId.rawId() << ", " << schId << " has " << sch->nChambers() << " chambers." << endl; // checking the dimensions of each partition & chamber + int j = 1; for (auto ch : sch->chambers()){ GEMDetId chId(ch->id()); int nRolls(ch->nEtaPartitions()); - ofos << " GEMChamber " << j << ", GEMDetId = " << chId.rawId() << ", " << chId << " has " << nRolls << " eta partitions." << endl; + ofos << " GEMChamber " << j << ", GEMDetId = " << chId.rawId() << ", " << chId << " has " << nRolls << " eta partitions." << endl; int k = 1; auto& rolls(ch->etaPartitions()); @@ -158,7 +156,7 @@ GEMGeometryAnalyzer::analyze( const edm::Event& /*iEvent*/, const edm::EventSetu for (auto roll : rolls){ GEMDetId rId(roll->id()); - ofos<<" GEMEtaPartition " << k << ", GEMDetId = " << rId.rawId() << ", " << rId << endl; + ofos<<" GEMEtaPartition " << k << ", GEMDetId = " << rId.rawId() << ", " << rId << endl; const BoundPlane& bSurface(roll->surface()); const StripTopology* topology(&(roll->specificTopology())); @@ -219,18 +217,21 @@ GEMGeometryAnalyzer::analyze( const edm::Event& /*iEvent*/, const edm::EventSetu double dphi(cstripN - cstrip1); if (dphi < 0.) dphi += 360.; double deta(abs(beta - teta)); - ofos << " \tType: " << type << endl - << " \tDimensions[cm]: b = " << bottomEdge << ", B = " << topEdge << ", h = " << height << endl - << " \tnStrips = " << nStrips << ", nPads = " << nPads << endl - << " \tcenter(x,y,z) = " << cx << " " << cy << " " << cz << ", center(eta,phi) = " << ceta << " " << cphi << endl - << " \ttop(x,y,z) = " << tx << " " << ty << " " << tz << ", top(eta,phi) = " << teta << " " << tphi << endl - << " \tbottom(x,y,z) = " << bx << " " << by << " " << bz << ", bottom(eta,phi) = " << beta << " " << bphi << endl - << " \tpith (top,center,bottom) = " << topPitch << " " << pitch << " " << bottomPitch << ", dEta = " << deta << ", dPhi = " << dphi << endl; + const bool printDetails(true); + if (printDetails) + ofos << " \tType: " << type << endl + << " \tDimensions[cm]: b = " << bottomEdge << ", B = " << topEdge << ", h = " << height << endl + << " \tnStrips = " << nStrips << ", nPads = " << nPads << endl + << " \tcenter(x,y,z) = " << cx << " " << cy << " " << cz << ", center(eta,phi) = " << ceta << " " << cphi << endl + << " \ttop(x,y,z) = " << tx << " " << ty << " " << tz << ", top(eta,phi) = " << teta << " " << tphi << endl + << " \tbottom(x,y,z) = " << bx << " " << by << " " << bz << ", bottom(eta,phi) = " << beta << " " << bphi << endl + << " \tpith (top,center,bottom) = " << topPitch << " " << pitch << " " << bottomPitch << ", dEta = " << deta << ", dPhi = " << dphi << endl; ++k; } ++j; } + ++i; } } } diff --git a/Geometry/GEMGeometry/test/ME0GeometryAnalyzer.cc b/Geometry/GEMGeometry/test/ME0GeometryAnalyzer.cc new file mode 100644 index 0000000000000..effcb19252a3c --- /dev/null +++ b/Geometry/GEMGeometry/test/ME0GeometryAnalyzer.cc @@ -0,0 +1,196 @@ +/** Derived from DTGeometryAnalyzer by Nicola Amapane + * + * \author M. Maggi - INFN Bari + */ + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "Geometry/GEMGeometry/interface/ME0Geometry.h" +#include +#include "Geometry/GEMGeometry/interface/ME0EtaPartitionSpecs.h" +#include "Geometry/CommonTopologies/interface/StripTopology.h" + +#include "DataFormats/Math/interface/deltaPhi.h" + +#include +#include +#include +#include +#include + +class ME0GeometryAnalyzer : public edm::EDAnalyzer { + +public: + ME0GeometryAnalyzer( const edm::ParameterSet& pset); + + ~ME0GeometryAnalyzer(); + + virtual void analyze( const edm::Event&, const edm::EventSetup& ); + + const std::string& myName() { return myName_;} + +private: + + const int dashedLineWidth_; + const std::string dashedLine_; + const std::string myName_; + std::ofstream ofos; +}; +using namespace std; +ME0GeometryAnalyzer::ME0GeometryAnalyzer( const edm::ParameterSet& /*iConfig*/ ) + : dashedLineWidth_(104), dashedLine_( string(dashedLineWidth_, '-') ), + myName_( "ME0GeometryAnalyzer" ) +{ + ofos.open("MytestOutput.out"); + ofos <<"======================== Opening output file"<< endl; +} + + +ME0GeometryAnalyzer::~ME0GeometryAnalyzer() +{ + ofos.close(); + ofos <<"======================== Closing output file"<< endl; +} + +void +ME0GeometryAnalyzer::analyze( const edm::Event& /*iEvent*/, const edm::EventSetup& iSetup ) +{ + edm::ESHandle pDD; + iSetup.get().get(pDD); + + ofos << myName() << ": Analyzer..." << endl; + ofos << "start " << dashedLine_ << endl; + + ofos << " Geometry node for ME0Geom is " << &(*pDD) << endl; + ofos << " detTypes \t" <detTypes().size() << endl; + ofos << " GeomDetUnit \t" <detUnits().size() << endl; + ofos << " GeomDet \t" <dets().size() << endl; + ofos << " GeomDetUnit DetIds\t" <detUnitIds().size() << endl; + ofos << " eta partitions \t" <etaPartitions().size() << endl; + + // checking uniqueness of roll detIds + bool flagNonUniqueRollID = false; + bool flagNonUniqueRollRawID = false; + for (auto roll1 : pDD->etaPartitions()){ + for (auto roll2 : pDD->etaPartitions()){ + if (roll1 != roll2){ + if (roll1->id() == roll2->id()) flagNonUniqueRollID = true; + if (roll1->id().rawId() == roll2->id().rawId()) flagNonUniqueRollRawID = true; + } + } + } + // checking the number of strips and pads + if (flagNonUniqueRollID or flagNonUniqueRollRawID) + ofos << " -- WARNING: non unique roll Ids!!!" << endl; + + ofos << myName() << ": Begin iteration over geometry..." << endl; + ofos << "iter " << dashedLine_ << endl; + + ofos << myName() << "Begin ME0Geometry TEST" << endl; + + /* + * possible checklist for an eta partition: + * base_bottom, base_top, height, strips, pads + * cx, cy, cz, ceta, cphi + * tx, ty, tz, teta, tphi + * bx, by, bz, beta, bphi + * pitch center, pitch bottom, pitch top + * deta, dphi + * gap thicess + * sum of all dx + gap = chamber height + */ + + for (auto roll : pDD->etaPartitions()){ + ME0DetId rId(roll->id()); + ofos<<" ME0EtaPartition , 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(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(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(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 << " \tType: " << type << endl + << " \tDimensions[cm]: b = " << bottomEdge << ", B = " << topEdge << ", h = " << height << endl + // << " \tnStrips = " << nStrips << ", nPads = " << nPads << endl + << " \tcenter(x,y,z) = " << cx << " " << cy << " " << cz << ", center(eta,phi) = " << ceta << " " << cphi << endl + << " \ttop(x,y,z) = " << tx << " " << ty << " " << tz << ", top(eta,phi) = " << teta << " " << tphi << endl + << " \tbottom(x,y,z) = " << bx << " " << by << " " << bz << ", bottom(eta,phi) = " << beta << " " << bphi << endl + << " \tdeta = "< +DEFINE_FWK_MODULE(ME0GeometryAnalyzer); diff --git a/Geometry/GEMGeometry/test/testGEMGeometry_cfg.py b/Geometry/GEMGeometry/test/testGEMGeometry_cfg.py index 139d876f1674a..a138c45bb4767 100644 --- a/Geometry/GEMGeometry/test/testGEMGeometry_cfg.py +++ b/Geometry/GEMGeometry/test/testGEMGeometry_cfg.py @@ -1,8 +1,8 @@ import FWCore.ParameterSet.Config as cms process = cms.Process("Demo") -process.load('Configuration.Geometry.GeometryExtended2019_cff') -process.load('Configuration.Geometry.GeometryExtended2019Reco_cff') +process.load('Configuration.Geometry.GeometryExtended2023HGCalMuon_cff') +process.load('Configuration.Geometry.GeometryExtended2023HGCalMuonReco_cff') process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') process.load('FWCore.MessageLogger.MessageLogger_cfi') diff --git a/Geometry/GEMGeometry/test/testME0Geometry_cfg.py b/Geometry/GEMGeometry/test/testME0Geometry_cfg.py new file mode 100644 index 0000000000000..bb01a1e70a96f --- /dev/null +++ b/Geometry/GEMGeometry/test/testME0Geometry_cfg.py @@ -0,0 +1,31 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("Demo") +#process.load('Configuration.Geometry.GeometryExtended2019_cff') +#process.load('Configuration.Geometry.GeometryExtended2019Reco_cff') +process.load("Configuration.Geometry.GeometryExtended2023HGCal_cff") +process.load("Configuration.Geometry.GeometryExtended2023HGCalReco_cff") + +process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') + +process.load('FWCore.MessageLogger.MessageLogger_cfi') +process.MessageLogger.cout.threshold = cms.untracked.string('DEBUG') +process.MessageLogger.debugModules = cms.untracked.vstring('ME0GeometryBuilderFromDDD') +process.MessageLogger.destinations = cms.untracked.vstring("cout") +process.MessageLogger.cout = cms.untracked.PSet(threshold = cms.untracked.string("DEBUG")) + + +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:upgrade2019', '') + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) +) +process.source = cms.Source("EmptySource") + +process.MessageLogger = cms.Service("MessageLogger") + +process.test = cms.EDAnalyzer("ME0GeometryAnalyzer") + +process.p = cms.Path(process.test) + diff --git a/Geometry/GEMGeometryBuilder/data/GEMSpecs.xml b/Geometry/GEMGeometryBuilder/data/GEMSpecs.xml index dff939009e752..6a36bb1e87c28 100644 --- a/Geometry/GEMGeometryBuilder/data/GEMSpecs.xml +++ b/Geometry/GEMGeometryBuilder/data/GEMSpecs.xml @@ -2,11 +2,11 @@ - + - + diff --git a/Geometry/GEMGeometryBuilder/data/v3/GEMSpecs.xml b/Geometry/GEMGeometryBuilder/data/v3/GEMSpecs.xml index 57cbcdfa2547a..6a36bb1e87c28 100644 --- a/Geometry/GEMGeometryBuilder/data/v3/GEMSpecs.xml +++ b/Geometry/GEMGeometryBuilder/data/v3/GEMSpecs.xml @@ -2,13 +2,11 @@ - - + - - + diff --git a/Geometry/GEMGeometryBuilder/data/v4/GEMSpecs.xml b/Geometry/GEMGeometryBuilder/data/v4/GEMSpecs.xml index dff939009e752..6a36bb1e87c28 100644 --- a/Geometry/GEMGeometryBuilder/data/v4/GEMSpecs.xml +++ b/Geometry/GEMGeometryBuilder/data/v4/GEMSpecs.xml @@ -2,11 +2,11 @@ - + - + diff --git a/Geometry/GEMGeometryBuilder/data/v5/GEMSpecs.xml b/Geometry/GEMGeometryBuilder/data/v5/GEMSpecs.xml new file mode 100644 index 0000000000000..83a21a45d4fe5 --- /dev/null +++ b/Geometry/GEMGeometryBuilder/data/v5/GEMSpecs.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/GEMGeometryBuilder/plugins/BuildFile.xml b/Geometry/GEMGeometryBuilder/plugins/BuildFile.xml index 59e02d744e7d6..2eef2bade908a 100644 --- a/Geometry/GEMGeometryBuilder/plugins/BuildFile.xml +++ b/Geometry/GEMGeometryBuilder/plugins/BuildFile.xml @@ -7,5 +7,8 @@ + + + diff --git a/Geometry/GEMGeometryBuilder/plugins/ME0GeometryESModule.cc b/Geometry/GEMGeometryBuilder/plugins/ME0GeometryESModule.cc new file mode 100644 index 0000000000000..2c89796c71a03 --- /dev/null +++ b/Geometry/GEMGeometryBuilder/plugins/ME0GeometryESModule.cc @@ -0,0 +1,58 @@ +/** \file + * + * $Date: 2012/11/15 23:06:37 $ + * \author M. Maggi - INFN Bari + */ + +#include "Geometry/GEMGeometryBuilder/plugins/ME0GeometryESModule.h" +#include "Geometry/GEMGeometryBuilder/src/ME0GeometryBuilderFromDDD.h" +#include "Geometry/GEMGeometryBuilder/src/ME0GeometryBuilderFromCondDB.h" + +#include +#include +#include + +#include "Geometry/Records/interface/ME0RecoGeometryRcd.h" +#include "CondFormats/GeometryObjects/interface/RecoIdealGeometry.h" + +#include +#include "FWCore/Framework/interface/ESTransientHandle.h" +#include +#include +#include + +#include + +using namespace edm; + +ME0GeometryESModule::ME0GeometryESModule(const edm::ParameterSet & p){ + comp11 = p.getUntrackedParameter("compatibiltyWith11",true); + // Find out if using the DDD or CondDB Geometry source. + useDDD = p.getUntrackedParameter("useDDD",true); + setWhatProduced(this); + +} + + +ME0GeometryESModule::~ME0GeometryESModule(){} + + +boost::shared_ptr +ME0GeometryESModule::produce(const MuonGeometryRecord & record) { + if(useDDD){ + edm::ESTransientHandle cpv; + record.getRecord().get(cpv); + edm::ESHandle mdc; + record.getRecord().get(mdc); + ME0GeometryBuilderFromDDD builder(comp11); + return boost::shared_ptr(builder.build(&(*cpv), *mdc)); + }else{ + edm::ESHandle rigme0; + record.getRecord().get(rigme0); + ME0GeometryBuilderFromCondDB builder(comp11); + return boost::shared_ptr(builder.build(*rigme0)); + } + +} + +DEFINE_FWK_EVENTSETUP_MODULE(ME0GeometryESModule); diff --git a/Geometry/GEMGeometryBuilder/plugins/ME0GeometryESModule.h b/Geometry/GEMGeometryBuilder/plugins/ME0GeometryESModule.h new file mode 100644 index 0000000000000..7a39b2c0b900b --- /dev/null +++ b/Geometry/GEMGeometryBuilder/plugins/ME0GeometryESModule.h @@ -0,0 +1,33 @@ +#ifndef ME0Geometry_ME0GeometryESModule_h +#define ME0Geometry_ME0GeometryESModule_h + +/** \class ME0GeometryESModule + * + * ESProducer for ME0Geometry in MuonGeometryRecord + * + * \author M. Maggi - INFN Bari + */ + +#include +#include +#include +#include "Geometry/GEMGeometry/interface/ME0Geometry.h" +#include + +class ME0GeometryESModule : public edm::ESProducer { +public: + /// Constructor + ME0GeometryESModule(const edm::ParameterSet & p); + + /// Destructor + virtual ~ME0GeometryESModule(); + + /// Produce ME0Geometry. + boost::shared_ptr produce(const MuonGeometryRecord & record); + +private: + + bool comp11,useDDD; + +}; +#endif diff --git a/Geometry/GEMGeometryBuilder/python/me0GeometryDB_cfi.py b/Geometry/GEMGeometryBuilder/python/me0GeometryDB_cfi.py new file mode 100644 index 0000000000000..d304e0fa3f64b --- /dev/null +++ b/Geometry/GEMGeometryBuilder/python/me0GeometryDB_cfi.py @@ -0,0 +1,9 @@ +import FWCore.ParameterSet.Config as cms + +# +# This cfi should be included to build the ME0 geometry model. +# +ME0GeometryESModule = cms.ESProducer("ME0GeometryESModule", + compatibiltyWith11 = cms.untracked.bool(True), + useDDD = cms.untracked.bool(False) +) diff --git a/Geometry/GEMGeometryBuilder/python/me0Geometry_cfi.py b/Geometry/GEMGeometryBuilder/python/me0Geometry_cfi.py new file mode 100644 index 0000000000000..2053ca499084b --- /dev/null +++ b/Geometry/GEMGeometryBuilder/python/me0Geometry_cfi.py @@ -0,0 +1,11 @@ +import FWCore.ParameterSet.Config as cms + +# +# This cfi should be included to build the ME0 geometry model. +# +ME0GeometryESModule = cms.ESProducer("ME0GeometryESModule", + compatibiltyWith11 = cms.untracked.bool(True), + useDDD = cms.untracked.bool(True) +) + + diff --git a/Geometry/GEMGeometryBuilder/src/GEMGeometryBuilderFromDDD.cc b/Geometry/GEMGeometryBuilder/src/GEMGeometryBuilderFromDDD.cc index 6dd7334a37069..475f134a879cb 100644 --- a/Geometry/GEMGeometryBuilder/src/GEMGeometryBuilderFromDDD.cc +++ b/Geometry/GEMGeometryBuilder/src/GEMGeometryBuilderFromDDD.cc @@ -54,6 +54,7 @@ GEMGeometry* GEMGeometryBuilderFromDDD::build(const DDCompactView* cview, const GEMGeometry* GEMGeometryBuilderFromDDD::buildGeometry(DDFilteredView& fview, const MuonDDDConstants& muonConstants) { + std::cout << "Building the geometry service" << std::endl; LogDebug("GEMGeometryBuilderFromDDD") <<"Building the geometry service"; GEMGeometry* geometry = new GEMGeometry(); @@ -65,6 +66,7 @@ GEMGeometry* GEMGeometryBuilderFromDDD::buildGeometry(DDFilteredView& fview, con LogDebug("GEMGeometryBuilderFromDDD") <<"start the loop"; int nChambers(0); + int maxStation(1); while (doSubDets) { // Get the Base Muon Number @@ -81,6 +83,8 @@ GEMGeometry* GEMGeometryBuilderFromDDD::buildGeometry(DDFilteredView& fview, con // chamber id for this partition. everything is the same; but partition number is 0. GEMDetId chamberId(rollDetId.chamberId()); LogDebug("GEMGeometryBuilderFromDDD") << "GEM chamber rawId: " << chamberId.rawId() << ", detId: " << chamberId; + const int stationId(rollDetId.station()); + if (stationId > maxStation) maxStation = stationId; if (rollDetId.roll()==1) ++nChambers; @@ -158,69 +162,77 @@ GEMGeometry* GEMGeometryBuilderFromDDD::buildGeometry(DDFilteredView& fview, con } auto& partitions(geometry->etaPartitions()); - int nEtaPartitions((int)partitions.size()/nChambers); - // build the chambers and add them to the geometry std::vector vDetId; vDetId.clear(); + int oldRollNumber = 1; for (unsigned i=1; i<=partitions.size(); ++i){ GEMDetId detId(partitions.at(i-1)->id()); - vDetId.push_back(detId); - if (i%nEtaPartitions==0){ + const int rollNumber(detId.roll()); + // new batch of eta partitions --> new chamber + if (rollNumber < oldRollNumber || i == partitions.size()) { + // don't forget the last partition for the last chamber + if (i == partitions.size()) vDetId.push_back(detId); + GEMDetId fId(vDetId.front()); GEMDetId chamberId(fId.chamberId()); - //region(),fId.ring(),fId.station(),fId.layer(),fId.chamber(),0); - // compute the overall boundplane using the first eta partition const GEMEtaPartition* p(geometry->etaPartition(fId)); const BoundPlane& bps = p->surface(); BoundPlane* bp = const_cast(&bps); ReferenceCountingPointer surf(bp); - + GEMChamber* ch = new GEMChamber(chamberId, surf); - LogDebug("GEMGeometryBuilderFromDDD") << "Creating chamber " << chamberId << " with " << vDetId.size() << " eta partitions"; - + LogDebug("GEMGeometryBuilderFromDDD") << "Creating chamber " << chamberId << " with " << vDetId.size() << " eta partitions" << std::endl; + for(auto id : vDetId){ - LogDebug("GEMGeometryBuilderFromDDD") << "Adding eta partition " << id << " to GEM chamber"; + LogDebug("GEMGeometryBuilderFromDDD") << "Adding eta partition " << id << " to GEM chamber" << std::endl; ch->add(const_cast(geometry->etaPartition(id))); } - LogDebug("GEMGeometryBuilderFromDDD") << "Adding the chamber to the geometry"; + LogDebug("GEMGeometryBuilderFromDDD") << "Adding the chamber to the geometry" << std::endl; geometry->add(ch); vDetId.clear(); } + vDetId.push_back(detId); + oldRollNumber = rollNumber; } - + auto& chambers(geometry->chambers()); + // construct super chambers for (unsigned i=0; isurface(); BoundPlane* bp = const_cast(&bps); ReferenceCountingPointer surf(bp); GEMDetId detIdL1(chambers.at(i)->id()); - LogDebug("GEMGeometryBuilderFromDDD") << "First chamber for super chamber: " << detIdL1; - if (detIdL1.layer()==2) continue; GEMDetId detIdL2(detIdL1.region(),detIdL1.ring(),detIdL1.station(),2,detIdL1.chamber(),0); - LogDebug("GEMGeometryBuilderFromDDD") << "Second chamber for super chamber: " << detIdL2; auto ch2 = geometry->chamber(detIdL2); - LogDebug("GEMGeometryBuilderFromDDD") << "Creating new GEM super chamber out of chambers."; + LogDebug("GEMGeometryBuilderFromDDD") << "First chamber for super chamber: " << detIdL1 << std::endl; + LogDebug("GEMGeometryBuilderFromDDD") << "Second chamber for super chamber: " << detIdL2 << std::endl; + + LogDebug("GEMGeometryBuilderFromDDD") << "Creating new GEM super chamber out of chambers." << std::endl; GEMSuperChamber* sch = new GEMSuperChamber(detIdL1, surf); sch->add(const_cast(chambers.at(i))); sch->add(const_cast(ch2)); - LogDebug("GEMGeometryBuilderFromDDD") << "Adding the super chamber to the geometry."; + LogDebug("GEMGeometryBuilderFromDDD") << "Adding the super chamber to the geometry." << std::endl; geometry->add(sch); } - + auto& superChambers(geometry->superChambers()); - // construct the regions, stations and rings. for (int re = -1; re <= 1; re = re+2) { GEMRegion* region = new GEMRegion(re); - for (int st=1; st<=1; ++st) { - GEMStation* station = new GEMStation(re, st); - station->setName("GE" + std::to_string(re) + "/" + std::to_string(st)); + for (int st=1; st<=maxStation; ++st) { + GEMStation* station = new GEMStation(re, st); + std::string sign( re==-1 ? "-" : ""); + std::string name("GE" + sign + std::to_string(st) + "/1"); + // Closest (furthest) super chambers in GE2/1 are called GE2/1s (GE2/1l) + if (st==2) name = "GE" + sign + std::to_string(st) + "/1s"; + if (st==3) name = "GE" + sign + std::to_string(st-1) + "/1l"; + station->setName(name); for (int ri=1; ri<=1; ++ri) { GEMRing* ring = new GEMRing(re, st, ri); for (unsigned sch=0; schadd(region); } - return geometry; } diff --git a/Geometry/GEMGeometryBuilder/src/ME0GeometryBuilderFromCondDB.cc b/Geometry/GEMGeometryBuilder/src/ME0GeometryBuilderFromCondDB.cc new file mode 100644 index 0000000000000..7bf831696ca5f --- /dev/null +++ b/Geometry/GEMGeometryBuilder/src/ME0GeometryBuilderFromCondDB.cc @@ -0,0 +1,139 @@ +/** Implementation of the ME0 Geometry Builder from DDD stored in CondDB + * + * \author M. Maggi - INFN Bari + */ +#include "Geometry/GEMGeometryBuilder/src/ME0GeometryBuilderFromCondDB.h" +#include "Geometry/GEMGeometry/interface/ME0Geometry.h" +#include "Geometry/GEMGeometry/interface/ME0EtaPartitionSpecs.h" + +#include +#include +#include + +#include "Geometry/MuonNumbering/interface/MuonDDDNumbering.h" +#include "Geometry/MuonNumbering/interface/MuonBaseNumber.h" +#include "Geometry/MuonNumbering/interface/ME0NumberingScheme.h" + +#include "DataFormats/GeometrySurface/interface/RectangularPlaneBounds.h" +#include "DataFormats/GeometrySurface/interface/TrapezoidalPlaneBounds.h" + +#include "DataFormats/GeometryVector/interface/Basic3DVector.h" + +#include "CLHEP/Units/GlobalSystemOfUnits.h" + +#include +#include + +ME0GeometryBuilderFromCondDB::ME0GeometryBuilderFromCondDB(bool comp11) : + theComp11Flag(comp11) +{ } + +ME0GeometryBuilderFromCondDB::~ME0GeometryBuilderFromCondDB() +{ } + +ME0Geometry* ME0GeometryBuilderFromCondDB::build(const RecoIdealGeometry& rgeo) +{ + const std::vector& detids(rgeo.detIds()); + ME0Geometry* geometry = new ME0Geometry(); + + std::string name; + std::vector::const_iterator tranStart; + std::vector::const_iterator shapeStart; + std::vector::const_iterator rotStart; + std::vector::const_iterator strStart; + + for (unsigned int id = 0; id < detids.size(); ++id) + { + ME0DetId me0id( detids[id]); + + tranStart = rgeo.tranStart(id); + shapeStart = rgeo.shapeStart(id); + rotStart = rgeo.rotStart(id); + strStart = rgeo.strStart(id); + name = *(strStart); + + Surface::PositionType pos(*(tranStart)/cm,*(tranStart+1)/cm, *(tranStart+2)/cm); + // CLHEP way + Surface::RotationType rot(*(rotStart+0), *(rotStart+1), *(rotStart+2), + *(rotStart+3), *(rotStart+4), *(rotStart+5), + *(rotStart+6), *(rotStart+7), *(rotStart+8)); + + Bounds* bounds = 0; + float be = *(shapeStart+0)/cm; + float te = *(shapeStart+1)/cm; + float ap = *(shapeStart+2)/cm; + float ti = *(shapeStart+3)/cm; + // float nstrip = *(shapeStart+4); + //float npad = *(shapeStart+5); + // TrapezoidalPlaneBounds* + bounds = new TrapezoidalPlaneBounds(be, te, ap, ti); + + std::vector pars; + pars.push_back(be); //b/2; + pars.push_back(te); //B/2; + pars.push_back(ap); //h/2; + // pars.push_back(nstrip); + // pars.push_back(npad); + + ME0EtaPartitionSpecs* e_p_specs = new ME0EtaPartitionSpecs(GeomDetEnumerators::ME0, name, pars); + + //Change of axes for the forward + Basic3DVector newX(1.,0.,0.); + Basic3DVector newY(0.,0.,1.); + // if (tran[2] > 0. ) + newY *= -1; + Basic3DVector newZ(0.,1.,0.); + rot.rotateAxes (newX, newY, newZ); + + + BoundPlane* bp = new BoundPlane(pos, rot, bounds); + ReferenceCountingPointer surf(bp); + ME0EtaPartition* mep=new ME0EtaPartition(me0id, surf, e_p_specs); + geometry->add(mep); + + + // std::list gepls; + /* + if (chids.find(chid)!=chids.end()){ + gepls = chids[chid]; + } + */ + // gepls.push_back(gep); + //chids[chid]=gepls; + + } + /* + // Create the ME0Chambers and store them on the Geometry + + for( std::map >::iterator ich=chids.begin(); + ich != chids.end(); ich++){ + ME0DetId chid = ich->first; + std::list gepls = ich->second; + + // compute the overall boundplane. At the moment we use just the last + // surface + BoundPlane* bp=0; + for(std::list::iterator gepl=gepls.begin(); + gepl!=gepls.end(); gepl++){ + const BoundPlane& bps = (*gepl)->surface(); + bp = const_cast(&bps); + } + + ReferenceCountingPointer surf(bp); + // Create the chamber + ME0Chamber* ch = new ME0Chamber (chid, surf); + // Add the etaps to rhe chamber + for(std::list::iterator gepl=gepls.begin(); + gepl!=gepls.end(); gepl++){ + ch->add(*gepl); + } + // Add the chamber to the geometry + geometry->add(ch); + + } + */ + return geometry; +} + + + diff --git a/Geometry/GEMGeometryBuilder/src/ME0GeometryBuilderFromCondDB.h b/Geometry/GEMGeometryBuilder/src/ME0GeometryBuilderFromCondDB.h new file mode 100644 index 0000000000000..e9c27a59b4270 --- /dev/null +++ b/Geometry/GEMGeometryBuilder/src/ME0GeometryBuilderFromCondDB.h @@ -0,0 +1,38 @@ +#ifndef ME0Geometry_ME0GeometryBuilderFromCondDB_H +#define ME0Geometry_ME0GeometryBuilderFromCondDB_H + +/** \class ME0GeometryBuilderFromCondDB + * Build the ME0Geometry from the DDD description stored in Condition DB + * + * \author M. Maggi - INFN Bari + * + */ + +#include +#include +#include +#include + + +class ME0Geometry; +class ME0DetId; +class ME0EtaPartition; + +class ME0GeometryBuilderFromCondDB +{ + public: + + ME0GeometryBuilderFromCondDB(bool comp11); + + ~ME0GeometryBuilderFromCondDB(); + + ME0Geometry* build(const RecoIdealGeometry& rgeo); + + + private: + // std::map > chids; + bool theComp11Flag; + +}; + +#endif diff --git a/Geometry/GEMGeometryBuilder/src/ME0GeometryBuilderFromDDD.cc b/Geometry/GEMGeometryBuilder/src/ME0GeometryBuilderFromDDD.cc new file mode 100644 index 0000000000000..d078a869d367f --- /dev/null +++ b/Geometry/GEMGeometryBuilder/src/ME0GeometryBuilderFromDDD.cc @@ -0,0 +1,234 @@ +/** Implementation of the ME0 Geometry Builder from DDD + * + * \author Port of: MuDDDME0Builder (ORCA) + * \author M. Maggi - INFN Bari + */ +#include "Geometry/GEMGeometryBuilder/src/ME0GeometryBuilderFromDDD.h" +#include "Geometry/GEMGeometry/interface/ME0Geometry.h" +#include "Geometry/GEMGeometry/interface/ME0EtaPartitionSpecs.h" + +#include +#include +#include + +#include "Geometry/MuonNumbering/interface/MuonDDDNumbering.h" +#include "Geometry/MuonNumbering/interface/MuonBaseNumber.h" +#include "Geometry/MuonNumbering/interface/ME0NumberingScheme.h" + +#include "DataFormats/GeometrySurface/interface/RectangularPlaneBounds.h" +#include "DataFormats/GeometrySurface/interface/TrapezoidalPlaneBounds.h" + +#include "DataFormats/GeometryVector/interface/Basic3DVector.h" + +#include "CLHEP/Units/GlobalSystemOfUnits.h" + +#include +#include +#include + +ME0GeometryBuilderFromDDD::ME0GeometryBuilderFromDDD(bool comp11) : theComp11Flag(comp11) +{ } + +ME0GeometryBuilderFromDDD::~ME0GeometryBuilderFromDDD() +{ } + +ME0Geometry* ME0GeometryBuilderFromDDD::build(const DDCompactView* cview, const MuonDDDConstants& muonConstants) +{ + std::string attribute = "ReadOutName"; // could come from .orcarc + std::string value = "MuonME0Hits"; // could come from .orcarc + DDValue val(attribute, value, 0.0); + + // Asking only for the MuonME0's + DDSpecificsFilter filter; + filter.setCriteria(val, // name & value of a variable + DDSpecificsFilter::matches, + DDSpecificsFilter::AND, + true, // compare strings otherwise doubles + true // use merged-specifics or simple-specifics + ); + DDFilteredView fview(*cview); + fview.addFilter(filter); + + return this->buildGeometry(fview, muonConstants); +} + +ME0Geometry* ME0GeometryBuilderFromDDD::buildGeometry(DDFilteredView& fview, const MuonDDDConstants& muonConstants) +{ + LogDebug("ME0GeometryBuilderFromDDD") <<"Building the geometry service"; + ME0Geometry* geometry = new ME0Geometry(); + + LogDebug("ME0GeometryBuilderFromDDD") << "About to run through the ME0 structure\n" + <<" First logical part " + < dpar=fview.logicalPart().solid().parameters(); + std::string name = fview.logicalPart().name().name(); + DDTranslation tran = fview.translation(); + DDRotationMatrix rota = fview.rotation(); + Surface::PositionType pos(tran.x()/cm, tran.y()/cm, tran.z()/cm); + // CLHEP way + // Surface::RotationType rot(rota.xx(),rota.xy(),rota.xz(), + // rota.yx(),rota.yy(),rota.yz(), + // rota.zx(),rota.zy(),rota.zz()); + + //ROOT::Math way + DD3Vector x, y, z; + rota.GetComponents(x,y,z); + // doesn't this just re-inverse??? + Surface::RotationType rot(float(x.X()), float(x.Y()), float(x.Z()), + float(y.X()), float(y.Y()), float(y.Z()), + float(z.X()), float(z.Y()), float(z.Z())); + + float be = dpar[4]/cm; // half bottom edge + float te = dpar[8]/cm; // half top edge + float ap = dpar[0]/cm; // half apothem + float ti = 0.4/cm; // half thickness + + // TrapezoidalPlaneBounds* + Bounds* bounds = new TrapezoidalPlaneBounds(be, te, ap, ti); + + std::vector pars; + pars.push_back(be); + pars.push_back(te); + pars.push_back(ap); + // pars.push_back(nStrips); + // pars.push_back(nPads); + + LogDebug("ME0GeometryBuilderFromDDD") + << "ME0 " << name << " par " << be << " " << te << " " << ap << " " << dpar[0]; + + ME0EtaPartitionSpecs* e_p_specs = new ME0EtaPartitionSpecs(GeomDetEnumerators::ME0, name, pars); + + //Change of axes for the forward + Basic3DVector newX(1.,0.,0.); + Basic3DVector newY(0.,0.,1.); + // if (tran.z() > 0. ) + newY *= -1; + Basic3DVector newZ(0.,1.,0.); + rot.rotateAxes (newX, newY, newZ); + + BoundPlane* bp = new BoundPlane(pos, rot, bounds); + ReferenceCountingPointer surf(bp); + ME0EtaPartition* mep = new ME0EtaPartition(rollDetId, surf, e_p_specs); + + // Add the eta partition to the geometry + geometry->add(mep); + // go to next layer + doSubDets = fview.nextSibling(); + } + + /* + auto& partitions(geometry->etaPartitions()); + // build the chambers and add them to the geometry + std::vector vDetId; + vDetId.clear(); + int oldRollNumber = 1; + for (unsigned i=1; i<=partitions.size(); ++i){ + ME0DetId detId(partitions.at(i-1)->id()); + const int rollNumber(detId.roll()); + // new batch of eta partitions --> new chamber + if (rollNumber < oldRollNumber || i == partitions.size()) { + // don't forget the last partition for the last chamber + if (i == partitions.size()) vDetId.push_back(detId); + + ME0DetId fId(vDetId.front()); + ME0DetId chamberId(fId.chamberId()); + // compute the overall boundplane using the first eta partition + const ME0EtaPartition* p(geometry->etaPartition(fId)); + const BoundPlane& bps = p->surface(); + BoundPlane* bp = const_cast(&bps); + ReferenceCountingPointer surf(bp); + + ME0Chamber* ch = new ME0Chamber(chamberId, surf); + LogDebug("ME0GeometryBuilderFromDDD") << "Creating chamber " << chamberId << " with " << vDetId.size() << " eta partitions" << std::endl; + + for(auto id : vDetId){ + LogDebug("ME0GeometryBuilderFromDDD") << "Adding eta partition " << id << " to ME0 chamber" << std::endl; + ch->add(const_cast(geometry->etaPartition(id))); + } + + LogDebug("ME0GeometryBuilderFromDDD") << "Adding the chamber to the geometry" << std::endl; + geometry->add(ch); + vDetId.clear(); + } + vDetId.push_back(detId); + oldRollNumber = rollNumber; + } + + auto& chambers(geometry->chambers()); + // construct super chambers + for (unsigned i=0; isurface(); + BoundPlane* bp = const_cast(&bps); + ReferenceCountingPointer surf(bp); + ME0DetId detIdL1(chambers.at(i)->id()); + if (detIdL1.layer()==2) continue; + ME0DetId detIdL2(detIdL1.region(),detIdL1.ring(),detIdL1.station(),2,detIdL1.chamber(),0); + auto ch2 = geometry->chamber(detIdL2); + + LogDebug("ME0GeometryBuilderFromDDD") << "First chamber for super chamber: " << detIdL1 << std::endl; + LogDebug("ME0GeometryBuilderFromDDD") << "Second chamber for super chamber: " << detIdL2 << std::endl; + + LogDebug("ME0GeometryBuilderFromDDD") << "Creating new ME0 super chamber out of chambers." << std::endl; + ME0SuperChamber* sch = new ME0SuperChamber(detIdL1, surf); + sch->add(const_cast(chambers.at(i))); + sch->add(const_cast(ch2)); + + LogDebug("ME0GeometryBuilderFromDDD") << "Adding the super chamber to the geometry." << std::endl; + geometry->add(sch); + } + + auto& superChambers(geometry->superChambers()); + // construct the regions, stations and rings. + std::cout << "maxStation " << maxStation << std::endl; + for (int re = -1; re <= 1; re = re+2) { + ME0Region* region = new ME0Region(re); + for (int st=1; st<=maxStation; ++st) { + ME0Station* station = new ME0Station(re, st); + std::string name("ME+ std::to_string(re) + "/" + std::to_string(st)); + // Closest (furthest) super chambers in GE2/1 are called GE2/1s (GE2/1l) + if (st==2) name = "GE" + std::to_string(re) + "/" + std::to_string(st) + "s"; + if (st==3) name = "GE" + std::to_string(re) + "/" + std::to_string(st-1) + "l"; + station->setName(name); + for (int ri=1; ri<=1; ++ri) { + ME0Ring* ring = new ME0Ring(re, st, ri); + for (unsigned sch=0; schid()); + if (detId.region() != re || detId.station() != st || detId.ring() != ri) continue; + ring->add(superChambers.at(sch)); + LogDebug("ME0GeometryBuilderFromDDD") << "Adding super chamber " << detId << " to ring: " + << "re " << re << " st " << st << " ri " << ri << std::endl; + } + LogDebug("ME0GeometryBuilderFromDDD") << "Adding ring " << ri << " to station " << "re " << re << " st " << st << std::endl; + station->add(ring); + geometry->add(ring); + } + LogDebug("ME0GeometryBuilderFromDDD") << "Adding station " << st << " to region " << re << std::endl; + region->add(station); + geometry->add(station); + } + LogDebug("ME0GeometryBuilderFromDDD") << "Adding region " << re << " to the geometry " << std::endl; + geometry->add(region); + } + */ + return geometry; +} diff --git a/Geometry/GEMGeometryBuilder/src/ME0GeometryBuilderFromDDD.h b/Geometry/GEMGeometryBuilder/src/ME0GeometryBuilderFromDDD.h new file mode 100644 index 0000000000000..15d4ddf57676b --- /dev/null +++ b/Geometry/GEMGeometryBuilder/src/ME0GeometryBuilderFromDDD.h @@ -0,0 +1,41 @@ +#ifndef ME0Geometry_ME0GeometryBuilderFromDDD_H +#define ME0Geometry_ME0GeometryBuilderFromDDD_H + +/** \class ME0GeometryBuilderFromDDD + * Build the ME0Geometry ftom the DDD description + * + * \author M. Maggi - INFN Bari + * + */ + +#include +#include +#include + +class DDCompactView; +class DDFilteredView; +class ME0Geometry; +class ME0DetId; +class ME0EtaPartition; +class MuonDDDConstants; + +class ME0GeometryBuilderFromDDD +{ + public: + + ME0GeometryBuilderFromDDD(bool comp11); + + ~ME0GeometryBuilderFromDDD(); + + ME0Geometry* build(const DDCompactView* cview, const MuonDDDConstants& muonConstants); + + + private: + ME0Geometry* buildGeometry(DDFilteredView& fview, const MuonDDDConstants& muonConstants); + std::map> chids; + + bool theComp11Flag; + +}; + +#endif diff --git a/Geometry/GlobalTrackingGeometryBuilder/plugins/GlobalTrackingGeometryBuilder.cc b/Geometry/GlobalTrackingGeometryBuilder/plugins/GlobalTrackingGeometryBuilder.cc index 9d320e9c15465..6e9f21b476850 100644 --- a/Geometry/GlobalTrackingGeometryBuilder/plugins/GlobalTrackingGeometryBuilder.cc +++ b/Geometry/GlobalTrackingGeometryBuilder/plugins/GlobalTrackingGeometryBuilder.cc @@ -12,6 +12,7 @@ #include #include #include +#include #include @@ -28,7 +29,8 @@ GlobalTrackingGeometry* GlobalTrackingGeometryBuilder::build(const TrackerGeomet const DTGeometry* dt, const CSCGeometry* csc, const RPCGeometry* rpc, - const GEMGeometry* gem){ + const GEMGeometry* gem, + const ME0Geometry* me0){ // DO NOT CHANGE THE ORDER OF THE GEOMETRIES !!!!!!! @@ -39,6 +41,7 @@ GlobalTrackingGeometry* GlobalTrackingGeometryBuilder::build(const TrackerGeomet tkGeometries.push_back(csc); tkGeometries.push_back(rpc); tkGeometries.push_back(gem); + tkGeometries.push_back(me0); return new GlobalTrackingGeometry(tkGeometries); diff --git a/Geometry/GlobalTrackingGeometryBuilder/plugins/GlobalTrackingGeometryBuilder.h b/Geometry/GlobalTrackingGeometryBuilder/plugins/GlobalTrackingGeometryBuilder.h index 430ec4c3c9576..10fe8b5097ef3 100644 --- a/Geometry/GlobalTrackingGeometryBuilder/plugins/GlobalTrackingGeometryBuilder.h +++ b/Geometry/GlobalTrackingGeometryBuilder/plugins/GlobalTrackingGeometryBuilder.h @@ -18,6 +18,7 @@ class DTGeometry; class CSCGeometry; class RPCGeometry; class GEMGeometry; +class ME0Geometry; class GlobalTrackingGeometryBuilder { public: @@ -32,7 +33,8 @@ class GlobalTrackingGeometryBuilder { const DTGeometry* dt, const CSCGeometry* csc, const RPCGeometry* rpc, - const GEMGeometry* gem); + const GEMGeometry* gem, + const ME0Geometry* me0); protected: diff --git a/Geometry/GlobalTrackingGeometryBuilder/plugins/GlobalTrackingGeometryESProducer.cc b/Geometry/GlobalTrackingGeometryBuilder/plugins/GlobalTrackingGeometryESProducer.cc index 2ec44539f7160..61e32120a50e7 100644 --- a/Geometry/GlobalTrackingGeometryBuilder/plugins/GlobalTrackingGeometryESProducer.cc +++ b/Geometry/GlobalTrackingGeometryBuilder/plugins/GlobalTrackingGeometryESProducer.cc @@ -35,6 +35,7 @@ GlobalTrackingGeometryESProducer::produce(const GlobalTrackingGeometryRecord& re edm::ESHandle csc; edm::ESHandle rpc; edm::ESHandle gem; + edm::ESHandle me0; try { record.getRecord().get(tk); @@ -75,13 +76,20 @@ GlobalTrackingGeometryESProducer::produce(const GlobalTrackingGeometryRecord& re LogWarning("GeometryGlobalTrackingGeometryBuilder") << "No GEM geometry is available."; } + try { + record.getRecord().get(me0); + } catch (edm::eventsetup::NoProxyException& e) { + // No ME0 geo available + LogWarning("GeometryGlobalTrackingGeometryBuilder") << "No ME0 geometry is available."; + } + } catch (edm::eventsetup::NoRecordException& e){ LogWarning("GeometryGlobalTrackingGeometryBuilder") << "No MuonGeometryRecord is available."; } GlobalTrackingGeometryBuilder builder; - return boost::shared_ptr(builder.build(&(*tk), &(*dt), &(*csc), &(*rpc), &(*gem))); + return boost::shared_ptr(builder.build(&(*tk), &(*dt), &(*csc), &(*rpc), &(*gem), &(*me0))); } DEFINE_FWK_EVENTSETUP_MODULE(GlobalTrackingGeometryESProducer); diff --git a/Geometry/HGCalCommonData/data/cfc.xml b/Geometry/HGCalCommonData/data/cfc.xml new file mode 100644 index 0000000000000..9819a4c02f8dd --- /dev/null +++ b/Geometry/HGCalCommonData/data/cfc.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0, 0, 0 + 0.*deg, 0.*deg, 0.*deg + + + + + + + + diff --git a/Geometry/HGCalCommonData/data/hgcal.xml b/Geometry/HGCalCommonData/data/hgcal.xml index a1c7dc4397c48..c10a9655a87b8 100644 --- a/Geometry/HGCalCommonData/data/hgcal.xml +++ b/Geometry/HGCalCommonData/data/hgcal.xml @@ -5,12 +5,12 @@ - + - + diff --git a/Geometry/HGCalCommonData/data/shashlik.xml b/Geometry/HGCalCommonData/data/shashlik.xml index 1deecc8bdef21..95ca391c7f249 100644 --- a/Geometry/HGCalCommonData/data/shashlik.xml +++ b/Geometry/HGCalCommonData/data/shashlik.xml @@ -1,73 +1,39 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HGCalCommonData/data/shashlikCapsuleinCMSE.xml b/Geometry/HGCalCommonData/data/shashlikCapsuleinCMSE.xml new file mode 100644 index 0000000000000..2b4dfc91a481d --- /dev/null +++ b/Geometry/HGCalCommonData/data/shashlikCapsuleinCMSE.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/Geometry/HGCalCommonData/data/shashlikcapsule.xml b/Geometry/HGCalCommonData/data/shashlikcapsule.xml new file mode 100644 index 0000000000000..ee1cfccf4d88a --- /dev/null +++ b/Geometry/HGCalCommonData/data/shashlikcapsule.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3.5*mm, 3.5*mm, -3.5*mm, -3.5*mm + + 3.5*mm, -3.5*mm, 3.5*mm, -3.5*mm + + + 0.6*mm, 0.0*mm, 0.0*mm + + + diff --git a/Geometry/HGCalCommonData/plugins/BuildFile.xml b/Geometry/HGCalCommonData/plugins/BuildFile.xml new file mode 100644 index 0000000000000..99b88af930e8e --- /dev/null +++ b/Geometry/HGCalCommonData/plugins/BuildFile.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/Geometry/HGCalCommonData/plugins/DDShashlikCapsule.cc b/Geometry/HGCalCommonData/plugins/DDShashlikCapsule.cc new file mode 100644 index 0000000000000..02dc3024a11e3 --- /dev/null +++ b/Geometry/HGCalCommonData/plugins/DDShashlikCapsule.cc @@ -0,0 +1,152 @@ +/////////////////////////////////////////////////////////////////////////////// +// File: DDShashlikCapsule.cc +// Description: Create a Shashlik module +/////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include + +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "DetectorDescription/Base/interface/DDutils.h" +#include "DetectorDescription/Core/interface/DDSolid.h" +#include "DetectorDescription/Core/interface/DDMaterial.h" +#include "DetectorDescription/Core/interface/DDCurrentNamespace.h" +#include "DetectorDescription/Core/interface/DDSplit.h" +#include "DetectorDescription/Core/interface/DDLogicalPart.h" +#include "Geometry/HGCalCommonData/plugins/DDShashlikCapsule.h" +#include "CLHEP/Units/GlobalPhysicalConstants.h" +#include "CLHEP/Units/GlobalSystemOfUnits.h" + +DDShashlikCapsule::DDShashlikCapsule() { + edm::LogInfo("HGCalGeom") << "DDShashlikCapsule test: Creating an instance"; +} + +DDShashlikCapsule::~DDShashlikCapsule() {} + +void DDShashlikCapsule::initialize(const DDNumericArguments & nArgs, + const DDVectorArguments & vArgs, + const DDMapArguments & , + const DDStringArguments & sArgs, + const DDStringVectorArguments & ) { + + activeMat = sArgs["ActiveMaterial"]; + activeName = sArgs["ActiveName"]; + activeLayers = int (nArgs["ActiveLayers"]); + activeThick = nArgs["ActiveThickness"]; + absorbThick = nArgs["AbsorberThickness"]; + widthFront = nArgs["WidthFront"]; + widthBack = nArgs["WidthBack"]; + moduleThick = nArgs["ModuleThickness"]; + holeR = nArgs["HoleRadius"]; + fibreMat = sArgs["FibreMaterial"]; + fibreName = sArgs["FibreName"]; + holeX = vArgs["HoleX"]; + holeY = vArgs["HoleY"]; + calibFibreName = sArgs["CalibFibreName"]; + calibFibrePars = vArgs["CalibFibreParameters"]; + edm::LogInfo("HGCalGeom") << "DDShashlikCapsule:: Active: " << activeLayers + << " of " << activeName << " with " << activeMat + << " thickness " << activeThick <<"|"<< absorbThick + << " width " << widthFront << "|" << widthBack + << " capsule size " << moduleThick << " " + << holeX.size() << " holes of radius " << holeR + << " for fibres "< 0) { + name = DDName(DDSplit(fibreName).first, DDSplit(fibreName).second); + solidHole = DDSolidFactory::tubs(name,0.5*moduleThick,0,holeR, + 0,CLHEP::twopi); + DDLogicalPart fibre(solidHole.ddname(), matter, solidHole); + edm::LogInfo("HGCalGeom") << "DDShashlikCapsule:: " << fibre.name() + << " tube made of " << matter.name() << " dim: " + << 0.5*moduleThick << ":0:" << holeR << ":0:" + << CLHEP::twopi; + for (unsigned int k=0; k +#include +#include +#include "DetectorDescription/Base/interface/DDTypes.h" +#include "DetectorDescription/Algorithm/interface/DDAlgorithm.h" + +class DDShashlikCapsule : public DDAlgorithm { + public: + //Constructor and Destructor + DDShashlikCapsule(); + virtual ~DDShashlikCapsule(); + + void initialize(const DDNumericArguments & nArgs, + const DDVectorArguments & vArgs, + const DDMapArguments & mArgs, + const DDStringArguments & sArgs, + const DDStringVectorArguments & vsArgs); + + void execute(DDCompactView& cpv); + +private: + + std::string activeMat; //Name of the active material + std::string activeName; //Base name for active layers + int activeLayers; //Number of active layers + double activeThick; //Thickness of active layer + double absorbThick; //Thickness of absorber layer + double widthFront; //Width of the module in the front + double widthBack; //Width of the module in the back + double moduleThick; //Offset in z + double holeR; //Radius of the hole + std::string fibreMat; //Fibre Material + std::string fibreName; //Fibre Name + std::vector holeX; //x-position of the holes + std::vector holeY; //y-position of the holes + std::string calibFibreName; //Calibration Fibre Name + std::vector calibFibrePars; //Parameters for calibration fibre + + std::string idNameSpace; //Namespace of this and ALL sub-parts +}; + +#endif diff --git a/Geometry/HGCalCommonData/plugins/module.cc b/Geometry/HGCalCommonData/plugins/module.cc new file mode 100644 index 0000000000000..2657a18574bec --- /dev/null +++ b/Geometry/HGCalCommonData/plugins/module.cc @@ -0,0 +1,4 @@ +#include "Geometry/HGCalCommonData/plugins/DDShashlikCapsule.h" +#include "DetectorDescription/Algorithm/interface/DDAlgorithmFactory.h" + +DEFINE_EDM_PLUGIN (DDAlgorithmFactory, DDShashlikCapsule, "shashlik:DDShashlikCapsule"); diff --git a/Geometry/HGCalCommonData/python/shashlikCapsuleGeometryXML_cfi.py b/Geometry/HGCalCommonData/python/shashlikCapsuleGeometryXML_cfi.py new file mode 100644 index 0000000000000..7d51a4ab4e261 --- /dev/null +++ b/Geometry/HGCalCommonData/python/shashlikCapsuleGeometryXML_cfi.py @@ -0,0 +1,10 @@ +import FWCore.ParameterSet.Config as cms + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring('Geometry/CMSCommonData/data/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/HGCalCommonData/data/shashlikcapsule.xml'), + rootNodeName = cms.string('shashlikcapsule:ShashlikCapsule') +) + + diff --git a/Geometry/HGCalCommonData/python/testCFCXML_cfi.py b/Geometry/HGCalCommonData/python/testCFCXML_cfi.py new file mode 100644 index 0000000000000..53c0e776292d0 --- /dev/null +++ b/Geometry/HGCalCommonData/python/testCFCXML_cfi.py @@ -0,0 +1,280 @@ +import FWCore.ParameterSet.Config as cms + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring('Geometry/CMSCommonData/data/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/cmsextent.xml', + 'Geometry/CMSCommonData/data/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/PhaseII/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavern.xml', + 'Geometry/TrackerCommonData/data/pixfwdMaterials.xml', + 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq1x2.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq1x5.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq2x3.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq2x4.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq2x5.xml', + 'Geometry/TrackerCommonData/data/pixfwdPanelBase.xml', + 'Geometry/TrackerCommonData/data/pixfwdPanel.xml', + 'Geometry/TrackerCommonData/data/pixfwdBlade.xml', + 'Geometry/TrackerCommonData/data/pixfwdNipple.xml', + 'Geometry/TrackerCommonData/data/pixfwdDisk.xml', + 'Geometry/TrackerCommonData/data/pixfwdCylinder.xml', + 'Geometry/TrackerCommonData/data/pixfwd.xml', + 'Geometry/TrackerCommonData/data/pixbarmaterial.xml', + 'Geometry/TrackerCommonData/data/pixbarladder.xml', + 'Geometry/TrackerCommonData/data/pixbarladderfull.xml', + 'Geometry/TrackerCommonData/data/pixbarladderhalf.xml', + 'Geometry/TrackerCommonData/data/pixbarlayer.xml', + 'Geometry/TrackerCommonData/data/pixbarlayer0.xml', + 'Geometry/TrackerCommonData/data/pixbarlayer1.xml', + 'Geometry/TrackerCommonData/data/pixbarlayer2.xml', + 'Geometry/TrackerCommonData/data/pixbar.xml', + 'Geometry/TrackerCommonData/data/tibtidcommonmaterial.xml', + 'Geometry/TrackerCommonData/data/tibmaterial.xml', + 'Geometry/TrackerCommonData/data/tibmodpar.xml', + 'Geometry/TrackerCommonData/data/tibmodule0.xml', + 'Geometry/TrackerCommonData/data/tibmodule0a.xml', + 'Geometry/TrackerCommonData/data/tibmodule0b.xml', + 'Geometry/TrackerCommonData/data/tibmodule2.xml', + 'Geometry/TrackerCommonData/data/tibstringpar.xml', + 'Geometry/TrackerCommonData/data/tibstring0ll.xml', + 'Geometry/TrackerCommonData/data/tibstring0lr.xml', + 'Geometry/TrackerCommonData/data/tibstring0ul.xml', + 'Geometry/TrackerCommonData/data/tibstring0ur.xml', + 'Geometry/TrackerCommonData/data/tibstring0.xml', + 'Geometry/TrackerCommonData/data/tibstring1ll.xml', + 'Geometry/TrackerCommonData/data/tibstring1lr.xml', + 'Geometry/TrackerCommonData/data/tibstring1ul.xml', + 'Geometry/TrackerCommonData/data/tibstring1ur.xml', + 'Geometry/TrackerCommonData/data/tibstring1.xml', + 'Geometry/TrackerCommonData/data/tibstring2ll.xml', + 'Geometry/TrackerCommonData/data/tibstring2lr.xml', + 'Geometry/TrackerCommonData/data/tibstring2ul.xml', + 'Geometry/TrackerCommonData/data/tibstring2ur.xml', + 'Geometry/TrackerCommonData/data/tibstring2.xml', + 'Geometry/TrackerCommonData/data/tibstring3ll.xml', + 'Geometry/TrackerCommonData/data/tibstring3lr.xml', + 'Geometry/TrackerCommonData/data/tibstring3ul.xml', + 'Geometry/TrackerCommonData/data/tibstring3ur.xml', + 'Geometry/TrackerCommonData/data/tibstring3.xml', + 'Geometry/TrackerCommonData/data/tiblayerpar.xml', + 'Geometry/TrackerCommonData/data/tiblayer0.xml', + 'Geometry/TrackerCommonData/data/tiblayer1.xml', + 'Geometry/TrackerCommonData/data/tiblayer2.xml', + 'Geometry/TrackerCommonData/data/tiblayer3.xml', + 'Geometry/TrackerCommonData/data/tib.xml', + 'Geometry/TrackerCommonData/data/tidmaterial.xml', + 'Geometry/TrackerCommonData/data/tidmodpar.xml', + 'Geometry/TrackerCommonData/data/tidmodule0.xml', + 'Geometry/TrackerCommonData/data/tidmodule0r.xml', + 'Geometry/TrackerCommonData/data/tidmodule0l.xml', + 'Geometry/TrackerCommonData/data/tidmodule1.xml', + 'Geometry/TrackerCommonData/data/tidmodule1r.xml', + 'Geometry/TrackerCommonData/data/tidmodule1l.xml', + 'Geometry/TrackerCommonData/data/tidmodule2.xml', + 'Geometry/TrackerCommonData/data/tidringpar.xml', + 'Geometry/TrackerCommonData/data/tidring0.xml', + 'Geometry/TrackerCommonData/data/tidring0f.xml', + 'Geometry/TrackerCommonData/data/tidring0b.xml', + 'Geometry/TrackerCommonData/data/tidring1.xml', + 'Geometry/TrackerCommonData/data/tidring1f.xml', + 'Geometry/TrackerCommonData/data/tidring1b.xml', + 'Geometry/TrackerCommonData/data/tidring2.xml', + 'Geometry/TrackerCommonData/data/tid.xml', + 'Geometry/TrackerCommonData/data/tidf.xml', + 'Geometry/TrackerCommonData/data/tidb.xml', + 'Geometry/TrackerCommonData/data/tibtidservices.xml', + 'Geometry/TrackerCommonData/data/tibtidservicesf.xml', + 'Geometry/TrackerCommonData/data/tibtidservicesb.xml', + 'Geometry/TrackerCommonData/data/tobmaterial.xml', + 'Geometry/TrackerCommonData/data/tobmodpar.xml', + 'Geometry/TrackerCommonData/data/tobmodule0.xml', + 'Geometry/TrackerCommonData/data/tobmodule2.xml', + 'Geometry/TrackerCommonData/data/tobmodule4.xml', + 'Geometry/TrackerCommonData/data/tobrodpar.xml', + 'Geometry/TrackerCommonData/data/tobrod0c.xml', + 'Geometry/TrackerCommonData/data/tobrod0l.xml', + 'Geometry/TrackerCommonData/data/tobrod0h.xml', + 'Geometry/TrackerCommonData/data/tobrod0.xml', + 'Geometry/TrackerCommonData/data/tobrod1l.xml', + 'Geometry/TrackerCommonData/data/tobrod1h.xml', + 'Geometry/TrackerCommonData/data/tobrod1.xml', + 'Geometry/TrackerCommonData/data/tobrod2c.xml', + 'Geometry/TrackerCommonData/data/tobrod2l.xml', + 'Geometry/TrackerCommonData/data/tobrod2h.xml', + 'Geometry/TrackerCommonData/data/tobrod2.xml', + 'Geometry/TrackerCommonData/data/tobrod3l.xml', + 'Geometry/TrackerCommonData/data/tobrod3h.xml', + 'Geometry/TrackerCommonData/data/tobrod3.xml', + 'Geometry/TrackerCommonData/data/tobrod4c.xml', + 'Geometry/TrackerCommonData/data/tobrod4l.xml', + 'Geometry/TrackerCommonData/data/tobrod4h.xml', + 'Geometry/TrackerCommonData/data/tobrod4.xml', + 'Geometry/TrackerCommonData/data/tobrod5l.xml', + 'Geometry/TrackerCommonData/data/tobrod5h.xml', + 'Geometry/TrackerCommonData/data/tobrod5.xml', + 'Geometry/TrackerCommonData/data/tob.xml', + 'Geometry/TrackerCommonData/data/tecmaterial.xml', + 'Geometry/TrackerCommonData/data/tecmodpar.xml', + 'Geometry/TrackerCommonData/data/tecmodule0.xml', + 'Geometry/TrackerCommonData/data/tecmodule0r.xml', + 'Geometry/TrackerCommonData/data/tecmodule0s.xml', + 'Geometry/TrackerCommonData/data/tecmodule1.xml', + 'Geometry/TrackerCommonData/data/tecmodule1r.xml', + 'Geometry/TrackerCommonData/data/tecmodule1s.xml', + 'Geometry/TrackerCommonData/data/tecmodule2.xml', + 'Geometry/TrackerCommonData/data/tecmodule3.xml', + 'Geometry/TrackerCommonData/data/tecmodule4.xml', + 'Geometry/TrackerCommonData/data/tecmodule4r.xml', + 'Geometry/TrackerCommonData/data/tecmodule4s.xml', + 'Geometry/TrackerCommonData/data/tecmodule5.xml', + 'Geometry/TrackerCommonData/data/tecmodule6.xml', + 'Geometry/TrackerCommonData/data/tecpetpar.xml', + 'Geometry/TrackerCommonData/data/tecring0.xml', + 'Geometry/TrackerCommonData/data/tecring1.xml', + 'Geometry/TrackerCommonData/data/tecring2.xml', + 'Geometry/TrackerCommonData/data/tecring3.xml', + 'Geometry/TrackerCommonData/data/tecring4.xml', + 'Geometry/TrackerCommonData/data/tecring5.xml', + 'Geometry/TrackerCommonData/data/tecring6.xml', + 'Geometry/TrackerCommonData/data/tecring0f.xml', + 'Geometry/TrackerCommonData/data/tecring1f.xml', + 'Geometry/TrackerCommonData/data/tecring2f.xml', + 'Geometry/TrackerCommonData/data/tecring3f.xml', + 'Geometry/TrackerCommonData/data/tecring4f.xml', + 'Geometry/TrackerCommonData/data/tecring5f.xml', + 'Geometry/TrackerCommonData/data/tecring6f.xml', + 'Geometry/TrackerCommonData/data/tecring0b.xml', + 'Geometry/TrackerCommonData/data/tecring1b.xml', + 'Geometry/TrackerCommonData/data/tecring2b.xml', + 'Geometry/TrackerCommonData/data/tecring3b.xml', + 'Geometry/TrackerCommonData/data/tecring4b.xml', + 'Geometry/TrackerCommonData/data/tecring5b.xml', + 'Geometry/TrackerCommonData/data/tecring6b.xml', + 'Geometry/TrackerCommonData/data/tecpetalf.xml', + 'Geometry/TrackerCommonData/data/tecpetalb.xml', + 'Geometry/TrackerCommonData/data/tecpetal0.xml', + 'Geometry/TrackerCommonData/data/tecpetal0f.xml', + 'Geometry/TrackerCommonData/data/tecpetal0b.xml', + 'Geometry/TrackerCommonData/data/tecpetal3.xml', + 'Geometry/TrackerCommonData/data/tecpetal3f.xml', + 'Geometry/TrackerCommonData/data/tecpetal3b.xml', + 'Geometry/TrackerCommonData/data/tecpetal6f.xml', + 'Geometry/TrackerCommonData/data/tecpetal6b.xml', + 'Geometry/TrackerCommonData/data/tecpetal8f.xml', + 'Geometry/TrackerCommonData/data/tecpetal8b.xml', + 'Geometry/TrackerCommonData/data/tecwheel.xml', + 'Geometry/TrackerCommonData/data/tecwheela.xml', + 'Geometry/TrackerCommonData/data/tecwheelb.xml', + 'Geometry/TrackerCommonData/data/tecwheelc.xml', + 'Geometry/TrackerCommonData/data/tecwheeld.xml', + 'Geometry/TrackerCommonData/data/tecwheel6.xml', + 'Geometry/TrackerCommonData/data/tecservices.xml', + 'Geometry/TrackerCommonData/data/tecbackplate.xml', + 'Geometry/TrackerCommonData/data/tec.xml', + 'Geometry/TrackerCommonData/data/trackermaterial.xml', + 'Geometry/TrackerCommonData/data/tracker.xml', + 'Geometry/TrackerCommonData/data/trackerpixbar.xml', + 'Geometry/TrackerCommonData/data/trackerpixfwd.xml', + 'Geometry/TrackerCommonData/data/trackertibtidservices.xml', + 'Geometry/TrackerCommonData/data/trackertib.xml', + 'Geometry/TrackerCommonData/data/trackertid.xml', + 'Geometry/TrackerCommonData/data/trackertob.xml', + 'Geometry/TrackerCommonData/data/trackertec.xml', + 'Geometry/TrackerCommonData/data/trackerbulkhead.xml', + 'Geometry/TrackerCommonData/data/trackerother.xml', + 'Geometry/EcalCommonData/data/PhaseII/eregalgo.xml', + 'Geometry/EcalCommonData/data/ebalgo.xml', + 'Geometry/EcalCommonData/data/ebcon.xml', + 'Geometry/EcalCommonData/data/ebrot.xml', + 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/HcalCommonData/data/hcalrotations.xml', + 'Geometry/HcalCommonData/data/PhaseII/NoHE/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', + 'Geometry/HcalCommonData/data/hcalforwardmaterial.xml', + 'Geometry/HGCalCommonData/data/cfc.xml', + 'Geometry/MuonCommonData/data/mbCommon.xml', + 'Geometry/MuonCommonData/data/mb1.xml', + 'Geometry/MuonCommonData/data/mb2.xml', + 'Geometry/MuonCommonData/data/mb3.xml', + 'Geometry/MuonCommonData/data/mb4.xml', + 'Geometry/MuonCommonData/data/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf.xml', + 'Geometry/ForwardCommonData/data/forward.xml', + 'Geometry/ForwardCommonData/data/forwardshield.xml', + 'Geometry/ForwardCommonData/data/brmrotations.xml', + 'Geometry/ForwardCommonData/data/brm.xml', + 'Geometry/ForwardCommonData/data/totemMaterials.xml', + 'Geometry/ForwardCommonData/data/totemRotations.xml', + 'Geometry/ForwardCommonData/data/totemt1.xml', + 'Geometry/ForwardCommonData/data/totemt2.xml', + 'Geometry/ForwardCommonData/data/ionpump.xml', + 'Geometry/ForwardCommonData/data/castor.xml', + 'Geometry/ForwardCommonData/data/zdcmaterials.xml', + 'Geometry/ForwardCommonData/data/lumimaterials.xml', + 'Geometry/ForwardCommonData/data/zdcrotations.xml', + 'Geometry/ForwardCommonData/data/lumirotations.xml', + 'Geometry/ForwardCommonData/data/plt.xml', + 'Geometry/ForwardCommonData/data/zdc.xml', + 'Geometry/ForwardCommonData/data/zdclumi.xml', + 'Geometry/ForwardCommonData/data/cmszdc.xml', + 'Geometry/FP420CommonData/data/fp420.xml', + 'Geometry/FP420CommonData/data/zzzrectangle.xml', + 'Geometry/FP420CommonData/data/materialsfp420.xml', + 'Geometry/FP420CommonData/data/FP420Rot.xml', + 'Geometry/FP420CommonData/data/cmsfp420.xml')+cms.vstring( + 'Geometry/MuonCommonData/data/muonNumbering.xml', + 'Geometry/TrackerCommonData/data/trackerStructureTopology.xml', + 'Geometry/TrackerSimData/data/trackersens.xml', + 'Geometry/TrackerRecoData/data/trackerRecoMaterial.xml', + 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', + 'Geometry/HcalCommonData/data/PhaseII/NoHE/hcalsens.xml', + 'Geometry/HcalCommonData/data/PhaseII/NoHE/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/PhaseII/NoHE/hcalRecNumbering.xml', + 'Geometry/HcalSimData/data/CaloUtil.xml', + 'Geometry/HcalSimData/data/hf.xml', + 'Geometry/HcalSimData/data/hffibre.xml', + 'Geometry/MuonSimData/data/muonSens.xml', + 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/RPCSpecs.xml', + 'Geometry/ForwardCommonData/data/brmsens.xml', + 'Geometry/ForwardSimData/data/totemsensT1.xml', + 'Geometry/ForwardSimData/data/totemsensT2.xml', + 'Geometry/ForwardSimData/data/castorsens.xml', + 'Geometry/ForwardSimData/data/pltsens.xml', + 'Geometry/ForwardSimData/data/zdcsens.xml', + 'Geometry/FP420SimData/data/fp420sens.xml', + 'Geometry/HcalSimData/data/HcalProdCuts.xml', + 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', + 'Geometry/MuonSimData/data/muonProdCuts.xml', + 'Geometry/ForwardSimData/data/CastorProdCuts.xml', + 'Geometry/ForwardSimData/data/zdcProdCuts.xml', + 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', + 'Geometry/FP420SimData/data/FP420ProdCuts.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml'), + rootNodeName = cms.string('cms:OCMS') +) + + diff --git a/Geometry/HGCalCommonData/python/testShashlikXML_cfi.py b/Geometry/HGCalCommonData/python/testShashlikXML_cfi.py new file mode 100644 index 0000000000000..1245748e25a22 --- /dev/null +++ b/Geometry/HGCalCommonData/python/testShashlikXML_cfi.py @@ -0,0 +1,14 @@ +import FWCore.ParameterSet.Config as cms + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring('Geometry/CMSCommonData/data/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/cmsextent.xml', + 'Geometry/CMSCommonData/data/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/HGCalCommonData/data/shashlikCapsuleinCMSE.xml', + 'Geometry/HGCalCommonData/data/shashlikcapsule.xml'), + rootNodeName = cms.string('cms:OCMS') +) + + diff --git a/Geometry/HGCalCommonData/test/dumpSimGeometry_cfg.py b/Geometry/HGCalCommonData/test/dumpSimGeometry_cfg.py new file mode 100644 index 0000000000000..61adf9f8b0608 --- /dev/null +++ b/Geometry/HGCalCommonData/test/dumpSimGeometry_cfg.py @@ -0,0 +1,19 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("DUMP") +process.load("Geometry.HGCalCommonData.testCFCXML_cfi") + +process.source = cms.Source("EmptySource") + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) +) + +process.add_(cms.ESProducer("TGeoMgrFromDdd", + verbose = cms.untracked.bool(False), + level = cms.untracked.int32(14) +)) + +process.dump = cms.EDAnalyzer("DumpSimGeometry") + +process.p = cms.Path(process.dump) diff --git a/Geometry/HcalAlgo/plugins/DDHCalBarrelAlgo.cc b/Geometry/HcalAlgo/plugins/DDHCalBarrelAlgo.cc index c9a8c6a8d1e98..4532d2184e047 100644 --- a/Geometry/HcalAlgo/plugins/DDHCalBarrelAlgo.cc +++ b/Geometry/HcalAlgo/plugins/DDHCalBarrelAlgo.cc @@ -27,7 +27,7 @@ DDHCalBarrelAlgo::DDHCalBarrelAlgo(): sideAbsName(0),sideAbsMat(0),sideAbsW(0),detType(0),detdP1(0),detdP2(0), detT11(0),detT12(0),detTsc(0),detT21(0),detT22(0),detWidth1(0),detWidth2(0), detPosY(0) { - LogDebug("HCalGeom") << "DDHCalBarrelAlgo info: Creating an instance"; + edm::LogInfo("HCalGeom") << "DDHCalBarrelAlgo info: Creating an instance"; } DDHCalBarrelAlgo::~DDHCalBarrelAlgo() {} @@ -59,20 +59,20 @@ void DDHCalBarrelAlgo::initialize(const DDNumericArguments & nArgs, if (rzones > 3) rmax[2] = (zoff[3] - zoff[2]) / ttheta[2]; - LogDebug("HCalGeom") << "DDHCalBarrelAlgo debug: General material " + edm::LogInfo("HCalGeom") << "DDHCalBarrelAlgo debug: General material " << genMaterial << "\tSectors " << nsectors << ", " << nsectortot <<"\tHalves " << nhalf << "\tRotation matrix " << rotns << ":" << rotHalf << "\n\t\t" << rin << "\t" << rout << "\t" << rzones; for (i = 0; i < rzones; i++) { - LogDebug("HCalGeom") << "\tTheta[" << i << "] = " << theta[i] << "\trmax[" + edm::LogInfo("HCalGeom") << "\tTheta[" << i << "] = " << theta[i] << "\trmax[" << i << "] = " << rmax[i] << "\tzoff[" << i << "] = " << zoff[i]; } /////////////////////////////////////////////////////////////// //Layers nLayers = int(nArgs["NLayers"]); - LogDebug("HCalGeom") << "DDHCalBarrelAlgo debug: Layer\t" << nLayers; + edm::LogInfo("HCalGeom") << "DDHCalBarrelAlgo debug: Layer\t" << nLayers; layerId = dbl_to_int (vArgs["Id"]); layerLabel = vsArgs["LayerLabel"]; layerMat = vsArgs["LayerMat"]; @@ -85,7 +85,7 @@ void DDHCalBarrelAlgo::initialize(const DDNumericArguments & nArgs, layerAbsorb = dbl_to_int(vArgs["AbsL"]); layerGap = vArgs["Gap"]; for (i = 0; i < nLayers; i++) { - LogDebug("HCalGeom") << layerLabel[i] << "\t" << layerId[i] << "\t" + edm::LogInfo("HCalGeom") << layerLabel[i] << "\t" << layerId[i] << "\t" << layerMat[i] << "\t" << layerWidth[i] << "\t" << layerD1[i] << "\t" << layerD2[i] << "\t" << layerAlpha[i] << "\t" << layerT1[i] << "\t" @@ -101,14 +101,14 @@ void DDHCalBarrelAlgo::initialize(const DDNumericArguments & nArgs, absorbT = vArgs["AbsorbT"]; nAbsorber = absorbName.size(); for (i = 0; i < nAbsorber; i++) { - LogDebug("HCalGeom") << "DDHCalBarrelAlgo debug: " << absorbName[i] + edm::LogInfo("HCalGeom") << "DDHCalBarrelAlgo debug: " << absorbName[i] <<" Material " << absorbMat[i] << " d " << absorbD[i] << " t " <> Constructing DDHCalBarrelAlgo..."; + edm::LogInfo("HCalGeom") << "==>> Constructing DDHCalBarrelAlgo..."; constructGeneralVolume(cpv); - LogDebug("HCalGeom") << "<<== End of DDHCalBarrelAlgo construction ..."; + edm::LogInfo("HCalGeom") << "<<== End of DDHCalBarrelAlgo construction ..."; } //----------------------start here for DDD work!!! --------------- void DDHCalBarrelAlgo::constructGeneralVolume(DDCompactView& cpv) { - LogDebug("HCalGeom") << "DDHCalBarrelAlgo test: General volume..."; + edm::LogInfo("HCalGeom") << "DDHCalBarrelAlgo test: General volume..."; unsigned int i=0; DDRotation rot = DDRotation(); @@ -316,28 +316,28 @@ void DDHCalBarrelAlgo::constructGeneralVolume(DDCompactView& cpv) { solid = DDSolidFactory::polyhedra(DDName(idName, idNameSpace), getNsectortot(), -alpha, dphi, pgonZ, pgonRmin, pgonRmax); - LogDebug("HCalGeom") << "DDHCalBarrelAlgo test: " + edm::LogInfo("HCalGeom") << "DDHCalBarrelAlgo test: " << DDName(idName, idNameSpace) <<" Polyhedra made of " << getGenMaterial() << " with " << getNsectortot() << " sectors from " << -alpha/CLHEP::deg <<" to " << (-alpha+dphi)/CLHEP::deg << " and with " << nsec << " sections "; for (i = 0; i > Constructing DDHCalEndcapAlgo..."; + edm::LogInfo("HCalGeom") << "==>> Constructing DDHCalEndcapAlgo..."; constructGeneralVolume(cpv); - LogDebug("HCalGeom") << "<<== End of DDHCalEndcapAlgo construction ..."; + edm::LogInfo("HCalGeom") << "<<== End of DDHCalEndcapAlgo construction ..."; } //----------------------start here for DDD work!!! --------------- void DDHCalEndcapAlgo::constructGeneralVolume(DDCompactView& cpv) { - LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: General volume..."; + edm::LogInfo("HCalGeom") << "DDHCalEndcapAlgo test: General volume..."; bool proto = true; for (int i=0; i<3; i++) if (equipModule(i) > 0) proto = false; @@ -330,7 +330,7 @@ void DDHCalEndcapAlgo::constructGeneralVolume(DDCompactView& cpv) { DDRotation rot; if (DDSplit(getRotation()).first == "NULL") rot = DDRotation(); else rot = DDRotation(DDName(DDSplit(getRotation()).first,DDSplit(getRotation()).second)); - LogDebug("HCalGeom") << " First " << DDSplit(getRotation()).first + edm::LogInfo("HCalGeom") << " First " << DDSplit(getRotation()).first << " Second " << DDSplit(getRotation()).second << " Rotation " << rot; DDTranslation r0(0,0,getZShift()); @@ -380,14 +380,14 @@ void DDHCalEndcapAlgo::constructGeneralVolume(DDCompactView& cpv) { solid = DDSolidFactory::polyhedra(DDName(idName, idNameSpace), getNsectortot(), -alpha, dphi, pgonZ, pgonRmin, pgonRmax); - LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " + edm::LogInfo("HCalGeom") << "DDHCalEndcapAlgo test: " << DDName(idName, idNameSpace) << " Polyhedra made of " << getGenMat() << " with " << getNsectortot() << " sectors from " << -alpha/CLHEP::deg << " to " << (-alpha+dphi)/CLHEP::deg << " and with " << pgonZ.size() << " sections"; for (i = 0; i getRoutBlock2(mod)) routF = getRoutBlock2(mod); if (routB > getRoutBlock2(mod)) routB = getRoutBlock2(mod); - LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: Layer " << i << " Phi " + edm::LogInfo("HCalGeom") << "DDHCalEndcapAlgo test: Layer " << i << " Phi " << iphi << " Front " << ziAir << ", " << rinF << ", " << routF << " Back " << zo << ", " << rinB << ", " << routB; @@ -828,7 +829,7 @@ void DDHCalEndcapAlgo::constructInsideModule(DDLogicalPart module, int mod, DDCo solid = DDSolidFactory::trap(DDName(name, idNameSpace), 0.5*getThick(mod), theta, phi, yh1, bl1, tl1, alp, yh2, bl2, tl2, alp); - LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << solid.name() + edm::LogInfo("HCalGeom") << "DDHCalEndcapAlgo test: " << solid.name() << " Trap made of " << getGenMat() << " of dimensions " << 0.5*getThick(mod) << ", " << theta/CLHEP::deg << ", " << phi/CLHEP::deg @@ -839,7 +840,7 @@ void DDHCalEndcapAlgo::constructInsideModule(DDLogicalPart module, int mod, DDCo DDTranslation r1(xpos, ypos, zpos); cpv.position(glog, module, layer+1, r1, rot); - LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << glog.name() + edm::LogInfo("HCalGeom") << "DDHCalEndcapAlgo test: " << glog.name() << " number " << layer+1 << " positioned in " << module.name() << " at " << r1 << " with " << rot; @@ -851,7 +852,7 @@ void DDHCalEndcapAlgo::constructInsideModule(DDLogicalPart module, int mod, DDCo solid = DDSolidFactory::trap(DDName(name, idNameSpace), 0.5*getLayerT(layer), 0, 0, yh, bl, tl, alp, yh, bl, tl, alp); - LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << solid.name() + edm::LogInfo("HCalGeom") << "DDHCalEndcapAlgo test: " << solid.name() << " Trap made of " << getPlastMat() << " of dimensions " << 0.5*getLayerT(layer) << ", 0, 0, " << yh << ", " << bl << ", " << tl @@ -862,7 +863,7 @@ void DDHCalEndcapAlgo::constructInsideModule(DDLogicalPart module, int mod, DDCo ypos = 0.5*(routF+rinB) - xpos; DDTranslation r2(0., ypos, 0.); cpv.position(plog, glog, idOffset+layer+1, r2, DDRotation()); - LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << plog.name() + edm::LogInfo("HCalGeom") << "DDHCalEndcapAlgo test: " << plog.name() << " number " << idOffset+layer+1 << " positioned in " << glog.name() << " at " << r2 << " with no rotation"; @@ -888,7 +889,7 @@ void DDHCalEndcapAlgo::constructScintLayer(DDLogicalPart detector, double dz, DDSolid solid = DDSolidFactory::trap(DDName(name, idNameSpace), 0.5*dz, 0, 0, yh, bl, tl, alp, yh, bl, tl, alp); - LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << DDName(name,idNameSpace) + edm::LogInfo("HCalGeom") << "DDHCalEndcapAlgo test: " << DDName(name,idNameSpace) << " Trap made of " << getScintMat() <<" of dimensions " << 0.5*dz << ", 0, 0, " << yh << ", " << bl << ", " << tl << ", " << alp/CLHEP::deg << ", " << yh << ", " @@ -897,7 +898,7 @@ void DDHCalEndcapAlgo::constructScintLayer(DDLogicalPart detector, double dz, DDLogicalPart glog(solid.ddname(), matter, solid); cpv.position(glog, detector, id, DDTranslation(0,0,0), DDRotation()); - LogDebug("HCalGeom") << "DDHCalEndcapAlgo test: " << glog.name() + edm::LogInfo("HCalGeom") << "DDHCalEndcapAlgo test: " << glog.name() << " number " << id << " positioned in " << detector.name() << " at (0,0,0) with no rotation"; diff --git a/Geometry/HcalAlgo/plugins/DDHCalEndcapModuleAlgo.cc b/Geometry/HcalAlgo/plugins/DDHCalEndcapModuleAlgo.cc new file mode 100644 index 0000000000000..3c9d65c0faa25 --- /dev/null +++ b/Geometry/HcalAlgo/plugins/DDHCalEndcapModuleAlgo.cc @@ -0,0 +1,473 @@ +/////////////////////////////////////////////////////////////////////////////// +// File: DDHCalEndcapModuleAlgo.cc +// adapted from CCal(G4)HcalEndcap.cc +// Description: Geometry factory class for Hcal Endcap +/////////////////////////////////////////////////////////////////////////////// + +#include +#include + +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "DetectorDescription/Base/interface/DDutils.h" +#include "DetectorDescription/Core/interface/DDLogicalPart.h" +#include "DetectorDescription/Core/interface/DDSolid.h" +#include "DetectorDescription/Core/interface/DDMaterial.h" +#include "DetectorDescription/Core/interface/DDCurrentNamespace.h" +#include "DetectorDescription/Core/interface/DDSplit.h" +#include "Geometry/HcalAlgo/plugins/DDHCalEndcapModuleAlgo.h" +#include "CLHEP/Units/GlobalPhysicalConstants.h" +#include "CLHEP/Units/GlobalSystemOfUnits.h" + +DDHCalEndcapModuleAlgo::DDHCalEndcapModuleAlgo() { + edm::LogInfo("HCalGeom") << "DDHCalEndcapModuleAlgo info: Creating an instance"; +} + +DDHCalEndcapModuleAlgo::~DDHCalEndcapModuleAlgo() {} + +void DDHCalEndcapModuleAlgo::initialize(const DDNumericArguments & nArgs, + const DDVectorArguments & vArgs, + const DDMapArguments & , + const DDStringArguments & sArgs, + const DDStringVectorArguments &vsArgs){ + + genMaterial = sArgs["MaterialName"]; + absorberMat = sArgs["AbsorberMat"]; + plasticMat = sArgs["PlasticMat"]; + scintMat = sArgs["ScintMat"]; + rotstr = sArgs["Rotation"]; + sectors = int (nArgs["Sectors"]); + edm::LogInfo("HCalGeom") << "DDHCalEndcapModuleAlgo: General material " + << genMaterial << "\tAbsorber " << absorberMat + << "\tPlastic " << plasticMat << "\tScintillator " + << scintMat << "\tRotation " << rotstr + << "\tSectors " << sectors; + + zMinBlock = nArgs["ZMinBlock"]; + zMaxBlock = nArgs["ZMaxBlock"]; + z1Beam = nArgs["Z1Beam"]; + ziDip = nArgs["ZiDip"]; + dzStep = nArgs["DzStep"]; + moduleThick = nArgs["ModuleThick"]; + layerThick = nArgs["LayerThick"]; + scintThick = nArgs["ScintThick"]; + edm::LogInfo("HCalGeom") << "DDHCalEndcapModuleAlgo: Zmin " << zMinBlock + << "\tZmax " << zMaxBlock << "\tZ1Beam " << z1Beam + << "\tZiDip " << ziDip << "\tDzStep " << dzStep + << "\tModuleThick " << moduleThick <<"\tLayerThick " + << layerThick << "\tScintThick " << scintThick; + + rMaxFront = nArgs["RMaxFront"]; + rMaxBack = nArgs["RMaxBack"]; + trimLeft = nArgs["TrimLeft"]; + trimRight = nArgs["TrimRight"]; + tolAbs = nArgs["TolAbs"]; + edm::LogInfo("HCalGeom") << "DDHCalEndcapModuleAlgo: RMaxFront " << rMaxFront + <<"\tRmaxBack " << rMaxBack << "\tTrims " <> Constructing DDHCalEndcapModuleAlgo..."; + if (modType == 0) + constructInsideModule0 (parent(), cpv); + else + constructInsideModule (parent(), cpv); + edm::LogInfo("HCalGeom") << "<<== End of DDHCalEndcapModuleAlgo construction ..."; +} + + +void DDHCalEndcapModuleAlgo::constructInsideModule0(DDLogicalPart module, DDCompactView& cpv) { + + edm::LogInfo("HCalGeom") <<"DDHCalEndcapModuleAlgo test: \t\tInside module0"; + + /////////////////////////////////////////////////////////////// + //Pointers to the Rotation Matrices and to the Materials + DDRotation rot(DDName(DDSplit(rotstr).first, DDSplit(rotstr).second)); + DDName matName(DDSplit(absorberMat).first, DDSplit(absorberMat).second); + DDMaterial matabsorbr(matName); + DDName plasName(DDSplit(plasticMat).first, DDSplit(plasticMat).second); + DDMaterial matplastic(plasName); + + int layer = layerNumber[0]; + int layer0 = layerNumber[1]; + std::string name; + DDSolid solid; + DDLogicalPart glog, plog; + for (unsigned int iphi=0; iphi 0) { + rinF = zi * slopeBot; + routF = zi * slopeTopF; + rinB = zo * slopeBot; + routB = zo * slopeTopF; + } else { + rinF = zi * slopeBot; + routF = (zi - z1Beam) * slopeTop; + rinB = zo * slopeBot; + routB = (zo - z1Beam) * slopeTop; + } + edm::LogInfo("HCalGeom") << "DDHCalEndcapModuleAlgo test: Front " + << zi << ", " << rinF << ", " << routF << " Back " + << zo << ", " << rinB << ", " << routB; + DDHCalEndcapModuleAlgo::HcalEndcapPar parm = parameterLayer(0, rinF, routF, + rinB, routB, zi, + zo); + edm::LogInfo("HCalGeom") << "DDHCalEndcapModuleAlgo test: Trim " << tolAbs + << " Param " << parm.yh1 << ", " << parm.bl1 << ", " + << parm.tl1 << ", " << parm.yh2 << ", " << parm.bl2 + << ", " << parm.tl2; + parm.bl1 -= tolAbs; + parm.tl1 -= tolAbs; + parm.bl2 -= tolAbs; + parm.tl2 -= tolAbs; + + name = idName+modName+layerName[0]+"Absorber"; + solid = DDSolidFactory::trap(DDName(name, idNameSpace), + 0.5*moduleThick, parm.theta, parm.phi, parm.yh1, + parm.bl1, parm.tl1, parm.alp, parm.yh2, + parm.bl2, parm.tl2, parm.alp); + edm::LogInfo("HCalGeom") << "DDHCalEndcapModuleAlgo test: " << solid.name() + << " Trap made of " << matName << " of dimensions " + << 0.5*moduleThick << ", " << parm.theta/CLHEP::deg + << ", " << parm.phi/CLHEP::deg << ", " << parm.yh1 + << ", " << parm.bl1 << ", " << parm.tl1 << ", " + << parm.alp/CLHEP::deg << ", " << parm.yh2 << ", " + << parm.bl2 << ", " << parm.tl2 << ", " + << parm.alp/CLHEP::deg; + glog = DDLogicalPart(solid.ddname(), matabsorbr, solid); + + DDTranslation r2(parm.xpos, parm.ypos, parm.zpos); + cpv.position(glog, module, 1, r2, rot); + edm::LogInfo("HCalGeom") << "DDHCalEndcapModuleAlgo test: " << glog.name() + << " number 1 positioned in " << module.name() + << " at " << r2 << " with " << rot; +} + + +void DDHCalEndcapModuleAlgo::constructInsideModule(DDLogicalPart module, DDCompactView& cpv) { + + edm::LogInfo("HCalGeom") << "DDHCalEndcapModuleAlgo test: \t\tInside module"; + + /////////////////////////////////////////////////////////////// + //Pointers to the Rotation Matrices and to the Materials + DDRotation rot(DDName(DDSplit(rotstr).first, DDSplit(rotstr).second)); + DDName matName(DDSplit(genMaterial).first, DDSplit(genMaterial).second); + DDMaterial matter(matName); + DDName plasName(DDSplit(plasticMat).first, DDSplit(plasticMat).second); + DDMaterial matplastic(plasName); + + double alpha = CLHEP::pi/sectors; + double zi = zMinBlock; + + for (unsigned int i=0; i 0) { + rin = zo * slopeBot; + rout = zi * slopeTopF; + } else { + rin = zo * slopeBot; + rout = (zi - z1Beam) * slopeTop; + } + edm::LogInfo("HCalGeom") << "ModNumber " << modNumber << " " << zi << " " << zo << " " << slopeTopF << " " << slopeTop << " " << slopeBot << " " << rin << " " << rout << " " << getTrim(iphi); + double yh = 0.5 * (rout - rin); + double bl = 0.5 * rin * tan (alpha); + double tl = 0.5 * rout * tan(alpha); + parm.xpos = 0.5 * (rin + rout); + parm.ypos = 0.5 * (bl + tl); + parm.zpos = 0.5 * (zi + zo); + parm.yh1 = parm.yh2 = yh - getTrim(iphi); + parm.bl1 = parm.bl2 = bl - getTrim(iphi); + parm.tl1 = parm.tl2 = tl - getTrim(iphi); + parm.alp = atan(0.5 * tan(alpha)); + if (iphi == 0) { + parm.ypos = -parm.ypos; + } else { + parm.alp = -parm.alp; + } + edm::LogInfo("HCalGeom") << "Output Dimensions " << parm.yh1 << " " + << parm.bl1 << " " << parm.tl1 << " " + << parm.alp/CLHEP::deg << " Position " << parm.xpos + << " " << parm.ypos << " " << parm.zpos; + return parm; +} + + +DDHCalEndcapModuleAlgo::HcalEndcapPar +DDHCalEndcapModuleAlgo::parameterLayer(unsigned int iphi, double rinF, + double routF, double rinB, double routB, + double zi, double zo) { + + DDHCalEndcapModuleAlgo::HcalEndcapPar parm; + //Given rin, rout compute parameters of the trapezoid and + //position of the trapezoid for a standrd layer + double alpha = CLHEP::pi/sectors; + edm::LogInfo("HCalGeom") << "Input " << iphi << " Front " << rinF << " " + << routF << " " << zi << " Back " << rinB << " " + << routB << " " << zo<<" Alpha " < 1.0e-8) { + parm.theta = atan (r/(zo-zi)); + parm.phi = atan2 (dy, dx); + } else { + parm.theta = parm.phi = 0; + } + edm::LogInfo("HCalGeom") << "Output Dimensions " << parm.yh1 << " " + << parm.bl1 << " " << parm.tl1 << " " << parm.yh2 + << " " << parm.bl2 << " " << parm.tl2 << " " + << parm.alp/CLHEP::deg <<" " <= 0) ? ((z - z1Beam) * slopeTop) : z * slopeTopF; + if (z > ziDip) { + if (r > rMaxBack) r = rMaxBack; + } else { + if (r > rMaxFront) r = rMaxFront; + } + return r; +} diff --git a/Geometry/HcalAlgo/plugins/DDHCalEndcapModuleAlgo.h b/Geometry/HcalAlgo/plugins/DDHCalEndcapModuleAlgo.h new file mode 100644 index 0000000000000..ce4de1f350c66 --- /dev/null +++ b/Geometry/HcalAlgo/plugins/DDHCalEndcapModuleAlgo.h @@ -0,0 +1,82 @@ +#ifndef HcalAlgo_DDHCalEndcapModuleAlgo_h +#define HcalAlgo_DDHCalEndcapModuleAlgo_h + +#include +#include +#include +#include "DetectorDescription/Base/interface/DDTypes.h" +#include "DetectorDescription/Algorithm/interface/DDAlgorithm.h" + +class DDHCalEndcapModuleAlgo : public DDAlgorithm { + +public: + //Constructor and Destructor + DDHCalEndcapModuleAlgo(); //const std::string & name); + virtual ~DDHCalEndcapModuleAlgo(); + + struct HcalEndcapPar { + double yh1, bl1, tl1, yh2, bl2, tl2, alp, theta, phi, xpos, ypos, zpos; + HcalEndcapPar(double yh1v=0, double bl1v=0, double tl1v=0, double yh2v=0, + double bl2v=0, double tl2v=0, double alpv=0, double thv=0, + double fiv=0, double x=0, double y=0, double z=0) : + yh1(yh1v), bl1(bl1v), tl1(tl1v), yh2(yh2v), bl2(bl2v), tl2(tl2v), + alp(alpv), theta(thv), phi(fiv), xpos(x), ypos(y), zpos(z) {} + }; + void initialize(const DDNumericArguments & nArgs, + const DDVectorArguments & vArgs, + const DDMapArguments & mArgs, + const DDStringArguments & sArgs, + const DDStringVectorArguments & vsArgs); + void execute(DDCompactView& cpv); + +protected: + + void constructInsideModule0(DDLogicalPart module, DDCompactView& cpv); + void constructInsideModule (DDLogicalPart module, DDCompactView& cpv); + HcalEndcapPar parameterLayer0(unsigned int iphi); + HcalEndcapPar parameterLayer(unsigned int iphi, double rinF, double routF, + double rinB, double routB, double zi,double zo); + void constructScintLayer(DDLogicalPart detector, double dz, + DDHCalEndcapModuleAlgo::HcalEndcapPar parm, + std::string nm, int id, DDCompactView& cpv); + double getTrim(unsigned int j) const; + double getRout(double z) const; + +private: + + std::string genMaterial; //General material + std::string absorberMat; //Absorber material + std::string plasticMat; //Plastic material cover + std::string scintMat; //Scintillator material + std::string rotstr; //Rotation matrix to place in mother + int sectors; //Number of potenital straight edges + double zMinBlock; //Minimum z extent of the block + double zMaxBlock; //Maximum + double z1Beam; //Position of gap end along z-axis + double ziDip; //Starting Z of dipped part of body + double dzStep; //Width in Z of a layer + double moduleThick; //Thickness of a layer (air/absorber) + double layerThick; //Thickness of a layer (plastic) + double scintThick; //Thickness of scinitllator + double rMaxBack; //Maximum R after the dip + double rMaxFront; //Maximum R before the dip + double slopeBot; //Slope of the bottom edge + double slopeTop; //Slope of the top edge + double slopeTopF; //Slope of the top front edge + double trimLeft; //Trim of the left edge + double trimRight; //Trim of the right edge + double tolAbs; //Tolerance for absorber + int modType; //Type of module + int modNumber; //Module number + int layerType; //Layer type + std::vector layerNumber; //layer numbers + std::vector phiName; //Name of Phi sections + std::vector layerName; //Layer Names + + std::string idName; //Name of the "parent" volume. + std::string idNameSpace; //Namespace of this and ALL sub-parts + std::string modName; //Module Name + int idOffset; // Geant4 ID's... = 4000; +}; + +#endif diff --git a/Geometry/HcalAlgo/plugins/module.cc b/Geometry/HcalAlgo/plugins/module.cc index ffc351b0148d2..ad864882cf869 100644 --- a/Geometry/HcalAlgo/plugins/module.cc +++ b/Geometry/HcalAlgo/plugins/module.cc @@ -3,6 +3,7 @@ #include "Geometry/HcalAlgo/plugins/DDHCalAngular.h" #include "Geometry/HcalAlgo/plugins/DDHCalBarrelAlgo.h" #include "Geometry/HcalAlgo/plugins/DDHCalEndcapAlgo.h" +#include "Geometry/HcalAlgo/plugins/DDHCalEndcapModuleAlgo.h" #include "Geometry/HcalAlgo/plugins/DDHCalFibreBundle.h" #include "Geometry/HcalAlgo/plugins/DDHCalForwardAlgo.h" #include "Geometry/HcalAlgo/plugins/DDHCalLinearXY.h" @@ -16,6 +17,7 @@ DEFINE_EDM_PLUGIN (DDAlgorithmFactory, DDHCalAngular, "hcal:DDHCalAngular"); DEFINE_EDM_PLUGIN (DDAlgorithmFactory, DDHCalBarrelAlgo, "hcal:DDHCalBarrelAlgo"); DEFINE_EDM_PLUGIN (DDAlgorithmFactory, DDHCalEndcapAlgo, "hcal:DDHCalEndcapAlgo"); +DEFINE_EDM_PLUGIN (DDAlgorithmFactory, DDHCalEndcapModuleAlgo,"hcal:DDHCalEndcapModuleAlgo"); DEFINE_EDM_PLUGIN (DDAlgorithmFactory, DDHCalForwardAlgo, "hcal:DDHCalForwardAlgo"); DEFINE_EDM_PLUGIN (DDAlgorithmFactory, DDHCalFibreBundle, "hcal:DDHCalFibreBundle"); DEFINE_EDM_PLUGIN (DDAlgorithmFactory, DDHCalLinearXY, "hcal:DDHCalLinearXY"); diff --git a/Geometry/HcalCommonData/data/NoLayer0/hcalSimNumbering.xml b/Geometry/HcalCommonData/data/NoLayer0/hcalSimNumbering.xml new file mode 100644 index 0000000000000..cdb0fd126702c --- /dev/null +++ b/Geometry/HcalCommonData/data/NoLayer0/hcalSimNumbering.xml @@ -0,0 +1,295 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/NoLayer0/hcalsens.xml b/Geometry/HcalCommonData/data/NoLayer0/hcalsens.xml new file mode 100644 index 0000000000000..e14201b3ed540 --- /dev/null +++ b/Geometry/HcalCommonData/data/NoLayer0/hcalsens.xml @@ -0,0 +1,255 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/NoLayer0/hcalsenspm.xml b/Geometry/HcalCommonData/data/NoLayer0/hcalsenspm.xml new file mode 100644 index 0000000000000..5db2e44a9d7d7 --- /dev/null +++ b/Geometry/HcalCommonData/data/NoLayer0/hcalsenspm.xml @@ -0,0 +1,254 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/PhaseII/hcalsenspmf.xml b/Geometry/HcalCommonData/data/NoLayer0/hcalsenspmf.xml similarity index 98% rename from Geometry/HcalCommonData/data/PhaseII/hcalsenspmf.xml rename to Geometry/HcalCommonData/data/NoLayer0/hcalsenspmf.xml index 97f16716e8f85..33d0676193274 100644 --- a/Geometry/HcalCommonData/data/PhaseII/hcalsenspmf.xml +++ b/Geometry/HcalCommonData/data/NoLayer0/hcalsenspmf.xml @@ -4,7 +4,7 @@ - + @@ -226,8 +226,8 @@ - - + + diff --git a/Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml b/Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml new file mode 100644 index 0000000000000..ead02250e1b26 --- /dev/null +++ b/Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml b/Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml new file mode 100644 index 0000000000000..70b26dbef6804 --- /dev/null +++ b/Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml @@ -0,0 +1,295 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/Phase0/hcalalgo.xml b/Geometry/HcalCommonData/data/Phase0/hcalalgo.xml new file mode 100644 index 0000000000000..897e2ad031da9 --- /dev/null +++ b/Geometry/HcalCommonData/data/Phase0/hcalalgo.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/Phase0/hcalendcapalgo.xml b/Geometry/HcalCommonData/data/Phase0/hcalendcapalgo.xml new file mode 100644 index 0000000000000..b92354b4c50d4 --- /dev/null +++ b/Geometry/HcalCommonData/data/Phase0/hcalendcapalgo.xml @@ -0,0 +1,424 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0, 0, 0 + 0.*deg, 0.*deg, 0.*deg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0, 0 + Phi0, Phi1 + Layer00 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0, 1 + Phi0, Phi1 + Layer00 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + Phi0, Phi1 + Layer01 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2, 3, 4, 5, 6 + Phi0, Phi1 + + Layer02, Layer03, Layer04, Layer05, Layer06 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 7, 8, 9, 10, 11, 12 + Phi0, Phi1 + + Layer07, Layer08, Layer09, Layer10, Layer11, Layer12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 13, 14, 15, 16, 17, 18 + Phi0, Phi1 + + Layer13, Layer14, Layer15, Layer16, Layer17, Layer18 + + + + + + + diff --git a/Geometry/HcalCommonData/data/Phase0/hcalsens.xml b/Geometry/HcalCommonData/data/Phase0/hcalsens.xml new file mode 100644 index 0000000000000..27741d06e06ef --- /dev/null +++ b/Geometry/HcalCommonData/data/Phase0/hcalsens.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/Phase0/hcalsenspm.xml b/Geometry/HcalCommonData/data/Phase0/hcalsenspm.xml new file mode 100644 index 0000000000000..009c24062d3b1 --- /dev/null +++ b/Geometry/HcalCommonData/data/Phase0/hcalsenspm.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/Phase0/hcalsenspmf.xml b/Geometry/HcalCommonData/data/Phase0/hcalsenspmf.xml new file mode 100644 index 0000000000000..dc1804e0f0022 --- /dev/null +++ b/Geometry/HcalCommonData/data/Phase0/hcalsenspmf.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/PhaseI/hcalRecNumbering.xml b/Geometry/HcalCommonData/data/PhaseI/hcalRecNumbering.xml new file mode 100644 index 0000000000000..544bdafb6a94e --- /dev/null +++ b/Geometry/HcalCommonData/data/PhaseI/hcalRecNumbering.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/PhaseI/hcalSimNumbering.xml b/Geometry/HcalCommonData/data/PhaseI/hcalSimNumbering.xml new file mode 100644 index 0000000000000..4ab4cf5056181 --- /dev/null +++ b/Geometry/HcalCommonData/data/PhaseI/hcalSimNumbering.xml @@ -0,0 +1,219 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/PhaseI/hcalalgo.xml b/Geometry/HcalCommonData/data/PhaseI/hcalalgo.xml new file mode 100644 index 0000000000000..897e2ad031da9 --- /dev/null +++ b/Geometry/HcalCommonData/data/PhaseI/hcalalgo.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/PhaseI/hcalendcapalgo.xml b/Geometry/HcalCommonData/data/PhaseI/hcalendcapalgo.xml new file mode 100644 index 0000000000000..b92354b4c50d4 --- /dev/null +++ b/Geometry/HcalCommonData/data/PhaseI/hcalendcapalgo.xml @@ -0,0 +1,424 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0, 0, 0 + 0.*deg, 0.*deg, 0.*deg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0, 0 + Phi0, Phi1 + Layer00 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0, 1 + Phi0, Phi1 + Layer00 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + Phi0, Phi1 + Layer01 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2, 3, 4, 5, 6 + Phi0, Phi1 + + Layer02, Layer03, Layer04, Layer05, Layer06 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 7, 8, 9, 10, 11, 12 + Phi0, Phi1 + + Layer07, Layer08, Layer09, Layer10, Layer11, Layer12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 13, 14, 15, 16, 17, 18 + Phi0, Phi1 + + Layer13, Layer14, Layer15, Layer16, Layer17, Layer18 + + + + + + + diff --git a/Geometry/HcalCommonData/data/PhaseII/NoHE/hcalRecNumbering.xml b/Geometry/HcalCommonData/data/PhaseII/NoHE/hcalRecNumbering.xml new file mode 100644 index 0000000000000..40d8e10494f00 --- /dev/null +++ b/Geometry/HcalCommonData/data/PhaseII/NoHE/hcalRecNumbering.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/PhaseII/NoHE/hcalSimNumbering.xml b/Geometry/HcalCommonData/data/PhaseII/NoHE/hcalSimNumbering.xml new file mode 100644 index 0000000000000..1efaadc89410f --- /dev/null +++ b/Geometry/HcalCommonData/data/PhaseII/NoHE/hcalSimNumbering.xml @@ -0,0 +1,192 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/PhaseII/NoHE/hcalalgo.xml b/Geometry/HcalCommonData/data/PhaseII/NoHE/hcalalgo.xml new file mode 100644 index 0000000000000..07dc29d51b780 --- /dev/null +++ b/Geometry/HcalCommonData/data/PhaseII/NoHE/hcalalgo.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/PhaseII/NoHE/hcalsens.xml b/Geometry/HcalCommonData/data/PhaseII/NoHE/hcalsens.xml new file mode 100644 index 0000000000000..5ed954ee8d1f6 --- /dev/null +++ b/Geometry/HcalCommonData/data/PhaseII/NoHE/hcalsens.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/PhaseII/NoHE/hcalsenspm.xml b/Geometry/HcalCommonData/data/PhaseII/NoHE/hcalsenspm.xml new file mode 100644 index 0000000000000..7d91badf94c77 --- /dev/null +++ b/Geometry/HcalCommonData/data/PhaseII/NoHE/hcalsenspm.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/PhaseII/NoHE/hcalsenspmf.xml b/Geometry/HcalCommonData/data/PhaseII/NoHE/hcalsenspmf.xml new file mode 100644 index 0000000000000..1824b64e7d93e --- /dev/null +++ b/Geometry/HcalCommonData/data/PhaseII/NoHE/hcalsenspmf.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/PhaseII/hcalRecNumbering.xml b/Geometry/HcalCommonData/data/PhaseII/hcalRecNumbering.xml new file mode 100644 index 0000000000000..23843daa9cd84 --- /dev/null +++ b/Geometry/HcalCommonData/data/PhaseII/hcalRecNumbering.xml @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/PhaseII/hcalRecNumberingEta4.xml b/Geometry/HcalCommonData/data/PhaseII/hcalRecNumberingEta4.xml new file mode 100644 index 0000000000000..40041d42e60fa --- /dev/null +++ b/Geometry/HcalCommonData/data/PhaseII/hcalRecNumberingEta4.xml @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/PhaseII/hcalSimNumbering.xml b/Geometry/HcalCommonData/data/PhaseII/hcalSimNumbering.xml new file mode 100644 index 0000000000000..ee135bb8fcccd --- /dev/null +++ b/Geometry/HcalCommonData/data/PhaseII/hcalSimNumbering.xml @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/PhaseII/hcalSimNumberingEta4.xml b/Geometry/HcalCommonData/data/PhaseII/hcalSimNumberingEta4.xml new file mode 100644 index 0000000000000..d14b3f9759e5f --- /dev/null +++ b/Geometry/HcalCommonData/data/PhaseII/hcalSimNumberingEta4.xml @@ -0,0 +1,313 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/PhaseII/hcalalgo.xml b/Geometry/HcalCommonData/data/PhaseII/hcalalgo.xml index aebc56c7217f1..d13d1ec04ae88 100644 --- a/Geometry/HcalCommonData/data/PhaseII/hcalalgo.xml +++ b/Geometry/HcalCommonData/data/PhaseII/hcalalgo.xml @@ -1,183 +1,48 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/PhaseII/hcalendcapalgo.xml b/Geometry/HcalCommonData/data/PhaseII/hcalendcapalgo.xml index 6bb7c527267b0..381ce63d91777 100644 --- a/Geometry/HcalCommonData/data/PhaseII/hcalendcapalgo.xml +++ b/Geometry/HcalCommonData/data/PhaseII/hcalendcapalgo.xml @@ -1,139 +1,259 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Part0, Part1, Part2, Part3, Part4, Part5 - - materials:Air, materials:Air, materials:H_Brass, - materials:H_Brass, materials:H_Brass, materials:H_Brass - - 0, 0, 1, 1, 1, 1 - - - 2, 2, 2, 3, 2, 4 - - - 43.5*mm, 43.5*mm, 17.0*mm, 9.0*mm, 9.0*mm, 9.0*mm - - - 0.5*mm, 0.5*mm, 0.5*mm, 0.5*mm, 0.5*mm, 0.5*mm - - - 1.5*mm, 1.5*mm, 0.5*mm, 0.5*mm, 0.5*mm, 0.5*mm - - - 1, 1, 1, 1, 1, 1 - - - 1, 1, 1, 5, 6, 6 - - - 0, 0 - - - 0, 1 - - - 1 - - - 2, 3, 4, 5, 6 - - - 7, 8, 9, 10, 11, 12 - - - 13, 14, 15, 16, 17, 18 - - - - - Phi0, Phi1 - - - Layer00, Layer01, Layer02, Layer03, Layer04, Layer05, - Layer06, Layer07, Layer08, Layer09, Layer10, Layer11, - Layer12, Layer13, Layer14, Layer15, Layer16, Layer17, - Layer18 - - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - - - 12.0*mm, 7.0*mm, 7.0*mm, 7.0*mm, 7.0*mm, 7.0*mm, - 7.0*mm, 7.0*mm, 7.0*mm, 7.0*mm, 7.0*mm, 7.0*mm, - 7.0*mm, 7.0*mm, 7.0*mm, 7.0*mm, 7.0*mm, 7.0*mm, 7.0*mm - - - 9.0*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, - 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, - 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0, 0, 0 + 0.*deg, 0.*deg, 0.*deg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0, 1 + Phi0, Phi1 + Layer00 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2, 3, 4, 5, 6, 7, 8, 9 + Phi0, Phi1 + Layer02, Layer03, + Layer04, Layer05, Layer06, Layer07, Layer08, Layer09 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 10, 11, 12, 13, 14, 15, 16, 17, 18 + Phi0, Phi1 + Layer10, Layer11, + Layer12, Layer13, Layer14, Layer15, Layer16, Layer17, Layer18 + + + + + diff --git a/Geometry/HcalCommonData/data/SLHC/hcalSimNumbering.xml b/Geometry/HcalCommonData/data/SLHC/hcalSimNumbering.xml new file mode 100644 index 0000000000000..7b1e0f78cd302 --- /dev/null +++ b/Geometry/HcalCommonData/data/SLHC/hcalSimNumbering.xml @@ -0,0 +1,295 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/hcalcablealgo.xml b/Geometry/HcalCommonData/data/hcalcablealgo.xml new file mode 100644 index 0000000000000..e52e58f0e65fd --- /dev/null +++ b/Geometry/HcalCommonData/data/hcalcablealgo.xml @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0, 0, 0 + 0.*deg, 0.*deg, 0.*deg + + + + + + + + + + + 0, 0, 0 + 0.*deg, 0.*deg, 0.*deg + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/data/hcalsens.xml b/Geometry/HcalCommonData/data/hcalsens.xml index 6727490d04cd3..9a2a60c09c994 100644 --- a/Geometry/HcalCommonData/data/hcalsens.xml +++ b/Geometry/HcalCommonData/data/hcalsens.xml @@ -1,255 +1,16 @@ - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - + diff --git a/Geometry/HcalCommonData/data/hcalsenspm.xml b/Geometry/HcalCommonData/data/hcalsenspm.xml index 32f756f92a682..9b0c5d35eee40 100644 --- a/Geometry/HcalCommonData/data/hcalsenspm.xml +++ b/Geometry/HcalCommonData/data/hcalsenspm.xml @@ -1,254 +1,16 @@ - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + - + diff --git a/Geometry/HcalCommonData/data/hcalsenspmf.xml b/Geometry/HcalCommonData/data/hcalsenspmf.xml index cd4f83f0908f9..0ff5219f60d29 100644 --- a/Geometry/HcalCommonData/data/hcalsenspmf.xml +++ b/Geometry/HcalCommonData/data/hcalsenspmf.xml @@ -1,257 +1,20 @@ - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/interface/HcalCellType.h b/Geometry/HcalCommonData/interface/HcalCellType.h index cc31cec058edc..95e89d9bea561 100644 --- a/Geometry/HcalCommonData/interface/HcalCellType.h +++ b/Geometry/HcalCommonData/interface/HcalCellType.h @@ -24,10 +24,11 @@ class HcalCellType { }; HcalCellType(HcalSubdetector detType, int etaBin, int phiBin, - int depthSegment,const HcalCell& cell, int readoutDirection, - double samplingFactor, int numberZ, int nmodule, - double halfSize, int units); - HcalCellType(const HcalCellType&); + int depthSegment, const HcalCell& cell, int readoutDirection=0, + double samplingFactor=0, int numberZ=0, int nmodule=0, + double halfSize=0, int units=0); + HcalCellType(const HcalCellType &right); + const HcalCellType& operator=(const HcalCellType &right); ~HcalCellType(); void setMissingPhi(std::vector&, std::vector&); @@ -38,11 +39,13 @@ class HcalCellType { /// which eta ring it belongs to, starting from one int etaBin() const {return theEtaBin;} + void setEta(int bin, double etamin, double etamax); /// which depth segment it is, starting from 1 /// absolute within the tower, so HE depth of the /// overlap doesn't start at 1. int depthSegment() const {return theDepthSegment;} + void setDepth(int bin, double dmin, double dmax); /// the number of these cells in a ring int nPhiBins() const {return theNumberOfPhiBins;} @@ -54,6 +57,7 @@ class HcalCellType { /// phi offset in degrees double phiOffset() const {return thePhiOffset;} int unitPhi() const {return theUnitPhi;} + void setPhi(int bins, int unit, double dphi, double phioff); /// Number of halves (forward/backward) int nHalves() const {return theNumberOfZ;} diff --git a/Geometry/HcalCommonData/interface/HcalDDDRecConstants.h b/Geometry/HcalCommonData/interface/HcalDDDRecConstants.h new file mode 100644 index 0000000000000..aa94f39b046d3 --- /dev/null +++ b/Geometry/HcalCommonData/interface/HcalDDDRecConstants.h @@ -0,0 +1,92 @@ +#ifndef HcalCommonData_HcalDDDRecConstants_h +#define HcalCommonData_HcalDDDRecConstants_h + +/** \class HcalDDDRecConstants + * + * this class reads the constant section of + * the hcal-sim-numbering xml-file + * + * $Date: 2013/12/25 00:06:50 $ + * \author Sunanda Banerjee, SINP + * + */ + +#include +#include +#include + +#include "DetectorDescription/Core/interface/DDsvalues.h" +#include "Geometry/HcalCommonData/interface/HcalCellType.h" +#include "Geometry/HcalCommonData/interface/HcalDDDSimConstants.h" +#include "DataFormats/HcalDetId/interface/HcalSubdetector.h" + +class DDCompactView; +class DDFilteredView; + +class HcalDDDRecConstants { + +public: + + HcalDDDRecConstants(const DDCompactView& cpv, + const HcalDDDSimConstants& hcons); + ~HcalDDDRecConstants(); + + struct HcalID { + int eta, phi, depth; + HcalID(int et=0, int fi=0, int d=0) : eta(et), phi(fi), depth(d) {} + }; + struct HcalEtaBin { + int ieta, nPhi, depthStart; + double etaMin, etaMax, phi0, dphi; + std::vector > layer; + HcalEtaBin(int eta=0, double et1=0, double et2=0, int nf=0, double fi0=0, + double df=0) : ieta(eta), nPhi(nf),depthStart(0), etaMin(et1), + etaMax(et2), phi0(fi0), dphi(df) {} + }; + + std::vector getDepth(const int i) const {return layerGroup[i];} + std::vector getEtaBins(const int itype) const; + std::vector getEtaTable() const {return etaTable;} + std::pair getEtaLimit(const int i) const + {return std::pair(etaTable[i],etaTable[i+1]);} + HcalID getHCID(int subdet, int ieta, int iphi, int lay, + int idepth) const; + int getMaxDepth(const int type) const {return maxDepth[type];} + int getNEta() const {return nEta;} + double getPhiBin(const int i) const {return phibin[i];} + double getPhiOff(const int i) const {return phioff[i];} + std::string getTopoMode() const {return modeTopo;} + std::vector HcalCellTypes(HcalSubdetector) const; + unsigned int numberOfCells(HcalSubdetector) const; + unsigned int nCells(HcalSubdetector) const; + unsigned int nCells() const; + +private: + HcalDDDRecConstants(); + void loadSpecPars(const DDFilteredView& fv); + void loadSimConst(); + std::vector getDDDArray(const char *, const DDsvalues_type &, int &) const; + std::string getDDDString(const std::string &, const DDsvalues_type &) const; + + static const int nEtaMax=100; + const HcalDDDSimConstants *hcons; + std::string modeTopo; // Mode for topology + std::vector phioff; // Phi offset for barrel, endcap, forward + std::vector etaGroup; // Eta Grouping + std::vector > etaSimValu; // eta ranges at Sim stage + std::vector etaTable; // Eta table + std::vector ietaMap; // Map Sim level ieta to Rec level ieta + int iEtaMin[4], iEtaMax[4]; // Minimum and maximum eta + int maxDepth[4];// Maximum depth in HB/HE/HF/HO + int nEta; // Number of bins in eta for HB and HE + std::vector phiGroup; // Eta Grouping + std::vector phibin; // Phi step for all eta bins + std::vector layerGroup[nEtaMax]; + std::vector nOff; // Speical eta bin #'s in barrel and endcap + std::vector > gconsHB; // Geometry constatnts HB + std::vector > gconsHE; // Geometry constatnts HE + int nModule[2], nHalves[2]; // Modules, Halves for HB/HE + enum { kHOSizePreLS1 = 2160, kHFSizePreLS1 = 1728 } ; +}; + +#endif diff --git a/Geometry/HcalCommonData/interface/HcalDDDSimConstants.h b/Geometry/HcalCommonData/interface/HcalDDDSimConstants.h new file mode 100644 index 0000000000000..64552f1b72dbb --- /dev/null +++ b/Geometry/HcalCommonData/interface/HcalDDDSimConstants.h @@ -0,0 +1,118 @@ +#ifndef HcalCommonData_HcalDDDSimConstants_h +#define HcalCommonData_HcalDDDSimConstants_h + +/** \class HcalDDDSimConstants + * + * this class reads the constant section of + * the hcal-sim-numbering xml-file + * + * $Date: 2013/12/25 00:06:50 $ + * \author Sunanda Banerjee, SINP + * + */ + +#include +#include +#include + +#include "DetectorDescription/Core/interface/DDsvalues.h" +#include "Geometry/HcalCommonData/interface/HcalCellType.h" +#include "DataFormats/HcalDetId/interface/HcalSubdetector.h" + +class DDCompactView; +class DDFilteredView; + +class HcalDDDSimConstants { + +public: + + HcalDDDSimConstants(); + HcalDDDSimConstants( const DDCompactView& cpv ); + ~HcalDDDSimConstants(); + + HcalCellType::HcalCell cell(int det, int zside, int depth, int etaR, + int iphi) const; + std::vector > getConstHBHE(const int type) const; + std::pair getDetEta(double eta, int depth); + int getEta(int det,int lay, double hetaR); + std::pair getEtaDepth(int det, int etaR, int phi, int depth, + int lay); + double getEtaHO(double& etaR, double& x, double& y, + double& z) const; + std::pair getiEtaRange(const int i) const + {return std::pair(etaMin[i],etaMax[i]);} + std::vector getEtaTable() const {return etaTable;} + std::pair getModHalfHBHE(const int type) const; + std::vector getNOff() const {return nOff;} + double getPhiBin(const int i) const {return phibin[i];} + std::pair getPhiCons(int det, int ieta); + double getPhiOff(const int i) const {return phioff[i];} + std::vector HcalCellTypes() const; + std::vector HcalCellTypes(HcalSubdetector, int ieta=-1, + int depth=-1) const; + void initialize(const DDCompactView& cpv); + unsigned int numberOfCells(HcalSubdetector) const; + int phiNumber(int phi, int unit) const; + void printTiles() const; + int unitPhi(int det, int etaR) const; + int unitPhi(double dphi) const; + +private: + void checkInitialized() const; + void loadSpecPars(const DDFilteredView& fv); + void loadGeometry(const DDFilteredView& fv); + std::vector getDDDArray(const std::string &, + const DDsvalues_type &, int &) const; + unsigned find (int element, std::vector& array) const; + double deltaEta(int det, int eta, int depth) const; + double getEta(int det, int etaR, int zside, int depth=1) const; + double getEta(double r, double z) const; + int getShift(HcalSubdetector subdet, int depth) const; + double getGain (HcalSubdetector subdet, int depth) const; + void printTileHB(int eta, int depth) const; + void printTileHE(int eta, int depth) const; + + bool tobeInitialized; + static const int nEtaMax=100; + static const int nDepthMax=9; + int maxDepth[4]; // Maximum depths in HB/HE/HF/HO + std::vector phioff; // Phi offset for barrel, endcap, forward + std::vector etaTable; // Eta table + int nEta; // Number of bins in eta for HB and HE + std::vector rTable; // R-table + int nR; // Number of bins in r + int nPhi; // Number of bins in phibin + std::vector phibin; // Phi step for all eta bins (HB, HE and HO) + int nPhiF; // Number of bins in phitable + std::vector phitable; // Phi step for all eta bins (HF) + std::vector layerGroup[nEtaMax]; // Depth index for a given layer + std::vector depths[nDepthMax]; // Maximum layer number for a depth + int nDepth; // Number of bins in depth0 + std::vector nOff; // Speical eta bin #'s in barrel and endcap + std::vector etaMin; // Minimum eta bin number for HB/HE/HF + std::vector etaMax; // Maximum eta bin number for HB/HE/HF + std::vector etaRange; // Maximum eta value for HB/HE/HF + std::vector gparHF; // Geometry parameters of HF + std::vector layer0Wt; // Weight of layer 0 + std::vector gainHB; // Gain factor for HB + std::vector shiftHB; // Readout shift .. .. + std::vector gainHE; // Gain factor for HE + std::vector shiftHE; // Readout shift .. .. + std::vector gainHF; // Gain factor for HF + std::vector shiftHF; // Readout shift .. .. + + std::vector rHB, drHB; // Radial positions of HB layers + std::vector zHE, dzHE; // Z-positions of HE layers + std::vector zho; // Z-positions of HO layers + int nzHB, nmodHB; // Number of halves and modules in HB + int nzHE, nmodHE; // Number of halves and modules in HE + double etaHO[4], rminHO; // eta in HO ring boundaries + std::vector rhoxb, zxb, dyxb, dzxb; // Geometry parameters to + std::vector layb, laye; // get tile size for HB & HE + std::vector zxe, rhoxe, dyxe, dx1e, dx2e; // in different layers + double zVcal; // Z-position of the front of HF + double dzVcal; // Half length of the HF + double dlShort; // Diference of length between long and short +}; + +#endif diff --git a/Geometry/HcalCommonData/interface/HcalNumberingFromDDD.h b/Geometry/HcalCommonData/interface/HcalNumberingFromDDD.h index 9f58f8863bdb1..8fb41b3b7c4b5 100644 --- a/Geometry/HcalCommonData/interface/HcalNumberingFromDDD.h +++ b/Geometry/HcalCommonData/interface/HcalNumberingFromDDD.h @@ -6,8 +6,8 @@ #define HcalNumberingFromDDD_h #include "Geometry/HcalCommonData/interface/HcalCellType.h" +#include "Geometry/HcalCommonData/interface/HcalDDDSimConstants.h" #include "DataFormats/HcalDetId/interface/HcalSubdetector.h" -#include "DetectorDescription/Core/interface/DDsvalues.h" #include "CLHEP/Vector/ThreeVector.h" @@ -15,7 +15,6 @@ #include class DDCompactView; -class DDFilteredView; class HcalNumberingFromDDD { @@ -37,65 +36,11 @@ class HcalNumberingFromDDD { HcalID unitID(int det, int zside, int depth, int etaR, int phi, int lay=-1) const; HcalCellType::HcalCell cell(int det, int zside, int depth, int etaR, - int iphi, bool corr=true) const; - std::vector getEtaTable() const; - unsigned int numberOfCells(HcalSubdetector) const; - std::vector HcalCellTypes() const; - std::vector HcalCellTypes(HcalSubdetector) const; - void printTile(); + int iphi) const; private: - double getEta(int det, int etaR, int zside, int depth=1) const; - double getEta(double r, double z) const; - double deltaEta(int det, int eta, int depth) const; - void initialize(std::string & name, const DDCompactView & cpv); - void loadSpecPars(const DDFilteredView&); - void loadGeometry(const DDFilteredView&); - std::vector getDDDArray(const std::string &, const DDsvalues_type &, - int&) const; - int getShift(HcalSubdetector subdet, int depth) const; - double getGain (HcalSubdetector subdet, int depth) const; - unsigned find (int element, std::vector& array) const; - int unitPhi (int det, int etaR) const; - void tileHB(int eta, int depth); - void tileHE(int eta, int depth); - double getEtaHO(double& etaR, double& x, double& y, double& z) const; - -private: - - std::vector phioff; // Phi offset for barrel, endcap, forward - std::vector etaTable; // Eta table - int nEta; // Number of bins in eta for HB and HE - std::vector rTable; // R-table - int nR; // Number of bins in r - std::vector etaMin; // Minimum eta bin number for HB/HE/HF - std::vector etaMax; // Maximum eta bin number for HB/HE/HF - std::vector phibin; // Phi step for all eta bins (HB, HE and HF) - int nPhi; // Number of bins in dphi - std::vector depth1; // Maximum layer number for depth 1 - std::vector depth2; // Maximum layer number for depth 2 - std::vector depth3; // Maximum layer number for depth 3 - int nDepth; // Number of bins in depth1/depth2/depth3 - std::vector gainHB; // Gain factor for HB - std::vector shiftHB; // Readout shift .. .. - std::vector gainHE; // Gain factor for HE - std::vector shiftHE; // Readout shift .. .. - std::vector gainHF; // Gain factor for HF - std::vector shiftHF; // Readout shift .. .. - double zVcal; // Z-position of the front of HF - double dzVcal; // Half length of the HF - double dlShort; // Diference of length between long and short - std::vector nOff; // Speical eta bin #'s in barrel and endcap - std::vector rHB, drHB; // Radial positions of HB layers - std::vector zHE, dzHE; // Z-positions of HE layers - std::vector zho; // Z-positions of HO layers - int nzHB, nmodHB; // Number of halves and modules in HB - int nzHE, nmodHE; // Number of halves and modules in HE - double etaHO[4], rminHO; // eta in HO ring boundaries - std::vector rhoxb, zxb, dyxb, dzxb; // Geometry parameters to - std::vector layb, laye; // get tile size for HB & HE - std::vector zxe, rhoxe, dyxe, dx1e, dx2e; // in different layers + HcalDDDSimConstants *hcalConstants; }; #endif diff --git a/Geometry/HcalCommonData/plugins/BuildFile.xml b/Geometry/HcalCommonData/plugins/BuildFile.xml new file mode 100644 index 0000000000000..f78c2a559190f --- /dev/null +++ b/Geometry/HcalCommonData/plugins/BuildFile.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Geometry/HcalCommonData/plugins/HcalRecNumberingInitialization.cc b/Geometry/HcalCommonData/plugins/HcalRecNumberingInitialization.cc new file mode 100644 index 0000000000000..ea63acb3dcd80 --- /dev/null +++ b/Geometry/HcalCommonData/plugins/HcalRecNumberingInitialization.cc @@ -0,0 +1,81 @@ +// -*- C++ -*- +// +// Package: HcalRecNumberingInitialization +// Class: HcalRecNumberingInitialization +// +/**\class HcalRecNumberingInitialization HcalRecNumberingInitialization.h Geometry/HcalCommonData/interface/HcalRecNumberingInitialization.h + + Description: + + Implementation: + +*/ +// +// Original Author: Sunanda Banerjee +// Created: Tue Dec 24 16:40:29 PDT 2013 +// $Id: HcalRecNumberingInitialization.cc,v 1.0 2013/12/24 12:47:41 sunanda Exp $ +// +// + + +// system include files +#include +#include + +// user include files +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#define DebugLog + +class HcalRecNumberingInitialization : public edm::ESProducer { + +public: + HcalRecNumberingInitialization(const edm::ParameterSet&); + ~HcalRecNumberingInitialization(); + + typedef std::auto_ptr ReturnType; + + ReturnType produce(const HcalRecNumberingRecord&); + +private: + HcalDDDRecConstants* hcalDDDConst_; +}; + +HcalRecNumberingInitialization::HcalRecNumberingInitialization(const edm::ParameterSet& iConfig) : hcalDDDConst_(0) { +#ifdef DebugLog + std::cout <<"constructing HcalRecNumberingInitialization" << std::endl; +#endif + setWhatProduced(this); +} + + +HcalRecNumberingInitialization::~HcalRecNumberingInitialization() {} + + +// ------------ method called to produce the data ------------ +HcalRecNumberingInitialization::ReturnType +HcalRecNumberingInitialization::produce(const HcalRecNumberingRecord& iRecord) { +#ifdef DebugLog + std::cout << "in HcalRecNumberingInitialization::produce" << std::endl; +#endif + if (hcalDDDConst_ == 0) { + edm::ESTransientHandle pDD; + iRecord.getRecord().get(pDD); + edm::ESHandle hdc; + iRecord.getRecord().get(hdc); + hcalDDDConst_ = new HcalDDDRecConstants(*pDD, *hdc); + } + return std::auto_ptr (hcalDDDConst_) ; +} + +//define this as a plug-in +DEFINE_FWK_EVENTSETUP_MODULE(HcalRecNumberingInitialization); diff --git a/Geometry/HcalCommonData/plugins/HcalSimNumberingInitialization.cc b/Geometry/HcalCommonData/plugins/HcalSimNumberingInitialization.cc new file mode 100644 index 0000000000000..7d2d43187de34 --- /dev/null +++ b/Geometry/HcalCommonData/plugins/HcalSimNumberingInitialization.cc @@ -0,0 +1,96 @@ +// -*- C++ -*- +// +// Package: HcalSimNumberingInitialization +// Class: HcalSimNumberingInitialization +// +/**\class HcalSimNumberingInitialization Geometry/HcalCommonData/plugins/HcalSimNumberingInitialization.cc + + Description: + + Implementation: + +*/ +// +// Original Author: Sunanda Banerjee +// Created: Tue Dec 24 16:40:29 PDT 2013 +// $Id: HcalSimNumberingInitialization.cc,v 1.0 2013/12/24 12:47:41 sunanda Exp $ +// +// + + +// system include files +#include +#include + +// user include files +#include +#include +#include + +#include +#include +#include +#include +#include + +#define DebugLog + +class HcalSimNumberingInitialization : public edm::ESProducer { + +public: + HcalSimNumberingInitialization(const edm::ParameterSet&); + ~HcalSimNumberingInitialization(); + + typedef std::auto_ptr ReturnType; + + ReturnType produce(const HcalSimNumberingRecord&); + + void initializeHcalDDDSimConstants( const IdealGeometryRecord& igr); + +private: + std::string label_; + HcalDDDSimConstants* hcalDDDConst_; +}; + +HcalSimNumberingInitialization::HcalSimNumberingInitialization(const edm::ParameterSet& iConfig) : hcalDDDConst_(0) { +#ifdef DebugLog + std::cout <<"constructing HcalSimNumberingInitialization" << std::endl; +#endif + setWhatProduced(this, dependsOn(&HcalSimNumberingInitialization::initializeHcalDDDSimConstants)); +} + + +HcalSimNumberingInitialization::~HcalSimNumberingInitialization() {} + + +// ------------ method called to produce the data ------------ +HcalSimNumberingInitialization::ReturnType +HcalSimNumberingInitialization::produce(const HcalSimNumberingRecord& iRecord) { +#ifdef DebugLog + std::cout << "in HcalSimNumberingInitialization::produce" << std::endl; +#endif + if (hcalDDDConst_ == 0) { + edm::LogError("HCalGeom") << "HcalSimNumberingInitialization::produceHcalDDDSimConstants has NOT been initialized!"; + throw cms::Exception("DDException") << "HcalSimNumberingInitialization::Cannot produce HcalDDDSimConstnats"; + } + return std::auto_ptr (hcalDDDConst_) ; +} + +void HcalSimNumberingInitialization::initializeHcalDDDSimConstants(const IdealGeometryRecord& igr) { + + edm::ESTransientHandle pDD; + igr.get(label_, pDD ); +#ifdef DebugLog + std::cout << "in HcalSimNumberingInitialization::initializeHcalDDDSimConstants" << std::endl; +#endif + if ( hcalDDDConst_ != 0 ) { + delete hcalDDDConst_; + } +#ifdef DebugLog + std::cout << "about to make my new hcalDDDConst_" << std::endl; +#endif + hcalDDDConst_ = new HcalDDDSimConstants( *pDD ); +} + +//define this as a plug-in +DEFINE_FWK_EVENTSETUP_MODULE(HcalSimNumberingInitialization); diff --git a/Geometry/HcalCommonData/python/hcalRecNumberingInitialization_cfi.py b/Geometry/HcalCommonData/python/hcalRecNumberingInitialization_cfi.py new file mode 100644 index 0000000000000..ce2ec91666049 --- /dev/null +++ b/Geometry/HcalCommonData/python/hcalRecNumberingInitialization_cfi.py @@ -0,0 +1,3 @@ +import FWCore.ParameterSet.Config as cms + +HcalRecNumberingInitialization = cms.ESProducer("HcalRecNumberingInitialization") diff --git a/Geometry/HcalCommonData/python/hcalSimNumberingInitialization_cfi.py b/Geometry/HcalCommonData/python/hcalSimNumberingInitialization_cfi.py new file mode 100644 index 0000000000000..cf3620663fa5a --- /dev/null +++ b/Geometry/HcalCommonData/python/hcalSimNumberingInitialization_cfi.py @@ -0,0 +1,3 @@ +import FWCore.ParameterSet.Config as cms + +HcalSimNumberingInitialization = cms.ESProducer("HcalSimNumberingInitialization") diff --git a/Geometry/HcalCommonData/python/testGeometryPMTXML_cfi.py b/Geometry/HcalCommonData/python/testGeometryPMTXML_cfi.py index f201845e0b039..b7e926da9b362 100644 --- a/Geometry/HcalCommonData/python/testGeometryPMTXML_cfi.py +++ b/Geometry/HcalCommonData/python/testGeometryPMTXML_cfi.py @@ -22,6 +22,7 @@ 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/ForwardCommonData/data/forward.xml', 'Geometry/ForwardCommonData/data/forwardshield.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', 'Geometry/HcalCommonData/data/hcalsenspm.xml', 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', diff --git a/Geometry/HcalCommonData/python/testHcalOnlyGeometryXML_cfi.py b/Geometry/HcalCommonData/python/testHcalOnlyGeometryXML_cfi.py new file mode 100644 index 0000000000000..b7c68d6fabbb4 --- /dev/null +++ b/Geometry/HcalCommonData/python/testHcalOnlyGeometryXML_cfi.py @@ -0,0 +1,37 @@ +import FWCore.ParameterSet.Config as cms + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring('Geometry/CMSCommonData/data/materials.xml', + "Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml", + 'Geometry/CMSCommonData/data/rotations.xml', + "Geometry/HcalCommonData/data/hcalrotations.xml", + 'Geometry/CMSCommonData/data/normal/cmsextent.xml', + 'Geometry/CMSCommonData/data/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/PhaseII/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/eta4/etaMax.xml', + 'Geometry/HcalCommonData/data/PhaseII/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/PhaseII/hcalendcapalgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/PhaseII/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/PhaseII/hcalRecNumbering.xml', + 'Geometry/ForwardCommonData/data/bundle/forwardshield.xml', + 'Geometry/ForwardCommonData/data/forward.xml', + 'Geometry/HcalSimData/data/CaloUtil.xml', + 'Geometry/HcalCommonData/data/hcalsens.xml', + 'Geometry/HcalSimData/data/hf.xml', + 'Geometry/HcalSimData/data/hfpmt.xml', + 'Geometry/HcalSimData/data/hffibrebundle.xml', + 'Geometry/HcalSimData/data/HcalProdCuts.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml'), + rootNodeName = cms.string('cms:OCMS') +) diff --git a/Geometry/HcalCommonData/python/testHcalOnlyGeometryXML_cfi.py~ b/Geometry/HcalCommonData/python/testHcalOnlyGeometryXML_cfi.py~ new file mode 100644 index 0000000000000..cff1557edad98 --- /dev/null +++ b/Geometry/HcalCommonData/python/testHcalOnlyGeometryXML_cfi.py~ @@ -0,0 +1,37 @@ +import FWCore.ParameterSet.Config as cms + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring('Geometry/CMSCommonData/data/materials.xml', + "Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml", + 'Geometry/CMSCommonData/data/rotations.xml', + "Geometry/HcalCommonData/data/hcalrotations.xml", + 'Geometry/CMSCommonData/data/normal/cmsextent.xml', + 'Geometry/CMSCommonData/data/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/HcalCommonData/data/phase2/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/phase2/hcalendcapalgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/phase2/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/phase2/hcalRecNumbering.xml', + 'Geometry/ForwardCommonData/data/bundle/forwardshield.xml', + 'Geometry/ForwardCommonData/data/forward.xml', + 'Geometry/HcalSimData/data/CaloUtil.xml', + 'Geometry/HcalCommonData/data/hcalsens.xml', + 'Geometry/HcalSimData/data/hf.xml', + 'Geometry/HcalSimData/data/hfpmt.xml', + 'Geometry/HcalSimData/data/hffibrebundle.xml', + 'Geometry/HcalSimData/data/HcalProdCuts.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml'), + rootNodeName = cms.string('cms:OCMS') +) diff --git a/Geometry/HcalCommonData/python/testPhase0GeometryXML_cfi.py b/Geometry/HcalCommonData/python/testPhase0GeometryXML_cfi.py new file mode 100644 index 0000000000000..5a96ba18d2523 --- /dev/null +++ b/Geometry/HcalCommonData/python/testPhase0GeometryXML_cfi.py @@ -0,0 +1,281 @@ +import FWCore.ParameterSet.Config as cms + +import FWCore.ParameterSet.Config as cms + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring('Geometry/CMSCommonData/data/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/cmsextent.xml', + 'Geometry/CMSCommonData/data/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavern.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/TrackerCommonData/data/pixfwdMaterials.xml', + 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq1x2.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq1x5.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq2x3.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq2x4.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq2x5.xml', + 'Geometry/TrackerCommonData/data/pixfwdPanelBase.xml', + 'Geometry/TrackerCommonData/data/pixfwdPanel.xml', + 'Geometry/TrackerCommonData/data/pixfwdBlade.xml', + 'Geometry/TrackerCommonData/data/pixfwdNipple.xml', + 'Geometry/TrackerCommonData/data/pixfwdDisk.xml', + 'Geometry/TrackerCommonData/data/pixfwdCylinder.xml', + 'Geometry/TrackerCommonData/data/pixfwd.xml', + 'Geometry/TrackerCommonData/data/pixbarmaterial.xml', + 'Geometry/TrackerCommonData/data/pixbarladder.xml', + 'Geometry/TrackerCommonData/data/pixbarladderfull.xml', + 'Geometry/TrackerCommonData/data/pixbarladderhalf.xml', + 'Geometry/TrackerCommonData/data/pixbarlayer.xml', + 'Geometry/TrackerCommonData/data/pixbarlayer0.xml', + 'Geometry/TrackerCommonData/data/pixbarlayer1.xml', + 'Geometry/TrackerCommonData/data/pixbarlayer2.xml', + 'Geometry/TrackerCommonData/data/pixbar.xml', + 'Geometry/TrackerCommonData/data/tibtidcommonmaterial.xml', + 'Geometry/TrackerCommonData/data/tibmaterial.xml', + 'Geometry/TrackerCommonData/data/tibmodpar.xml', + 'Geometry/TrackerCommonData/data/tibmodule0.xml', + 'Geometry/TrackerCommonData/data/tibmodule0a.xml', + 'Geometry/TrackerCommonData/data/tibmodule0b.xml', + 'Geometry/TrackerCommonData/data/tibmodule2.xml', + 'Geometry/TrackerCommonData/data/tibstringpar.xml', + 'Geometry/TrackerCommonData/data/tibstring0ll.xml', + 'Geometry/TrackerCommonData/data/tibstring0lr.xml', + 'Geometry/TrackerCommonData/data/tibstring0ul.xml', + 'Geometry/TrackerCommonData/data/tibstring0ur.xml', + 'Geometry/TrackerCommonData/data/tibstring0.xml', + 'Geometry/TrackerCommonData/data/tibstring1ll.xml', + 'Geometry/TrackerCommonData/data/tibstring1lr.xml', + 'Geometry/TrackerCommonData/data/tibstring1ul.xml', + 'Geometry/TrackerCommonData/data/tibstring1ur.xml', + 'Geometry/TrackerCommonData/data/tibstring1.xml', + 'Geometry/TrackerCommonData/data/tibstring2ll.xml', + 'Geometry/TrackerCommonData/data/tibstring2lr.xml', + 'Geometry/TrackerCommonData/data/tibstring2ul.xml', + 'Geometry/TrackerCommonData/data/tibstring2ur.xml', + 'Geometry/TrackerCommonData/data/tibstring2.xml', + 'Geometry/TrackerCommonData/data/tibstring3ll.xml', + 'Geometry/TrackerCommonData/data/tibstring3lr.xml', + 'Geometry/TrackerCommonData/data/tibstring3ul.xml', + 'Geometry/TrackerCommonData/data/tibstring3ur.xml', + 'Geometry/TrackerCommonData/data/tibstring3.xml', + 'Geometry/TrackerCommonData/data/tiblayerpar.xml', + 'Geometry/TrackerCommonData/data/tiblayer0.xml', + 'Geometry/TrackerCommonData/data/tiblayer1.xml', + 'Geometry/TrackerCommonData/data/tiblayer2.xml', + 'Geometry/TrackerCommonData/data/tiblayer3.xml', + 'Geometry/TrackerCommonData/data/tib.xml', + 'Geometry/TrackerCommonData/data/tidmaterial.xml', + 'Geometry/TrackerCommonData/data/tidmodpar.xml', + 'Geometry/TrackerCommonData/data/tidmodule0.xml', + 'Geometry/TrackerCommonData/data/tidmodule0r.xml', + 'Geometry/TrackerCommonData/data/tidmodule0l.xml', + 'Geometry/TrackerCommonData/data/tidmodule1.xml', + 'Geometry/TrackerCommonData/data/tidmodule1r.xml', + 'Geometry/TrackerCommonData/data/tidmodule1l.xml', + 'Geometry/TrackerCommonData/data/tidmodule2.xml', + 'Geometry/TrackerCommonData/data/tidringpar.xml', + 'Geometry/TrackerCommonData/data/tidring0.xml', + 'Geometry/TrackerCommonData/data/tidring0f.xml', + 'Geometry/TrackerCommonData/data/tidring0b.xml', + 'Geometry/TrackerCommonData/data/tidring1.xml', + 'Geometry/TrackerCommonData/data/tidring1f.xml', + 'Geometry/TrackerCommonData/data/tidring1b.xml', + 'Geometry/TrackerCommonData/data/tidring2.xml', + 'Geometry/TrackerCommonData/data/tid.xml', + 'Geometry/TrackerCommonData/data/tidf.xml', + 'Geometry/TrackerCommonData/data/tidb.xml', + 'Geometry/TrackerCommonData/data/tibtidservices.xml', + 'Geometry/TrackerCommonData/data/tibtidservicesf.xml', + 'Geometry/TrackerCommonData/data/tibtidservicesb.xml', + 'Geometry/TrackerCommonData/data/tobmaterial.xml', + 'Geometry/TrackerCommonData/data/tobmodpar.xml', + 'Geometry/TrackerCommonData/data/tobmodule0.xml', + 'Geometry/TrackerCommonData/data/tobmodule2.xml', + 'Geometry/TrackerCommonData/data/tobmodule4.xml', + 'Geometry/TrackerCommonData/data/tobrodpar.xml', + 'Geometry/TrackerCommonData/data/tobrod0c.xml', + 'Geometry/TrackerCommonData/data/tobrod0l.xml', + 'Geometry/TrackerCommonData/data/tobrod0h.xml', + 'Geometry/TrackerCommonData/data/tobrod0.xml', + 'Geometry/TrackerCommonData/data/tobrod1l.xml', + 'Geometry/TrackerCommonData/data/tobrod1h.xml', + 'Geometry/TrackerCommonData/data/tobrod1.xml', + 'Geometry/TrackerCommonData/data/tobrod2c.xml', + 'Geometry/TrackerCommonData/data/tobrod2l.xml', + 'Geometry/TrackerCommonData/data/tobrod2h.xml', + 'Geometry/TrackerCommonData/data/tobrod2.xml', + 'Geometry/TrackerCommonData/data/tobrod3l.xml', + 'Geometry/TrackerCommonData/data/tobrod3h.xml', + 'Geometry/TrackerCommonData/data/tobrod3.xml', + 'Geometry/TrackerCommonData/data/tobrod4c.xml', + 'Geometry/TrackerCommonData/data/tobrod4l.xml', + 'Geometry/TrackerCommonData/data/tobrod4h.xml', + 'Geometry/TrackerCommonData/data/tobrod4.xml', + 'Geometry/TrackerCommonData/data/tobrod5l.xml', + 'Geometry/TrackerCommonData/data/tobrod5h.xml', + 'Geometry/TrackerCommonData/data/tobrod5.xml', + 'Geometry/TrackerCommonData/data/tob.xml', + 'Geometry/TrackerCommonData/data/tecmaterial.xml', + 'Geometry/TrackerCommonData/data/tecmodpar.xml', + 'Geometry/TrackerCommonData/data/tecmodule0.xml', + 'Geometry/TrackerCommonData/data/tecmodule0r.xml', + 'Geometry/TrackerCommonData/data/tecmodule0s.xml', + 'Geometry/TrackerCommonData/data/tecmodule1.xml', + 'Geometry/TrackerCommonData/data/tecmodule1r.xml', + 'Geometry/TrackerCommonData/data/tecmodule1s.xml', + 'Geometry/TrackerCommonData/data/tecmodule2.xml', + 'Geometry/TrackerCommonData/data/tecmodule3.xml', + 'Geometry/TrackerCommonData/data/tecmodule4.xml', + 'Geometry/TrackerCommonData/data/tecmodule4r.xml', + 'Geometry/TrackerCommonData/data/tecmodule4s.xml', + 'Geometry/TrackerCommonData/data/tecmodule5.xml', + 'Geometry/TrackerCommonData/data/tecmodule6.xml', + 'Geometry/TrackerCommonData/data/tecpetpar.xml', + 'Geometry/TrackerCommonData/data/tecring0.xml', + 'Geometry/TrackerCommonData/data/tecring1.xml', + 'Geometry/TrackerCommonData/data/tecring2.xml', + 'Geometry/TrackerCommonData/data/tecring3.xml', + 'Geometry/TrackerCommonData/data/tecring4.xml', + 'Geometry/TrackerCommonData/data/tecring5.xml', + 'Geometry/TrackerCommonData/data/tecring6.xml', + 'Geometry/TrackerCommonData/data/tecring0f.xml', + 'Geometry/TrackerCommonData/data/tecring1f.xml', + 'Geometry/TrackerCommonData/data/tecring2f.xml', + 'Geometry/TrackerCommonData/data/tecring3f.xml', + 'Geometry/TrackerCommonData/data/tecring4f.xml', + 'Geometry/TrackerCommonData/data/tecring5f.xml', + 'Geometry/TrackerCommonData/data/tecring6f.xml', + 'Geometry/TrackerCommonData/data/tecring0b.xml', + 'Geometry/TrackerCommonData/data/tecring1b.xml', + 'Geometry/TrackerCommonData/data/tecring2b.xml', + 'Geometry/TrackerCommonData/data/tecring3b.xml', + 'Geometry/TrackerCommonData/data/tecring4b.xml', + 'Geometry/TrackerCommonData/data/tecring5b.xml', + 'Geometry/TrackerCommonData/data/tecring6b.xml', + 'Geometry/TrackerCommonData/data/tecpetalf.xml', + 'Geometry/TrackerCommonData/data/tecpetalb.xml', + 'Geometry/TrackerCommonData/data/tecpetal0.xml', + 'Geometry/TrackerCommonData/data/tecpetal0f.xml', + 'Geometry/TrackerCommonData/data/tecpetal0b.xml', + 'Geometry/TrackerCommonData/data/tecpetal3.xml', + 'Geometry/TrackerCommonData/data/tecpetal3f.xml', + 'Geometry/TrackerCommonData/data/tecpetal3b.xml', + 'Geometry/TrackerCommonData/data/tecpetal6f.xml', + 'Geometry/TrackerCommonData/data/tecpetal6b.xml', + 'Geometry/TrackerCommonData/data/tecpetal8f.xml', + 'Geometry/TrackerCommonData/data/tecpetal8b.xml', + 'Geometry/TrackerCommonData/data/tecwheel.xml', + 'Geometry/TrackerCommonData/data/tecwheela.xml', + 'Geometry/TrackerCommonData/data/tecwheelb.xml', + 'Geometry/TrackerCommonData/data/tecwheelc.xml', + 'Geometry/TrackerCommonData/data/tecwheeld.xml', + 'Geometry/TrackerCommonData/data/tecwheel6.xml', + 'Geometry/TrackerCommonData/data/tecservices.xml', + 'Geometry/TrackerCommonData/data/tecbackplate.xml', + 'Geometry/TrackerCommonData/data/tec.xml', + 'Geometry/TrackerCommonData/data/trackermaterial.xml', + 'Geometry/TrackerCommonData/data/tracker.xml', + 'Geometry/TrackerCommonData/data/trackerpixbar.xml', + 'Geometry/TrackerCommonData/data/trackerpixfwd.xml', + 'Geometry/TrackerCommonData/data/trackertibtidservices.xml', + 'Geometry/TrackerCommonData/data/trackertib.xml', + 'Geometry/TrackerCommonData/data/trackertid.xml', + 'Geometry/TrackerCommonData/data/trackertob.xml', + 'Geometry/TrackerCommonData/data/trackertec.xml', + 'Geometry/TrackerCommonData/data/trackerbulkhead.xml', + 'Geometry/TrackerCommonData/data/trackerother.xml', + 'Geometry/EcalCommonData/data/eregalgo.xml', + 'Geometry/EcalCommonData/data/ebalgo.xml', + 'Geometry/EcalCommonData/data/ebcon.xml', + 'Geometry/EcalCommonData/data/ebrot.xml', + 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/eefixed.xml', + 'Geometry/EcalCommonData/data/eehier.xml', + 'Geometry/EcalCommonData/data/eealgo.xml', + 'Geometry/EcalCommonData/data/escon.xml', + 'Geometry/EcalCommonData/data/esalgo.xml', + 'Geometry/EcalCommonData/data/eeF.xml', + 'Geometry/EcalCommonData/data/eeB.xml', + 'Geometry/HcalCommonData/data/hcalrotations.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalendcapalgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/Phase0/hcalRecNumbering.xml', + 'Geometry/MuonCommonData/data/mbCommon.xml', + 'Geometry/MuonCommonData/data/mb1.xml', + 'Geometry/MuonCommonData/data/mb2.xml', + 'Geometry/MuonCommonData/data/mb3.xml', + 'Geometry/MuonCommonData/data/mb4.xml', + 'Geometry/MuonCommonData/data/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf.xml', + 'Geometry/ForwardCommonData/data/forward.xml', + 'Geometry/ForwardCommonData/data/bundle/forwardshield.xml', + 'Geometry/ForwardCommonData/data/brmrotations.xml', + 'Geometry/ForwardCommonData/data/brm.xml', + 'Geometry/ForwardCommonData/data/totemMaterials.xml', + 'Geometry/ForwardCommonData/data/totemRotations.xml', + 'Geometry/ForwardCommonData/data/totemt1.xml', + 'Geometry/ForwardCommonData/data/totemt2.xml', + 'Geometry/ForwardCommonData/data/ionpump.xml', + 'Geometry/ForwardCommonData/data/castor.xml', + 'Geometry/ForwardCommonData/data/zdcmaterials.xml', + 'Geometry/ForwardCommonData/data/lumimaterials.xml', + 'Geometry/ForwardCommonData/data/zdcrotations.xml', + 'Geometry/ForwardCommonData/data/lumirotations.xml', + 'Geometry/ForwardCommonData/data/zdc.xml', + 'Geometry/ForwardCommonData/data/zdclumi.xml', + 'Geometry/ForwardCommonData/data/cmszdc.xml')+cms.vstring( + 'Geometry/MuonCommonData/data/muonNumbering.xml', + 'Geometry/TrackerCommonData/data/trackerStructureTopology.xml', + 'Geometry/TrackerSimData/data/trackersens.xml', + 'Geometry/TrackerRecoData/data/trackerRecoMaterial.xml', + 'Geometry/EcalSimData/data/ecalsens.xml', + 'Geometry/HcalCommonData/data/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/muonSens.xml', + 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/RPCSpecs.xml', + 'Geometry/ForwardCommonData/data/brmsens.xml', + 'Geometry/ForwardSimData/data/castorsens.xml', + 'Geometry/ForwardSimData/data/zdcsens.xml', + 'Geometry/HcalSimData/data/HcalProdCuts.xml', + 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/EcalSimData/data/ESProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', + 'Geometry/MuonSimData/data/muonProdCuts.xml', + 'Geometry/ForwardSimData/data/CastorProdCuts.xml', + 'Geometry/ForwardSimData/data/zdcProdCuts.xml', + 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml'), + rootNodeName = cms.string('cms:OCMS') +) + + + + diff --git a/Geometry/HcalCommonData/python/testPhase2GeometryXML_cfi.py b/Geometry/HcalCommonData/python/testPhase2GeometryXML_cfi.py new file mode 100644 index 0000000000000..f71f570ba7ce7 --- /dev/null +++ b/Geometry/HcalCommonData/python/testPhase2GeometryXML_cfi.py @@ -0,0 +1,281 @@ +import FWCore.ParameterSet.Config as cms + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring('Geometry/CMSCommonData/data/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/cmsextent.xml', + 'Geometry/CMSCommonData/data/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/PhaseII/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavern.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/TrackerCommonData/data/pixfwdMaterials.xml', + 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq1x2.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq1x5.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq2x3.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq2x4.xml', + 'Geometry/TrackerCommonData/data/pixfwdPlaq2x5.xml', + 'Geometry/TrackerCommonData/data/pixfwdPanelBase.xml', + 'Geometry/TrackerCommonData/data/pixfwdPanel.xml', + 'Geometry/TrackerCommonData/data/pixfwdBlade.xml', + 'Geometry/TrackerCommonData/data/pixfwdNipple.xml', + 'Geometry/TrackerCommonData/data/pixfwdDisk.xml', + 'Geometry/TrackerCommonData/data/pixfwdCylinder.xml', + 'Geometry/TrackerCommonData/data/pixfwd.xml', + 'Geometry/TrackerCommonData/data/pixbarmaterial.xml', + 'Geometry/TrackerCommonData/data/pixbarladder.xml', + 'Geometry/TrackerCommonData/data/pixbarladderfull.xml', + 'Geometry/TrackerCommonData/data/pixbarladderhalf.xml', + 'Geometry/TrackerCommonData/data/pixbarlayer.xml', + 'Geometry/TrackerCommonData/data/pixbarlayer0.xml', + 'Geometry/TrackerCommonData/data/pixbarlayer1.xml', + 'Geometry/TrackerCommonData/data/pixbarlayer2.xml', + 'Geometry/TrackerCommonData/data/pixbar.xml', + 'Geometry/TrackerCommonData/data/tibtidcommonmaterial.xml', + 'Geometry/TrackerCommonData/data/tibmaterial.xml', + 'Geometry/TrackerCommonData/data/tibmodpar.xml', + 'Geometry/TrackerCommonData/data/tibmodule0.xml', + 'Geometry/TrackerCommonData/data/tibmodule0a.xml', + 'Geometry/TrackerCommonData/data/tibmodule0b.xml', + 'Geometry/TrackerCommonData/data/tibmodule2.xml', + 'Geometry/TrackerCommonData/data/tibstringpar.xml', + 'Geometry/TrackerCommonData/data/tibstring0ll.xml', + 'Geometry/TrackerCommonData/data/tibstring0lr.xml', + 'Geometry/TrackerCommonData/data/tibstring0ul.xml', + 'Geometry/TrackerCommonData/data/tibstring0ur.xml', + 'Geometry/TrackerCommonData/data/tibstring0.xml', + 'Geometry/TrackerCommonData/data/tibstring1ll.xml', + 'Geometry/TrackerCommonData/data/tibstring1lr.xml', + 'Geometry/TrackerCommonData/data/tibstring1ul.xml', + 'Geometry/TrackerCommonData/data/tibstring1ur.xml', + 'Geometry/TrackerCommonData/data/tibstring1.xml', + 'Geometry/TrackerCommonData/data/tibstring2ll.xml', + 'Geometry/TrackerCommonData/data/tibstring2lr.xml', + 'Geometry/TrackerCommonData/data/tibstring2ul.xml', + 'Geometry/TrackerCommonData/data/tibstring2ur.xml', + 'Geometry/TrackerCommonData/data/tibstring2.xml', + 'Geometry/TrackerCommonData/data/tibstring3ll.xml', + 'Geometry/TrackerCommonData/data/tibstring3lr.xml', + 'Geometry/TrackerCommonData/data/tibstring3ul.xml', + 'Geometry/TrackerCommonData/data/tibstring3ur.xml', + 'Geometry/TrackerCommonData/data/tibstring3.xml', + 'Geometry/TrackerCommonData/data/tiblayerpar.xml', + 'Geometry/TrackerCommonData/data/tiblayer0.xml', + 'Geometry/TrackerCommonData/data/tiblayer1.xml', + 'Geometry/TrackerCommonData/data/tiblayer2.xml', + 'Geometry/TrackerCommonData/data/tiblayer3.xml', + 'Geometry/TrackerCommonData/data/tib.xml', + 'Geometry/TrackerCommonData/data/tidmaterial.xml', + 'Geometry/TrackerCommonData/data/tidmodpar.xml', + 'Geometry/TrackerCommonData/data/tidmodule0.xml', + 'Geometry/TrackerCommonData/data/tidmodule0r.xml', + 'Geometry/TrackerCommonData/data/tidmodule0l.xml', + 'Geometry/TrackerCommonData/data/tidmodule1.xml', + 'Geometry/TrackerCommonData/data/tidmodule1r.xml', + 'Geometry/TrackerCommonData/data/tidmodule1l.xml', + 'Geometry/TrackerCommonData/data/tidmodule2.xml', + 'Geometry/TrackerCommonData/data/tidringpar.xml', + 'Geometry/TrackerCommonData/data/tidring0.xml', + 'Geometry/TrackerCommonData/data/tidring0f.xml', + 'Geometry/TrackerCommonData/data/tidring0b.xml', + 'Geometry/TrackerCommonData/data/tidring1.xml', + 'Geometry/TrackerCommonData/data/tidring1f.xml', + 'Geometry/TrackerCommonData/data/tidring1b.xml', + 'Geometry/TrackerCommonData/data/tidring2.xml', + 'Geometry/TrackerCommonData/data/tid.xml', + 'Geometry/TrackerCommonData/data/tidf.xml', + 'Geometry/TrackerCommonData/data/tidb.xml', + 'Geometry/TrackerCommonData/data/tibtidservices.xml', + 'Geometry/TrackerCommonData/data/tibtidservicesf.xml', + 'Geometry/TrackerCommonData/data/tibtidservicesb.xml', + 'Geometry/TrackerCommonData/data/tobmaterial.xml', + 'Geometry/TrackerCommonData/data/tobmodpar.xml', + 'Geometry/TrackerCommonData/data/tobmodule0.xml', + 'Geometry/TrackerCommonData/data/tobmodule2.xml', + 'Geometry/TrackerCommonData/data/tobmodule4.xml', + 'Geometry/TrackerCommonData/data/tobrodpar.xml', + 'Geometry/TrackerCommonData/data/tobrod0c.xml', + 'Geometry/TrackerCommonData/data/tobrod0l.xml', + 'Geometry/TrackerCommonData/data/tobrod0h.xml', + 'Geometry/TrackerCommonData/data/tobrod0.xml', + 'Geometry/TrackerCommonData/data/tobrod1l.xml', + 'Geometry/TrackerCommonData/data/tobrod1h.xml', + 'Geometry/TrackerCommonData/data/tobrod1.xml', + 'Geometry/TrackerCommonData/data/tobrod2c.xml', + 'Geometry/TrackerCommonData/data/tobrod2l.xml', + 'Geometry/TrackerCommonData/data/tobrod2h.xml', + 'Geometry/TrackerCommonData/data/tobrod2.xml', + 'Geometry/TrackerCommonData/data/tobrod3l.xml', + 'Geometry/TrackerCommonData/data/tobrod3h.xml', + 'Geometry/TrackerCommonData/data/tobrod3.xml', + 'Geometry/TrackerCommonData/data/tobrod4c.xml', + 'Geometry/TrackerCommonData/data/tobrod4l.xml', + 'Geometry/TrackerCommonData/data/tobrod4h.xml', + 'Geometry/TrackerCommonData/data/tobrod4.xml', + 'Geometry/TrackerCommonData/data/tobrod5l.xml', + 'Geometry/TrackerCommonData/data/tobrod5h.xml', + 'Geometry/TrackerCommonData/data/tobrod5.xml', + 'Geometry/TrackerCommonData/data/tob.xml', + 'Geometry/TrackerCommonData/data/tecmaterial.xml', + 'Geometry/TrackerCommonData/data/tecmodpar.xml', + 'Geometry/TrackerCommonData/data/tecmodule0.xml', + 'Geometry/TrackerCommonData/data/tecmodule0r.xml', + 'Geometry/TrackerCommonData/data/tecmodule0s.xml', + 'Geometry/TrackerCommonData/data/tecmodule1.xml', + 'Geometry/TrackerCommonData/data/tecmodule1r.xml', + 'Geometry/TrackerCommonData/data/tecmodule1s.xml', + 'Geometry/TrackerCommonData/data/tecmodule2.xml', + 'Geometry/TrackerCommonData/data/tecmodule3.xml', + 'Geometry/TrackerCommonData/data/tecmodule4.xml', + 'Geometry/TrackerCommonData/data/tecmodule4r.xml', + 'Geometry/TrackerCommonData/data/tecmodule4s.xml', + 'Geometry/TrackerCommonData/data/tecmodule5.xml', + 'Geometry/TrackerCommonData/data/tecmodule6.xml', + 'Geometry/TrackerCommonData/data/tecpetpar.xml', + 'Geometry/TrackerCommonData/data/tecring0.xml', + 'Geometry/TrackerCommonData/data/tecring1.xml', + 'Geometry/TrackerCommonData/data/tecring2.xml', + 'Geometry/TrackerCommonData/data/tecring3.xml', + 'Geometry/TrackerCommonData/data/tecring4.xml', + 'Geometry/TrackerCommonData/data/tecring5.xml', + 'Geometry/TrackerCommonData/data/tecring6.xml', + 'Geometry/TrackerCommonData/data/tecring0f.xml', + 'Geometry/TrackerCommonData/data/tecring1f.xml', + 'Geometry/TrackerCommonData/data/tecring2f.xml', + 'Geometry/TrackerCommonData/data/tecring3f.xml', + 'Geometry/TrackerCommonData/data/tecring4f.xml', + 'Geometry/TrackerCommonData/data/tecring5f.xml', + 'Geometry/TrackerCommonData/data/tecring6f.xml', + 'Geometry/TrackerCommonData/data/tecring0b.xml', + 'Geometry/TrackerCommonData/data/tecring1b.xml', + 'Geometry/TrackerCommonData/data/tecring2b.xml', + 'Geometry/TrackerCommonData/data/tecring3b.xml', + 'Geometry/TrackerCommonData/data/tecring4b.xml', + 'Geometry/TrackerCommonData/data/tecring5b.xml', + 'Geometry/TrackerCommonData/data/tecring6b.xml', + 'Geometry/TrackerCommonData/data/tecpetalf.xml', + 'Geometry/TrackerCommonData/data/tecpetalb.xml', + 'Geometry/TrackerCommonData/data/tecpetal0.xml', + 'Geometry/TrackerCommonData/data/tecpetal0f.xml', + 'Geometry/TrackerCommonData/data/tecpetal0b.xml', + 'Geometry/TrackerCommonData/data/tecpetal3.xml', + 'Geometry/TrackerCommonData/data/tecpetal3f.xml', + 'Geometry/TrackerCommonData/data/tecpetal3b.xml', + 'Geometry/TrackerCommonData/data/tecpetal6f.xml', + 'Geometry/TrackerCommonData/data/tecpetal6b.xml', + 'Geometry/TrackerCommonData/data/tecpetal8f.xml', + 'Geometry/TrackerCommonData/data/tecpetal8b.xml', + 'Geometry/TrackerCommonData/data/tecwheel.xml', + 'Geometry/TrackerCommonData/data/tecwheela.xml', + 'Geometry/TrackerCommonData/data/tecwheelb.xml', + 'Geometry/TrackerCommonData/data/tecwheelc.xml', + 'Geometry/TrackerCommonData/data/tecwheeld.xml', + 'Geometry/TrackerCommonData/data/tecwheel6.xml', + 'Geometry/TrackerCommonData/data/tecservices.xml', + 'Geometry/TrackerCommonData/data/tecbackplate.xml', + 'Geometry/TrackerCommonData/data/tec.xml', + 'Geometry/TrackerCommonData/data/trackermaterial.xml', + 'Geometry/TrackerCommonData/data/tracker.xml', + 'Geometry/TrackerCommonData/data/trackerpixbar.xml', + 'Geometry/TrackerCommonData/data/trackerpixfwd.xml', + 'Geometry/TrackerCommonData/data/trackertibtidservices.xml', + 'Geometry/TrackerCommonData/data/trackertib.xml', + 'Geometry/TrackerCommonData/data/trackertid.xml', + 'Geometry/TrackerCommonData/data/trackertob.xml', + 'Geometry/TrackerCommonData/data/trackertec.xml', + 'Geometry/TrackerCommonData/data/trackerbulkhead.xml', + 'Geometry/TrackerCommonData/data/trackerother.xml', + 'Geometry/EcalCommonData/data/PhaseII/eregalgo.xml', + 'Geometry/EcalCommonData/data/ebalgo.xml', + 'Geometry/EcalCommonData/data/ebcon.xml', + 'Geometry/EcalCommonData/data/ebrot.xml', + 'Geometry/EcalCommonData/data/eecon.xml', + 'Geometry/EcalCommonData/data/ectkcable.xml', + 'Geometry/HcalCommonData/data/hcalrotations.xml', + 'Geometry/HcalCommonData/data/PhaseII/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo.xml', + 'Geometry/HcalCommonData/data/PhaseII/hcalendcapalgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardfibre.xml', + 'Geometry/HcalCommonData/data/hcalforwardmaterial.xml', + 'Geometry/HcalCommonData/data/PhaseII/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/PhaseII/hcalRecNumbering.xml', + 'Geometry/MuonCommonData/data/mbCommon.xml', + 'Geometry/MuonCommonData/data/mb1.xml', + 'Geometry/MuonCommonData/data/mb2.xml', + 'Geometry/MuonCommonData/data/mb3.xml', + 'Geometry/MuonCommonData/data/mb4.xml', + 'Geometry/MuonCommonData/data/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf.xml', + 'Geometry/ForwardCommonData/data/forward.xml', + 'Geometry/ForwardCommonData/data/forwardshield.xml', + 'Geometry/ForwardCommonData/data/brmrotations.xml', + 'Geometry/ForwardCommonData/data/brm.xml', + 'Geometry/ForwardCommonData/data/totemMaterials.xml', + 'Geometry/ForwardCommonData/data/totemRotations.xml', + 'Geometry/ForwardCommonData/data/totemt1.xml', + 'Geometry/ForwardCommonData/data/totemt2.xml', + 'Geometry/ForwardCommonData/data/ionpump.xml', + 'Geometry/ForwardCommonData/data/castor.xml', + 'Geometry/ForwardCommonData/data/zdcmaterials.xml', + 'Geometry/ForwardCommonData/data/lumimaterials.xml', + 'Geometry/ForwardCommonData/data/zdcrotations.xml', + 'Geometry/ForwardCommonData/data/lumirotations.xml', + 'Geometry/ForwardCommonData/data/plt.xml', + 'Geometry/ForwardCommonData/data/zdc.xml', + 'Geometry/ForwardCommonData/data/zdclumi.xml', + 'Geometry/ForwardCommonData/data/cmszdc.xml', + 'Geometry/FP420CommonData/data/fp420.xml', + 'Geometry/FP420CommonData/data/zzzrectangle.xml', + 'Geometry/FP420CommonData/data/materialsfp420.xml', + 'Geometry/FP420CommonData/data/FP420Rot.xml', + 'Geometry/FP420CommonData/data/cmsfp420.xml')+cms.vstring( + 'Geometry/MuonCommonData/data/muonNumbering.xml', + 'Geometry/TrackerCommonData/data/trackerStructureTopology.xml', + 'Geometry/TrackerSimData/data/trackersens.xml', + 'Geometry/TrackerRecoData/data/trackerRecoMaterial.xml', + 'Geometry/EcalSimData/data/ecalsens.xml', + 'Geometry/HcalCommonData/data/hcalsens.xml', + 'Geometry/HcalSimData/data/CaloUtil.xml', + 'Geometry/HcalSimData/data/hf.xml', + 'Geometry/HcalSimData/data/hffibre.xml', + 'Geometry/MuonSimData/data/muonSens.xml', + 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/RPCSpecs.xml', + 'Geometry/ForwardCommonData/data/brmsens.xml', + 'Geometry/ForwardSimData/data/totemsensT1.xml', + 'Geometry/ForwardSimData/data/totemsensT2.xml', + 'Geometry/ForwardSimData/data/castorsens.xml', + 'Geometry/ForwardSimData/data/pltsens.xml', + 'Geometry/ForwardSimData/data/zdcsens.xml', + 'Geometry/FP420SimData/data/fp420sens.xml', + 'Geometry/HcalSimData/data/HcalProdCuts.xml', + 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/EcalSimData/data/ESProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', + 'Geometry/MuonSimData/data/muonProdCuts.xml', + 'Geometry/ForwardSimData/data/CastorProdCuts.xml', + 'Geometry/ForwardSimData/data/zdcProdCuts.xml', + 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', + 'Geometry/FP420SimData/data/FP420ProdCuts.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml'), + rootNodeName = cms.string('cms:OCMS') +) + + diff --git a/Geometry/HcalCommonData/src/HcalCellType.cc b/Geometry/HcalCommonData/src/HcalCellType.cc index 7193a826a0eed..d7a954f7ba6cd 100644 --- a/Geometry/HcalCommonData/src/HcalCellType.cc +++ b/Geometry/HcalCommonData/src/HcalCellType.cc @@ -52,6 +52,30 @@ HcalCellType::HcalCellType(const HcalCellType &right) { theMissingPhiMinus = right.theMissingPhiMinus; } +const HcalCellType& HcalCellType::operator=(const HcalCellType &right) { + + theDetType = right.theDetType; + theEtaBin = right.theEtaBin; + theDepthSegment = right.theDepthSegment; + theNumberOfPhiBins = right.theNumberOfPhiBins; + theNumberOfZ = right.theNumberOfZ; + theActualReadoutDirection = right.theActualReadoutDirection; + theUnitPhi = right.theUnitPhi; + theRzFlag = right.theRzFlag; + theEtaMin = right.theEtaMin; + theEtaMax = right.theEtaMax; + thePhiOffset = right.thePhiOffset; + thePhiBinWidth = right.thePhiBinWidth; + theDepthMin = right.theDepthMin; + theDepthMax = right.theDepthMax; + theHalfSize = right.theHalfSize; + theSamplingFactor = right.theSamplingFactor; + theMissingPhiPlus = right.theMissingPhiPlus; + theMissingPhiMinus = right.theMissingPhiMinus; + + return *this; +} + HcalCellType::~HcalCellType() {} void HcalCellType::setMissingPhi(std::vector& v1, std::vector& v2) { @@ -65,6 +89,25 @@ int HcalCellType::nPhiMissingBins() const { return tmp; } +void HcalCellType::setEta(int bin, double etamin, double etamax) { + theEtaBin = bin; + theEtaMin = etamin; + theEtaMax = etamax; +} + +void HcalCellType::setDepth(int bin, double dmin, double dmax) { + theDepthSegment = bin; + theDepthMin = dmin; + theDepthMax = dmax; +} + +void HcalCellType::setPhi(int bins, int unit, double dphi, double phioff) { + theNumberOfPhiBins = bins; + theUnitPhi = unit; + thePhiBinWidth = dphi; + thePhiOffset = phioff; +} + std::ostream& operator<<(std::ostream& os, const HcalCellType& cell) { os << "Detector " << cell.detType() << " Eta " << cell.etaBin() << " (" << cell.etaMin() << ":" << cell.etaMax() << ") Depth " diff --git a/Geometry/HcalCommonData/src/HcalDDDRecConstants.cc b/Geometry/HcalCommonData/src/HcalDDDRecConstants.cc new file mode 100644 index 0000000000000..4521672189901 --- /dev/null +++ b/Geometry/HcalCommonData/src/HcalDDDRecConstants.cc @@ -0,0 +1,482 @@ +#include "Geometry/HcalCommonData/interface/HcalDDDRecConstants.h" + + +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/Utilities/interface/Exception.h" + +#include "DetectorDescription/Base/interface/DDutils.h" +#include "DetectorDescription/Core/interface/DDValue.h" +#include "DetectorDescription/Core/interface/DDFilter.h" +#include "DetectorDescription/Core/interface/DDSolid.h" +#include "DetectorDescription/Core/interface/DDFilteredView.h" +#include "CLHEP/Units/GlobalPhysicalConstants.h" +#include "CLHEP/Units/GlobalSystemOfUnits.h" + +//#define DebugLog + +HcalDDDRecConstants::HcalDDDRecConstants(const DDCompactView& cpv, + const HcalDDDSimConstants& hconst) { + +#ifdef DebugLog + std::cout << "HcalDDDRecConstants::HcalDDDRecConstants (const DDCompactView& cpv, const HcalDDDSimConstants& hconst) constructor" << std::endl; +#endif + + hcons = &(hconst); + std::string attribute = "OnlyForHcalRecNumbering"; + std::string value = "any"; + DDValue val(attribute, value, 0.0); + + DDSpecificsFilter filter; + filter.setCriteria(val, DDSpecificsFilter::not_equals, + DDSpecificsFilter::AND, true, // compare strings + true // use merged-specifics or simple-specifics + ); + DDFilteredView fv(cpv); + fv.addFilter(filter); + bool ok = fv.firstChild(); + + if (ok) { + //Load the SpecPars + loadSpecPars(fv); + + //Load the Sim Constants + loadSimConst(); + } else { + edm::LogError("HCalGeom") << "HcalDDDRecConstants: cannot get filtered " + << " view for " << attribute << " not matching " + << value; + throw cms::Exception("DDException") << "HcalDDDRecConstants: cannot match " << attribute << " to " << value; + } +} + + +HcalDDDRecConstants::~HcalDDDRecConstants() { + // std::cout << "destructed!!!" << std::endl; +} + +std::vector +HcalDDDRecConstants::getEtaBins(const int itype) const { + + std::vector bins; + unsigned int type = (itype == 0) ? 0 : 1; + unsigned int lymax = (type == 0) ? 17 : 19; + for (int ieta = iEtaMin[type]; ieta <= iEtaMax[type]; ++ieta) { + int nfi = (int)((20.001*nModule[itype]*CLHEP::deg)/phibin[ieta-1]); + HcalDDDRecConstants::HcalEtaBin etabin = HcalDDDRecConstants::HcalEtaBin(ieta,etaTable[ieta-1], etaTable[ieta], nfi, phioff[type], phibin[ieta-1]); + int dstart = -1; + if (layerGroup[ieta-1].size() > 0) { + int lmin(0), lmax(0); + int dep = layerGroup[ieta-1][0]; + if (type == 1 && ieta == iEtaMin[type]) dep = 3; + unsigned lymx0 = (layerGroup[ieta-1].size() > lymax) ? lymax : layerGroup[ieta-1].size(); + for (unsigned int l=0; l dep) { + if (dstart < 0) dstart = dep; + etabin.layer.push_back(std::pair(lmin,lmax)); + lmin = (l + 1); + lmax = l; + dep = layerGroup[ieta-1][l]; + } + if (type == 0 && ieta == iEtaMax[type] && dep > 2) break; + } + if (lmax >= lmin) { + if (ieta+1 == nOff[1]) { + } else if (ieta == nOff[1]) { + HcalDDDRecConstants::HcalEtaBin etabin0 = HcalDDDRecConstants::HcalEtaBin(ieta,etaTable[ieta-2], etaTable[ieta], nfi, phioff[type], phibin[ieta-1]); + etabin0.depthStart = dep; + etabin0.layer.push_back(std::pair(lmin,lmax)); + bins.push_back(etabin0); + } else { + etabin.layer.push_back(std::pair(lmin,lmax)); + if (dstart < 0) dstart = dep; + } + } + } + etabin.depthStart = dstart; + bins.push_back(etabin); + } +#ifdef DebugLog + std::cout << "Prepares " << bins.size() << " eta bins for type " << type + << std::endl; + for (unsigned int i=0; i(HcalBarrel) || + subdet == static_cast(HcalEndcap)) { + eta = ietaMap[ieta-1]; + int phi0 = (iphi-1)/phiGroup[eta-1]; ++phi0; + int unit = hcons->unitPhi(phibin[eta-1]); + phi = hcons->phiNumber(phi0,unit); + depth = layerGroup[eta-1][lay-1]; + if (eta == iEtaMin[1]) { + if (subdet == static_cast(HcalBarrel)) { + if (depth > 2) depth = 2; + } else { + if (depth < 3) depth = 3; + } + } else if (eta == nOff[0] && lay > 1) { + int kphi = phi + int((phioff[3]+0.1)/phibin[eta-1]); + kphi = (kphi-1)%4 + 1; + if (kphi == 2 || kphi == 3) depth = layerGroup[eta-1][lay-2]; + } else if (eta == nOff[1] && depth > 2) { + eta = nOff[1]-1; + } + } else if (subdet == static_cast(HcalOuter)) { + depth = 4; + } + return HcalDDDRecConstants::HcalID(eta,phi,depth); +} + +std::vector HcalDDDRecConstants::HcalCellTypes(HcalSubdetector subdet) const { + + if (subdet == HcalBarrel || subdet == HcalEndcap) { + std::vector cells; + int isub = (subdet == HcalBarrel) ? 0 : 1; + std::vector etabins = getEtaBins(isub); + for (unsigned int bin=0; bin temp; + std::vector count; + std::vector dmin, dmax; + for (unsigned int il=0; il cells = hcons->HcalCellTypes(subdet,keta,-1); + for (unsigned int ic=0; ic= etabins[bin].layer[il].first && + cells[ic].depthSegment() <= etabins[bin].layer[il].second) { + if (count[il] == 0) { + temp[il] = cells[ic]; + dmin[il] = cells[ic].depthMin(); + dmax[il] = cells[ic].depthMax(); + } + ++count[il]; + if (cells[ic].depthMin() < dmin[il]) dmin[il] = cells[ic].depthMin(); + if (cells[ic].depthMax() > dmax[il]) dmax[il] = cells[ic].depthMax(); + break; + } + } + } + } + int unit = hcons->unitPhi(etabins[bin].dphi); + for (unsigned int il=0; ilHcalCellTypes(subdet,-1,-1); + } +} + + +unsigned int HcalDDDRecConstants::numberOfCells(HcalSubdetector subdet) const { + + if (subdet == HcalBarrel || subdet == HcalEndcap) { + unsigned int num = 0; + std::vector cellTypes = HcalCellTypes(subdet); + for (unsigned int i=0; i 1) + num += (unsigned int)(cellTypes[i].nPhiBins()); + num -= (unsigned int)(cellTypes[i].nPhiMissingBins()); + } +#ifdef DebugLog + edm::LogInfo ("HCalGeom") << "HcalDDDRecConstants:numberOfCells " + << cellTypes.size() << " " << num + << " for subdetector " << subdet; +#endif + return num; + } else { + return hcons->numberOfCells(subdet); + } + +} + +unsigned int HcalDDDRecConstants::nCells(HcalSubdetector subdet) const { + + if (subdet == HcalBarrel || subdet == HcalEndcap) { + int isub = (subdet == HcalBarrel) ? 0 : 1; + std::vector etabins = getEtaBins(isub); + unsigned int ncell(0); + for (unsigned int i=0; i(ef,ieta)); + } + for (int k=0; kgetPhiBin(ieta); + phibin.push_back(dphi); + ieta += etaGroup[i]; + } +#ifdef DebugLog + std::cout << "Modified eta/deltaphi table for " << nEta << " bins" << std::endl; + for (int i=0; i= iEtaMin[1]-1 && i < iEtaMax[1]) { + std::cout << "HE " << i << " " << imx << " " << laymax << std::endl; + if (maxDepth[1] < laymax) maxDepth[1] = laymax; + } + } +#ifdef DebugLog + for (int i=0; i<4; ++i) + std::cout << "Detector Type[" << i << "] iEta " << iEtaMin[i] << ":" + << iEtaMax[i] << " MaxDepth " << maxDepth[i] << std::endl; +#endif + + //Now the geometry constants + std::pair nmodz = hcons->getModHalfHBHE(0); + nModule[0] = nmodz.first; + nHalves[0] = nmodz.second; + gconsHB = hcons->getConstHBHE(0); + for (unsigned int i=0; igetModHalfHBHE(1); + nModule[1] = nmodz.first; + nHalves[1] = nmodz.second; + gconsHE= hcons->getConstHBHE(1); + for (unsigned int i=0; i HcalDDDRecConstants::getDDDArray(const char * str, + const DDsvalues_type & sv, + int & nmin) const { +#ifdef DebugLog + std::cout << "HcalDDDRecConstants:getDDDArray called for " << str + << " with nMin " << nmin << std::endl; +#endif + DDValue value(str); + if (DDfetch(&sv,value)) { +#ifdef DebugLog + std::cout << "HcalDDDRecConstants: " << value << std::endl; +#endif + const std::vector & fvec = value.doubles(); + int nval = fvec.size(); + if (nmin > 0) { + if (nval < nmin) { + edm::LogError("HCalGeom") << "HcalDDDRecConstants : # of " << str + << " bins " << nval << " < " << nmin + << " ==> illegal"; + throw cms::Exception("DDException") << "HcalDDDRecConstants: cannot get array " << str; + } + } else { + if (nval < 1 && nmin == 0) { + edm::LogError("HCalGeom") << "HcalDDDRecConstants : # of " << str + << " bins " << nval << " < 1 ==> illegal" + << " (nmin=" << nmin << ")"; + throw cms::Exception("DDException") << "HcalDDDRecConstants: cannot get array " << str; + } + } + nmin = nval; + return fvec; + } else { + if (nmin >= 0) { + edm::LogError("HCalGeom") << "HcalDDDRecConstants: cannot get array " + << str; + throw cms::Exception("DDException") << "HcalDDDRecConstants: cannot get array " << str; + } + std::vector fvec; + nmin = 0; + return fvec; + } +} + +std::string HcalDDDRecConstants::getDDDString(const std::string & str, + const DDsvalues_type & sv) const{ +#ifdef DebugLog + std::cout << "HcalDDDRecConstants:getDDDString called for "< & fvec = value.strings(); + if (fvec.size() == 0) { + edm::LogError("HCalGeom") << "HcalDDDRecConstants : # of " << str + << " bins is 0 ==> illegal"; + throw cms::Exception("DDException") << "HcalDDDRecConstants: cannot get array " << str; + } + return fvec[0]; + } else { + edm::LogError("HCalGeom") << "HcalDDDRecConstants: cannot get array "< cellTypes = HcalCellTypes(); + edm::LogInfo ("HCalGeom") << "HcalDDDSimConstants: " << cellTypes.size() + << " cells of type HCal (All)"; +#endif +} + + +HcalDDDSimConstants::~HcalDDDSimConstants() { +#ifdef DebugLog + std::cout << "destructed!!!" << std::endl; +#endif +} + +HcalCellType::HcalCell HcalDDDSimConstants::cell(int idet, int zside, + int depth, int etaR, + int iphi) const { + + double etaMn = etaMin[0]; + double etaMx = etaMax[0]; + if (idet==static_cast(HcalEndcap)) { + etaMn = etaMin[1]; etaMx = etaMax[1]; + } else if (idet==static_cast(HcalForward)) { + etaMn = etaMin[2]; etaMx = etaMax[2]; + } + double eta = 0, deta = 0, phi = 0, dphi = 0, rz = 0, drz = 0; + bool ok = false, flagrz = true; + if ((idet==static_cast(HcalBarrel)||idet==static_cast(HcalEndcap)|| + idet==static_cast(HcalOuter)||idet==static_cast(HcalForward)) + && etaR >=etaMn && etaR <= etaMx && depth > 0) ok = true; + if (idet == static_cast(HcalEndcap) && depth>(int)(zHE.size()))ok=false; + else if (idet == static_cast(HcalBarrel) && depth > 17) ok=false; + else if (idet == static_cast(HcalOuter) && depth != 4) ok=false; + else if (idet == static_cast(HcalForward) && depth > 2) ok=false; + if (ok) { + eta = getEta(idet, etaR, zside, depth); + deta = deltaEta(idet, etaR, depth); + double fibin, fioff; + if (idet == static_cast(HcalBarrel)|| + idet == static_cast(HcalOuter)) { + fioff = phioff[0]; + fibin = phibin[etaR-1]; + } else if (idet == static_cast(HcalEndcap)) { + fioff = phioff[1]; + fibin = phibin[etaR-1]; + } else { + fioff = phioff[2]; + fibin = phitable[etaR-etaMin[2]]; + if (etaR > etaMax[2]-2 ) fioff += 0.5*fibin; + } + phi = fioff + (iphi - 0.5)*fibin; + dphi = 0.5*fibin; + if (idet == static_cast(HcalForward)) { + int ir = nR + etaMin[2] - etaR - 1; + if (ir > 0 && ir < nR) { + rz = 0.5*(rTable[ir]+rTable[ir-1]); + drz = 0.5*(rTable[ir]-rTable[ir-1]); + } else { + ok = false; +#ifdef DebugLog + edm::LogInfo("HCalGeom") << "HcalDDDSimConstants: wrong eta " << etaR + << " (" << ir << "/" << nR << ") Detector " + << idet; +#endif + } + } else if (etaR <= nEta) { + int laymin(depth), laymax(depth); + if (idet == static_cast(HcalOuter)) { + laymin = (etaR > nOff[2]) ? ((int)(zHE.size())) : ((int)(zHE.size()))-1; + laymax = ((int)(zHE.size())); + } + double d1=0, d2=0; + if (idet == static_cast(HcalEndcap)) { + flagrz = false; + d1 = zHE[laymin-1] - dzHE[laymin-1]; + d2 = zHE[laymax-1] + dzHE[laymax-1]; + } else { + d1 = rHB[laymin-1] - drHB[laymin-1]; + d2 = rHB[laymax-1] + drHB[laymax-1]; + } + rz = 0.5*(d2+d1); + drz = 0.5*(d2-d1); + } else { + ok = false; +#ifdef DebugLog + edm::LogInfo("HCalGeom") << "HcalDDDSimConstants: wrong depth " << depth + << " or etaR " << etaR << " for detector " + << idet; +#endif + } + } else { + ok = false; +#ifdef DebugLog + edm::LogInfo("HCalGeom") << "HcalDDDSimConstants: wrong depth " << depth + << " det " << idet; +#endif + } + HcalCellType::HcalCell tmp(ok,eta,deta,phi,dphi,rz,drz,flagrz); + +#ifdef DebugLog + edm::LogInfo("HCalGeom") << "HcalDDDSimConstants: det/side/depth/etaR/phi " + << idet << "/" << zside << "/" << depth << "/" + << etaR << "/" << iphi << " Cell Flag " << tmp.ok + << " " << tmp.eta << " " << tmp.deta << " phi " + << tmp.phi << " " << tmp.dphi << " r(z) " << tmp.rz + << " " << tmp.drz << " " << tmp.flagrz; +#endif + return tmp; +} + +std::vector > HcalDDDSimConstants::getConstHBHE(const int type) const { + + checkInitialized(); + std::vector > gcons; + if (type == 0) { + for (unsigned int i=0; i(rHB[i],drHB[i])); + } + } else { + for (unsigned int i=0; i(zHE[i],dzHE[i])); + } + } + return gcons; +} + + +std::pair HcalDDDSimConstants::getDetEta(double eta, int depth) { + + checkInitialized(); + int hsubdet(0), ieta(0); + double etaR(0); + double heta = fabs(eta); + for (int i = 0; i < nEta; i++) + if (heta > etaTable[i]) ieta = i + 1; + if (heta <= etaRange[1]) { + if ((ieta <= etaMin[1] && depth==3) || ieta > etaMax[0]) { + hsubdet = static_cast(HcalEndcap); + } else { + hsubdet = static_cast(HcalBarrel); + } + etaR = eta; + } else { + hsubdet = static_cast(HcalForward); + double theta = 2.*atan(exp(-heta)); + double hR = zVcal*tan(theta); + etaR = (eta >= 0. ? hR : -hR); + } + return std::pair(hsubdet,etaR); +} + +int HcalDDDSimConstants::getEta(int det,int lay, double hetaR) { + + checkInitialized(); + int ieta(0); + if (det == static_cast(HcalForward)) { // Forward HCal + ieta = etaMax[2]; + for (int i = nR-1; i > 0; i--) + if (hetaR < rTable[i]) ieta = etaMin[2] + nR - i - 1; + } else { // Barrel or Endcap + ieta = 1; + for (int i = 0; i < nEta-1; i++) + if (hetaR > etaTable[i]) ieta = i + 1; + if (det == static_cast(HcalBarrel)) { + if (ieta > etaMax[0]) ieta = etaMax[0]; + if (lay == 18) { + if (hetaR > etaHO[1] && ieta == nOff[2]) ieta++; + } + } else { + if (ieta <= etaMin[1]) ieta = etaMin[1]; + } + } + return ieta; +} + +std::pair HcalDDDSimConstants::getEtaDepth(int det, int etaR, int phi, + int depth, int lay) { + + checkInitialized(); + //Modify the depth index + if (det == static_cast(HcalForward)) { // Forward HCal + } else if (det == static_cast(HcalOuter)) { + depth = 4; + } else { + if (lay >= 0) { + depth= layerGroup[etaR-1][lay-1]; + if (etaR == nOff[0] && lay > 1) { + int kphi = phi + int((phioff[3]+0.1)/phibin[etaR-1]); + kphi = (kphi-1)%4 + 1; + if (kphi == 2 || kphi == 3) depth = layerGroup[etaR-1][lay-2]; + } + } else if (det == static_cast(HcalBarrel)) { + if (depth==3) depth = 2; + } + if (etaR == nOff[1] && depth > 2) { + etaR = nOff[1]-1; + } else if (etaR == etaMin[1]) { + if (det == static_cast(HcalBarrel)) { + if (depth > 2) depth = 2; + } else { + if (depth < 3) depth = 3; + } + } + } + return std::pair(etaR,depth); +} + +double HcalDDDSimConstants::getEtaHO(double& etaR, double& x, double& y, + double& z) const { + + if (zho.size() > 4) { + double eta = fabs(etaR); + double r = std::sqrt(x*x+y*y); + if (r > rminHO) { + double zz = fabs(z); + if (zz > zho[3]) { + if (eta <= etaTable[10]) eta = etaTable[10]+0.001; + } else if (zz > zho[1]) { + if (eta <= etaTable[4]) eta = etaTable[4]+0.001; + } + } + eta = (z >= 0. ? eta : -eta); +#ifdef DebugLog + std::cout << "R " << r << " Z " << z << " eta " << etaR <<":" < HcalDDDSimConstants::getModHalfHBHE(const int type) const { + + if (type == 0) { + return std::pair(nmodHB,nzHB); + } else { + return std::pair(nmodHE,nzHE); + } +} + +std::pair HcalDDDSimConstants::getPhiCons(int det, int ieta) { + + double fioff(0), fibin(0); + if (det == static_cast(HcalForward)) { // Forward HCal + fioff = phioff[2]; + fibin = phitable[ieta-etaMin[2]]; + if (ieta > etaMax[2]-2 ) { // HF double-phi + fioff += 0.5*fibin; + } + } else { // Barrel or Endcap + if (det == static_cast(HcalBarrel)) { + fioff = phioff[0]; + } else { + fioff = phioff[1]; + } + fibin = phibin[ieta-1]; + } + return std::pair(fioff,fibin); +} + +std::vector HcalDDDSimConstants::HcalCellTypes() const{ + + std::vector cellTypes =HcalCellTypes(HcalBarrel); +#ifdef DebugLog + edm::LogInfo ("HCalGeom") << "HcalDDDSimConstants: " << cellTypes.size() + << " cells of type HCal Barrel"; + for (unsigned int i=0; i hoCells =HcalCellTypes(HcalOuter); +#ifdef DebugLog + edm::LogInfo ("HCalGeom") << "HcalDDDSimConstants: " << hoCells.size() + << " cells of type HCal Outer"; + for (unsigned int i=0; i heCells =HcalCellTypes(HcalEndcap); +#ifdef DebugLog + edm::LogInfo ("HCalGeom") << "HcalDDDSimConstants: " << heCells.size() + << " cells of type HCal Endcap"; + for (unsigned int i=0; i hfCells =HcalCellTypes(HcalForward); +#ifdef DebugLog + edm::LogInfo ("HCalGeom") << "HcalDDDSimConstants: " << hfCells.size() + << " cells of type HCal Forward"; + for (unsigned int i=0; i HcalDDDSimConstants::HcalCellTypes(HcalSubdetector subdet, + int ieta, int depthl) const { + + std::vector cellTypes; + if (subdet == HcalForward) { + if (dzVcal < 0) return cellTypes; + } + + int dmin, dmax, indx, nz, nmod; + double hsize = 0; + switch(subdet) { + case HcalEndcap: + dmin = 1; dmax = 19; indx = 1; nz = nzHE; nmod = nmodHE; + break; + case HcalForward: + dmin = 1; dmax = 2; indx = 2; nz = 2; nmod = 18; + break; + case HcalOuter: + dmin = 4; dmax = 4; indx = 0; nz = nzHB; nmod = nmodHB; + break; + default: + dmin = 1; dmax = 17; indx = 0; nz = nzHB; nmod = nmodHB; + break; + } + if (depthl > 0) dmin = dmax = depthl; + int ietamin = (ieta>0) ? ieta : etaMin[indx]; + int ietamax = (ieta>0) ? ieta : etaMax[indx]; + + int phi = 1, zside = 1; + + // Get the Cells + int subdet0 = static_cast(subdet); + for (int depth=dmin; depth<=dmax; depth++) { + int shift = getShift(subdet, depth); + double gain = getGain (subdet, depth); + if (subdet == HcalForward) { + if (depth == 1) hsize = dzVcal; + else hsize = dzVcal-0.5*dlShort; + } + for (int eta=ietamin; eta<= ietamax; eta++) { + HcalCellType::HcalCell temp1 = cell(subdet0,zside,depth,eta,phi); + if (temp1.ok) { + int units = unitPhi (subdet0, eta); + HcalCellType temp2(subdet, eta, phi, depth, temp1, + shift, gain, nz, nmod, hsize, units); + if (subdet == HcalOuter) { + if (eta == nOff[4]) { + std::vector missPlus, missMinus; + int kk = 7; + for (int miss=0; miss cellTypes = HcalCellTypes(subdet); + for (unsigned int i=0; i 1) + num += (unsigned int)(cellTypes[i].nPhiBins()); + num -= (unsigned int)(cellTypes[i].nPhiMissingBins()); + } +#ifdef DebugLog + edm::LogInfo ("HCalGeom") << "HcalDDDSimConstants:numberOfCells " + << cellTypes.size() << " " << num + << " for subdetector " << subdet; +#endif + return num; +} + +int HcalDDDSimConstants::phiNumber(int phi, int units) const { + + int iphi_skip = phi; + if (units==2) iphi_skip = (phi-1)*2+1; + else if (units==4) iphi_skip = (phi-1)*4-1; + if (iphi_skip < 0) iphi_skip += 72; + return iphi_skip; +} + +void HcalDDDSimConstants::printTiles() const { + + checkInitialized(); + std::cout << "Tile Information for HB:\n" << "========================\n\n"; + for (int eta=etaMin[0]; eta<= etaMax[0]; eta++) { + int dmax = 1; + if (depths[0][eta-1] < 17) dmax = 2; + for (int depth=1; depth<=dmax; depth++) + printTileHB(eta, depth); + } + + std::cout << "\nTile Information for HE:\n" <<"========================\n\n"; + for (int eta=etaMin[1]; eta<= etaMax[1]; eta++) { + int dmin=1, dmax=3; + if (eta == etaMin[1]) { + dmin = 3; + } else if (depths[0][eta-1] > 18) { + dmax = 1; + } else if (depths[1][eta-1] > 18) { + dmax = 2; + } + for (int depth=dmin; depth<=dmax; depth++) + printTileHE(eta, depth); + } +} + +int HcalDDDSimConstants::unitPhi(int det, int etaR) const { + + double dphi = (det == static_cast(HcalForward)) ? phitable[etaR-etaMin[2]] : phibin[etaR-1]; + return unitPhi(dphi); +} + +int HcalDDDSimConstants::unitPhi(double dphi) const { + + const double fiveDegInRad = 2*M_PI/72; + int units = int(dphi/fiveDegInRad+0.5); + return units; +} + +void HcalDDDSimConstants::checkInitialized() const { + if (tobeInitialized) { + edm::LogError("HcalGeom") << "HcalDDDSimConstants : ro be initialized correctly"; + throw cms::Exception("DDException") << "HcalDDDSimConstants: to be initialized"; + } +} + +void HcalDDDSimConstants::loadSpecPars(const DDFilteredView& fv) { + + DDsvalues_type sv(fv.mergedSpecifics()); + + // Phi Offset + int nphi=4; + phioff = getDDDArray("phioff",sv,nphi); +#ifdef DebugLog + std::cout << "HcalDDDSimConstants: " << nphi << " phioff values"; + for (int i=0; imaxDepth[0]) ? maxDepth[1] : maxDepth[0]; + for (int i=0; i= 0; --l) { + if (layerGroup[k][l] == i+1) { + ll = l+1; break; + } + } + depths[i].push_back(ll); + } +#ifdef DebugLog + std::cout << "Depth " << i << " with " << depths[i].size() << " etas:"; + for (int k=0; k rb(20,0.0), ze(20,0.0), thkb(20,-1.0), thke(20,-1.0); + std::vector ib(20,0), ie(20,0); + std::vector izb, phib, ize, phie, izf, phif; + std::vector rxb; + rhoxb.clear(); zxb.clear(); dyxb.clear(); dzxb.clear(); + layb.clear(); laye.clear(); + zxe.clear(); rhoxe.clear(); dyxe.clear(); dx1e.clear(); dx2e.clear(); + double zf = 0; + dzVcal = -1.; + + while (dodet) { + DDTranslation t = fv.translation(); + std::vector copy = fv.copyNumbers(); + const DDSolid & sol = fv.logicalPart().solid(); + int idet = 0, lay = -1; + int nsiz = (int)(copy.size()); + if (nsiz>0) lay = copy[nsiz-1]/10; + if (nsiz>1) idet = copy[nsiz-2]/1000; + double dx=0, dy=0, dz=0, dx1=0, dx2=0; + if (sol.shape() == 1) { + const DDBox & box = static_cast(fv.logicalPart().solid()); + dx = box.halfX(); + dy = box.halfY(); + dz = box.halfZ(); + } else if (sol.shape() == 3) { + const DDTrap & trp = static_cast(fv.logicalPart().solid()); + dx1= trp.x1(); + dx2= trp.x2(); + dx = 0.25*(trp.x1()+trp.x2()+trp.x3()+trp.x4()); + dy = 0.5*(trp.y1()+trp.y2()); + dz = trp.halfZ(); + } else if (sol.shape() == 2) { + const DDTubs & tub = static_cast(fv.logicalPart().solid()); + dx = tub.rIn(); + dy = tub.rOut(); + dz = tub.zhalf(); + } + if (idet == 3) { + // HB +#ifdef DebugLog + edm::LogInfo("HCalGeom") << "HB " << sol.name() << " Shape " << sol.shape() + << " Layer " << lay << " R " << t.Rho(); +#endif + if (lay >=0 && lay < 20) { + ib[lay]++; + rb[lay] += t.Rho(); + if (thkb[lay] <= 0) { + if (lay < 17) thkb[lay] = dx; + else thkb[lay] = std::min(dx,dy); + } + if (lay < 17) { + bool found = false; + for (unsigned int k=0; k2) ifi = copy[nsiz-3]; + if (nsiz>3) ich = copy[nsiz-4]; + double z1 = std::abs((t.z()) + dz); + double z2 = std::abs((t.z()) - dz); + if (std::abs(z1-z2) < 0.01) z1 = 0; + if (ifi == 1 && ich == 4) { + if (z1 > z2) { + double tmp = z1; + z1 = z2; + z2 = tmp; + } + bool sok = true; + for (unsigned int kk=0; kkkk+1; kz=kz-2) { + zho[kz] = zho[kz-2]; + zho[kz-1] = zho[kz-3]; + } + zho[kk+1] = z2; + zho[kk] = z1; + sok = false; + break; + } + } + if (sok) { + zho.push_back(z1); + zho.push_back(z2); + } +#ifdef DebugLog + edm::LogInfo("HCalGeom") << "Detector " << idet << " Lay " << lay << " fi " << ifi << " " << ich << " z " << z1 << " " << z2; +#endif + } + } + } else if (idet == 4) { + // HE +#ifdef DebugLog + edm::LogInfo("HCalGeom") << "HE " << sol.name() << " Shape " << sol.shape() + << " Layer " << lay << " Z " << t.z(); +#endif + if (lay >=0 && lay < 20) { + ie[lay]++; + ze[lay] += std::abs(t.z()); + if (thke[lay] <= 0) thke[lay] = dz; + bool found = false; + for (unsigned int k=0; k & paras = sol.parameters(); +#ifdef DebugLog + edm::LogInfo("HCalGeom") << "HF " << sol.name() << " Shape " << sol.shape() + << " Z " << t.z() << " with " << paras.size() + << " Parameters"; + for (unsigned j=0; j0) { + rb[i] /= (double)(ib[i]); + ibmx = i+1; + } + if (ie[i]>0) { + ze[i] /= (double)(ie[i]); + iemx = i+1; + } +#ifdef DebugLog + edm::LogInfo("HCalGeom") << "Index " << i << " Barrel " << ib[i] << " " + << rb[i] << " Endcap " << ie[i] << " " << ze[i]; +#endif + } + for (int i = 4; i >= 0; i--) { + if (ib[i] == 0) {rb[i] = rb[i+1]; thkb[i] = thkb[i+1];} + if (ie[i] == 0) {ze[i] = ze[i+1]; thke[i] = thke[i+1];} +#ifdef DebugLog + if (ib[i] == 0 || ie[i] == 0) + edm::LogInfo("HCalGeom") << "Index " << i << " Barrel " << ib[i] << " " + << rb[i] << " Endcap " << ie[i] << " " << ze[i]; +#endif + } + +#ifdef DebugLog + for (unsigned int k=0; k 0) { + rHB.resize(ibmx); + drHB.resize(ibmx); + for (int i=0; i & fvec = value.doubles(); + int nval = fvec.size(); + if (nmin > 0) { + if (nval < nmin) { + edm::LogError("HCalGeom") << "HcalDDDSimConstants : # of " << str + << " bins " << nval << " < " << nmin + << " ==> illegal"; + throw cms::Exception("DDException") << "HcalDDDSimConstants: cannot get array " << str; + } + } else { + if (nval < 1 && nmin == 0) { + edm::LogError("HCalGeom") << "HcalDDDSimConstants : # of " << str + << " bins " << nval << " < 2 ==> illegal" + << " (nmin=" << nmin << ")"; + throw cms::Exception("DDException") << "HcalDDDSimConstants: cannot get array " << str; + } + } + nmin = nval; + return fvec; + } else { + if (nmin >= 0) { + edm::LogError("HCalGeom") << "HcalDDDRecConstants: cannot get array " + << str; + throw cms::Exception("DDException") << "HcalDDDRecConstants: cannot get array " << str; + } + std::vector fvec; + nmin = 0; + return fvec; + } +} + +unsigned int HcalDDDSimConstants::find(int element, + std::vector& array) const { + + unsigned int id = array.size(); + for (unsigned int i = 0; i < array.size(); i++) { + if (element == array[i]) { + id = i; + break; + } + } + return id; +} + +double HcalDDDSimConstants::deltaEta(int det, int etaR, int depth) const { + + double tmp = 0; + if (det == static_cast(HcalForward)) { + int ir = nR + etaMin[2] - etaR - 1; + if (ir > 0 && ir < nR) { + double z = zVcal; + if (depth != 1) z += dlShort; + tmp = 0.5*(getEta(rTable[ir-1],z)-getEta(rTable[ir],z)); + } + } else { + if (etaR > 0 && etaR < nEta) { + if (etaR == nOff[1]-1 && depth > 2) { + tmp = 0.5*(etaTable[etaR+1]-etaTable[etaR-1]); + } else if (det == static_cast(HcalOuter)) { + if (etaR == nOff[2]) { + tmp = 0.5*(etaHO[0]-etaTable[etaR-1]); + } else if (etaR == nOff[2]+1) { + tmp = 0.5*(etaTable[etaR]-etaHO[1]); + } else if (etaR == nOff[3]) { + tmp = 0.5*(etaHO[2]-etaTable[etaR-1]); + } else if (etaR == nOff[3]+1) { + tmp = 0.5*(etaTable[etaR]-etaHO[3]); + } else { + tmp = 0.5*(etaTable[etaR]-etaTable[etaR-1]); + } + } else { + tmp = 0.5*(etaTable[etaR]-etaTable[etaR-1]); + } + } + } +#ifdef DebugLog + edm::LogInfo("HCalGeom") << "HcalDDDSimConstants::deltaEta " << etaR << " " + << depth << " ==> " << tmp; +#endif + return tmp; +} + +double HcalDDDSimConstants::getEta(int det, int etaR, int zside, + int depth) const { + + double tmp = 0; + if (det == static_cast(HcalForward)) { + int ir = nR + etaMin[2] - etaR - 1; + if (ir > 0 && ir < nR) { + double z = zVcal; + if (depth != 1) z += dlShort; + tmp = 0.5*(getEta(rTable[ir-1],z)+getEta(rTable[ir],z)); + } + } else { + if (etaR > 0 && etaR < nEta) { + if (etaR == nOff[1]-1 && depth > 2) { + tmp = 0.5*(etaTable[etaR+1]+etaTable[etaR-1]); + } else if (det == static_cast(HcalOuter)) { + if (etaR == nOff[2]) { + tmp = 0.5*(etaHO[0]+etaTable[etaR-1]); + } else if (etaR == nOff[2]+1) { + tmp = 0.5*(etaTable[etaR]+etaHO[1]); + } else if (etaR == nOff[3]) { + tmp = 0.5*(etaHO[2]+etaTable[etaR-1]); + } else if (etaR == nOff[3]+1) { + tmp = 0.5*(etaTable[etaR]+etaHO[3]); + } else { + tmp = 0.5*(etaTable[etaR]+etaTable[etaR-1]); + } + } else { + tmp = 0.5*(etaTable[etaR]+etaTable[etaR-1]); + } + } + } + if (zside == 0) tmp = -tmp; +#ifdef DebugLog + edm::LogInfo("HCalGeom") << "HcalDDDSimConstants::getEta " << etaR << " " + << zside << " " << depth << " ==> " << tmp; +#endif + return tmp; +} + +double HcalDDDSimConstants::getEta(double r, double z) const { + + double tmp = 0; + if (z != 0) tmp = -log(tan(0.5*atan(r/z))); +#ifdef DebugLog + edm::LogInfo("HCalGeom") << "HcalDDDSimConstants::getEta " << r << " " << z + << " ==> " << tmp; +#endif + return tmp; +} + +int HcalDDDSimConstants::getShift(HcalSubdetector subdet, int depth) const { + + int shift; + switch(subdet) { + case HcalEndcap: + shift = shiftHE[0]; + break; + case HcalForward: + shift = shiftHF[depth-1]; + break; + case HcalOuter: + shift = shiftHB[3]; + break; + default: + shift = shiftHB[0]; + break; + } + return shift; +} + +double HcalDDDSimConstants::getGain(HcalSubdetector subdet, int depth) const { + + double gain; + switch(subdet) { + case HcalEndcap: + gain = gainHE[0]; + break; + case HcalForward: + gain = gainHF[depth-1]; + break; + case HcalOuter: + gain = gainHB[3]; + break; + default: + gain = gainHB[0]; + break; + } + return gain; +} + +void HcalDDDSimConstants::printTileHB(int eta, int depth) const { + + double etaL = etaTable[eta-1]; + double thetaL = 2.*atan(exp(-etaL)); + double etaH = etaTable[eta]; + double thetaH = 2.*atan(exp(-etaH)); + int layL=0, layH=0; + if (depth == 1) { + layH = depths[0][eta-1]; + } else { + layL = depths[0][eta-1]; + layH = depths[1][eta-1]; + } + std::cout << "\ntileHB:: eta|depth " << eta << "|" << depth << " theta " << thetaH/CLHEP::deg << ":" << thetaL/CLHEP::deg << " Layer " << layL << ":" << layH-1 << "\n"; + for (int lay=layL; lay area(2,0); + int kk=0; + for (unsigned int k=0; k 0) { + area[kk] = dz*dyxb[k]; + kk++; + } + } + } + if (area[0] > 0) std::cout << std::setw(2) << lay << " Area " << std::setw(8) << area[0] << " " << std::setw(8) << area[1] << "\n"; + } +} + +void HcalDDDSimConstants::printTileHE(int eta, int depth) const { + + double etaL = etaTable[eta-1]; + double thetaL = 2.*atan(exp(-etaL)); + double etaH = etaTable[eta]; + double thetaH = 2.*atan(exp(-etaH)); + int layL=0, layH=0; + if (eta == 16) { + layH = depths[2][eta-1]; + } else if (depth == 1) { + layH = depths[0][eta-1]; + } else if (depth == 2) { + layL = depths[0][eta-1]; + layH = depths[1][eta-1]; + } else { + layL = depths[1][eta-1]; + layH = depths[2][eta-1]; + } + double phib = phibin[eta-1]; + int nphi = 2; + if (phib > 6*CLHEP::deg) nphi = 1; + std::cout << "\ntileHE:: Eta/depth " << eta << "|" << depth << " theta " << thetaH/CLHEP::deg << ":" << thetaL/CLHEP::deg << " Layer " << layL << ":" << layH-1 << " phi " << nphi << "\n"; + for (int lay=layL; lay area(4,0); + int kk=0; + for (unsigned int k=0; k 1000) || (eta != 18 && rhoxe[k]-dyxe[k] < 1000)) && + rmin+30 < rhoxe[k]+dyxe[k] && rmax > rhoxe[k]-dyxe[k]) { + rmin = std::max(rmin,rhoxe[k]-dyxe[k]); + rmax = std::min(rmax,rhoxe[k]+dyxe[k]); + double dx1 = rmin*std::tan(phib); + double dx2 = rmax*std::tan(phib); + double ar1=0, ar2=0; + if (nphi == 1) { + ar1 = 0.5*(rmax-rmin)*(dx1+dx2-4.*dx1e[k]); + } else { + ar1 = 0.5*(rmax-rmin)*(dx1+dx2-2.*dx1e[k]); + ar2 = 0.5*(rmax-rmin)*((rmax+rmin)*tan(10.*CLHEP::deg)-4*dx1e[k])-ar1; + } + area[kk] = ar1; + area[kk+2] = ar2; + kk++; + } + } + } + if (area[0] > 0 && area[1] > 0) { + int lay0 = lay-1; + if (eta == 18) lay0++; + if (nphi == 1) { + std::cout << std::setw(2) << lay0 << " Area " << std::setw(8) << area[0] << " " << std::setw(8) << area[1] << "\n"; + } else { + std::cout << std::setw(2) << lay0 << " Area " << std::setw(8) << area[0] << " " << std::setw(8) << area[1] << ":" << std::setw(8) << area[2] << " " << std::setw(8) << area[3] << "\n"; + } + } + } +} diff --git a/Geometry/HcalCommonData/src/HcalNumberingFromDDD.cc b/Geometry/HcalCommonData/src/HcalNumberingFromDDD.cc index 9bbc481b8ac3b..b086ff242ea98 100644 --- a/Geometry/HcalCommonData/src/HcalNumberingFromDDD.cc +++ b/Geometry/HcalCommonData/src/HcalNumberingFromDDD.cc @@ -4,12 +4,6 @@ /////////////////////////////////////////////////////////////////////////////// #include "Geometry/HcalCommonData/interface/HcalNumberingFromDDD.h" - -#include "DetectorDescription/Core/interface/DDFilter.h" -#include "DetectorDescription/Core/interface/DDFilteredView.h" -#include "DetectorDescription/Core/interface/DDSolid.h" -#include "DetectorDescription/Core/interface/DDValue.h" - #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "CLHEP/Units/GlobalPhysicalConstants.h" @@ -20,12 +14,13 @@ HcalNumberingFromDDD::HcalNumberingFromDDD(std::string & name, const DDCompactView & cpv) { - edm::LogInfo("HCalGeom") << "Creating HcalNumberingFromDDD"; - initialize(name, cpv); + edm::LogInfo("HCalGeom") << "Creating HcalNumberingFromDDD for" << name; + hcalConstants = new HcalDDDSimConstants(cpv); } HcalNumberingFromDDD::~HcalNumberingFromDDD() { edm::LogInfo("HCalGeom") << "Deleting HcalNumberingFromDDD"; + delete hcalConstants; } HcalNumberingFromDDD::HcalID HcalNumberingFromDDD::unitID(int det, @@ -55,14 +50,14 @@ HcalNumberingFromDDD::HcalID HcalNumberingFromDDD::unitID(int det, etaR = heta; if (det == 3) { hsubdet = static_cast(HcalBarrel); - if (zho.size() > 4) etaR = getEtaHO(heta,hx,hy,hz); + etaR = hcalConstants->getEtaHO(heta,hx,hy,hz); } else { hsubdet = static_cast(HcalEndcap); } } #ifdef DebugLog - LogDebug("HCalGeom") << "HcalNumberingFromDDD: point = " << point << " det " + edm::LogInfo("HCalGeom") << "HcalNumberingFromDDD: point = " << point << " det " << hsubdet << " eta/R " << etaR << " phi " << hphi; #endif HcalNumberingFromDDD::HcalID tmp = unitID(hsubdet,etaR,hphi,depth,lay); @@ -74,27 +69,9 @@ HcalNumberingFromDDD::HcalID HcalNumberingFromDDD::unitID(double eta,double fi, int depth, int lay) const { - int ieta = 0; - double heta = fabs(eta); - for (int i = 0; i < nEta; i++) - if (heta > etaTable[i]) ieta = i + 1; - int hsubdet=0; - double etaR; - if (ieta <= etaMin[1]) { - if ((ieta <= etaMin[1] && depth==3) || ieta > etaMax[0]) { - hsubdet = static_cast(HcalEndcap); - } else { - hsubdet = static_cast(HcalBarrel); - } - etaR = eta; - } else { - hsubdet = static_cast(HcalForward); - double theta = 2.*atan(exp(-heta)); - double hR = zVcal*tan(theta); - etaR = (eta >= 0. ? hR : -hR); - } + std::pair detEta = hcalConstants->getDetEta(eta, depth); - HcalNumberingFromDDD::HcalID tmp = unitID(hsubdet,etaR,fi,depth,lay); + HcalNumberingFromDDD::HcalID tmp = unitID(detEta.first,detEta.second,fi,depth,lay); return tmp; } @@ -105,46 +82,20 @@ HcalNumberingFromDDD::HcalID HcalNumberingFromDDD::unitID(int det, int depth, int lay) const { - int ieta=0; - double fioff, fibin; - double hetaR = fabs(etaR); - //First eta index - if (det == static_cast(HcalForward)) { // Forward HCal - fioff = phioff[2]; - ieta = etaMax[2]; - for (int i = nR-1; i > 0; i--) - if (hetaR < rTable[i]) ieta = etaMin[2] + nR - i - 1; - fibin = phibin[nEta+ieta-etaMin[2]-1]; - if (ieta > etaMax[2]-2 ) { // HF double-phi - fioff += 0.5*fibin; - } - } else { // Barrel or Endcap - ieta = 1; - for (int i = 0; i < nEta-1; i++) - if (hetaR > etaTable[i]) ieta = i + 1; - if (det == static_cast(HcalBarrel)) { - fioff = phioff[0]; - if (ieta > etaMax[0]) ieta = etaMax[0]; - if (lay == 18 && nOff.size() > 13) { - if (hetaR > etaHO[1] && ieta == nOff[13]) ieta++; - } - } else { - fioff = phioff[1]; - if (ieta <= etaMin[1]) ieta = etaMin[1]; - } - fibin = phibin[ieta-1]; - } + double hetaR = fabs(etaR); + int ieta = hcalConstants->getEta(det, lay, hetaR); + std::pair ficons = hcalConstants->getPhiCons(det, ieta); - int nphi = int((CLHEP::twopi+0.1*fibin)/fibin); + int nphi = int((CLHEP::twopi+0.1*ficons.second)/ficons.second); int zside = etaR>0 ? 1: 0; - double hphi = phi+fioff; + double hphi = phi+ficons.first; if (hphi < 0) hphi += CLHEP::twopi; - int iphi = int(hphi/fibin) + 1; + int iphi = int(hphi/ficons.second) + 1; if (iphi > nphi) iphi = 1; #ifdef DebugLog - LogDebug("HCalGeom") << "HcalNumberingFromDDD: etaR = " << etaR << " : " + edm::LogInfo("HCalGeom") << "HcalNumberingFromDDD: etaR = " << etaR << " : " << zside << "/" << ieta << " phi " << hphi << " : " << iphi; #endif @@ -158,48 +109,22 @@ HcalNumberingFromDDD::HcalID HcalNumberingFromDDD::unitID(int det, int zside, int phi, int lay) const { - //Modify the depth index - if (det == static_cast(HcalForward)) { // Forward HCal - } else { - if (lay >= 0) { - double fibin = phibin[etaR-1]; - int depth0 = depth1[etaR-1]; - int kphi = phi + int((phioff[3]+0.1)/fibin); - kphi = (kphi-1)%4 + 1; - if (etaR == nOff[0] && (kphi == 2 || kphi == 3)) depth0--; - if (lay <= depth2[etaR-1]) { - if (lay <= depth0) depth = 1; - else depth = 2; - } else if (lay <= depth3[etaR-1]) { - depth = 3; - } else depth = 4; - } else if (det == static_cast(HcalBarrel)) { - if (depth==3) depth = 2; - } - if (det != static_cast(HcalBarrel)) { - if (etaR <= etaMin[1]) depth = 3; - } - } - if (etaR == nOff[1] && depth > 2 && det == static_cast(HcalEndcap)) - etaR = nOff[1]-1; - if (det == static_cast(HcalBarrel) && depth == 4) { + std::pair etaDepth = hcalConstants->getEtaDepth(det, etaR, phi, depth, lay); + if (det == static_cast(HcalBarrel) && etaDepth.second == 4) { det = static_cast(HcalOuter); } - int units = unitPhi(det, etaR); - int iphi_skip = phi; - if (units==2) iphi_skip = (phi-1)*2+1; - else if (units==4) iphi_skip = (phi-1)*4-1; - if (iphi_skip < 0) iphi_skip += 72; + int units = hcalConstants->unitPhi(det, etaDepth.first); + int iphi_skip = hcalConstants->phiNumber(phi, units); #ifdef DebugLog - LogDebug("HCalGeom") << "HcalNumberingFromDDD: phi units=" << units + edm::LogInfo("HCalGeom") << "HcalNumberingFromDDD: phi units=" << units << " iphi_skip=" << iphi_skip; #endif - HcalNumberingFromDDD::HcalID tmp(det,zside,depth,etaR,phi,iphi_skip,lay); + HcalNumberingFromDDD::HcalID tmp(det,zside,etaDepth.second,etaDepth.first,phi,iphi_skip,lay); #ifdef DebugLog - LogDebug("HCalGeom") << "HcalNumberingFromDDD: det = " << det << " " + edm::LogInfo("HCalGeom") << "HcalNumberingFromDDD: det = " << det << " " << tmp.subdet << " zside = " << tmp.zside << " depth = " << tmp.depth << " eta/R = " << tmp.etaR << " phi = " << tmp.phi << " layer = " << tmp.lay; @@ -209,1120 +134,7 @@ HcalNumberingFromDDD::HcalID HcalNumberingFromDDD::unitID(int det, int zside, HcalCellType::HcalCell HcalNumberingFromDDD::cell(int det, int zside, int depth, int etaR, - int iphi, bool corr) const { - - int idet = det; - double etaMn = etaMin[0]; - double etaMx = etaMax[0]; - if (idet==static_cast(HcalEndcap)) { - etaMn = etaMin[1]; etaMx = etaMax[1]; - } else if (idet==static_cast(HcalForward)) { - etaMn = etaMin[2]; etaMx = etaMax[2]; - } - if (corr) { - if (etaR >= nOff[2] && depth == 3 && idet == static_cast(HcalBarrel)) - idet = static_cast(HcalEndcap); - } - double eta = 0, deta = 0, phi = 0, dphi = 0, rz = 0, drz = 0; - bool ok = false, flagrz = true; - if ((idet==static_cast(HcalBarrel)||idet==static_cast(HcalEndcap)|| - idet==static_cast(HcalOuter)||idet==static_cast(HcalForward)) - && etaR >=etaMn && etaR <= etaMx) - ok = true; - if (idet == static_cast(HcalEndcap)) { - if (depth < 3 && etaR <= etaMin[1]) ok = false; - else if (depth > 2 && etaR == nOff[1]) ok = false; - } - if (ok) { - int maxlay = (int)(rHB.size()); - if (idet == static_cast(HcalEndcap)) maxlay = (int)(zHE.size()); - eta = getEta(idet, etaR, zside, depth); - deta = deltaEta(idet, etaR, depth); - double fibin, fioff; - if (idet == static_cast(HcalBarrel)|| - idet == static_cast(HcalOuter)) { - fioff = phioff[0]; - fibin = phibin[etaR-1]; - } else if (idet == static_cast(HcalEndcap)) { - fioff = phioff[1]; - fibin = phibin[etaR-1]; - } else { - fioff = phioff[2]; - fibin = phibin[nEta+etaR-etaMin[2]-1]; - if (etaR > etaMax[2]-2 ) fioff += 0.5*fibin; - } - phi = fioff + (iphi - 0.5)*fibin; - dphi = 0.5*fibin; - if (idet == static_cast(HcalForward)) { - int ir = nR + etaMin[2] - etaR - 1; - if (ir > 0 && ir < nR) { - rz = 0.5*(rTable[ir]+rTable[ir-1]); - drz = 0.5*(rTable[ir]-rTable[ir-1]); - } else { - ok = false; -#ifdef DebugLog - LogDebug("HCalGeom") << "HcalNumberingFromDDD: wrong eta " << etaR - << " (" << ir << "/" << nR << ") Detector " - << idet; -#endif - } - if (depth != 1 && depth != 2) { - ok = false; -#ifdef DebugLog - LogDebug("HCalGeom") << "HcalNumberingFromDDD: wrong depth " << depth - << " in Detector " << idet; -#endif - } - } else if (etaR <= nEta) { - int depth0 = depth1[etaR-1]; - int kphi = iphi + int((phioff[3]+0.1)/fibin); - kphi = (kphi-1)%4 + 1; - if (etaR == nOff[0] && (kphi == 2 || kphi == 3)) depth0--; - int laymin, laymax; - if (depth == 1) { - laymin = 1; - if (idet==static_cast(HcalEndcap)) laymin = 2; - laymax = depth0; - if (nOff.size() > 12) { - if (etaR == nOff[6]) { - laymin = nOff[7]; - laymax = nOff[8]; - } else if (etaR == nOff[9]) { - laymin = nOff[10]; - } - } - } else if (depth == 2) { - laymin = depth0+1; - laymax = depth2[etaR-1]; - if (etaR==etaMax[0] && idet==static_cast(HcalBarrel) && - nOff.size()>3) laymax = nOff[3]; - if (nOff.size() > 12) { - if (etaR == nOff[9]) laymax = nOff[11]; - if (etaR == nOff[6]) laymax = nOff[12]; - } - } else if (depth == 3) { - laymin = depth2[etaR-1]+1; - laymax = depth3[etaR-1]; - if (etaR<=etaMin[1] && idet==static_cast(HcalEndcap)) { - if (nOff.size() > 4) laymin = nOff[4]; - if (nOff.size() > 5) laymax = nOff[5]; - } - } else { - laymin = depth3[etaR-1]+1; - laymax = maxlay; - } - if (idet == static_cast(HcalOuter) && nOff.size() > 13) { - if (etaR > nOff[13] && laymin <= laymax) laymin = laymax; - } - double d1=0, d2=0; - if (laymin <= maxlay && laymax <= maxlay && laymin <= laymax) { - if (idet == static_cast(HcalEndcap)) { - flagrz = false; - if (depth == 1 || laymin <= 1) d1 = zHE[laymin-1] - dzHE[laymin-1]; - else d1 = zHE[laymin-2] + dzHE[laymin-2]; - d2 = zHE[laymax-1] + dzHE[laymax-1]; - } else { - if (idet == static_cast(HcalOuter) || - depth == 1 || laymin <=1) d1 = rHB[laymin-1] - drHB[laymin-1]; - else d1 = rHB[laymin-2] + drHB[laymin-1]; - d2 = rHB[laymax-1] + drHB[laymax-1]; - } - rz = 0.5*(d2+d1); - drz = 0.5*(d2-d1); - } else { - ok = false; -#ifdef DebugLog - LogDebug("HCalGeom") << "HcalNumberingFromDDD: wrong depth " << depth - << " (Layer minimum " << laymin << " maximum " - << laymax << " maxLay " << maxlay << ")"; -#endif - } - } else { - ok = false; -#ifdef DebugLog - LogDebug("HCalGeom") << "HcalNumberingFromDDD: wrong eta " << etaR - << "/" << nEta << " Detector " << idet; -#endif - } - } else { - ok = false; -#ifdef DebugLog - LogDebug("HCalGeom") << "HcalNumberingFromDDD: wrong eta " << etaR - << " det " << idet; -#endif - } - HcalCellType::HcalCell tmp(ok,eta,deta,phi,dphi,rz,drz,flagrz); - -#ifdef DebugLog - LogDebug("HCalGeom") << "HcalNumberingFromDDD: det/side/depth/etaR/phi " - << det << "/" << zside << "/" << depth << "/" << etaR - << "/" << iphi << " Cell Flag " << tmp.ok << " " - << tmp.eta << " " << tmp.deta << " phi " << tmp.phi - << " " << tmp.dphi << " r(z) " << tmp.rz << " " - << tmp.drz << " " << tmp.flagrz; -#endif - return tmp; -} - -std::vector HcalNumberingFromDDD::getEtaTable() const { - - std::vector tmp = etaTable; - return tmp; -} - -unsigned int HcalNumberingFromDDD::numberOfCells(HcalSubdetector subdet) const{ - - unsigned int num = 0; - std::vector cellTypes = HcalCellTypes(subdet); - for (unsigned int i=0; i 1) - num += (unsigned int)(cellTypes[i].nPhiBins()); - num -= (unsigned int)(cellTypes[i].nPhiMissingBins()); - } -#ifdef DebugLog - LogDebug ("HCalGeom") << "HcalNumberingFromDDD:numberOfCells " - << cellTypes.size() << " " << num - << " for subdetector " << subdet; -#endif - return num; -} - -std::vector HcalNumberingFromDDD::HcalCellTypes() const{ - - std::vector cellTypes =HcalCellTypes(HcalBarrel); -#ifdef DebugLog - LogDebug ("HCalGeom") << "HcalNumberingFromDDD: " << cellTypes.size() - << " cells of type HCal Barrel"; - for (unsigned int i=0; i hoCells =HcalCellTypes(HcalOuter); -#ifdef DebugLog - LogDebug ("HCalGeom") << "HcalNumberingFromDDD: " << hoCells.size() - << " cells of type HCal Outer"; - for (unsigned int i=0; i heCells =HcalCellTypes(HcalEndcap); -#ifdef DebugLog - LogDebug ("HCalGeom") << "HcalNumberingFromDDD: " << heCells.size() - << " cells of type HCal Endcap"; - for (unsigned int i=0; i hfCells =HcalCellTypes(HcalForward); -#ifdef DebugLog - LogDebug ("HCalGeom") << "HcalNumberingFromDDD: " << hfCells.size() - << " cells of type HCal Forward"; - for (unsigned int i=0; i HcalNumberingFromDDD::HcalCellTypes(HcalSubdetector subdet) const { - - std::vector cellTypes; - if (subdet == HcalForward) { - if (dzVcal < 0) return cellTypes; - } - - int dmin, dmax, indx, nz, nmod; - double hsize = 0; - switch(subdet) { - case HcalEndcap: - dmin = 1; dmax = 3; indx = 1; nz = nzHE; nmod = nmodHE; - break; - case HcalForward: - dmin = 1; dmax = 2; indx = 2; nz = 2; nmod = 18; - break; - case HcalOuter: - dmin = 4; dmax = 4; indx = 0; nz = nzHB; nmod = nmodHB; - break; - default: - dmin = 1; dmax = 3; indx = 0; nz = nzHB; nmod = nmodHB; - break; - } - - int phi = 1, zside = 1; - bool cor = false; - - // Get the Cells - int subdet0 = static_cast(subdet); - for (int depth=dmin; depth<=dmax; depth++) { - int shift = getShift(subdet, depth); - double gain = getGain (subdet, depth); - if (subdet == HcalForward) { - if (depth == 1) hsize = dzVcal; - else hsize = dzVcal-0.5*dlShort; - } - for (int eta=etaMin[indx]; eta<= etaMax[indx]; eta++) { - HcalCellType::HcalCell temp1 = cell(subdet0,zside,depth,eta,phi,cor); - if (temp1.ok) { - int units = unitPhi (subdet0, eta); - HcalCellType temp2(subdet, eta, phi, depth, temp1, - shift, gain, nz, nmod, hsize, units); - if (subdet == HcalOuter && nOff.size() > 17) { - if (eta == nOff[15]) { - std::vector missPlus, missMinus; - int kk = 18; - for (int miss=0; miss 18) { - dmax = 1; - } else if (depth2[eta-1] > 18) { - dmax = 2; - } - for (int depth=dmin; depth<=dmax; depth++) - tileHE(eta, depth); - } -} - -double HcalNumberingFromDDD::getEta(int det, int etaR, int zside, - int depth) const { - - double tmp = 0; - if (det == static_cast(HcalForward)) { - int ir = nR + etaMin[2] - etaR - 1; - if (ir > 0 && ir < nR) { - double z = zVcal; - if (depth != 1) z += dlShort; - tmp = 0.5*(getEta(rTable[ir-1],z)+getEta(rTable[ir],z)); - } - } else { - if (etaR > 0 && etaR < nEta) { - if (etaR == nOff[1]-1 && depth > 2) { - tmp = 0.5*(etaTable[etaR+1]+etaTable[etaR-1]); - } else if (det == static_cast(HcalOuter) && nOff.size() > 13) { - if (etaR == nOff[13]) { - tmp = 0.5*(etaHO[0]+etaTable[etaR-1]); - } else if (etaR == nOff[13]+1) { - tmp = 0.5*(etaTable[etaR]+etaHO[1]); - } else if (etaR == nOff[14]) { - tmp = 0.5*(etaHO[2]+etaTable[etaR-1]); - } else if (etaR == nOff[14]+1) { - tmp = 0.5*(etaTable[etaR]+etaHO[3]); - } else { - tmp = 0.5*(etaTable[etaR]+etaTable[etaR-1]); - } - } else { - tmp = 0.5*(etaTable[etaR]+etaTable[etaR-1]); - } - } - } - if (zside == 0) tmp = -tmp; -#ifdef DebugLog - LogDebug("HCalGeom") << "HcalNumberingFromDDD::getEta " << etaR << " " - << zside << " " << depth << " ==> " << tmp; -#endif - return tmp; -} - -double HcalNumberingFromDDD::getEta(double r, double z) const { - - double tmp = 0; - if (z != 0) tmp = -log(tan(0.5*atan(r/z))); -#ifdef DebugLog - LogDebug("HCalGeom") << "HcalNumberingFromDDD::getEta " << r << " " << z - << " ==> " << tmp; -#endif - return tmp; -} - -double HcalNumberingFromDDD::deltaEta(int det, int etaR, int depth) const { - - double tmp = 0; - if (det == static_cast(HcalForward)) { - int ir = nR + etaMin[2] - etaR - 1; - if (ir > 0 && ir < nR) { - double z = zVcal; - if (depth != 1) z += dlShort; - tmp = 0.5*(getEta(rTable[ir-1],z)-getEta(rTable[ir],z)); - } - } else { - if (etaR > 0 && etaR < nEta) { - if (etaR == nOff[1]-1 && depth > 2) { - tmp = 0.5*(etaTable[etaR+1]-etaTable[etaR-1]); - } else if (det == static_cast(HcalOuter) && nOff.size() > 13) { - if (etaR == nOff[13]) { - tmp = 0.5*(etaHO[0]-etaTable[etaR-1]); - } else if (etaR == nOff[13]+1) { - tmp = 0.5*(etaTable[etaR]-etaHO[1]); - } else if (etaR == nOff[14]) { - tmp = 0.5*(etaHO[2]-etaTable[etaR-1]); - } else if (etaR == nOff[14]+1) { - tmp = 0.5*(etaTable[etaR]-etaHO[3]); - } else { - tmp = 0.5*(etaTable[etaR]-etaTable[etaR-1]); - } - } else { - tmp = 0.5*(etaTable[etaR]-etaTable[etaR-1]); - } - } - } -#ifdef DebugLog - LogDebug("HCalGeom") << "HcalNumberingFromDDD::deltaEta " << etaR << " " - << depth << " ==> " << tmp; -#endif - return tmp; -} - -void HcalNumberingFromDDD::initialize(std::string & name, - const DDCompactView & cpv) { - - std::string attribute = "ReadOutName"; - edm::LogInfo("HCalGeom") << "HcalNumberingFromDDD: Initailise for " << name - << " as " << attribute; - - DDSpecificsFilter filter; - DDValue ddv(attribute,name,0); - filter.setCriteria(ddv,DDSpecificsFilter::equals); - DDFilteredView fv(cpv); - fv.addFilter(filter); - bool ok = fv.firstChild(); - - if (ok) { - //Load the SpecPars - loadSpecPars(fv); - - //Load the Geometry parameters - loadGeometry(fv); - } else { - edm::LogError("HCalGeom") << "HcalNumberingFromDDD: cannot get filtered " - << " view for " << attribute << " matching " - << name; - throw cms::Exception("DDException") << "HcalNumberingFromDDD: cannot match " << attribute << " to " << name; - } - -#ifdef DebugLog - std::vector cellTypes = HcalCellTypes(); - LogDebug ("HCalGeom") << "HcalNumberingFromDDD: " << cellTypes.size() - << " cells of type HCal (All)"; - for (unsigned int i=0; i tmp1 = getDDDArray("phioff",sv,nphi); - phioff.resize(tmp1.size()); - for (i=0; i d2 = getDDDArray("depth2",sv,nDepth); - nDepth = nEta - 1; - std::vector d3 = getDDDArray("depth3",sv,nDepth); -#ifdef DebugLog - LogDebug("HCalGeom") << "HcalNumberingFromDDD: " << nDepth << " Depths"; -#endif - depth1.resize(nDepth); - depth2.resize(nDepth); - depth3.resize(nDepth); - for (i=0; i(d1[i]); - depth2[i] = static_cast(d2[i]); - depth3[i] = static_cast(d3[i]); -#ifdef DebugLog - LogDebug("HCalGeom") << "HcalNumberingFromDDD: depth1[" << i << "] = " - << depth1[i] << " depth2[" << i << "] = "<< depth2[i] - << " depth3[" << i << "] = " << depth3[i]; -#endif - } - - // Minimum and maximum eta boundaries - int ndx = 3; - std::vector tmp5 = getDDDArray("etaMin",sv,ndx); - std::vector tmp6 = getDDDArray("etaMax",sv,ndx); - etaMin.resize(ndx); - etaMax.resize(ndx); - for (i=0; i(tmp5[i]); - etaMax[i] = static_cast(tmp6[i]); - } - etaMin[0] = 1; - etaMax[1] = nEta-1; - etaMax[2] = etaMin[2]+nR-2; -#ifdef DebugLog - for (i=0; i nvec = getDDDArray("noff",sv,noff); - nOff.resize(noff); - for (i=0; i(nvec[i]); -#ifdef DebugLog - LogDebug("HCalGeom") << "HcalNumberingFromDDD: nOff[" << i << "] = " - << nOff[i]; -#endif - } - - //Gains and Shifts for HB depths - ndx = 4; - gainHB = getDDDArray("HBGains",sv,ndx); - std::vector tmp7 = getDDDArray("HBShift",sv,ndx); - shiftHB.resize(ndx); -#ifdef DebugLog - LogDebug("HCalGeom") << "HcalNumberingFromDDD:: Gain factor and Shift for " - << "HB depth layers:"; -#endif - for (i=0; i(tmp7[i]); -#ifdef DebugLog - LogDebug("HCalGeom") <<"HcalNumberingFromDDD:: gainHB[" << i << "] = " - << gainHB[i] << " shiftHB[" << i << "] = " - << shiftHB[i]; -#endif - } - - //Gains and Shifts for HB depths - ndx = 4; - gainHE = getDDDArray("HEGains",sv,ndx); - std::vector tmp8 = getDDDArray("HEShift",sv,ndx); - shiftHE.resize(ndx); -#ifdef DebugLog - LogDebug("HCalGeom") << "HcalNumberingFromDDD:: Gain factor and Shift for " - << "HE depth layers:"; -#endif - for (i=0; i(tmp8[i]); -#ifdef DebugLog - LogDebug("HCalGeom") <<"HcalNumberingFromDDD:: gainHE[" << i << "] = " - << gainHE[i] << " shiftHE[" << i << "] = " - << shiftHE[i]; -#endif - } - - //Gains and Shifts for HF depths - ndx = 4; - gainHF = getDDDArray("HFGains",sv,ndx); - std::vector tmp9 = getDDDArray("HFShift",sv,ndx); - shiftHF.resize(ndx); -#ifdef DebugLog - LogDebug("HCalGeom") << "HcalNumberingFromDDD:: Gain factor and Shift for " - << "HF depth layers:"; -#endif - for (i=0; i(tmp9[i]); -#ifdef DebugLog - LogDebug("HCalGeom") <<"HcalNumberingFromDDD:: gainHF[" << i << "] = " - << gainHF[i] << " shiftHF[" << i << "] = " - << shiftHF[i]; -#endif - } -} - -void HcalNumberingFromDDD::loadGeometry(const DDFilteredView& _fv) { - - DDFilteredView fv = _fv; - bool dodet=true, hf=false; - std::vector rb(20,0.0), ze(20,0.0), thkb(20,-1.0), thke(20,-1.0); - std::vector ib(20,0), ie(20,0); - std::vector izb, phib, ize, phie, izf, phif; - std::vector rxb; - rhoxb.clear(); zxb.clear(); dyxb.clear(); dzxb.clear(); - layb.clear(); laye.clear(); - zxe.clear(); rhoxe.clear(); dyxe.clear(); dx1e.clear(); dx2e.clear(); - double zf = 0; - dzVcal = -1.; - - while (dodet) { - DDTranslation t = fv.translation(); - std::vector copy = fv.copyNumbers(); - const DDSolid & sol = fv.logicalPart().solid(); - int idet = 0, lay = -1; - int nsiz = (int)(copy.size()); - if (nsiz>0) lay = copy[nsiz-1]/10; - if (nsiz>1) idet = copy[nsiz-2]/1000; - double dx=0, dy=0, dz=0, dx1=0, dx2=0; - if (sol.shape() == 1) { - const DDBox & box = static_cast(fv.logicalPart().solid()); - dx = box.halfX(); - dy = box.halfY(); - dz = box.halfZ(); - } else if (sol.shape() == 3) { - const DDTrap & trp = static_cast(fv.logicalPart().solid()); - dx1= trp.x1(); - dx2= trp.x2(); - dx = 0.25*(trp.x1()+trp.x2()+trp.x3()+trp.x4()); - dy = 0.5*(trp.y1()+trp.y2()); - dz = trp.halfZ(); - } else if (sol.shape() == 2) { - const DDTubs & tub = static_cast(fv.logicalPart().solid()); - dx = tub.rIn(); - dy = tub.rOut(); - dz = tub.zhalf(); - } - if (idet == 3) { - // HB -#ifdef DebugLog - LogDebug("HCalGeom") << "HB " << sol.name() << " Shape " << sol.shape() - << " Layer " << lay << " R " << t.Rho(); -#endif - if (lay >=0 && lay < 20) { - ib[lay]++; - rb[lay] += t.Rho(); - if (thkb[lay] <= 0) { - if (lay < 17) thkb[lay] = dx; - else thkb[lay] = std::min(dx,dy); - } - if (lay < 17) { - bool found = false; - for (unsigned int k=0; k2) ifi = copy[nsiz-3]; - if (nsiz>3) ich = copy[nsiz-4]; - double z1 = std::abs((t.z()) + dz); - double z2 = std::abs((t.z()) - dz); - if (std::abs(z1-z2) < 0.01) z1 = 0; - if (ifi == 1 && ich == 4) { - if (z1 > z2) { - double tmp = z1; - z1 = z2; - z2 = tmp; - } - bool sok = true; - for (unsigned int kk=0; kkkk+1; kz=kz-2) { - zho[kz] = zho[kz-2]; - zho[kz-1] = zho[kz-3]; - } - zho[kk+1] = z2; - zho[kk] = z1; - sok = false; - break; - } - } - if (sok) { - zho.push_back(z1); - zho.push_back(z2); - } -#ifdef DebugLog - LogDebug("HCalGeom") << "Detector " << idet << " Lay " << lay << " fi " << ifi << " " << ich << " z " << z1 << " " << z2; -#endif - } - } - } else if (idet == 4) { - // HE -#ifdef DebugLog - LogDebug("HCalGeom") << "HE " << sol.name() << " Shape " << sol.shape() - << " Layer " << lay << " Z " << t.z(); -#endif - if (lay >=0 && lay < 20) { - ie[lay]++; - ze[lay] += std::abs(t.z()); - if (thke[lay] <= 0) thke[lay] = dz; - bool found = false; - for (unsigned int k=0; k & paras = sol.parameters(); -#ifdef DebugLog - LogDebug("HCalGeom") << "HF " << sol.name() << " Shape " << sol.shape() - << " Z " << t.z() << " with " << paras.size() - << " Parameters"; - for (unsigned j=0; j0) { - rb[i] /= (double)(ib[i]); - ibmx = i+1; - } - if (ie[i]>0) { - ze[i] /= (double)(ie[i]); - iemx = i+1; - } -#ifdef DebugLog - LogDebug("HCalGeom") << "Index " << i << " Barrel " << ib[i] << " " - << rb[i] << " Endcap " << ie[i] << " " << ze[i]; -#endif - } - for (int i = 4; i >= 0; i--) { - if (ib[i] == 0) {rb[i] = rb[i+1]; thkb[i] = thkb[i+1];} - if (ie[i] == 0) {ze[i] = ze[i+1]; thke[i] = thke[i+1];} -#ifdef DebugLog - if (ib[i] == 0 || ie[i] == 0) - LogDebug("HCalGeom") << "Index " << i << " Barrel " << ib[i] << " " - << rb[i] << " Endcap " << ie[i] << " " << ze[i]; -#endif - } - -#ifdef DebugLog - for (unsigned int k=0; k 0) { - rHB.resize(ibmx); - drHB.resize(ibmx); - for (int i=0; i & fvec = value.doubles(); - int nval = fvec.size(); - if (nmin > 0) { - if (nval < nmin) { - edm::LogError("HCalGeom") << "HcalNumberingFromDDD : # of " << str - << " bins " << nval << " < " << nmin - << " ==> illegal"; - throw cms::Exception("DDException") << "HcalNumberingFromDDD: cannot get array " << str; - } - } else { - if (nval < 2) { - edm::LogError("HCalGeom") << "HcalNumberingFromDDD : # of " << str - << " bins " << nval << " < 2 ==> illegal" - << " (nmin=" << nmin << ")"; - throw cms::Exception("DDException") << "HcalNumberingFromDDD: cannot get array " << str; - } - } - nmin = nval; - return fvec; - } else { - edm::LogError("HCalGeom") << "HcalNumberingFromDDD: cannot get array " - << str; - throw cms::Exception("DDException") << "HcalNumberingFromDDD: cannot get array " << str; - } -} - -int HcalNumberingFromDDD::getShift(HcalSubdetector subdet, int depth) const { - - int shift; - switch(subdet) { - case HcalEndcap: - shift = shiftHE[depth-1]; - break; - case HcalForward: - shift = shiftHF[depth-1]; - break; - default: - shift = shiftHB[depth-1]; - break; - } - return shift; -} - -double HcalNumberingFromDDD::getGain(HcalSubdetector subdet, int depth) const { - - double gain; - switch(subdet) { - case HcalEndcap: - gain = gainHE[depth-1]; - break; - case HcalForward: - gain = gainHF[depth-1]; - break; - default: - gain = gainHB[depth-1]; - break; - } - return gain; -} - -unsigned int HcalNumberingFromDDD::find(int element, - std::vector& array) const { - - unsigned int id = array.size(); - for (unsigned int i = 0; i < array.size(); i++) { - if (element == array[i]) { - id = i; - break; - } - } - return id; -} - -int HcalNumberingFromDDD::unitPhi(int det, int etaR) const { - - const double fiveDegInRad = 2*M_PI/72; - int units=0; - if (det == static_cast(HcalForward)) - units=int(phibin[nEta+etaR-etaMin[2]-1]/fiveDegInRad+0.5); - else - units=int(phibin[etaR-1]/fiveDegInRad+0.5); - - return units; -} - -void HcalNumberingFromDDD::tileHB(int eta, int depth) { - - double etaL = etaTable[eta-1]; - double thetaL = 2.*atan(exp(-etaL)); - double etaH = etaTable[eta]; - double thetaH = 2.*atan(exp(-etaH)); - int layL=0, layH=0; - if (depth == 1) { - layH = depth1[eta-1]; - } else { - layL = depth1[eta-1]; - layH = depth2[eta-1]; - } - std::cout << "\ntileHB:: eta|depth " << eta << "|" << depth << " theta " << thetaH/CLHEP::deg << ":" << thetaL/CLHEP::deg << " Layer " << layL << ":" << layH-1 << "\n"; - for (int lay=layL; lay area(2,0); - int kk=0; - for (unsigned int k=0; k 0) { - area[kk] = dz*dyxb[k]; - kk++; - } - } - } - if (area[0] > 0) std::cout << std::setw(2) << lay << " Area " << std::setw(8) << area[0] << " " << std::setw(8) << area[1] << "\n"; - } -} - -void HcalNumberingFromDDD::tileHE(int eta, int depth) { - - double etaL = etaTable[eta-1]; - double thetaL = 2.*atan(exp(-etaL)); - double etaH = etaTable[eta]; - double thetaH = 2.*atan(exp(-etaH)); - int layL=0, layH=0; - if (eta == 16) { - layH = depth3[eta-1]; - } else if (depth == 1) { - layH = depth1[eta-1]; - } else if (depth == 2) { - layL = depth1[eta-1]; - layH = depth2[eta-1]; - } else { - layL = depth2[eta-1]; - layH = depth3[eta-1]; - } - double phib = phibin[eta-1]; - int nphi = 2; - if (phib > 6*CLHEP::deg) nphi = 1; - std::cout << "\ntileHE:: Eta/depth " << eta << "|" << depth << " theta " << thetaH/CLHEP::deg << ":" << thetaL/CLHEP::deg << " Layer " << layL << ":" << layH-1 << " phi " << nphi << "\n"; - for (int lay=layL; lay area(4,0); - int kk=0; - for (unsigned int k=0; k 1000) || (eta != 18 && rhoxe[k]-dyxe[k] < 1000)) && - rmin+30 < rhoxe[k]+dyxe[k] && rmax > rhoxe[k]-dyxe[k]) { - rmin = std::max(rmin,rhoxe[k]-dyxe[k]); - rmax = std::min(rmax,rhoxe[k]+dyxe[k]); - double dx1 = rmin*std::tan(phib); - double dx2 = rmax*std::tan(phib); - double ar1=0, ar2=0; - if (nphi == 1) { - ar1 = 0.5*(rmax-rmin)*(dx1+dx2-4.*dx1e[k]); - } else { - ar1 = 0.5*(rmax-rmin)*(dx1+dx2-2.*dx1e[k]); - ar2 = 0.5*(rmax-rmin)*((rmax+rmin)*tan(10.*CLHEP::deg)-4*dx1e[k])-ar1; - } - area[kk] = ar1; - area[kk+2] = ar2; - kk++; - } - } - } - if (area[0] > 0 && area[1] > 0) { - int lay0 = lay-1; - if (eta == 18) lay0++; - if (nphi == 1) { - std::cout << std::setw(2) << lay0 << " Area " << std::setw(8) << area[0] << " " << std::setw(8) << area[1] << "\n"; - } else { - std::cout << std::setw(2) << lay0 << " Area " << std::setw(8) << area[0] << " " << std::setw(8) << area[1] << ":" << std::setw(8) << area[2] << " " << std::setw(8) << area[3] << "\n"; - } - } - } -} - -double HcalNumberingFromDDD::getEtaHO(double& etaR, double& x, double& y, - double& z) const { - - double eta = fabs(etaR); - double r = std::sqrt(x*x+y*y); - if (r > rminHO) { - double zz = fabs(z); - if (zz > zho[3]) { - if (eta <= etaTable[10]) eta = etaTable[10]+0.001; - } else if (zz > zho[1]) { - if (eta <= etaTable[4]) eta = etaTable[4]+0.001; - } - } - eta = (z >= 0. ? eta : -eta); - // std::cout << "R " << r << " Z " << z << " eta " << etaR << ":" << eta <<"\n"; - // if (eta != etaR) std::cout << "**** Check *****\n"; - return eta; + return hcalConstants->cell(det,zside,depth,etaR,iphi); } diff --git a/Geometry/HcalCommonData/test/BuildFile.xml b/Geometry/HcalCommonData/test/BuildFile.xml new file mode 100644 index 0000000000000..20c6944f83546 --- /dev/null +++ b/Geometry/HcalCommonData/test/BuildFile.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Geometry/HcalCommonData/test/HcalRecNumberingTester.cc b/Geometry/HcalCommonData/test/HcalRecNumberingTester.cc new file mode 100644 index 0000000000000..66c28e94ef2ce --- /dev/null +++ b/Geometry/HcalCommonData/test/HcalRecNumberingTester.cc @@ -0,0 +1,141 @@ +// -*- C++ -*- +// +// Package: HcalRecNumberingTester +// Class: HcalRecNumberingTester +// +/**\class HcalRecNumberingTester HcalRecNumberingTester.cc test/HcalRecNumberingTester.cc + + Description: + + Implementation: + +*/ +// +// Original Author: Sunanda Banerjee +// Created: Mon 2013/12/26 +// $Id: HcalRecNumberingTester.cc,v 1.0 2013/12/26 14:06:07 sunanda Exp $ +// +// + + +// system include files +#include +#include +#include + +// user include files +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/EDAnalyzer.h" + +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/ESTransientHandle.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/MakerMacros.h" + +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "DetectorDescription/Core/interface/DDCompactView.h" +#include "DetectorDescription/Core/interface/DDExpandedView.h" +#include "DetectorDescription/Core/interface/DDSpecifics.h" +#include "Geometry/Records/interface/IdealGeometryRecord.h" +#include "Geometry/Records/interface/HcalRecNumberingRecord.h" +#include "Geometry/HcalCommonData/interface/HcalDDDRecConstants.h" + +#include "CoralBase/Exception.h" + +// +// class decleration +// + +class HcalRecNumberingTester : public edm::EDAnalyzer { +public: + explicit HcalRecNumberingTester( const edm::ParameterSet& ); + ~HcalRecNumberingTester(); + + + virtual void analyze( const edm::Event&, const edm::EventSetup& ); +private: + // ----------member data --------------------------- +}; + +// +// constants, enums and typedefs +// + +// +// static data member definitions +// + +// +// constructors and destructor +// +HcalRecNumberingTester::HcalRecNumberingTester(const edm::ParameterSet& ) {} + + +HcalRecNumberingTester::~HcalRecNumberingTester() {} + + +// +// member functions +// + +// ------------ method called to produce the data ------------ +void HcalRecNumberingTester::analyze( const edm::Event& iEvent, const edm::EventSetup& iSetup ) { + using namespace edm; + + std::cout << "Here I am " << std::endl; + + edm::ESHandle pHSNDC; + edm::ESTransientHandle pDD; + iSetup.get().get( pDD ); + iSetup.get().get( pHSNDC ); + + try { + DDExpandedView epv(*pDD); + std::cout << " without firstchild or next... epv.logicalPart() =" << epv.logicalPart() << std::endl; + }catch(const DDLogicalPart& iException){ + throw cms::Exception("Geometry") + <<"DDORAReader::readDB caught a DDLogicalPart exception: \""< pHSNDC" << std::endl; + const HcalDDDRecConstants hdc (*pHSNDC); + std::cout << "about to getPhiOff and getPhiBin for 0..2" << std::endl; + int neta = hdc.getNEta(); + std::cout << neta << " eta bins with phi off set for barrel = " + << hdc.getPhiOff(0) << ", endcap = " << hdc.getPhiOff(1) + << std::endl; + for (int i=0; i etas = hdc.getEtaLimit(i); + double fbin = hdc.getPhiBin(i); + std::vector depths = hdc.getDepth(i); + std::cout << "EtaBin[" << i << "]: EtaLimit = (" << etas.first << ":" + << etas.second << ") phiBin = " << fbin << " depths = ("; + for (unsigned int k=0; k hbar = hdc.getEtaBins(0); + std::vector hcap = hdc.getEtaBins(1); + std::cout << "Topology Mode " << hdc.getTopoMode() + << " HB with " << hbar.size() << " eta sectors and HE with " + << hcap.size() << " eta sectors" << std::endl; + std::vector hbcell = hdc.HcalCellTypes(HcalBarrel); + std::vector hecell = hdc.HcalCellTypes(HcalEndcap); + std::cout << "HB with " << hbcell.size() << " cells and HE with " + << hecell.size() << " cells" << std::endl; +} + + +//define this as a plug-in +DEFINE_FWK_MODULE(HcalRecNumberingTester); diff --git a/Geometry/HcalCommonData/test/HcalSimNumberingTester.cc b/Geometry/HcalCommonData/test/HcalSimNumberingTester.cc new file mode 100644 index 0000000000000..2c0861543bdd1 --- /dev/null +++ b/Geometry/HcalCommonData/test/HcalSimNumberingTester.cc @@ -0,0 +1,122 @@ +// -*- C++ -*- +// +// Package: HcalSimNumberingTester +// Class: HcalSimNumberingTester +// +/**\class HcalSimNumberingTester HcalSimNumberingTester.cc test/HcalSimNumberingTester.cc + + Description: + + Implementation: + +*/ +// +// Original Author: Sunanda Banerjee +// Created: Mon 2013/12/26 +// $Id: HcalSimNumberingTester.cc,v 1.0 2013/12/26 14:06:07 sunanda Exp $ +// +// + + +// system include files +#include +#include +#include + +// user include files +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/EDAnalyzer.h" + +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/ESTransientHandle.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/MakerMacros.h" + +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "DetectorDescription/Core/interface/DDCompactView.h" +#include "DetectorDescription/Core/interface/DDExpandedView.h" +#include "DetectorDescription/Core/interface/DDSpecifics.h" +#include "Geometry/Records/interface/IdealGeometryRecord.h" +#include "Geometry/Records/interface/HcalSimNumberingRecord.h" +#include "Geometry/HcalCommonData/interface/HcalDDDSimConstants.h" + +#include "CoralBase/Exception.h" + +// +// class decleration +// + +class HcalSimNumberingTester : public edm::EDAnalyzer { +public: + explicit HcalSimNumberingTester( const edm::ParameterSet& ); + ~HcalSimNumberingTester(); + + + virtual void analyze( const edm::Event&, const edm::EventSetup& ); +private: + // ----------member data --------------------------- +}; + +// +// constants, enums and typedefs +// + +// +// static data member definitions +// + +// +// constructors and destructor +// +HcalSimNumberingTester::HcalSimNumberingTester(const edm::ParameterSet& ) {} + + +HcalSimNumberingTester::~HcalSimNumberingTester() {} + + +// +// member functions +// + +// ------------ method called to produce the data ------------ +void HcalSimNumberingTester::analyze( const edm::Event& iEvent, const edm::EventSetup& iSetup ) { + using namespace edm; + + std::cout << "Here I am " << std::endl; + + edm::ESHandle pHSNDC; + edm::ESTransientHandle pDD; + iSetup.get().get( pDD ); + iSetup.get().get( pHSNDC ); + + try { + DDExpandedView epv(*pDD); + std::cout << " without firstchild or next... epv.logicalPart() =" << epv.logicalPart() << std::endl; + }catch(const DDLogicalPart& iException){ + throw cms::Exception("Geometry") + <<"DDORAReader::readDB caught a DDLogicalPart exception: \""< pHSNDC" << std::endl; + const HcalDDDSimConstants hdc (*pHSNDC); + std::cout << "about to getPhiOff and getPhiBin for 0..2" << std::endl; + for (int i=0; i<3; ++i) { + double foff = hdc.getPhiOff(i); + double fbin = hdc.getPhiBin(i); + std::cout << "PhiOff[" << i << "] = " << foff << " PhiBin[" << i << "] = " << fbin << std::endl; + } + hdc.printTiles(); +} + + +//define this as a plug-in +DEFINE_FWK_MODULE(HcalSimNumberingTester); diff --git a/Geometry/HcalCommonData/test/python/testRecNumbering_cfg.py b/Geometry/HcalCommonData/test/python/testRecNumbering_cfg.py new file mode 100644 index 0000000000000..ae0f414327359 --- /dev/null +++ b/Geometry/HcalCommonData/test/python/testRecNumbering_cfg.py @@ -0,0 +1,51 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("PROD") +process.load("SimGeneral.HepPDTESSource.pdt_cfi") + +process.load("Geometry.HcalCommonData.testHcalOnlyGeometryXML_cfi") +process.load("Geometry.HcalCommonData.hcalSimNumberingInitialization_cfi") +process.load("Geometry.HcalCommonData.hcalRecNumberingInitialization_cfi") + +process.MessageLogger = cms.Service("MessageLogger", + destinations = cms.untracked.vstring('cout'), + categories = cms.untracked.vstring('HCalGeom'), + debugModules = cms.untracked.vstring('*'), + cout = cms.untracked.PSet( + threshold = cms.untracked.string('DEBUG'), + default = cms.untracked.PSet( + limit = cms.untracked.int32(0) + ), + HCalGeom = cms.untracked.PSet( + limit = cms.untracked.int32(0) + ) + ), +) + +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 + +process.source = cms.Source("EmptySource") + +process.generator = cms.EDProducer("FlatRandomEGunProducer", + PGunParameters = cms.PSet( + PartID = cms.vint32(14), + MinEta = cms.double(-3.5), + MaxEta = cms.double(3.5), + MinPhi = cms.double(-3.14159265359), + MaxPhi = cms.double(3.14159265359), + MinE = cms.double(9.99), + MaxE = cms.double(10.01) + ), + AddAntiParticle = cms.bool(False), + Verbosity = cms.untracked.int32(0), + firstRun = cms.untracked.uint32(1) +) + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) +) + +process.prod = cms.EDAnalyzer("HcalRecNumberingTester") + +process.p1 = cms.Path(process.generator*process.prod) diff --git a/Geometry/HcalCommonData/test/python/testSimNumbering_cfg.py b/Geometry/HcalCommonData/test/python/testSimNumbering_cfg.py new file mode 100644 index 0000000000000..61aef9ebef74a --- /dev/null +++ b/Geometry/HcalCommonData/test/python/testSimNumbering_cfg.py @@ -0,0 +1,55 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("PROD") +process.load("SimGeneral.HepPDTESSource.pdt_cfi") + +process.load("Geometry.HcalCommonData.testPhase0GeometryXML_cfi") + +process.load("Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi") + +process.load("Geometry.MuonNumbering.muonNumberingInitialization_cfi") + +process.load("Geometry.HcalCommonData.hcalSimNumberingInitialization_cfi") + +process.MessageLogger = cms.Service("MessageLogger", + destinations = cms.untracked.vstring('cout'), + categories = cms.untracked.vstring('HCalGeom'), + debugModules = cms.untracked.vstring('*'), + cout = cms.untracked.PSet( + threshold = cms.untracked.string('DEBUG'), + default = cms.untracked.PSet( + limit = cms.untracked.int32(0) + ), + HCalGeom = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ) + ), +) + +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 + +process.source = cms.Source("EmptySource") + +process.generator = cms.EDProducer("FlatRandomEGunProducer", + PGunParameters = cms.PSet( + PartID = cms.vint32(14), + MinEta = cms.double(-3.5), + MaxEta = cms.double(3.5), + MinPhi = cms.double(-3.14159265359), + MaxPhi = cms.double(3.14159265359), + MinE = cms.double(9.99), + MaxE = cms.double(10.01) + ), + AddAntiParticle = cms.bool(False), + Verbosity = cms.untracked.int32(0), + firstRun = cms.untracked.uint32(1) +) + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) +) + +process.prod = cms.EDAnalyzer("HcalSimNumberingTester") + +process.p1 = cms.Path(process.generator*process.prod) diff --git a/Geometry/HcalSimData/data/CaloProdCuts.xml b/Geometry/HcalSimData/data/CaloProdCuts.xml new file mode 100644 index 0000000000000..8f4414ce6485d --- /dev/null +++ b/Geometry/HcalSimData/data/CaloProdCuts.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalSimData/data/CaloUtil.xml b/Geometry/HcalSimData/data/CaloUtil.xml new file mode 100644 index 0000000000000..af245ba62a14d --- /dev/null +++ b/Geometry/HcalSimData/data/CaloUtil.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalSimData/data/HcalProdCuts.xml b/Geometry/HcalSimData/data/HcalProdCuts.xml new file mode 100644 index 0000000000000..7583519ea2f89 --- /dev/null +++ b/Geometry/HcalSimData/data/HcalProdCuts.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/Geometry/HcalSimData/data/hf.xml b/Geometry/HcalSimData/data/hf.xml new file mode 100644 index 0000000000000..6e0a9ac5763df --- /dev/null +++ b/Geometry/HcalSimData/data/hf.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalSimData/data/hffibre.xml b/Geometry/HcalSimData/data/hffibre.xml new file mode 100644 index 0000000000000..49057790dd395 --- /dev/null +++ b/Geometry/HcalSimData/data/hffibre.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/Geometry/HcalSimData/data/hffibrebundle.xml b/Geometry/HcalSimData/data/hffibrebundle.xml new file mode 100644 index 0000000000000..f66769693b162 --- /dev/null +++ b/Geometry/HcalSimData/data/hffibrebundle.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/Geometry/HcalSimData/data/hfpmt.xml b/Geometry/HcalSimData/data/hfpmt.xml new file mode 100644 index 0000000000000..1dd8f302a369c --- /dev/null +++ b/Geometry/HcalSimData/data/hfpmt.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/2006/TBHcalBarrel.xml b/Geometry/HcalTestBeamData/data/2006/TBHcalBarrel.xml new file mode 100644 index 0000000000000..4113a460c9188 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/2006/TBHcalBarrel.xml @@ -0,0 +1,264 @@ + + + + + + + + + + + + + + + + 60.1*deg, 62.1*deg, 37.0*deg, 0.0*deg, 0.0*deg + + + 1927.5*mm, 2027.2*mm, 2699.2*mm, 2754.5*mm, 2876.5*mm + + + -4.43*mm, -3.11*mm, 2298.0*mm, 4332.0*mm, 4017.0*mm + + + + + + + + materials:Air, materials:H_Brass, materials:H_Brass, + materials:H_Brass, materials:H_Brass, materials:H_Brass, + materials:H_Brass, materials:H_Brass, materials:H_Brass, + materials:H_Brass, materials:H_Brass, materials:H_Brass, + materials:H_Brass, materials:H_Brass, materials:H_Brass, + materials:H_Brass, materials:StainlessSteel + + 76.5*mm, 60.0*mm, 60.0*mm, 60.0*mm, 60.0*mm, 60.0*mm, + 60.0*mm, 60.0*mm, 60.0*mm, 60.0*mm, 66.0*mm, 66.0*mm, + 66.0*mm, 66.0*mm, 66.0*mm, 66.0*mm, 89.0*mm + + + 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17 + + + 0.0*mm, 20.5*mm, 20.5*mm, 20.5*mm, 20.5*mm, 20.5*mm, + 20.5*mm, 20.5*mm, 20.5*mm, 20.5*mm, 23.5*mm, 23.5*mm, + 23.5*mm, 23.5*mm, 23.5*mm, 23.5*mm, 75.0*mm + + + 48.0*mm, 50.5*mm, 50.5*mm, 50.5*mm, 50.5*mm, 50.5*mm, + 50.5*mm, 50.5*mm, 50.5*mm, 50.5*mm, 56.5*mm, 56.5*mm, + 56.5*mm, 56.5*mm, 56.5*mm, 56.5*mm, 75.0*mm + + + 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, + 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, + 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg + + + 12.0*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, + 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, + 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 14.0*mm + + + 14.0*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, + 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, + 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 14.0*mm + + + Layer0, Layer1, Layer2, Layer3, Layer4, Layer5, + Layer6, Layer7, Layer8, Layer9, Layer10, Layer11, + Layer12, Layer13, Layer14, Layer15, Layer16 + + -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0 + + + 0.0*mm, 1.5*mm, 1.5*mm, 1.5*mm, 1.5*mm, 1.5*mm, + 1.5*mm, 1.5*mm, 1.5*mm, 1.5*mm, 1.5*mm, 1.5*mm, + 1.5*mm, 1.5*mm, 1.5*mm, 1.5*mm, 0.0*mm + + + + Front, Back + + materials:StainlessSteel, materials:StainlessSteel + + 12.0*mm, 62.0*mm + + + 50.0*mm, 14.5*mm + + + + + + Rail, Ledge, ExtPlate, Spacer, Gap + + materials:Air, materials:Air, materials:StainlessSteel, + materials:Aluminium, materials:Air + + 242.0*mm, 162.0*mm, 130.0*mm, 130.0*mm, 50.0*mm + + 50.0*mm, 36.0*mm, 36.0*mm, 6.0*mm, 6.0*mm + + materials:StainlessSteel, materials:Air + + 0.0*mm, 0.0*mm + + 30.0*mm, 12.0*mm + + Spacer, Gap + + materials:Aluminium, materials:Air + + 130.0*mm, 50.0*mm + + + + + + + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2 + + + 0.0*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, + 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, + 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 0.5*mm + + + 2.0*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, + 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, + 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 0.5*mm + + + 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, + 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, + 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm + + + 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, + 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, + 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm + + + 9.0*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, + 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, + 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 9.0*mm + + + 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, + 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, + 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm + + + 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, + 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, + 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm + + + 154.0*mm, 161.8*mm, 167.1*mm, 172.4*mm, 177.8*mm, 183.1*mm, + 188.4*mm, 193.8*mm, 199.1*mm, 204.4*mm, 210.0*mm, 215.9*mm, + 221.7*mm, 227.6*mm, 233.5*mm, 239.3*mm, 242.0*mm + + + 159.4*mm, 165.3*mm, 170.6*mm, 175.8*mm, 181.1*mm, 186.3*mm, + 191.6*mm, 196.8*mm, 202.1*mm, 207.3*mm, 213.1*mm, 218.9*mm, + 224.6*mm, 230.4*mm, 236.2*mm, 242.0*mm, 242.0*mm + + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1 + + + diff --git a/Geometry/HcalTestBeamData/data/2007/TBHcal.xml b/Geometry/HcalTestBeamData/data/2007/TBHcal.xml new file mode 100644 index 0000000000000..f975dba421198 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/2007/TBHcal.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/2007/eefixed.xml b/Geometry/HcalTestBeamData/data/2007/eefixed.xml new file mode 100644 index 0000000000000..201e80a9dab48 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/2007/eefixed.xml @@ -0,0 +1,357 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/2007/eehier.xml b/Geometry/HcalTestBeamData/data/2007/eehier.xml new file mode 100644 index 0000000000000..bab5e4af47cd3 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/2007/eehier.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/2007/eregalgo.xml b/Geometry/HcalTestBeamData/data/2007/eregalgo.xml new file mode 100644 index 0000000000000..d72673912834a --- /dev/null +++ b/Geometry/HcalTestBeamData/data/2007/eregalgo.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/2007/esalgoTB.xml b/Geometry/HcalTestBeamData/data/2007/esalgoTB.xml new file mode 100644 index 0000000000000..d7a1871ec8ff8 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/2007/esalgoTB.xml @@ -0,0 +1,295 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5,7,10,11,13,13,14,15,16,17,17,17,18,19,19,19,19,19,19,19 + + + 1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,6,6,8,8,8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 227,228, + 260,261,262,263, + 294,295,296,297, + 329,330,331,332 + + + + + + 455,456,457,458, + 479,480,481,482, + 503,504,505,506, + 527,528,529,530 + + + + + + [escon:R_MAX], + [escon:R_MAX], + [escon:R_MAX], + [escon:R_MAX], + 45.7*cm, + [escon:R_MAX], + [escon:R_MAX], + [escon:R_MAX], + [escon:R_MAX], + [escon:R_MAX], + [escon:R_MAX], + [escon:R_MAX], + 45.7*cm, + [escon:R_MAX], + [escon:R_MAX], + [escon:R_MAX], + [escon:R_MAX], + [escon:R_MAX], + [escon:R_MAX] + + + + [escon:R_MIN], + [escon:R_MIN], + [escon:R_MIN], + [escon:R_MIN], + 120*cm, + [escon:R_MIN], + [escon:R_MIN], + [escon:R_MIN], + [escon:R_MIN], + [escon:R_MIN], + [escon:R_MIN], + [escon:R_MIN], + 120*cm, + [escon:R_MIN], + [escon:R_MIN], + [escon:R_MIN], + [escon:R_MIN], + [escon:R_MIN], + [escon:R_MIN]+5*cm + + + + [escon:P1], [escon:P2], [escon:P5], [escon:P6], [escon:P7], + [escon:P8], [escon:P9], [escon:P10], [escon:P11], [escon:P12], + [escon:P15], [escon:P16], [escon:P17], [escon:P18], [escon:P19], + [escon:P20], [escon:P21], [escon:P22], [escon:P24] + + + + E_G10, + E_Air, + E_Aluminium, + E_Aluminium, + E_Lead, + E_Aluminium, + E_Aluminium, + E_Air, + E_Aluminium, + E_Air, + E_Aluminium, + E_Aluminium, + E_Lead, + E_Aluminium, + E_Aluminium, + E_Air, + E_Aluminium, + E_Air, + E_G10 + + + diff --git a/Geometry/HcalTestBeamData/data/2007/escon.xml b/Geometry/HcalTestBeamData/data/2007/escon.xml new file mode 100644 index 0000000000000..bda8eca2e8559 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/2007/escon.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/2010/TBHcalBarrel.xml b/Geometry/HcalTestBeamData/data/2010/TBHcalBarrel.xml new file mode 100644 index 0000000000000..4113a460c9188 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/2010/TBHcalBarrel.xml @@ -0,0 +1,264 @@ + + + + + + + + + + + + + + + + 60.1*deg, 62.1*deg, 37.0*deg, 0.0*deg, 0.0*deg + + + 1927.5*mm, 2027.2*mm, 2699.2*mm, 2754.5*mm, 2876.5*mm + + + -4.43*mm, -3.11*mm, 2298.0*mm, 4332.0*mm, 4017.0*mm + + + + + + + + materials:Air, materials:H_Brass, materials:H_Brass, + materials:H_Brass, materials:H_Brass, materials:H_Brass, + materials:H_Brass, materials:H_Brass, materials:H_Brass, + materials:H_Brass, materials:H_Brass, materials:H_Brass, + materials:H_Brass, materials:H_Brass, materials:H_Brass, + materials:H_Brass, materials:StainlessSteel + + 76.5*mm, 60.0*mm, 60.0*mm, 60.0*mm, 60.0*mm, 60.0*mm, + 60.0*mm, 60.0*mm, 60.0*mm, 60.0*mm, 66.0*mm, 66.0*mm, + 66.0*mm, 66.0*mm, 66.0*mm, 66.0*mm, 89.0*mm + + + 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17 + + + 0.0*mm, 20.5*mm, 20.5*mm, 20.5*mm, 20.5*mm, 20.5*mm, + 20.5*mm, 20.5*mm, 20.5*mm, 20.5*mm, 23.5*mm, 23.5*mm, + 23.5*mm, 23.5*mm, 23.5*mm, 23.5*mm, 75.0*mm + + + 48.0*mm, 50.5*mm, 50.5*mm, 50.5*mm, 50.5*mm, 50.5*mm, + 50.5*mm, 50.5*mm, 50.5*mm, 50.5*mm, 56.5*mm, 56.5*mm, + 56.5*mm, 56.5*mm, 56.5*mm, 56.5*mm, 75.0*mm + + + 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, + 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, + 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg + + + 12.0*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, + 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, + 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 14.0*mm + + + 14.0*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, + 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, + 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 14.0*mm + + + Layer0, Layer1, Layer2, Layer3, Layer4, Layer5, + Layer6, Layer7, Layer8, Layer9, Layer10, Layer11, + Layer12, Layer13, Layer14, Layer15, Layer16 + + -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0 + + + 0.0*mm, 1.5*mm, 1.5*mm, 1.5*mm, 1.5*mm, 1.5*mm, + 1.5*mm, 1.5*mm, 1.5*mm, 1.5*mm, 1.5*mm, 1.5*mm, + 1.5*mm, 1.5*mm, 1.5*mm, 1.5*mm, 0.0*mm + + + + Front, Back + + materials:StainlessSteel, materials:StainlessSteel + + 12.0*mm, 62.0*mm + + + 50.0*mm, 14.5*mm + + + + + + Rail, Ledge, ExtPlate, Spacer, Gap + + materials:Air, materials:Air, materials:StainlessSteel, + materials:Aluminium, materials:Air + + 242.0*mm, 162.0*mm, 130.0*mm, 130.0*mm, 50.0*mm + + 50.0*mm, 36.0*mm, 36.0*mm, 6.0*mm, 6.0*mm + + materials:StainlessSteel, materials:Air + + 0.0*mm, 0.0*mm + + 30.0*mm, 12.0*mm + + Spacer, Gap + + materials:Aluminium, materials:Air + + 130.0*mm, 50.0*mm + + + + + + + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2 + + + 0.0*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, + 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, + 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 0.5*mm + + + 2.0*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, + 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, + 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 0.5*mm + + + 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, + 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, + 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm + + + 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, + 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, + 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm + + + 9.0*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, + 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, + 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 9.0*mm + + + 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, + 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, + 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm + + + 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, + 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, + 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm + + + 154.0*mm, 161.8*mm, 167.1*mm, 172.4*mm, 177.8*mm, 183.1*mm, + 188.4*mm, 193.8*mm, 199.1*mm, 204.4*mm, 210.0*mm, 215.9*mm, + 221.7*mm, 227.6*mm, 233.5*mm, 239.3*mm, 242.0*mm + + + 159.4*mm, 165.3*mm, 170.6*mm, 175.8*mm, 181.1*mm, 186.3*mm, + 191.6*mm, 196.8*mm, 202.1*mm, 207.3*mm, 213.1*mm, 218.9*mm, + 224.6*mm, 230.4*mm, 236.2*mm, 242.0*mm, 242.0*mm + + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1 + + + diff --git a/Geometry/HcalTestBeamData/data/CaloUtil.xml b/Geometry/HcalTestBeamData/data/CaloUtil.xml new file mode 100644 index 0000000000000..1fb8a23416a87 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/CaloUtil.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal.xml b/Geometry/HcalTestBeamData/data/TBHcal.xml new file mode 100644 index 0000000000000..a8e1ffc051b89 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal02.xml b/Geometry/HcalTestBeamData/data/TBHcal02.xml new file mode 100644 index 0000000000000..c69012ca1f764 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal02.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal02BeamLine.xml b/Geometry/HcalTestBeamData/data/TBHcal02BeamLine.xml new file mode 100644 index 0000000000000..4e243d2b9d50d --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal02BeamLine.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal02HcalBarrel.xml b/Geometry/HcalTestBeamData/data/TBHcal02HcalBarrel.xml new file mode 100644 index 0000000000000..efbf54826b5be --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal02HcalBarrel.xml @@ -0,0 +1,1702 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal02HcalOuter.xml b/Geometry/HcalTestBeamData/data/TBHcal02HcalOuter.xml new file mode 100644 index 0000000000000..7176de9471cf6 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal02HcalOuter.xml @@ -0,0 +1,785 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal02HcalSens.xml b/Geometry/HcalTestBeamData/data/TBHcal02HcalSens.xml new file mode 100644 index 0000000000000..063c8c6a3bb94 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal02HcalSens.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal02Materials.xml b/Geometry/HcalTestBeamData/data/TBHcal02Materials.xml new file mode 100644 index 0000000000000..c770eef608a1c --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal02Materials.xml @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal02Rotations.xml b/Geometry/HcalTestBeamData/data/TBHcal02Rotations.xml new file mode 100644 index 0000000000000..6a67f160cfab1 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal02Rotations.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal02Util.xml b/Geometry/HcalTestBeamData/data/TBHcal02Util.xml new file mode 100644 index 0000000000000..9dc9e39cc3564 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal02Util.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal02Xtal.xml b/Geometry/HcalTestBeamData/data/TBHcal02Xtal.xml new file mode 100644 index 0000000000000..6ddaa19a91516 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal02Xtal.xml @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal02XtalSens.xml b/Geometry/HcalTestBeamData/data/TBHcal02XtalSens.xml new file mode 100644 index 0000000000000..35d9ec56d90d6 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal02XtalSens.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal03HcalOuter.xml b/Geometry/HcalTestBeamData/data/TBHcal03HcalOuter.xml new file mode 100644 index 0000000000000..721f86789615d --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal03HcalOuter.xml @@ -0,0 +1,395 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal03Sens.xml b/Geometry/HcalTestBeamData/data/TBHcal03Sens.xml new file mode 100644 index 0000000000000..2f14eaab91bdb --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal03Sens.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal03SimNumbering.xml b/Geometry/HcalTestBeamData/data/TBHcal03SimNumbering.xml new file mode 100644 index 0000000000000..a16033f4f2b70 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal03SimNumbering.xml @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal04BeamLine.xml b/Geometry/HcalTestBeamData/data/TBHcal04BeamLine.xml new file mode 100644 index 0000000000000..a09af1f43395e --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal04BeamLine.xml @@ -0,0 +1,300 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal04HF.xml b/Geometry/HcalTestBeamData/data/TBHcal04HF.xml new file mode 100644 index 0000000000000..1ac3ac849457b --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal04HF.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal04HFBeamLine.xml b/Geometry/HcalTestBeamData/data/TBHcal04HFBeamLine.xml new file mode 100644 index 0000000000000..a0a5bf356df84 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal04HFBeamLine.xml @@ -0,0 +1,171 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal04HFSens.xml b/Geometry/HcalTestBeamData/data/TBHcal04HFSens.xml new file mode 100644 index 0000000000000..35155e6b5024c --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal04HFSens.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal04HFWedge.xml b/Geometry/HcalTestBeamData/data/TBHcal04HFWedge.xml new file mode 100644 index 0000000000000..5deb6e93ac2ed --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal04HFWedge.xml @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TBHcal04HFWedge:HFBox1, TBHcal04HFWedge:HFBox2 + + 3, 6, 6, 5, 6, 6, 5, 6, 6, 5, 6, 6, + 5, 6, 6, 5, 6, 6, 5, 6, 6, 5, 6, 6, + 5, 6, 6, 5, 6, 6, 5, 6, 6, 5, 6, 6, + 5, 6, 6, 5, 6, 3 + + + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45 + + + 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, + 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, + 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, + 1, 1, 0, 1, 1, 0 + + + TBHcal04HFWedge:HFBox1, TBHcal04HFWedge:HFBox2 + + 3, 6, 6, 5, 6, 6, 5, 6, 6, 5, 6, 6, + 5, 6, 6, 5, 6, 6, 5, 6, 6, 5, 6, 6, + 5, 6, 6, 5, 6, 6, 5, 6, 6, 5, 6, 6, + 5, 6, 6, 5, 6, 3 + + + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45 + + + 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, + 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, + 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, + 1, 1, 0, 1, 1, 0 + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal04HcalOuter.xml b/Geometry/HcalTestBeamData/data/TBHcal04HcalOuter.xml new file mode 100644 index 0000000000000..aa11b6d11f34d --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal04HcalOuter.xml @@ -0,0 +1,395 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal04ProdCuts.xml b/Geometry/HcalTestBeamData/data/TBHcal04ProdCuts.xml new file mode 100644 index 0000000000000..ea55d56a3cf4b --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal04ProdCuts.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal04Sens.xml b/Geometry/HcalTestBeamData/data/TBHcal04Sens.xml new file mode 100644 index 0000000000000..1b0c11b19eec0 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal04Sens.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal04SimNumbering.xml b/Geometry/HcalTestBeamData/data/TBHcal04SimNumbering.xml new file mode 100644 index 0000000000000..5836b11143242 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal04SimNumbering.xml @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal04Util.xml b/Geometry/HcalTestBeamData/data/TBHcal04Util.xml new file mode 100644 index 0000000000000..48f95132d4f65 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal04Util.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal04XtalProdCuts.xml b/Geometry/HcalTestBeamData/data/TBHcal04XtalProdCuts.xml new file mode 100644 index 0000000000000..64faea5a95269 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal04XtalProdCuts.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal06BeamLine.xml b/Geometry/HcalTestBeamData/data/TBHcal06BeamLine.xml new file mode 100644 index 0000000000000..a85a019198593 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal06BeamLine.xml @@ -0,0 +1,423 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal06Ecal.xml b/Geometry/HcalTestBeamData/data/TBHcal06Ecal.xml new file mode 100644 index 0000000000000..14def492902d5 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal06Ecal.xml @@ -0,0 +1,13650 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal06EcalDummy.xml b/Geometry/HcalTestBeamData/data/TBHcal06EcalDummy.xml new file mode 100644 index 0000000000000..015f634c207f7 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal06EcalDummy.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal06HcalOuter.xml b/Geometry/HcalTestBeamData/data/TBHcal06HcalOuter.xml new file mode 100644 index 0000000000000..cbf8f1a5f27b8 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal06HcalOuter.xml @@ -0,0 +1,485 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal06ProdCuts.xml b/Geometry/HcalTestBeamData/data/TBHcal06ProdCuts.xml new file mode 100644 index 0000000000000..8d6143f131300 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal06ProdCuts.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal06Sens.xml b/Geometry/HcalTestBeamData/data/TBHcal06Sens.xml new file mode 100644 index 0000000000000..3bead73bbf43f --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal06Sens.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal06SimNumbering.xml b/Geometry/HcalTestBeamData/data/TBHcal06SimNumbering.xml new file mode 100644 index 0000000000000..382fc094d6b5e --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal06SimNumbering.xml @@ -0,0 +1,306 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal06Util.xml b/Geometry/HcalTestBeamData/data/TBHcal06Util.xml new file mode 100644 index 0000000000000..39815b2d2dbb1 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal06Util.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal06ebsens.xml b/Geometry/HcalTestBeamData/data/TBHcal06ebsens.xml new file mode 100644 index 0000000000000..64d4ef705fe7a --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal06ebsens.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal07BeamLine.xml b/Geometry/HcalTestBeamData/data/TBHcal07BeamLine.xml new file mode 100644 index 0000000000000..2df72b749929f --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal07BeamLine.xml @@ -0,0 +1,423 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal07HcalOuter.xml b/Geometry/HcalTestBeamData/data/TBHcal07HcalOuter.xml new file mode 100644 index 0000000000000..f0abb7822b420 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal07HcalOuter.xml @@ -0,0 +1,405 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal07Sens.xml b/Geometry/HcalTestBeamData/data/TBHcal07Sens.xml new file mode 100644 index 0000000000000..74ca5dc7ac83c --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal07Sens.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal07eeSens.xml b/Geometry/HcalTestBeamData/data/TBHcal07eeSens.xml new file mode 100644 index 0000000000000..dc818acf3c39d --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal07eeSens.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal07esSens.xml b/Geometry/HcalTestBeamData/data/TBHcal07esSens.xml new file mode 100644 index 0000000000000..f5662082c2b44 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal07esSens.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal10BeamLine.xml b/Geometry/HcalTestBeamData/data/TBHcal10BeamLine.xml new file mode 100644 index 0000000000000..48d89b9726bf5 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal10BeamLine.xml @@ -0,0 +1,410 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal10HcalOuter.xml b/Geometry/HcalTestBeamData/data/TBHcal10HcalOuter.xml new file mode 100644 index 0000000000000..6386e97b73456 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal10HcalOuter.xml @@ -0,0 +1,485 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal10ProdCuts.xml b/Geometry/HcalTestBeamData/data/TBHcal10ProdCuts.xml new file mode 100644 index 0000000000000..ae55486bfb0dc --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal10ProdCuts.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal10Sens.xml b/Geometry/HcalTestBeamData/data/TBHcal10Sens.xml new file mode 100644 index 0000000000000..ff2f6c499b920 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal10Sens.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal10Util.xml b/Geometry/HcalTestBeamData/data/TBHcal10Util.xml new file mode 100644 index 0000000000000..4f64849511f58 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal10Util.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcal10ebsens.xml b/Geometry/HcalTestBeamData/data/TBHcal10ebsens.xml new file mode 100644 index 0000000000000..016031cc829b8 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcal10ebsens.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcalBarrel.xml b/Geometry/HcalTestBeamData/data/TBHcalBarrel.xml new file mode 100644 index 0000000000000..33b32a49ffc55 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcalBarrel.xml @@ -0,0 +1,264 @@ + + + + + + + + + + + + + + + + 60.1*deg, 62.1*deg, 37.0*deg, 0.0*deg, 0.0*deg + + + 1927.5*mm, 2027.2*mm, 2699.2*mm, 2754.5*mm, 2876.5*mm + + + -4.43*mm, -3.11*mm, 2298.0*mm, 4332.0*mm, 4017.0*mm + + + + + + + + materials:Air, materials:H_Brass, materials:H_Brass, + materials:H_Brass, materials:H_Brass, materials:H_Brass, + materials:H_Brass, materials:H_Brass, materials:H_Brass, + materials:H_Brass, materials:H_Brass, materials:H_Brass, + materials:H_Brass, materials:H_Brass, materials:H_Brass, + materials:H_Brass, materials:StainlessSteel + + 76.5*mm, 60.0*mm, 60.0*mm, 60.0*mm, 60.0*mm, 60.0*mm, + 60.0*mm, 60.0*mm, 60.0*mm, 60.0*mm, 66.0*mm, 66.0*mm, + 66.0*mm, 66.0*mm, 66.0*mm, 66.0*mm, 89.0*mm + + + 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17 + + + 0.0*mm, 20.5*mm, 20.5*mm, 20.5*mm, 20.5*mm, 20.5*mm, + 20.5*mm, 20.5*mm, 20.5*mm, 20.5*mm, 23.5*mm, 23.5*mm, + 23.5*mm, 23.5*mm, 23.5*mm, 23.5*mm, 75.0*mm + + + 48.0*mm, 50.5*mm, 50.5*mm, 50.5*mm, 50.5*mm, 50.5*mm, + 50.5*mm, 50.5*mm, 50.5*mm, 50.5*mm, 56.5*mm, 56.5*mm, + 56.5*mm, 56.5*mm, 56.5*mm, 56.5*mm, 75.0*mm + + + 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, + 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, + 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg, 5.0*deg + + + 12.0*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, + 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, + 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 14.0*mm + + + 14.0*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, + 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, + 9.5*mm, 9.5*mm, 9.5*mm, 9.5*mm, 14.0*mm + + + Layer0, Layer1, Layer2, Layer3, Layer4, Layer5, + Layer6, Layer7, Layer8, Layer9, Layer10, Layer11, + Layer12, Layer13, Layer14, Layer15, Layer16 + + -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0 + + + 0.0*mm, 1.5*mm, 1.5*mm, 1.5*mm, 1.5*mm, 1.5*mm, + 1.5*mm, 1.5*mm, 1.5*mm, 1.5*mm, 1.5*mm, 1.5*mm, + 1.5*mm, 1.5*mm, 1.5*mm, 1.5*mm, 0.0*mm + + + + Front, Back + + materials:StainlessSteel, materials:StainlessSteel + + 12.0*mm, 62.0*mm + + + 50.0*mm, 14.5*mm + + + + + + Rail, Ledge, ExtPlate, Spacer, Gap + + materials:Air, materials:Air, materials:Air, + materials:Air, materials:Air + + 242.0*mm, 162.0*mm, 130.0*mm, 130.0*mm, 50.0*mm + + 50.0*mm, 36.0*mm, 36.0*mm, 6.0*mm, 6.0*mm + + materials:StainlessSteel, materials:Air + + 0.0*mm, 0.0*mm + + 30.0*mm, 12.0*mm + + Spacer, Gap + + materials:Air, materials:Air + + 130.0*mm, 50.0*mm + + + + + + + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2 + + + 0.0*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, + 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, + 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 0.5*mm + + + 2.0*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, + 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, + 2.5*mm, 2.5*mm, 2.5*mm, 2.5*mm, 0.5*mm + + + 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, + 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, + 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm + + + 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, + 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, + 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm, 2.0*mm + + + 9.0*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, + 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, + 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 9.0*mm + + + 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, + 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, + 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm + + + 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, + 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, + 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm, 1.0*mm + + + 154.0*mm, 161.8*mm, 167.1*mm, 172.4*mm, 177.8*mm, 183.1*mm, + 188.4*mm, 193.8*mm, 199.1*mm, 204.4*mm, 210.0*mm, 215.9*mm, + 221.7*mm, 227.6*mm, 233.5*mm, 239.3*mm, 242.0*mm + + + 159.4*mm, 165.3*mm, 170.6*mm, 175.8*mm, 181.1*mm, 186.3*mm, + 191.6*mm, 196.8*mm, 202.1*mm, 207.3*mm, 213.1*mm, 218.9*mm, + 224.6*mm, 230.4*mm, 236.2*mm, 242.0*mm, 242.0*mm + + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1 + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcalCable.xml b/Geometry/HcalTestBeamData/data/TBHcalCable.xml new file mode 100644 index 0000000000000..63a0652289d73 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcalCable.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + 60.1*deg, 62.1*deg, 37.0*deg, 0.0*deg, 0.0*deg + + + 1927.5*mm, 2027.2*mm, 2699.2*mm, 2754.5*mm, 2876.5*mm + + + -4.43*mm, -3.11*mm, 2298.0*mm, 4332.0*mm, 4017.0*mm + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcalEndcap.xml b/Geometry/HcalTestBeamData/data/TBHcalEndcap.xml new file mode 100644 index 0000000000000..b51c776388ead --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcalEndcap.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Part0, Part1, Part2, Part3, Part4, Part5 + + materials:Air, materials:Air, materials:H_Brass, + materials:H_Brass, materials:H_Brass, materials:H_Brass + + 0, 0, 1, 1, 1, 1 + + + 2, 2, 2, 3, 2, 4 + + + 43.5*mm, 43.5*mm, 17.0*mm, 9.0*mm, 9.0*mm, 9.0*mm + + + 0.5*mm, 0.5*mm, 0.5*mm, 0.5*mm, 0.5*mm, 0.5*mm + + + 1.5*mm, 1.5*mm, 0.5*mm, 0.5*mm, 0.5*mm, 0.5*mm + + + 0, 0, 0, 1, 1, 1 + + + 1, 1, 1, 5, 6, 6 + + + 0, 0 + + + 0, 1 + + + 1 + + + 2, 3, 4, 5, 6 + + + 7, 8, 9, 10, 11, 12 + + + 13, 14, 15, 16, 17, 18 + + + + + Phi0, Phi1 + + + Layer00, Layer01, Layer02, Layer03, Layer04, Layer05, + Layer06, Layer07, Layer08, Layer09, Layer10, Layer11, + Layer12, Layer13, Layer14, Layer15, Layer16, Layer17, + Layer18 + + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + + + 12.0*mm, 7.0*mm, 7.0*mm, 7.0*mm, 7.0*mm, 7.0*mm, + 7.0*mm, 7.0*mm, 7.0*mm, 7.0*mm, 7.0*mm, 7.0*mm, + 7.0*mm, 7.0*mm, 7.0*mm, 7.0*mm, 7.0*mm, 7.0*mm, 7.0*mm + + + 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, + 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, + 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm, 3.7*mm + + + + + + diff --git a/Geometry/HcalTestBeamData/data/TBHcalXtal.xml b/Geometry/HcalTestBeamData/data/TBHcalXtal.xml new file mode 100644 index 0000000000000..ad6c9880540af --- /dev/null +++ b/Geometry/HcalTestBeamData/data/TBHcalXtal.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Layer0, Layer1, Layer2, Layer3, Layer4, + Layer5, Layer6 + + + + + + + + + + + + Crystal0, Crystal1, Crystal2, Crystal3, Crystal4, + Crystal5, Crystal6 + + diff --git a/Geometry/HcalTestBeamData/data/ebcon.xml b/Geometry/HcalTestBeamData/data/ebcon.xml new file mode 100644 index 0000000000000..9335cdf4d4742 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/ebcon.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/data/eregalgo.xml b/Geometry/HcalTestBeamData/data/eregalgo.xml new file mode 100644 index 0000000000000..d507ad25c8f16 --- /dev/null +++ b/Geometry/HcalTestBeamData/data/eregalgo.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalTestBeamData/python/TB2004GeometryXML_cfi.py b/Geometry/HcalTestBeamData/python/TB2004GeometryXML_cfi.py index 1cbaaa45065db..bd2398fa12a15 100644 --- a/Geometry/HcalTestBeamData/python/TB2004GeometryXML_cfi.py +++ b/Geometry/HcalTestBeamData/python/TB2004GeometryXML_cfi.py @@ -11,6 +11,7 @@ 'Geometry/HcalTestBeamData/data/TBHcalEndcap.xml', 'Geometry/HcalTestBeamData/data/TBHcal04HcalOuter.xml', 'Geometry/HcalTestBeamData/data/TBHcal04Sens.xml', + 'Geometry/HcalTestBeamData/data/TBHcal04SimNumbering.xml', 'Geometry/HcalTestBeamData/data/TBHcal04Util.xml', 'Geometry/HcalTestBeamData/data/TBHcal04XtalProdCuts.xml', 'Geometry/HcalTestBeamData/data/TBHcal04ProdCuts.xml'), diff --git a/Geometry/HcalTestBeamData/python/TB2006GeometryAlgoXML_cfi.py b/Geometry/HcalTestBeamData/python/TB2006GeometryAlgoXML_cfi.py index b0394d00ee76e..f05ad132bd340 100644 --- a/Geometry/HcalTestBeamData/python/TB2006GeometryAlgoXML_cfi.py +++ b/Geometry/HcalTestBeamData/python/TB2006GeometryAlgoXML_cfi.py @@ -15,6 +15,7 @@ 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', 'Geometry/HcalTestBeamData/data/TBHcal06Sens.xml', + 'Geometry/HcalTestBeamData/data/TBHcal06SimNumbering.xml', 'Geometry/HcalTestBeamData/data/TBHcal06ebsens.xml', 'Geometry/HcalTestBeamData/data/TBHcal06ProdCuts.xml', 'Geometry/EcalSimData/data/EBProdCuts.xml', diff --git a/Geometry/HcalTestBeamData/python/TB2006GeometryXML_cfi.py b/Geometry/HcalTestBeamData/python/TB2006GeometryXML_cfi.py index c462b9e830b01..48dccce923901 100644 --- a/Geometry/HcalTestBeamData/python/TB2006GeometryXML_cfi.py +++ b/Geometry/HcalTestBeamData/python/TB2006GeometryXML_cfi.py @@ -12,6 +12,7 @@ 'Geometry/HcalTestBeamData/data/TBHcalEndcap.xml', 'Geometry/HcalTestBeamData/data/TBHcal06HcalOuter.xml', 'Geometry/HcalTestBeamData/data/TBHcal06Sens.xml', + 'Geometry/HcalTestBeamData/data/TBHcal06SimNumbering.xml', 'Geometry/EcalSimData/data/ebsens.xml', 'Geometry/HcalTestBeamData/data/TBHcal06ProdCuts.xml', 'Geometry/EcalSimData/data/EBProdCuts.xml', diff --git a/Geometry/HcalTestBeamData/python/TB2007GeometryXML_cfi.py b/Geometry/HcalTestBeamData/python/TB2007GeometryXML_cfi.py index 7044472e9dc98..653a56cb4c53b 100644 --- a/Geometry/HcalTestBeamData/python/TB2007GeometryXML_cfi.py +++ b/Geometry/HcalTestBeamData/python/TB2007GeometryXML_cfi.py @@ -18,6 +18,7 @@ 'Geometry/HcalTestBeamData/data/TBHcalEndcap.xml', 'Geometry/HcalTestBeamData/data/TBHcal07HcalOuter.xml', 'Geometry/HcalTestBeamData/data/TBHcal07Sens.xml', + 'Geometry/HcalTestBeamData/data/TBHcal06SimNumbering.xml', 'Geometry/HcalTestBeamData/data/TBHcal07eeSens.xml', 'Geometry/HcalTestBeamData/data/TBHcal07esSens.xml', 'Geometry/HcalTestBeamData/data/TBHcal06ProdCuts.xml', diff --git a/Geometry/HcalTestBeamData/python/TB2007TestGeometryXML_cfi.py b/Geometry/HcalTestBeamData/python/TB2007TestGeometryXML_cfi.py index 54962d880d06b..6a78da5f468d9 100644 --- a/Geometry/HcalTestBeamData/python/TB2007TestGeometryXML_cfi.py +++ b/Geometry/HcalTestBeamData/python/TB2007TestGeometryXML_cfi.py @@ -10,6 +10,7 @@ 'Geometry/HcalTestBeamData/test/2007/TBHcalEndcap.xml', 'Geometry/HcalTestBeamData/data/TBHcal07HcalOuter.xml', 'Geometry/HcalTestBeamData/data/TBHcal07Sens.xml', + 'Geometry/HcalTestBeamData/data/TBHcal06SimNumbering.xml', 'Geometry/HcalTestBeamData/data/TBHcal06ProdCuts.xml', 'Geometry/HcalTestBeamData/data/TBHcal06Util.xml'), rootNodeName = cms.string('TBHcal:TBHCal') diff --git a/Geometry/HcalTowerAlgo/interface/HcalDDDGeometryLoader.h b/Geometry/HcalTowerAlgo/interface/HcalDDDGeometryLoader.h index 21b040062b306..d2c41c3f1d19a 100644 --- a/Geometry/HcalTowerAlgo/interface/HcalDDDGeometryLoader.h +++ b/Geometry/HcalTowerAlgo/interface/HcalDDDGeometryLoader.h @@ -2,7 +2,7 @@ #define Geometry_HcalTowerAlgo_HcalDDDGeometryLoader_H 1 #include "Geometry/CaloGeometry/interface/CaloVGeometryLoader.h" -#include "Geometry/HcalCommonData/interface/HcalNumberingFromDDD.h" +#include "Geometry/HcalCommonData/interface/HcalDDDSimConstants.h" #include "Geometry/HcalTowerAlgo/interface/HcalDDDGeometry.h" #include "Geometry/CaloTopology/interface/HcalTopology.h" @@ -20,17 +20,17 @@ class HcalDetId; * \author S. Banerjee */ -class HcalDDDGeometryLoader // : public CaloVGeometryLoader { -{ - public: +class HcalDDDGeometryLoader { - explicit HcalDDDGeometryLoader(const DDCompactView & cpv); - virtual ~HcalDDDGeometryLoader(); +public: + + explicit HcalDDDGeometryLoader(const DDCompactView & cpv); + virtual ~HcalDDDGeometryLoader(); - typedef CaloSubdetectorGeometry* ReturnType ; - ReturnType load(const HcalTopology& topo, DetId::Detector , int ); - /// Load all of HCAL - ReturnType load(const HcalTopology& topo); + typedef CaloSubdetectorGeometry* ReturnType ; + ReturnType load(const HcalTopology& topo, DetId::Detector , int ); + /// Load all of HCAL + ReturnType load(const HcalTopology& topo); private: @@ -44,7 +44,7 @@ class HcalDDDGeometryLoader // : public CaloVGeometryLoader { HcalCellType, double, double, CaloSubdetectorGeometry* geom) const; - HcalNumberingFromDDD* numberingFromDDD; + HcalDDDSimConstants* hcalConstants; HcalTopology* dummyTopology_; diff --git a/Geometry/HcalTowerAlgo/src/HcalDDDGeometryLoader.cc b/Geometry/HcalTowerAlgo/src/HcalDDDGeometryLoader.cc index 4b76e3cfe6912..23f269b41c543 100644 --- a/Geometry/HcalTowerAlgo/src/HcalDDDGeometryLoader.cc +++ b/Geometry/HcalTowerAlgo/src/HcalDDDGeometryLoader.cc @@ -13,12 +13,11 @@ typedef CaloCellGeometry::CCGFloat CCGFloat ; //#define DebugLog HcalDDDGeometryLoader::HcalDDDGeometryLoader(const DDCompactView & cpv) { - std::string name = "HcalHits"; - numberingFromDDD = new HcalNumberingFromDDD(name, cpv); + hcalConstants = new HcalDDDSimConstants(cpv); } HcalDDDGeometryLoader::~HcalDDDGeometryLoader() { - delete numberingFromDDD; + delete hcalConstants; } @@ -32,10 +31,10 @@ HcalDDDGeometryLoader::load(const HcalTopology& topo, DetId::Detector det, int s ReturnType geom ( gDDD ); if ( geom->cornersMgr() == 0 ) { - const unsigned int count (numberingFromDDD->numberOfCells(HcalBarrel ) + - numberingFromDDD->numberOfCells(HcalEndcap ) + - numberingFromDDD->numberOfCells(HcalForward) + - numberingFromDDD->numberOfCells(HcalOuter ) ); + const unsigned int count (hcalConstants->numberOfCells(HcalBarrel ) + + hcalConstants->numberOfCells(HcalEndcap ) + + hcalConstants->numberOfCells(HcalForward) + + hcalConstants->numberOfCells(HcalOuter ) ); geom->allocateCorners( count ) ; } @@ -54,10 +53,10 @@ HcalDDDGeometryLoader::load(const HcalTopology& topo) { ReturnType geom ( gDDD ); if( geom->cornersMgr() == 0 ) { - const unsigned int count (numberingFromDDD->numberOfCells(HcalBarrel ) + - numberingFromDDD->numberOfCells(HcalEndcap ) + - numberingFromDDD->numberOfCells(HcalForward) + - numberingFromDDD->numberOfCells(HcalOuter ) ); + const unsigned int count (hcalConstants->numberOfCells(HcalBarrel ) + + hcalConstants->numberOfCells(HcalEndcap ) + + hcalConstants->numberOfCells(HcalForward) + + hcalConstants->numberOfCells(HcalOuter ) ); geom->allocateCorners( count ) ; } if( geom->parMgr() == 0 ) geom->allocatePar( 500, 3 ) ; @@ -74,7 +73,7 @@ void HcalDDDGeometryLoader::fill(HcalSubdetector subdet, CaloSubdetectorGeometry* geom ) { // start by making the new HcalDetIds - std::vector hcalCells = numberingFromDDD->HcalCellTypes(subdet); + std::vector hcalCells = hcalConstants->HcalCellTypes(subdet); geometryDDD->insertCell(hcalCells); #ifdef DebugLog LogDebug("HCalGeom") << "HcalDDDGeometryLoader::fill gets " diff --git a/Geometry/MuonCommonData/data/PhaseII/mf.xml b/Geometry/MuonCommonData/data/PhaseII/mf.xml new file mode 100644 index 0000000000000..4f3f2391c829b --- /dev/null +++ b/Geometry/MuonCommonData/data/PhaseII/mf.xml @@ -0,0 +1,4545 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonCommonData/data/PhaseII/muonNumbering.xml b/Geometry/MuonCommonData/data/PhaseII/muonNumbering.xml new file mode 100644 index 0000000000000..158e4832677e4 --- /dev/null +++ b/Geometry/MuonCommonData/data/PhaseII/muonNumbering.xml @@ -0,0 +1,428 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonCommonData/data/PhaseII/v2/muonNumbering.xml b/Geometry/MuonCommonData/data/PhaseII/v2/muonNumbering.xml new file mode 100644 index 0000000000000..b5f3092afac62 --- /dev/null +++ b/Geometry/MuonCommonData/data/PhaseII/v2/muonNumbering.xml @@ -0,0 +1,486 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonCommonData/data/upscope/muonNumbering.xml b/Geometry/MuonCommonData/data/upscope/muonNumbering.xml new file mode 100644 index 0000000000000..21b9c5aa4daa0 --- /dev/null +++ b/Geometry/MuonCommonData/data/upscope/muonNumbering.xml @@ -0,0 +1,473 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonCommonData/data/upscope/rpcf.xml b/Geometry/MuonCommonData/data/upscope/rpcf.xml new file mode 100644 index 0000000000000..bb6af77fb40a2 --- /dev/null +++ b/Geometry/MuonCommonData/data/upscope/rpcf.xml @@ -0,0 +1,620 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonCommonData/data/upscope/v1/mf.xml b/Geometry/MuonCommonData/data/upscope/v1/mf.xml new file mode 100644 index 0000000000000..7391879216f64 --- /dev/null +++ b/Geometry/MuonCommonData/data/upscope/v1/mf.xml @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonCommonData/data/v2/gemf.xml b/Geometry/MuonCommonData/data/v2/gemf.xml index 44b78e1094e97..84725f245e975 100644 --- a/Geometry/MuonCommonData/data/v2/gemf.xml +++ b/Geometry/MuonCommonData/data/v2/gemf.xml @@ -116,12 +116,12 @@ - - - - - - + + + + + + @@ -283,28 +283,28 @@ - - + + - - + + - - + + - - + + - - + + - - + + @@ -550,56 +550,56 @@ - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/Geometry/MuonCommonData/data/v2/muonGemNumbering.xml b/Geometry/MuonCommonData/data/v2/muonGemNumbering.xml index 2347c2cc6fe8b..dc9d0ba0a87f9 100644 --- a/Geometry/MuonCommonData/data/v2/muonGemNumbering.xml +++ b/Geometry/MuonCommonData/data/v2/muonGemNumbering.xml @@ -417,7 +417,7 @@ - + @@ -425,7 +425,7 @@ - + diff --git a/Geometry/MuonCommonData/data/v3/gemf.xml b/Geometry/MuonCommonData/data/v3/gemf.xml index 535f7d0a5a3fb..e2c661b83374e 100644 --- a/Geometry/MuonCommonData/data/v3/gemf.xml +++ b/Geometry/MuonCommonData/data/v3/gemf.xml @@ -139,16 +139,16 @@ - - - - - - - - - - + + + + + + + + + + @@ -381,44 +381,44 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -756,93 +756,93 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/Geometry/MuonCommonData/data/v3/gemf_r10_v01.xml b/Geometry/MuonCommonData/data/v3/gemf_r10_v01.xml deleted file mode 100644 index 535f7d0a5a3fb..0000000000000 --- a/Geometry/MuonCommonData/data/v3/gemf_r10_v01.xml +++ /dev/null @@ -1,1118 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/MuonCommonData/data/v4/gemf.xml b/Geometry/MuonCommonData/data/v4/gemf.xml index fd7ac5222e06e..c2b20c95a6ec8 100644 --- a/Geometry/MuonCommonData/data/v4/gemf.xml +++ b/Geometry/MuonCommonData/data/v4/gemf.xml @@ -132,14 +132,14 @@ - - - - - - - - + + + + + + + + @@ -335,36 +335,36 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -654,74 +654,74 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/Geometry/MuonCommonData/data/v4/gemf_r08_v01.xml b/Geometry/MuonCommonData/data/v4/gemf_r08_v01.xml deleted file mode 100644 index fd7ac5222e06e..0000000000000 --- a/Geometry/MuonCommonData/data/v4/gemf_r08_v01.xml +++ /dev/null @@ -1,997 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/MuonCommonData/data/v5/gemf.xml b/Geometry/MuonCommonData/data/v5/gemf.xml index a64853d9437f4..3a9fe70c14868 100644 --- a/Geometry/MuonCommonData/data/v5/gemf.xml +++ b/Geometry/MuonCommonData/data/v5/gemf.xml @@ -246,14 +246,14 @@ - - - - - - - - + + + + + + + + @@ -394,36 +394,36 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -680,42 +680,42 @@ - + - + - + - + - + - + - + - + diff --git a/Geometry/MuonCommonData/data/v5/muonGemNumbering.xml b/Geometry/MuonCommonData/data/v5/muonGemNumbering.xml index 0a55dd35ce8c3..9736b3d6b53f0 100644 --- a/Geometry/MuonCommonData/data/v5/muonGemNumbering.xml +++ b/Geometry/MuonCommonData/data/v5/muonGemNumbering.xml @@ -417,7 +417,7 @@ - + @@ -425,7 +425,7 @@ - + diff --git a/Geometry/MuonCommonData/data/v6/gem21.xml b/Geometry/MuonCommonData/data/v6/gem21.xml new file mode 100644 index 0000000000000..762405da84a86 --- /dev/null +++ b/Geometry/MuonCommonData/data/v6/gem21.xml @@ -0,0 +1,1588 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonCommonData/data/v6/gemf.xml b/Geometry/MuonCommonData/data/v6/gemf.xml new file mode 100644 index 0000000000000..b8c71276d57f4 --- /dev/null +++ b/Geometry/MuonCommonData/data/v6/gemf.xml @@ -0,0 +1,1129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonCommonData/data/v6/mf.xml b/Geometry/MuonCommonData/data/v6/mf.xml new file mode 100644 index 0000000000000..fd9872c0fa8aa --- /dev/null +++ b/Geometry/MuonCommonData/data/v6/mf.xml @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonCommonData/data/v6/muonGemNumbering.xml b/Geometry/MuonCommonData/data/v6/muonGemNumbering.xml new file mode 100644 index 0000000000000..fa1afb464a4a5 --- /dev/null +++ b/Geometry/MuonCommonData/data/v6/muonGemNumbering.xml @@ -0,0 +1,442 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonCommonData/data/v7/me0.xml b/Geometry/MuonCommonData/data/v7/me0.xml new file mode 100644 index 0000000000000..c2f8ca02cfc43 --- /dev/null +++ b/Geometry/MuonCommonData/data/v7/me0.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonCommonData/data/v7/mf.xml b/Geometry/MuonCommonData/data/v7/mf.xml new file mode 100644 index 0000000000000..a8eec9faae7c8 --- /dev/null +++ b/Geometry/MuonCommonData/data/v7/mf.xml @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonCommonData/data/v7/mfshield.xml b/Geometry/MuonCommonData/data/v7/mfshield.xml new file mode 100644 index 0000000000000..e23697d01ff30 --- /dev/null +++ b/Geometry/MuonCommonData/data/v7/mfshield.xml @@ -0,0 +1,632 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonCommonData/data/v7/muonNumbering.xml b/Geometry/MuonCommonData/data/v7/muonNumbering.xml new file mode 100644 index 0000000000000..e55a82f292b03 --- /dev/null +++ b/Geometry/MuonCommonData/data/v7/muonNumbering.xml @@ -0,0 +1,465 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonNumbering/doc/MuonNumbering.doc b/Geometry/MuonNumbering/doc/MuonNumbering.doc index 98a6bc13c2573..84b0feddd4077 100644 --- a/Geometry/MuonNumbering/doc/MuonNumbering.doc +++ b/Geometry/MuonNumbering/doc/MuonNumbering.doc @@ -21,6 +21,8 @@ Main classes: - CSCNumberingScheme - DTNumberingScheme - RPCNumberingScheme +- GEMNumberingScheme +- ME0NumberingScheme Auxiliary classes: diff --git a/Geometry/MuonNumbering/interface/ME0NumberingScheme.h b/Geometry/MuonNumbering/interface/ME0NumberingScheme.h new file mode 100644 index 0000000000000..ba3b180499f77 --- /dev/null +++ b/Geometry/MuonNumbering/interface/ME0NumberingScheme.h @@ -0,0 +1,31 @@ +#ifndef MuonNumbering_ME0NumberingScheme_h +#define MuonNumbering_ME0NumberingScheme_h + +#include "Geometry/MuonNumbering/interface/MuonNumberingScheme.h" + +class MuonBaseNumber; +class DDCompactView; +class MuonDDDConstants; + +class ME0NumberingScheme : public MuonNumberingScheme { + +public: + + ME0NumberingScheme( const DDCompactView& cpv ); + ME0NumberingScheme( const MuonDDDConstants& muonConstants ); + + virtual ~ME0NumberingScheme(){}; + + virtual int baseNumberToUnitNumber(const MuonBaseNumber); + +private: + void initMe ( const MuonDDDConstants& muonConstants ); + + int theRegionLevel; + int theSectorLevel; + int theLayerLevel; + int theRollLevel; + +}; + +#endif diff --git a/Geometry/MuonNumbering/interface/MuonSubDetector.h b/Geometry/MuonNumbering/interface/MuonSubDetector.h index cec989f070cde..53211b5fac75f 100644 --- a/Geometry/MuonNumbering/interface/MuonSubDetector.h +++ b/Geometry/MuonNumbering/interface/MuonSubDetector.h @@ -5,13 +5,11 @@ * * class to handle muon sensitive detectors, * possible arguments for constructor: - * "MuonDTHits", "MuonCSCHits", "MuonRPCHits" + * "MuonDTHits", "MuonCSCHits", "MuonRPCHits", "MuonGEMHits", "MuonME0Hits" * * the function suIdName() returns the detector SuId * for the ROU factory * - * $Date: 2012/10/18 12:47:41 $ - * $Revision: 1.2 $ * \author Arno Straessner, CERN * */ @@ -23,7 +21,7 @@ class MuonSubDetector { /* * possible arguments for constructor: - * "MuonDTHits", "MuonCSCHits", "MuonRPCHits", "MuonGEMHits" + * "MuonDTHits", "MuonCSCHits", "MuonRPCHits", "MuonGEMHits", "MuonME0Hits" */ MuonSubDetector(std::string name); @@ -33,11 +31,12 @@ class MuonSubDetector { bool isEndcap(); bool isRpc(); bool isGem(); + bool isME0(); std::string name(); std::string suIdName(); private: - enum subDetector {barrel,endcap,rpc,gem,nodef}; + enum subDetector {barrel,endcap,rpc,gem,me0,nodef}; subDetector detector; std::string detectorName; }; diff --git a/Geometry/MuonNumbering/src/GEMNumberingScheme.cc b/Geometry/MuonNumbering/src/GEMNumberingScheme.cc index 5ba26e1d409d7..3ce213de73a48 100644 --- a/Geometry/MuonNumbering/src/GEMNumberingScheme.cc +++ b/Geometry/MuonNumbering/src/GEMNumberingScheme.cc @@ -56,8 +56,16 @@ int GEMNumberingScheme::baseNumberToUnitNumber(const MuonBaseNumber num) { if (num.getBaseNo(theRegionLevel) == 0) region = 1; else region =-1; - station = num.getBaseNo(theStationLevel)+1; - ring = num.getBaseNo(theRingLevel)+1; + + // All GEM super chambers in stations 1 and 2 are on ring 1. + // The long super chambers in station 2 are assigned *station 3* due + // to the current limitation in the definition of the GEMDetId, + // i.e. only 2 layers available per station. + ring = num.getSuperNo(theRingLevel); + station = num.getSuperNo(theStationLevel)+ring-1; + // GEM are only on the first ring + ring = 1; + roll = num.getBaseNo(theRollLevel)+1; const int copyno = num.getBaseNo(theSectorLevel) + 1; if (copyno < 50) { @@ -92,7 +100,7 @@ int GEMNumberingScheme::baseNumberToUnitNumber(const MuonBaseNumber num) { #ifdef LOCAL_DEBUG - std::cout << " DetId " << id << std::endl; + std::cout << id.rawId() << " DetId " << id << std::endl; #endif return id.rawId(); diff --git a/Geometry/MuonNumbering/src/ME0NumberingScheme.cc b/Geometry/MuonNumbering/src/ME0NumberingScheme.cc new file mode 100644 index 0000000000000..8437362490bd3 --- /dev/null +++ b/Geometry/MuonNumbering/src/ME0NumberingScheme.cc @@ -0,0 +1,83 @@ +#include "Geometry/MuonNumbering/interface/ME0NumberingScheme.h" +#include "Geometry/MuonNumbering/interface/MuonBaseNumber.h" +#include "Geometry/MuonNumbering/interface/MuonDDDConstants.h" +#include "DataFormats/MuonDetId/interface/ME0DetId.h" +#include + +//#define LOCAL_DEBUG + +ME0NumberingScheme::ME0NumberingScheme( const MuonDDDConstants& muonConstants ) { + initMe(muonConstants); +} + +ME0NumberingScheme::ME0NumberingScheme( const DDCompactView& cpv ){ + MuonDDDConstants muonConstants(cpv); + initMe(muonConstants); +} + +void ME0NumberingScheme::initMe ( const MuonDDDConstants& muonConstants ) { + int theLevelPart= muonConstants.getValue("level"); + theRegionLevel = muonConstants.getValue("m0_region")/theLevelPart; + theLayerLevel = muonConstants.getValue("m0_layer")/theLevelPart; + theSectorLevel = muonConstants.getValue("m0_sector")/theLevelPart; + theRollLevel = muonConstants.getValue("m0_roll")/theLevelPart; +#ifdef LOCAL_DEBUG + std::cout << "Initialize ME0NumberingScheme" <isGem()) { theNumbering=new GEMNumberingScheme(cpv); + } else if (theDetector->isME0()) { + theNumbering=new ME0NumberingScheme(cpv); } } diff --git a/Geometry/MuonNumbering/src/MuonSubDetector.cc b/Geometry/MuonNumbering/src/MuonSubDetector.cc index 2d7494750e38f..39b67c6e4f332 100644 --- a/Geometry/MuonNumbering/src/MuonSubDetector.cc +++ b/Geometry/MuonNumbering/src/MuonSubDetector.cc @@ -12,6 +12,8 @@ MuonSubDetector::MuonSubDetector(std::string name) detector=rpc; } else if (name=="MuonGEMHits") { detector=gem; + } else if (name=="MuonME0Hits") { + detector=me0; } else { std::cout << "MuonSubDetector::MuonSubDetector does not recognize "; std::cout << name < + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml b/Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml new file mode 100644 index 0000000000000..4ac41ce03b617 --- /dev/null +++ b/Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonSimData/data/upscope/muonSens.xml b/Geometry/MuonSimData/data/upscope/muonSens.xml new file mode 100644 index 0000000000000..54bab3b00c0c6 --- /dev/null +++ b/Geometry/MuonSimData/data/upscope/muonSens.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonSimData/data/v2/muonSens.xml b/Geometry/MuonSimData/data/v2/muonSens.xml index b898324708db1..0529c79b68a2f 100644 --- a/Geometry/MuonSimData/data/v2/muonSens.xml +++ b/Geometry/MuonSimData/data/v2/muonSens.xml @@ -42,7 +42,7 @@ - + diff --git a/Geometry/MuonSimData/data/v3/muonSens.xml b/Geometry/MuonSimData/data/v3/muonSens.xml new file mode 100644 index 0000000000000..8755c5e806b37 --- /dev/null +++ b/Geometry/MuonSimData/data/v3/muonSens.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MuonSimData/data/v4/muonSens.xml b/Geometry/MuonSimData/data/v4/muonSens.xml new file mode 100644 index 0000000000000..4ac41ce03b617 --- /dev/null +++ b/Geometry/MuonSimData/data/v4/muonSens.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/RPCGeometry/test/testRPCGeometry_cfg.py b/Geometry/RPCGeometry/test/testRPCGeometry_cfg.py index 8039c26fd0b30..b2c5404432aa7 100644 --- a/Geometry/RPCGeometry/test/testRPCGeometry_cfg.py +++ b/Geometry/RPCGeometry/test/testRPCGeometry_cfg.py @@ -1,13 +1,14 @@ import FWCore.ParameterSet.Config as cms process = cms.Process("Demo") -process.load('Configuration.Geometry.GeometryExtended_cff') +process.load('Configuration.Geometry.GeometryExtended2023HGCalMuon_cff') +process.load('Configuration.Geometry.GeometryExtended2023HGCalMuonReco_cff') process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') -process.load('Geometry.CommonDetUnit.globalTrackingGeometry_cfi') -process.load('Geometry.MuonNumbering.muonNumberingInitialization_cfi') -from Configuration.AlCa.autoCond import autoCond -process.GlobalTag.globaltag = autoCond['mc'] +process.load('FWCore.MessageLogger.MessageLogger_cfi') + +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:upgrade2019', '') process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1) diff --git a/Geometry/RPCGeometryBuilder/data/Nominal/RPCSpecs.xml b/Geometry/RPCGeometryBuilder/data/Nominal/RPCSpecs.xml new file mode 100644 index 0000000000000..5ce32bce6b4f5 --- /dev/null +++ b/Geometry/RPCGeometryBuilder/data/Nominal/RPCSpecs.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/RPCGeometryBuilder/data/RPCSpecs.xml b/Geometry/RPCGeometryBuilder/data/RPCSpecs.xml new file mode 100644 index 0000000000000..3269297f5d4dc --- /dev/null +++ b/Geometry/RPCGeometryBuilder/data/RPCSpecs.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/RPCGeometryBuilder/data/RPCSpecs_rpcstaged.xml b/Geometry/RPCGeometryBuilder/data/RPCSpecs_rpcstaged.xml new file mode 100644 index 0000000000000..613af35600c21 --- /dev/null +++ b/Geometry/RPCGeometryBuilder/data/RPCSpecs_rpcstaged.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/RPCGeometryBuilder/data/RPCSpecs_upscope.xml b/Geometry/RPCGeometryBuilder/data/RPCSpecs_upscope.xml new file mode 100644 index 0000000000000..c65f5fcf419a1 --- /dev/null +++ b/Geometry/RPCGeometryBuilder/data/RPCSpecs_upscope.xml @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/RPCGeometryBuilder/data/upscope/RPCSpecs.xml b/Geometry/RPCGeometryBuilder/data/upscope/RPCSpecs.xml new file mode 100644 index 0000000000000..c65f5fcf419a1 --- /dev/null +++ b/Geometry/RPCGeometryBuilder/data/upscope/RPCSpecs.xml @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/Records/doc/Records.doc b/Geometry/Records/doc/Records.doc index d16f4e9123b72..093b1d87fe114 100644 --- a/Geometry/Records/doc/Records.doc +++ b/Geometry/Records/doc/Records.doc @@ -47,6 +47,8 @@ - PHcalRcd - PZdcRcd - RPCRecoGeometryRcd +- GEMRecoGeometryRcd +- ME0RecoGeometryRcd - TrackerDigiGeometryRecord - ZDCGeometryRecord diff --git a/Geometry/Records/interface/HcalRecNumberingRecord.h b/Geometry/Records/interface/HcalRecNumberingRecord.h new file mode 100644 index 0000000000000..105e0b1a52478 --- /dev/null +++ b/Geometry/Records/interface/HcalRecNumberingRecord.h @@ -0,0 +1,29 @@ +#ifndef GeometryRecord_HcalRecNumberingRecord_h +#define GeometryRecord_HcalRecNumberingRecord_h +// -*- C++ -*- +// +// Package: Record +// Class : HcalRecNumberingRecord +// +/**\class HcalRecNumberingRecord HcalRecNumberingRecord.h Geometry/Record/interface/HcalRecNumberingRecord.h + + Description: + + Usage: + + +*/ +// +// Author: +// Created: Thu Dec 24 16:41:02 PDT 2013 +// $Id: HcalRecNumberingRecord.h,v 1.0 2013/12/25 10:22:50 sunanda Exp $ +// + +#include +#include "Geometry/Records/interface/IdealGeometryRecord.h" +#include "Geometry/Records/interface/HcalSimNumberingRecord.h" +#include "FWCore/Framework/interface/DependentRecordImplementation.h" + +class HcalRecNumberingRecord : public edm::eventsetup::DependentRecordImplementation > {}; + +#endif diff --git a/Geometry/Records/interface/HcalSimNumberingRecord.h b/Geometry/Records/interface/HcalSimNumberingRecord.h new file mode 100644 index 0000000000000..8ff17fb5d9298 --- /dev/null +++ b/Geometry/Records/interface/HcalSimNumberingRecord.h @@ -0,0 +1,28 @@ +#ifndef GeometryRecord_HcalSimNumberingRecord_h +#define GeometryRecord_HcalSimNumberingRecord_h +// -*- C++ -*- +// +// Package: Record +// Class : HcalSimNumberingRecord +// +/**\class HcalSimNumberingRecord HcalSimNumberingRecord.h Geometry/Record/interface/HcalSimNumberingRecord.h + + Description: + + Usage: + + +*/ +// +// Author: +// Created: Thu Dec 24 16:41:02 PDT 2013 +// $Id: HcalSimNumberingRecord.h,v 1.0 2013/12/25 10:22:50 sunanda Exp $ +// + +#include +#include "Geometry/Records/interface/IdealGeometryRecord.h" +#include "FWCore/Framework/interface/DependentRecordImplementation.h" + +class HcalSimNumberingRecord : public edm::eventsetup::DependentRecordImplementation > {}; + +#endif diff --git a/Geometry/Records/interface/ME0RecoGeometryRcd.h b/Geometry/Records/interface/ME0RecoGeometryRcd.h new file mode 100644 index 0000000000000..879a2a72bb92c --- /dev/null +++ b/Geometry/Records/interface/ME0RecoGeometryRcd.h @@ -0,0 +1,6 @@ +#ifndef Geometry_ME0RecoGeometryRcd_H +#define Geometry_ME0RecoGeometryRcd_H + +#include "FWCore/Framework/interface/EventSetupRecordImplementation.h" +class ME0RecoGeometryRcd : public edm::eventsetup::EventSetupRecordImplementation {}; +#endif diff --git a/Geometry/Records/interface/MuonGeometryRecord.h b/Geometry/Records/interface/MuonGeometryRecord.h index 2c4463749ca4e..5c5d3bad228e2 100644 --- a/Geometry/Records/interface/MuonGeometryRecord.h +++ b/Geometry/Records/interface/MuonGeometryRecord.h @@ -13,6 +13,7 @@ #include "FWCore/Framework/interface/DependentRecordImplementation.h" #include "Geometry/Records/interface/IdealGeometryRecord.h" #include "Geometry/Records/interface/MuonNumberingRecord.h" +#include "Geometry/Records/interface/ME0RecoGeometryRcd.h" #include "Geometry/Records/interface/GEMRecoGeometryRcd.h" #include "Geometry/Records/interface/RPCRecoGeometryRcd.h" #include "Geometry/Records/interface/CSCRecoGeometryRcd.h" @@ -25,7 +26,7 @@ #include "CondFormats/AlignmentRecord/interface/CSCAlignmentErrorRcd.h" #include "CondFormats/AlignmentRecord/interface/GlobalPositionRcd.h" -class MuonGeometryRecord : public edm::eventsetup::DependentRecordImplementation > {}; +class MuonGeometryRecord : public edm::eventsetup::DependentRecordImplementation > {}; #endif diff --git a/Geometry/Records/src/ES_HcalDDDConstants.cc b/Geometry/Records/src/ES_HcalDDDConstants.cc new file mode 100644 index 0000000000000..09ce372485582 --- /dev/null +++ b/Geometry/Records/src/ES_HcalDDDConstants.cc @@ -0,0 +1,6 @@ +#include "Geometry/HcalCommonData/interface/HcalDDDSimConstants.h" +#include "Geometry/HcalCommonData/interface/HcalDDDRecConstants.h" +#include "FWCore/Utilities/interface/typelookup.h" + +TYPELOOKUP_DATA_REG(HcalDDDSimConstants); +TYPELOOKUP_DATA_REG(HcalDDDRecConstants); diff --git a/Geometry/Records/src/HcalRecNumberingRecrod.cc b/Geometry/Records/src/HcalRecNumberingRecrod.cc new file mode 100644 index 0000000000000..b54816a8c4030 --- /dev/null +++ b/Geometry/Records/src/HcalRecNumberingRecrod.cc @@ -0,0 +1,16 @@ +// -*- C++ -*- +// +// Package: Record +// Class : HcalRecNumberingRecord +// +// Implementation: +// +// +// Author: +// Created: Thu Dec 24 16:41:02 PDT 2013 +// $Id: HcalRecNumberingRecord.cc,v 1.0 2013/12/24 19:59:39 sunanda Exp $ + +#include "Geometry/Records/interface/HcalRecNumberingRecord.h" +#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h" + +EVENTSETUP_RECORD_REG(HcalRecNumberingRecord); diff --git a/Geometry/Records/src/HcalSimNumberingRecrod.cc b/Geometry/Records/src/HcalSimNumberingRecrod.cc new file mode 100644 index 0000000000000..fb5953c0dd52c --- /dev/null +++ b/Geometry/Records/src/HcalSimNumberingRecrod.cc @@ -0,0 +1,16 @@ +// -*- C++ -*- +// +// Package: Record +// Class : HcalSimNumberingRecord +// +// Implementation: +// +// +// Author: +// Created: Thu Dec 24 16:41:02 PDT 2013 +// $Id: HcalSimNumberingRecord.cc,v 1.0 2013/12/24 19:59:39 sunanda Exp $ + +#include "Geometry/Records/interface/HcalSimNumberingRecord.h" +#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h" + +EVENTSETUP_RECORD_REG(HcalSimNumberingRecord); diff --git a/Geometry/Records/src/ME0RecoGeometryRcd.cc b/Geometry/Records/src/ME0RecoGeometryRcd.cc new file mode 100644 index 0000000000000..dc0e78184f6f2 --- /dev/null +++ b/Geometry/Records/src/ME0RecoGeometryRcd.cc @@ -0,0 +1,4 @@ +#include "Geometry/Records/interface/ME0RecoGeometryRcd.h" +#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h" + +EVENTSETUP_RECORD_REG(ME0RecoGeometryRcd); diff --git a/L1Trigger/CSCTriggerPrimitives/src/CSCMotherboardME11.cc b/L1Trigger/CSCTriggerPrimitives/src/CSCMotherboardME11.cc index bc6c22417122b..f1a4d41d4f857 100644 --- a/L1Trigger/CSCTriggerPrimitives/src/CSCMotherboardME11.cc +++ b/L1Trigger/CSCTriggerPrimitives/src/CSCMotherboardME11.cc @@ -63,8 +63,9 @@ const int CSCMotherboardME11::lut_wg_vs_hs_me1b[48][2] = { // 1st index: pt value = {5,10,15,20,30,40} // 2nd index: bending angle for odd numbered chambers // 3rd index: bending angle for even numbered chambers -const double CSCMotherboardME11::lut_pt_vs_dphi_gemcsc[6][3] = { - {5., 0.02203511, 0.00930056}, +const double CSCMotherboardME11::lut_pt_vs_dphi_gemcsc[7][3] = { + {5., 0.02203511, 0.00930056}, + {6 , 0.0182579 , 0.00790009}, {10., 0.01066000, 0.00483286}, {15., 0.00722795, 0.00363230}, {20., 0.00562598, 0.00304878}, @@ -825,14 +826,28 @@ void CSCMotherboardME11::matchGEMPads(const GEMCSCPadDigiCollection* gemPads) { gem_matched = true; min_dphi = dphi; + //gem_bx = id_pad.second->bx(); } } if (gem_matched) { if (debug_gem_matching) std::cout<<" GOT MATCHED GEM!"< lut_pt_vs_dphi_gemcsc[i+1][oddEven]) + iFound = i+1; + } + } + lct.setGEMDPhiBits(iFound); + if (debug_gem_matching) std::cout<<"found bend angle "< + +typedef EcalTDigitizer EBDigitizer ; +typedef EcalTDigitizer EEDigitizer ; + +class APDSimParameters ; +class EBHitResponse ; +class EEHitResponse ; +class CaloHitResponse ; +class EcalSimParameterMap ; +class EcalCoder ; +class EcalElectronicsSim ; +class CaloGeometry ; +class EBDigiCollection ; +class EEDigiCollection ; +class PileUpEventPrincipal ; + +namespace edm { + class EDProducer; + class Event; + class EventSetup; + template class Handle; + class ParameterSet; +} + +class EcalPhaseIIDigiProducer : public DigiAccumulatorMixMod { + public: + + EcalPhaseIIDigiProducer( const edm::ParameterSet& params , edm::EDProducer& mixMod); + virtual ~EcalPhaseIIDigiProducer(); + + virtual void initializeEvent(edm::Event const& e, edm::EventSetup const& c); + virtual void accumulate(edm::Event const& e, edm::EventSetup const& c); + virtual void accumulate(PileUpEventPrincipal const& e, edm::EventSetup const& c); + virtual void finalizeEvent(edm::Event& e, edm::EventSetup const& c); + + private: + + virtual void cacheEBDigis( const EBDigiCollection* ebDigiPtr ) const { } + virtual void cacheEEDigis( const EEDigiCollection* eeDigiPtr ) const { } + + typedef edm::Handle > HitsHandle; + void accumulateCaloHits(HitsHandle const& ebHandle, HitsHandle const& eeHandle, HitsHandle const& esHandle, int bunchCrossing); + + void checkGeometry(const edm::EventSetup& eventSetup) ; + + void updateGeometry() ; + + void checkCalibrations(const edm::Event& event, const edm::EventSetup& eventSetup) ; + + const APDShape m_APDShape ; + const EBShape m_EBShape ; + const EEShape m_EEShape ; + + const std::string m_EBdigiCollection ; + const std::string m_EEdigiCollection ; + const std::string m_ESdigiCollection ; + const std::string m_hitsProducerTag ; + + bool m_useLCcorrection; + + const bool m_apdSeparateDigi ; + + const double m_EBs25notCont ; + const double m_EEs25notCont ; + + const unsigned int m_readoutFrameSize ; + protected: + const EcalSimParameterMap* m_ParameterMap ; + private: + const std::string m_apdDigiTag ; + const APDSimParameters* m_apdParameters ; + + EBHitResponse* m_APDResponse ; + protected: + EBHitResponse* m_EBResponse ; + EEHitResponse* m_EEResponse ; + private: + const bool m_addESNoise ; + + const bool m_doFastES ; + + EBDigitizer* m_APDDigitizer ; + EBDigitizer* m_BarrelDigitizer ; + EEDigitizer* m_EndcapDigitizer ; + + EcalElectronicsSim* m_ElectronicsSim ; + EcalCoder* m_Coder ; + + EcalElectronicsSim* m_APDElectronicsSim ; + EcalCoder* m_APDCoder ; + + const CaloGeometry* m_Geometry ; + + CorrelatedNoisifier* m_EBCorrNoise[3] ; + CorrelatedNoisifier* m_EECorrNoise[3] ; +}; + +#endif diff --git a/SimCalorimetry/EcalSimProducers/plugins/SealModule.cc b/SimCalorimetry/EcalSimProducers/plugins/SealModule.cc index 4b7641c709e74..124ec29b47bb2 100644 --- a/SimCalorimetry/EcalSimProducers/plugins/SealModule.cc +++ b/SimCalorimetry/EcalSimProducers/plugins/SealModule.cc @@ -1,6 +1,8 @@ #include "FWCore/Framework/interface/MakerMacros.h" #include "SimGeneral/MixingModule/interface/DigiAccumulatorMixModFactory.h" #include "SimCalorimetry/EcalSimProducers/interface/EcalDigiProducer.h" +#include "SimCalorimetry/EcalSimProducers/interface/EcalPhaseIIDigiProducer.h" DEFINE_DIGI_ACCUMULATOR(EcalDigiProducer); +DEFINE_DIGI_ACCUMULATOR(EcalPhaseIIDigiProducer); diff --git a/SimCalorimetry/EcalSimProducers/src/EcalPhaseIIDigiProducer.cc b/SimCalorimetry/EcalSimProducers/src/EcalPhaseIIDigiProducer.cc new file mode 100644 index 0000000000000..c0dcf77c840b4 --- /dev/null +++ b/SimCalorimetry/EcalSimProducers/src/EcalPhaseIIDigiProducer.cc @@ -0,0 +1,449 @@ +#include "FWCore/Framework/interface/Event.h" +#include "SimCalorimetry/EcalSimProducers/interface/EcalPhaseIIDigiProducer.h" +#include "SimCalorimetry/EcalSimAlgos/interface/EBHitResponse.h" +#include "SimCalorimetry/EcalSimAlgos/interface/EEHitResponse.h" +#include "SimCalorimetry/CaloSimAlgos/interface/CaloHitResponse.h" +#include "SimCalorimetry/EcalSimAlgos/interface/EcalSimParameterMap.h" +#include "SimCalorimetry/EcalSimAlgos/interface/APDSimParameters.h" +#include "DataFormats/EcalDigi/interface/EcalDigiCollections.h" +#include "SimCalorimetry/EcalSimAlgos/interface/EcalCoder.h" +#include "SimCalorimetry/EcalSimAlgos/interface/EcalElectronicsSim.h" +#include "Geometry/CaloGeometry/interface/CaloGeometry.h" +#include "CalibFormats/CaloObjects/interface/CaloSamples.h" +#include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "DataFormats/Common/interface/Handle.h" +#include "FWCore/Framework/interface/EDProducer.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "SimGeneral/MixingModule/interface/PileUpEventPrincipal.h" +#include "SimDataFormats/CaloHit/interface/PCaloHit.h" +#include "Geometry/Records/interface/CaloGeometryRecord.h" +#include "CondFormats/EcalObjects/interface/EcalPedestals.h" +#include "CondFormats/DataRecord/interface/EcalPedestalsRcd.h" +#include "CondFormats/EcalObjects/interface/EcalIntercalibConstantsMC.h" +#include "CondFormats/DataRecord/interface/EcalIntercalibConstantsMCRcd.h" +#include "CalibCalorimetry/EcalLaserCorrection/interface/EcalLaserDbService.h" +#include "CalibCalorimetry/EcalLaserCorrection/interface/EcalLaserDbRecord.h" +#include "CondFormats/EcalObjects/interface/EcalADCToGeVConstant.h" +#include "CondFormats/DataRecord/interface/EcalADCToGeVConstantRcd.h" +#include "CondFormats/EcalObjects/interface/EcalGainRatios.h" +#include "CondFormats/DataRecord/interface/EcalGainRatiosRcd.h" + +#include "Geometry/EcalAlgo/interface/EcalEndcapGeometry.h" + +EcalPhaseIIDigiProducer::EcalPhaseIIDigiProducer( const edm::ParameterSet& params, edm::EDProducer& mixMod ) : + DigiAccumulatorMixMod(), + m_APDShape ( params.getParameter( "apdShapeTstart" ) , + params.getParameter( "apdShapeTau" ) ) , + m_EBShape ( ) , + m_EEShape ( ) , + m_EBdigiCollection ( params.getParameter("EBdigiCollection") ) , + m_EEdigiCollection ( params.getParameter("EEdigiCollection") ) , + m_ESdigiCollection ( params.getParameter("ESdigiCollection") ) , + m_hitsProducerTag ( params.getParameter("hitsProducer" ) ) , + m_useLCcorrection ( params.getUntrackedParameter("UseLCcorrection") ) , + m_apdSeparateDigi ( params.getParameter ("apdSeparateDigi") ) , + + m_EBs25notCont ( params.getParameter ("EBs25notContainment") ) , + m_EEs25notCont ( params.getParameter ("EEs25notContainment") ) , + + m_readoutFrameSize ( params.getParameter ("readoutFrameSize") ) , + m_ParameterMap ( new EcalSimParameterMap( + params.getParameter ("simHitToPhotoelectronsBarrel") , + params.getParameter ("simHitToPhotoelectronsEndcap") , + params.getParameter ("photoelectronsToAnalogBarrel") , + params.getParameter ("photoelectronsToAnalogEndcap") , + params.getParameter ("samplingFactor") , + params.getParameter ("timePhase") , + m_readoutFrameSize , + params.getParameter ("binOfMaximum") , + params.getParameter ("doPhotostatistics") , + params.getParameter ("syncPhase") ) ) , + + m_apdDigiTag ( params.getParameter ("apdDigiTag" ) ) , + m_apdParameters ( new APDSimParameters( + params.getParameter ("apdAddToBarrel" ) , + m_apdSeparateDigi , + params.getParameter ("apdSimToPELow" ) , + params.getParameter ("apdSimToPEHigh" ) , + params.getParameter ("apdTimeOffset" ) , + params.getParameter ("apdTimeOffWidth" ) , + params.getParameter ("apdDoPEStats" ) , + m_apdDigiTag , + params.getParameter > ( "apdNonlParms" ) ) ) , + + m_APDResponse ( !m_apdSeparateDigi ? 0 : + new EBHitResponse( m_ParameterMap , + &m_EBShape , + true , + m_apdParameters , + &m_APDShape ) ) , + + m_EBResponse ( new EBHitResponse( m_ParameterMap , + &m_EBShape , + false , // barrel + m_apdParameters , + &m_APDShape ) ) , + + m_EEResponse ( new EEHitResponse( m_ParameterMap, + &m_EEShape ) ) , + m_addESNoise ( params.getParameter ("doESNoise") ) , + m_doFastES ( params.getParameter ("doFast" ) ) , + m_APDDigitizer ( 0 ) , + m_BarrelDigitizer ( 0 ) , + m_EndcapDigitizer ( 0 ) , + m_ElectronicsSim ( 0 ) , + m_Coder ( 0 ) , + m_APDElectronicsSim ( 0 ) , + m_APDCoder ( 0 ) , + m_Geometry ( 0 ) , + m_EBCorrNoise ( ) , + m_EECorrNoise ( ) +{ + if(m_apdSeparateDigi) mixMod.produces(m_apdDigiTag); + mixMod.produces(m_EBdigiCollection); + mixMod.produces(m_EEdigiCollection); + mixMod.produces(m_ESdigiCollection); + + const std::vector ebCorMatG12 = params.getParameter< std::vector >("EBCorrNoiseMatrixG12"); + const std::vector eeCorMatG12 = params.getParameter< std::vector >("EECorrNoiseMatrixG12"); + const std::vector ebCorMatG06 = params.getParameter< std::vector >("EBCorrNoiseMatrixG06"); + const std::vector eeCorMatG06 = params.getParameter< std::vector >("EECorrNoiseMatrixG06"); + const std::vector ebCorMatG01 = params.getParameter< std::vector >("EBCorrNoiseMatrixG01"); + const std::vector eeCorMatG01 = params.getParameter< std::vector >("EECorrNoiseMatrixG01"); + + const bool applyConstantTerm = params.getParameter ("applyConstantTerm"); + const double rmsConstantTerm = params.getParameter ("ConstantTerm"); + + const bool addNoise = params.getParameter ("doNoise"); + const bool cosmicsPhase = params.getParameter ("cosmicsPhase"); + const double cosmicsShift = params.getParameter ("cosmicsShift"); + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + // further phase for cosmics studies + if( cosmicsPhase ) + { + m_EBResponse->setPhaseShift( 1. + cosmicsShift ) ; + m_EEResponse->setPhaseShift( 1. + cosmicsShift ) ; + } + + EcalCorrMatrix ebMatrix[ 3 ] ; + EcalCorrMatrix eeMatrix[ 3 ] ; + + assert( ebCorMatG12.size() == m_readoutFrameSize ) ; + assert( eeCorMatG12.size() == m_readoutFrameSize ) ; + assert( ebCorMatG06.size() == m_readoutFrameSize ) ; + assert( eeCorMatG06.size() == m_readoutFrameSize ) ; + assert( ebCorMatG01.size() == m_readoutFrameSize ) ; + assert( eeCorMatG01.size() == m_readoutFrameSize ) ; + + assert( 1.e-7 > fabs( ebCorMatG12[0] - 1.0 ) ) ; + assert( 1.e-7 > fabs( ebCorMatG06[0] - 1.0 ) ) ; + assert( 1.e-7 > fabs( ebCorMatG01[0] - 1.0 ) ) ; + assert( 1.e-7 > fabs( eeCorMatG12[0] - 1.0 ) ) ; + assert( 1.e-7 > fabs( eeCorMatG06[0] - 1.0 ) ) ; + assert( 1.e-7 > fabs( eeCorMatG01[0] - 1.0 ) ) ; + + for ( unsigned int row ( 0 ) ; row != m_readoutFrameSize ; ++row ) + { + assert( 0 == row || 1. >= ebCorMatG12[row] ) ; + assert( 0 == row || 1. >= ebCorMatG06[row] ) ; + assert( 0 == row || 1. >= ebCorMatG01[row] ) ; + assert( 0 == row || 1. >= eeCorMatG12[row] ) ; + assert( 0 == row || 1. >= eeCorMatG06[row] ) ; + assert( 0 == row || 1. >= eeCorMatG01[row] ) ; + for ( unsigned int column ( 0 ) ; column <= row ; ++column ) + { + const unsigned int index ( row - column ) ; + ebMatrix[0]( row, column ) = ebCorMatG12[ index ] ; + eeMatrix[0]( row, column ) = eeCorMatG12[ index ] ; + ebMatrix[1]( row, column ) = ebCorMatG06[ index ] ; + eeMatrix[1]( row, column ) = eeCorMatG06[ index ] ; + ebMatrix[2]( row, column ) = ebCorMatG01[ index ] ; + eeMatrix[2]( row, column ) = eeCorMatG01[ index ] ; + } + } + + m_EBCorrNoise[0] = new CorrelatedNoisifier( ebMatrix[0] ) ; + m_EECorrNoise[0] = new CorrelatedNoisifier( eeMatrix[0] ) ; + m_EBCorrNoise[1] = new CorrelatedNoisifier( ebMatrix[1] ) ; + m_EECorrNoise[1] = new CorrelatedNoisifier( eeMatrix[1] ) ; + m_EBCorrNoise[2] = new CorrelatedNoisifier( ebMatrix[2] ) ; + m_EECorrNoise[2] = new CorrelatedNoisifier( eeMatrix[2] ) ; + + m_Coder = new EcalCoder( addNoise , + m_EBCorrNoise[0] , + m_EECorrNoise[0] , + m_EBCorrNoise[1] , + m_EECorrNoise[1] , + m_EBCorrNoise[2] , + m_EECorrNoise[2] ) ; + + m_ElectronicsSim = new EcalElectronicsSim( m_ParameterMap , + m_Coder , + applyConstantTerm , + rmsConstantTerm ) ; + + if( m_apdSeparateDigi ) + { + m_APDCoder = new EcalCoder( false , + m_EBCorrNoise[0] , + m_EECorrNoise[0] , + m_EBCorrNoise[1] , + m_EECorrNoise[1] , + m_EBCorrNoise[2] , + m_EECorrNoise[2] ) ; + + m_APDElectronicsSim = new EcalElectronicsSim( m_ParameterMap , + m_APDCoder , + applyConstantTerm , + rmsConstantTerm ) ; + + m_APDDigitizer = new EBDigitizer( m_APDResponse , + m_APDElectronicsSim , + false ) ; + } + + m_BarrelDigitizer = new EBDigitizer( m_EBResponse , + m_ElectronicsSim , + addNoise ) ; + + m_EndcapDigitizer = new EEDigitizer( m_EEResponse , + m_ElectronicsSim , + addNoise ) ; +} + +EcalPhaseIIDigiProducer::~EcalPhaseIIDigiProducer() +{ + delete m_EndcapDigitizer ; + delete m_BarrelDigitizer ; + delete m_APDDigitizer ; + delete m_APDElectronicsSim ; + delete m_APDCoder ; + delete m_ElectronicsSim ; + delete m_Coder ; + delete m_EBCorrNoise[0] ; + delete m_EECorrNoise[0] ; + delete m_EBCorrNoise[1] ; + delete m_EECorrNoise[1] ; + delete m_EBCorrNoise[2] ; + delete m_EECorrNoise[2] ; + + delete m_EEResponse ; + delete m_EBResponse ; + delete m_APDResponse ; + + delete m_apdParameters ; + delete m_ParameterMap ; +} + +void +EcalPhaseIIDigiProducer::initializeEvent(edm::Event const& event, edm::EventSetup const& eventSetup) { + checkGeometry( eventSetup ); + checkCalibrations( event, eventSetup ); + m_BarrelDigitizer->initializeHits(); + if(m_apdSeparateDigi) { + m_APDDigitizer->initializeHits(); + } + m_EndcapDigitizer->initializeHits(); +} + +void +EcalPhaseIIDigiProducer::accumulateCaloHits(HitsHandle const& ebHandle, HitsHandle const& eeHandle, HitsHandle const& esHandle, int bunchCrossing) { + if(ebHandle.isValid()) { + m_BarrelDigitizer->add(*ebHandle.product(), bunchCrossing); + + if(m_apdSeparateDigi) { + m_APDDigitizer->add(*ebHandle.product(), bunchCrossing); + } + } + + if(eeHandle.isValid()) { + m_EndcapDigitizer->add(*eeHandle.product(), bunchCrossing); + } +} + +void +EcalPhaseIIDigiProducer::accumulate(edm::Event const& e, edm::EventSetup const& eventSetup) { + // Step A: Get Inputs + edm::InputTag ebTag(m_hitsProducerTag, "EcalHitsEB"); + edm::Handle > ebHandle; + e.getByLabel(ebTag, ebHandle); + + edm::InputTag eeTag(m_hitsProducerTag, "EcalHitsEE"); + edm::Handle > eeHandle; + e.getByLabel(eeTag, eeHandle); + + edm::InputTag esTag(m_hitsProducerTag, "EcalHitsES"); + edm::Handle > esHandle; + e.getByLabel(esTag, esHandle); + + accumulateCaloHits(ebHandle, eeHandle, esHandle, 0); +} + +void +EcalPhaseIIDigiProducer::accumulate(PileUpEventPrincipal const& e, edm::EventSetup const& eventSetup) { + // Step A: Get Inputs + edm::InputTag ebTag(m_hitsProducerTag, "EcalHitsEB"); + edm::Handle > ebHandle; + e.getByLabel(ebTag, ebHandle); + + edm::InputTag eeTag(m_hitsProducerTag, "EcalHitsEE"); + edm::Handle > eeHandle; + e.getByLabel(eeTag, eeHandle); + + edm::InputTag esTag(m_hitsProducerTag, "EcalHitsES"); + edm::Handle > esHandle; + e.getByLabel(esTag, esHandle); + + accumulateCaloHits(ebHandle, eeHandle, esHandle, e.bunchCrossing()); +} + +void +EcalPhaseIIDigiProducer::finalizeEvent(edm::Event& event, edm::EventSetup const& eventSetup) { + // Step B: Create empty output + std::auto_ptr apdResult ( !m_apdSeparateDigi ? 0 : + new EBDigiCollection() ) ; + std::auto_ptr barrelResult ( new EBDigiCollection() ) ; + std::auto_ptr endcapResult ( new EEDigiCollection() ) ; + std::auto_ptr preshowerResult( new ESDigiCollection() ) ; + + // run the algorithm + + m_BarrelDigitizer->run( *barrelResult ) ; + cacheEBDigis( &*barrelResult ) ; + + edm::LogInfo("DigiInfo") << "EB Digis: " << barrelResult->size() ; + + if( m_apdSeparateDigi ) { + m_APDDigitizer->run( *apdResult ) ; + edm::LogInfo("DigiInfo") << "APD Digis: " << apdResult->size() ; + } + + m_EndcapDigitizer->run( *endcapResult ) ; + edm::LogInfo("EcalDigi") << "EE Digis: " << endcapResult->size() ; + cacheEEDigis( &*endcapResult ) ; + + // Step D: Put outputs into event + if( m_apdSeparateDigi ) { + event.put( apdResult, m_apdDigiTag ) ; + } + + event.put( barrelResult, m_EBdigiCollection ) ; + event.put( endcapResult, m_EEdigiCollection ) ; + event.put( preshowerResult, m_ESdigiCollection ) ; +} + +void +EcalPhaseIIDigiProducer::checkCalibrations(const edm::Event& event, const edm::EventSetup& eventSetup ) +{ + // Pedestals from event setup + + edm::ESHandle dbPed ; + eventSetup.get().get( dbPed ) ; + const EcalPedestals* pedestals ( dbPed.product() ) ; + + m_Coder->setPedestals( pedestals ) ; + if( 0 != m_APDCoder ) m_APDCoder->setPedestals( pedestals ) ; + + // Ecal Intercalibration Constants + edm::ESHandle pIcal ; + eventSetup.get().get( pIcal ) ; + const EcalIntercalibConstantsMC* ical ( pIcal.product() ) ; + + m_Coder->setIntercalibConstants( ical ) ; + if( 0 != m_APDCoder) m_APDCoder->setIntercalibConstants( ical ) ; + + m_EBResponse->setIntercal( ical ) ; + if( 0 != m_APDResponse ) m_APDResponse->setIntercal( ical ) ; + + // Ecal LaserCorrection Constants + edm::ESHandle laser; + eventSetup.get().get(laser); + const edm::TimeValue_t eventTimeValue = event.time().value(); + + m_EBResponse->setEventTime(eventTimeValue); + m_EBResponse->setLaserConstants(laser.product(), m_useLCcorrection); + + m_EEResponse->setEventTime(eventTimeValue); + m_EEResponse->setLaserConstants(laser.product(), m_useLCcorrection); + + // ADC -> GeV Scale + edm::ESHandle pAgc; + eventSetup.get().get(pAgc); + const EcalADCToGeVConstant* agc = pAgc.product(); + + // Gain Ratios + edm::ESHandle pRatio; + eventSetup.get().get(pRatio); + const EcalGainRatios* gr = pRatio.product(); + + m_Coder->setGainRatios( gr ); + if( 0 != m_APDCoder) m_APDCoder->setGainRatios( gr ); + + EcalMGPAGainRatio * defaultRatios = new EcalMGPAGainRatio(); + + double theGains[m_Coder->NGAINS+1]; + theGains[0] = 0.; + theGains[3] = 1.; + theGains[2] = defaultRatios->gain6Over1() ; + theGains[1] = theGains[2]*(defaultRatios->gain12Over6()) ; + + LogDebug("EcalDigi") << " Gains: " << "\n" << " g1 = " << theGains[1] + << "\n" << " g2 = " << theGains[2] + << "\n" << " g3 = " << theGains[3] ; + + delete defaultRatios; + + const double EBscale ( + ( agc->getEBValue())*theGains[1]*(m_Coder->MAXADC)*m_EBs25notCont ) ; + + LogDebug("EcalDigi") << " GeV/ADC = " << agc->getEBValue() + << "\n" << " notCont = " << m_EBs25notCont + << "\n" << " saturation for EB = " << EBscale + << ", " << m_EBs25notCont ; + + const double EEscale ( + (agc->getEEValue())*theGains[1]*(m_Coder->MAXADC)*m_EEs25notCont ) ; + + LogDebug("EcalDigi") << " GeV/ADC = " << agc->getEEValue() + << "\n" << " notCont = " << m_EEs25notCont + << "\n" << " saturation for EB = " << EEscale + << ", " << m_EEs25notCont ; + + m_Coder->setFullScaleEnergy( EBscale , + EEscale ) ; + if( 0 != m_APDCoder ) m_APDCoder->setFullScaleEnergy( EBscale , + EEscale ) ; +} + +void +EcalPhaseIIDigiProducer::checkGeometry( const edm::EventSetup & eventSetup ) +{ + // TODO find a way to avoid doing this every event + edm::ESHandle hGeometry ; + eventSetup.get().get( hGeometry ) ; + + const CaloGeometry* pGeometry = &*hGeometry; + + if( pGeometry != m_Geometry ) + { + m_Geometry = pGeometry; + updateGeometry(); + } +} + +void +EcalPhaseIIDigiProducer::updateGeometry() +{ + if( 0 != m_APDResponse ) m_APDResponse->setGeometry( + m_Geometry->getSubdetectorGeometry( DetId::Ecal, EcalBarrel ) ) ; + m_EBResponse->setGeometry( + m_Geometry->getSubdetectorGeometry( DetId::Ecal, EcalBarrel ) ) ; + m_EEResponse->setGeometry( + m_Geometry->getSubdetectorGeometry( DetId::Ecal, EcalEndcap ) ) ; +} diff --git a/SimG4CMS/Calo/src/CaloSD.cc b/SimG4CMS/Calo/src/CaloSD.cc index 733ada194b9b3..20d125fec2093 100644 --- a/SimG4CMS/Calo/src/CaloSD.cc +++ b/SimG4CMS/Calo/src/CaloSD.cc @@ -259,7 +259,7 @@ bool CaloSD::getStepInfo(G4Step* aStep) { currentID.setID(unitID, time, primaryID, depth); #ifdef DebugLog G4TouchableHistory* touch =(G4TouchableHistory*)(theTrack->GetTouchable()); - LogDebug("CaloSim") << "CaloSD:: GetStepInfo for" + edm::LogInfo("CaloSim") << "CaloSD:: GetStepInfo for" << " PV " << touch->GetVolume(0)->GetName() << " PVid = " << touch->GetReplicaNumber(0) << " MVid = " << touch->GetReplicaNumber(1) @@ -267,7 +267,7 @@ bool CaloSD::getStepInfo(G4Step* aStep) { << " Edeposit = " << edepositEM << " " << edepositHAD; } else { G4TouchableHistory* touch =(G4TouchableHistory*)(theTrack->GetTouchable()); - LogDebug("CaloSim") << "CaloSD:: GetStepInfo for" + edm::LogInfo("CaloSim") << "CaloSD:: GetStepInfo for" << " PV " << touch->GetVolume(0)->GetName() << " PVid = " << touch->GetReplicaNumber(0) << " MVid = " << touch->GetReplicaNumber(1) @@ -359,11 +359,11 @@ int CaloSD::getNumberOfHits() { return theHC->entries(); } CaloG4Hit* CaloSD::createNewHit() { #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD::CreateNewHit for" + edm::LogInfo("CaloSim") << "CaloSD::CreateNewHit for" << " Unit " << currentID.unitID() << " " << currentID.depth() << " Edeposit = " << edepositEM << " " << edepositHAD; - LogDebug("CaloSim") << " primary " << currentID.trackID() + edm::LogInfo("CaloSim") << " primary " << currentID.trackID() << " time slice " << currentID.timeSliceID() << " For Track " << theTrack->GetTrackID() << " which is a " <GetDefinition()->GetParticleName() @@ -373,9 +373,9 @@ CaloG4Hit* CaloSD::createNewHit() { << " and created by " ; if (theTrack->GetCreatorProcess()!=NULL) - LogDebug("CaloSim") << theTrack->GetCreatorProcess()->GetProcessName() ; + edm::LogInfo("CaloSim") << theTrack->GetCreatorProcess()->GetProcessName() ; else - LogDebug("CaloSim") << "NO process"; + edm::LogInfo("CaloSim") << "NO process"; #endif CaloG4Hit* aHit; @@ -408,14 +408,14 @@ CaloG4Hit* CaloSD::createNewHit() { trkInfo->putInHistory(); // trkInfo->setAncestor(); #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD: set save the track " << currentID.trackID() + edm::LogInfo("CaloSim") << "CaloSD: set save the track " << currentID.trackID() << " with Hit"; #endif } } else { TrackWithHistory * trkh = tkMap[currentID.trackID()]; #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD : TrackwithHistory pointer for " + edm::LogInfo("CaloSim") << "CaloSD : TrackwithHistory pointer for " << currentID.trackID() << " is " << trkh; #endif if (trkh != NULL) { @@ -423,7 +423,7 @@ CaloG4Hit* CaloSD::createNewHit() { if (etrack >= energyCut) { trkh->save(); #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD: set save the track " + edm::LogInfo("CaloSim") << "CaloSD: set save the track " << currentID.trackID() << " with Hit"; #endif } @@ -438,7 +438,7 @@ void CaloSD::updateHit(CaloG4Hit* aHit) { if (edepositEM+edepositHAD != 0) { aHit->addEnergyDeposit(edepositEM,edepositHAD); #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD: Add energy deposit in " << currentID + edm::LogInfo("CaloSim") << "CaloSD: Add energy deposit in " << currentID << " em " << edepositEM/MeV << " hadronic " << edepositHAD/MeV << " MeV"; #endif @@ -453,7 +453,7 @@ void CaloSD::resetForNewPrimary(G4ThreeVector point, double energy) { entranceLocal = setToLocal(entrancePoint, preStepPoint->GetTouchable()); incidentEnergy = energy; #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD: Incident energy " << incidentEnergy/GeV + edm::LogInfo("CaloSim") << "CaloSD: Incident energy " << incidentEnergy/GeV << " GeV and" << " entrance point " << entrancePoint << " (Global) " << entranceLocal << " (Local)"; #endif @@ -472,7 +472,7 @@ double CaloSD::getAttenuation(G4Step* aStep, double birk1, double birk2, double if (std::abs(charge) >= 2.) rkb /= birk3; // based on alpha particle data weight = 1./(1.+rkb*dedx+c*dedx*dedx); #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD::getAttenuation in " << mat->GetName() + edm::LogInfo("CaloSim") << "CaloSD::getAttenuation in " << mat->GetName() << " Charge " << charge << " dE/dx " << dedx << " Birk Const " << rkb << ", " << c << " Weight = " << weight << " dE " << aStep->GetTotalEnergyDeposit(); @@ -488,7 +488,7 @@ void CaloSD::update(const BeginOfRun *) { epPDG = theParticleTable->FindParticle(particleName="e+")->GetPDGEncoding(); gammaPDG = theParticleTable->FindParticle(particleName="gamma")->GetPDGEncoding(); #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD: Particle code for e- = " << emPDG + edm::LogInfo("CaloSim") << "CaloSD: Particle code for e- = " << emPDG << " for e+ = " << epPDG << " for gamma = " << gammaPDG; #endif initRun(); @@ -497,7 +497,7 @@ void CaloSD::update(const BeginOfRun *) { void CaloSD::update(const BeginOfEvent *) { #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD: Dispatched BeginOfEvent for " << GetName() + edm::LogInfo("CaloSim") << "CaloSD: Dispatched BeginOfEvent for " << GetName() << " !" ; #endif clearHits(); @@ -516,11 +516,11 @@ void CaloSD::update(const EndOfTrack * trk) { TrackWithHistory * trkH = (*trksForThisEvent)[it]; if (trkH->trackID() == (unsigned int)(id)) tkMap[id] = trkH; #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD: get track " << it << " from " + edm::LogInfo("CaloSim") << "CaloSD: get track " << it << " from " << "Container of size " << trksForThisEvent->size() << " with ID " << trkH->trackID(); } else { - LogDebug("CaloSim") << "CaloSD: get track " << it << " from " + edm::LogInfo("CaloSim") << "CaloSD: get track " << it << " from " << "Container of size " << trksForThisEvent->size() << " with no ID"; #endif @@ -558,11 +558,11 @@ void CaloSD::clearHits() { previousID.reset(); primIDSaved = -99; #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD: Clears hit vector for " << GetName() << " " << slave; + edm::LogInfo("CaloSim") << "CaloSD: Clears hit vector for " << GetName() << " " << slave; #endif slave->Initialize(); #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD: Initialises slave SD for " << GetName(); + edm::LogInfo("CaloSim") << "CaloSD: Initialises slave SD for " << GetName(); #endif } @@ -575,7 +575,7 @@ int CaloSD::getTrackID(G4Track* aTrack) { if (trkInfo) { primaryID = trkInfo->getIDonCaloSurface(); #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD: hit update from track Id on Calo Surface " + edm::LogInfo("CaloSim") << "CaloSD: hit update from track Id on Calo Surface " << trkInfo->getIDonCaloSurface(); #endif } else { @@ -595,7 +595,7 @@ bool CaloSD::filterHit(CaloG4Hit* hit, double time) { double emin(eminHit); if (hit->getDepth() > 0) emin = eminHitD; #ifdef DebugLog - LogDebug("CaloSim") << "Depth " << hit->getDepth() << " Emin = " << emin << " (" + edm::LogInfo("CaloSim") << "Depth " << hit->getDepth() << " Emin = " << emin << " (" << eminHit << ", " << eminHitD << ")"; #endif return ((time <= tmaxHit) && (hit->getEnergyDeposit() > emin)); @@ -638,7 +638,7 @@ bool CaloSD::saveHit(CaloG4Hit* aHit) { } // edm::LogInfo("CaloSim") << "CalosD: Track ID " << aHit->getTrackID() << " changed to " << tkID << " by SimTrackManager" << " Status " << ok; #ifdef DebugLog - LogDebug("CaloSim") << "CalosD: Track ID " << aHit->getTrackID() + edm::LogInfo("CaloSim") << "CalosD: Track ID " << aHit->getTrackID() << " changed to " << tkID << " by SimTrackManager" << " Status " << ok; #endif @@ -647,7 +647,7 @@ bool CaloSD::saveHit(CaloG4Hit* aHit) { slave->processHits(aHit->getUnitID(), aHit->getEM()/GeV, aHit->getHadr()/GeV, time, tkID, aHit->getDepth()); #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD: Store Hit at " << std::hex + edm::LogInfo("CaloSim") << "CaloSD: Store Hit at " << std::hex << aHit->getUnitID() << std::dec << " " << aHit->getDepth() << " due to " << tkID << " in time " << time << " of energy " @@ -665,7 +665,7 @@ void CaloSD::update(const BeginOfTrack * trk) { if ( trkInfo->isPrimary() ) primary = (*trk)()->GetTrackID(); #ifdef DebugLog - LogDebug("CaloSim") << "New track: isPrimary " << trkInfo->isPrimary() + edm::LogInfo("CaloSim") << "New track: isPrimary " << trkInfo->isPrimary() << " primary ID = " << primary << " primary ancestor ID " << primAncestor; #endif @@ -686,7 +686,7 @@ void CaloSD::cleanHitCollection() { std::vector* theCollection = theHC->GetVector(); #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD: collection before merging, size = " << theHC->entries(); + edm::LogInfo("CaloSim") << "CaloSD: collection before merging, size = " << theHC->entries(); #endif selIndex.reserve(theHC->entries()-cleanIndex); @@ -697,10 +697,10 @@ void CaloSD::cleanHitCollection() { hitvec.swap(*theCollection); sort((hitvec.begin()+cleanIndex), hitvec.end(), CaloG4HitLess()); #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD::cleanHitCollection: sort hits in buffer " + edm::LogInfo("CaloSim") << "CaloSD::cleanHitCollection: sort hits in buffer " << "starting from element = " << cleanIndex; for (unsigned int i = 0; i().swap(hitvec); @@ -739,14 +739,14 @@ void CaloSD::cleanHitCollection() { } #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD: collection after merging, size = " << theHC->entries(); + edm::LogInfo("CaloSim") << "CaloSD: collection after merging, size = " << theHC->entries(); #endif int addhit = 0; #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD: Size of reusehit after merge = " << reusehit.size(); - LogDebug("CaloSim") << "CaloSD: Starting hit selection from index = " << cleanIndex; + edm::LogInfo("CaloSim") << "CaloSD: Size of reusehit after merge = " << reusehit.size(); + edm::LogInfo("CaloSim") << "CaloSD: Starting hit selection from index = " << cleanIndex; #endif selIndex.reserve(theCollection->size()-cleanIndex); @@ -759,7 +759,7 @@ void CaloSD::cleanHitCollection() { if (corrTOFBeam) time += correctT; if (!filterHit(aHit,time)) { #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD: dropped CaloG4Hit " << " " << *aHit; + edm::LogInfo("CaloSim") << "CaloSD: dropped CaloG4Hit " << " " << *aHit; #endif // create the list of hits to be reused @@ -772,7 +772,7 @@ void CaloSD::cleanHitCollection() { } #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD: Size of reusehit after selection = " << reusehit.size() + edm::LogInfo("CaloSim") << "CaloSD: Size of reusehit after selection = " << reusehit.size() << " Number of added hit = " << addhit; #endif if (useMap) { @@ -792,7 +792,7 @@ void CaloSD::cleanHitCollection() { std::vector().swap(selIndex); #ifdef DebugLog - LogDebug("CaloSim") << "CaloSD: hit collection after selection, size = " + edm::LogInfo("CaloSim") << "CaloSD: hit collection after selection, size = " << theHC->entries(); theHC->PrintAllHits(); #endif diff --git a/SimG4CMS/Calo/src/HCalSD.cc b/SimG4CMS/Calo/src/HCalSD.cc index 2f0ca2b19ff75..92b53513ff822 100644 --- a/SimG4CMS/Calo/src/HCalSD.cc +++ b/SimG4CMS/Calo/src/HCalSD.cc @@ -265,15 +265,14 @@ HCalSD::HCalSD(G4String name, const DDCompactView & cpv, DDsvalues_type sv(fv6.mergedSpecifics()); //Special Geometry parameters gpar = getDDDArray("gparHF",sv); - edm::LogInfo("HFShower") << "HFShowerParam: " << gpar.size() - << " gpar (cm)"; + edm::LogInfo("HcalSim") << "HCalSD: " << gpar.size() << " gpar (cm)"; for (unsigned int ig=0; igGetTrack()->GetTrackID() <<" (" << aStep->GetTrack()->GetDefinition()->GetParticleName() @@ -432,7 +431,7 @@ bool HCalSD::ProcessHits(G4Step * aStep, G4TouchableHistory * ) { #endif getFromParam(aStep, weight); #ifdef DebugLog - LogDebug("HcalSim") << "HCalSD: " << getNumberOfHits() + edm::LogInfo("HcalSim") << "HCalSD: " << getNumberOfHits() << " hits afterParamS*"; #endif } else { @@ -440,7 +439,7 @@ bool HCalSD::ProcessHits(G4Step * aStep, G4TouchableHistory * ) { if (parCode == mupPDG || parCode == mumPDG ) notaMuon = false; if (useShowerLibrary && notaMuon) { #ifdef DebugLog - LogDebug("HcalSim") << "HCalSD: Starts shower library from " + edm::LogInfo("HcalSim") << "HCalSD: Starts shower library from " << nameVolume << " for Track " << aStep->GetTrack()->GetTrackID() << " (" << aStep->GetTrack()->GetDefinition()->GetParticleName() << ")"; @@ -448,7 +447,7 @@ bool HCalSD::ProcessHits(G4Step * aStep, G4TouchableHistory * ) { getFromLibrary(aStep, weight); } else if (isItFibre(lv)) { #ifdef DebugLog - LogDebug("HcalSim") << "HCalSD: Hit at Fibre in " << nameVolume + edm::LogInfo("HcalSim") << "HCalSD: Hit at Fibre in " << nameVolume << " for Track " << aStep->GetTrack()->GetTrackID() <<" (" << aStep->GetTrack()->GetDefinition()->GetParticleName() << ")"; @@ -458,7 +457,7 @@ bool HCalSD::ProcessHits(G4Step * aStep, G4TouchableHistory * ) { } } else if (isItPMT(lv)) { #ifdef DebugLog - LogDebug("HcalSim") << "HCalSD: Hit from PMT parametrization from " + edm::LogInfo("HcalSim") << "HCalSD: Hit from PMT parametrization from " << nameVolume << " for Track " << aStep->GetTrack()->GetTrackID() << " (" << aStep->GetTrack()->GetDefinition()->GetParticleName() << ")"; @@ -466,7 +465,7 @@ bool HCalSD::ProcessHits(G4Step * aStep, G4TouchableHistory * ) { if (usePMTHit && showerPMT) getHitPMT(aStep); } else if (isItStraightBundle(lv) || isItConicalBundle(lv)) { #ifdef DebugLog - LogDebug("HcalSim") << "HCalSD: Hit from FibreBundle from " + edm::LogInfo("HcalSim") << "HCalSD: Hit from FibreBundle from " << nameVolume << " for Track " << aStep->GetTrack()->GetTrackID() << " (" << aStep->GetTrack()->GetDefinition()->GetParticleName() << ")"; @@ -475,7 +474,7 @@ bool HCalSD::ProcessHits(G4Step * aStep, G4TouchableHistory * ) { getHitFibreBundle(aStep, isItConicalBundle(lv)); } else { #ifdef DebugLog - LogDebug("HcalSim") << "HCalSD: Hit from standard path from " + edm::LogInfo("HcalSim") << "HCalSD: Hit from standard path from " << nameVolume << " for Track " << aStep->GetTrack()->GetTrackID() << " (" << aStep->GetTrack()->GetDefinition()->GetParticleName() << ")"; @@ -1016,7 +1015,7 @@ void HCalSD::getHitFibreBundle (G4Step* aStep, bool type) { } if (hitPoint.z() < 0) etaR =-etaR; #ifdef DebugLog - LogDebug("HcalSim") << "HCalSD::Hit for Detector " << det << " etaR " + edm::LogInfo("HcalSim") << "HCalSD::Hit for Detector " << det << " etaR " << etaR << " phi " << phi/deg << " depth " <GetPostStepPoint()->GetGlobalTime()); @@ -1035,7 +1034,7 @@ void HCalSD::getHitFibreBundle (G4Step* aStep, bool type) { #endif #ifdef DebugLog double beta = preStepPoint->GetBeta(); - LogDebug("HcalSim") << "HCalSD::getHitFibreBundle 1 hit for " << GetName() + edm::LogInfo("HcalSim") << "HCalSD::getHitFibreBundle 1 hit for " << GetName() << " of " << primaryID << " with " << theTrack->GetDefinition()->GetParticleName() << " of " << preStepPoint->GetKineticEnergy()/GeV diff --git a/SimG4CMS/Calo/src/HFShowerParam.cc b/SimG4CMS/Calo/src/HFShowerParam.cc index b4cb215a249a8..c7190af9b6c7c 100644 --- a/SimG4CMS/Calo/src/HFShowerParam.cc +++ b/SimG4CMS/Calo/src/HFShowerParam.cc @@ -414,14 +414,12 @@ std::vector HFShowerParam::getHits(G4Step * aStep, } std::vector HFShowerParam::getDDDArray(const std::string & str, - const DDsvalues_type & sv) -{ + const DDsvalues_type & sv) { #ifdef DebugLog LogDebug("HFShower") << "HFShowerParam:getDDDArray called for " << str; #endif DDValue value(str); - if (DDfetch(&sv,value)) - { + if (DDfetch(&sv,value)) { #ifdef DebugLog LogDebug("HFShower") << value; #endif diff --git a/SimG4CMS/Calo/src/HcalNumberingScheme.cc b/SimG4CMS/Calo/src/HcalNumberingScheme.cc index cbc03852e92e7..42e5d6f52b478 100644 --- a/SimG4CMS/Calo/src/HcalNumberingScheme.cc +++ b/SimG4CMS/Calo/src/HcalNumberingScheme.cc @@ -30,11 +30,12 @@ uint32_t HcalNumberingScheme::getUnitID(const HcalNumberingFromDDD::HcalID id){ uint32_t index = HcalDetId(subdet,etaR,id.phis,id.depth).rawId(); #ifdef DebugLog - LogDebug("HcalSim") << "HcalNumberingScheme det = " << id.subdet - << " depth/lay = " << id.depth << "/" << id.lay - << " zside = " << id.zside << " eta/R = " << id.etaR - << " phi = " << id.phis << " oldphi = " << id.phi - << " packed index = 0x" << std::hex << index << std::dec; + edm::LogInfo("HcalSim") << "HcalNumberingScheme det = " << id.subdet + << " depth/lay = " << id.depth << "/" << id.lay + << " zside = " << id.zside << " eta/R = " << id.etaR + << " phi = " << id.phis << " oldphi = " << id.phi + << " packed index = 0x" << std::hex << index + << std::dec; #endif return index; diff --git a/SimG4CMS/Calo/test/python/runHF4_cfg.py b/SimG4CMS/Calo/test/python/runHF4_cfg.py index 14246cca89128..b2aa1367ef5c5 100644 --- a/SimG4CMS/Calo/test/python/runHF4_cfg.py +++ b/SimG4CMS/Calo/test/python/runHF4_cfg.py @@ -13,7 +13,7 @@ process.MessageLogger = cms.Service("MessageLogger", destinations = cms.untracked.vstring('cout'), categories = cms.untracked.vstring('CaloSim', - 'EcalSim', 'G4cerr', 'G4cout', + 'EcalSim', 'G4cerr', 'G4cout', 'HCalGeom', 'HcalSim', 'HFShower'), debugModules = cms.untracked.vstring('*'), cout = cms.untracked.PSet( @@ -36,6 +36,9 @@ G4cout = cms.untracked.PSet( limit = cms.untracked.int32(-1) ), + HCalGeom = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ), HcalSim = cms.untracked.PSet( limit = cms.untracked.int32(0) ), diff --git a/SimG4CMS/Calo/test/python/runPhase0_cfg.py b/SimG4CMS/Calo/test/python/runPhase0_cfg.py new file mode 100644 index 0000000000000..aa9513f0a903b --- /dev/null +++ b/SimG4CMS/Calo/test/python/runPhase0_cfg.py @@ -0,0 +1,108 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("PROD") + +process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") +process.load("IOMC.EventVertexGenerators.VtxSmearedGauss_cfi") +process.load("Geometry.HcalCommonData.testPhase0GeometryXML_cfi") +process.load("Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi") +process.load("Geometry.MuonNumbering.muonNumberingInitialization_cfi") +process.load("Geometry.HcalCommonData.hcalSimNumberingInitialization_cfi") +process.load("Configuration.StandardSequences.MagneticField_cff") +process.load("Configuration.EventContent.EventContent_cff") +process.load("SimG4Core.Application.g4SimHits_cfi") + +process.MessageLogger = cms.Service("MessageLogger", + destinations = cms.untracked.vstring('cout'), + categories = cms.untracked.vstring('CaloSim', 'G4cout', 'G4cerr', + 'HCalGeom', 'HcalSim', 'HFShower', + 'SimTrackManager', 'SimG4CoreGeometry'), + debugModules = cms.untracked.vstring('*'), + cout = cms.untracked.PSet( + threshold = cms.untracked.string('DEBUG'), + INFO = cms.untracked.PSet( + limit = cms.untracked.int32(0) + ), + DEBUG = cms.untracked.PSet( + limit = cms.untracked.int32(0) + ), + G4cerr = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ), + G4cout = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ), + SimTrackManager = cms.untracked.PSet( + limit = cms.untracked.int32(0) + ), + SimG4CoreGeometry = cms.untracked.PSet( + limit = cms.untracked.int32(0) + ), + HCalGeom = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ), + CaloSim = cms.untracked.PSet( + limit = cms.untracked.int32(0) + ), + HFShower = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ), + HcalSim = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ) + ) +) + +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(2) +) + +process.source = cms.Source("EmptySource", + firstRun = cms.untracked.uint32(1), + firstEvent = cms.untracked.uint32(1) +) + +process.generator = cms.EDProducer("FlatRandomPtGunProducer", + PGunParameters = cms.PSet( + PartID = cms.vint32(211), + MinEta = cms.double(-3.0), + MaxEta = cms.double(3.0), + MinPhi = cms.double(-3.14159265359), + MaxPhi = cms.double(3.14159265359), + MinPt = cms.double(100.), + MaxPt = cms.double(100.) + ), + Verbosity = cms.untracked.int32(0), + AddAntiParticle = cms.bool(False) +) + +process.o1 = cms.OutputModule("PoolOutputModule", + process.FEVTSIMEventContent, + fileName = cms.untracked.string('simevent_QGSP_FTFP_BERT_EML.root') +) + +process.Timing = cms.Service("Timing") + +process.SimpleMemoryCheck = cms.Service("SimpleMemoryCheck", + oncePerEventMode = cms.untracked.bool(True), + showMallocInfo = cms.untracked.bool(True), + dump = cms.untracked.bool(True), + ignoreTotal = cms.untracked.int32(1) +) + +process.Tracer = cms.Service("Tracer") + +process.common_maximum_timex = cms.PSet( + MaxTrackTime = cms.double(1000.0), + MaxTimeNames = cms.vstring(), + MaxTrackTimes = cms.vdouble() +) +process.p1 = cms.Path(process.generator*process.VtxSmeared*process.g4SimHits) +process.outpath = cms.EndPath(process.o1) +process.g4SimHits.Physics.type = 'SimG4Core/Physics/QGSP_FTFP_BERT_EML' +process.g4SimHits.Physics.Verbosity = 0 diff --git a/SimG4CMS/Forward/interface/BHMNumberingScheme.h b/SimG4CMS/Forward/interface/BHMNumberingScheme.h new file mode 100644 index 0000000000000..a8bcd411fdfaa --- /dev/null +++ b/SimG4CMS/Forward/interface/BHMNumberingScheme.h @@ -0,0 +1,33 @@ +#ifndef SimG4CMSForwardBHMNumberingScheme_h +#define SimG4CMSForwardBHMNumberingScheme_h + +#include "G4Step.hh" +#include +#include "G4ThreeVector.hh" +#include + + + + +class BHMNumberingScheme { + +public: + BHMNumberingScheme(); + virtual ~BHMNumberingScheme(); + + virtual unsigned int getUnitID(const G4Step* aStep) const; + + // Utilities to get detector levels during a step + virtual int detectorLevel(const G4Step*) const; + virtual void detectorLevel(const G4Step*, int&, int*, G4String*) const; + + + //protected: + + static unsigned int packIndex(int subdet, int zside, int station); + static void unpackIndex(const unsigned int& idx, int& subdet, int& zside, + int& station); + +}; + +#endif diff --git a/SimG4CMS/Forward/interface/BHMSD.h b/SimG4CMS/Forward/interface/BHMSD.h new file mode 100644 index 0000000000000..58f73f05d333d --- /dev/null +++ b/SimG4CMS/Forward/interface/BHMSD.h @@ -0,0 +1,136 @@ +#ifndef SimG4CMSForward_BHMSD_h +#define SimG4CMSForward_BHMSD_h + +#include "SimG4Core/Notification/interface/Observer.h" +#include "SimG4Core/SensitiveDetector/interface/SensitiveTkDetector.h" + +#include "SimG4Core/Notification/interface/BeginOfRun.h" +#include "SimG4Core/Notification/interface/BeginOfEvent.h" +#include "SimG4Core/Notification/interface/EndOfEvent.h" + +#include "SimG4CMS/Forward/interface/BscG4Hit.h" +#include "SimG4CMS/Forward/interface/BscG4HitCollection.h" +#include "SimG4CMS/Forward/interface/BHMNumberingScheme.h" + + +#include "G4Step.hh" +#include "G4StepPoint.hh" +#include "G4Track.hh" +#include "G4VPhysicalVolume.hh" + +#include + +class TrackingSlaveSD; + +class TrackInformation; +class SimTrackManager; +class TrackingSlaveSD; +class UpdatablePSimHit; +class G4ProcessTypeEnumerator; +class G4TrackToParticleID; + + +//------------------------------------------------------------------- + +class BHMSD : public SensitiveTkDetector, + public Observer, + public Observer, + public Observer { + +public: + + BHMSD(std::string, const DDCompactView &, SensitiveDetectorCatalog &, + edm::ParameterSet const &, const SimTrackManager* ); + + + virtual ~BHMSD(); + + virtual bool ProcessHits(G4Step *,G4TouchableHistory *); + virtual uint32_t setDetUnitId(G4Step*); + + virtual void Initialize(G4HCofThisEvent * HCE); + virtual void EndOfEvent(G4HCofThisEvent * eventHC); + virtual void clear(); + virtual void DrawAll(); + virtual void PrintAll(); + + virtual double getEnergyDeposit(G4Step* step); + void fillHits(edm::PSimHitContainer&, std::string use); + + std::vector getNames(); + +private: + void update(const BeginOfRun *); + void update(const BeginOfEvent *); + void update(const ::EndOfEvent *); + virtual void clearHits(); + +private: + + G4ThreeVector SetToLocal(G4ThreeVector global); + G4ThreeVector SetToLocalExit(G4ThreeVector globalPoint); + void GetStepInfo(G4Step* aStep); + G4bool HitExists(); + void CreateNewHit(); + void UpdateHit(); + void StoreHit(BscG4Hit*); + void ResetForNewPrimary(); + void Summarize(); + + +private: + + TrackingSlaveSD *slave; + BHMNumberingScheme *numberingScheme; + + G4ThreeVector entrancePoint, exitPoint; + G4ThreeVector theEntryPoint, theExitPoint; + + float incidentEnergy; + G4int primID ; + + std::string name; + G4int hcID; + BscG4HitCollection* theHC; + const SimTrackManager* theManager; + + G4int tsID; + BscG4Hit* currentHit; + G4Track* theTrack; + G4VPhysicalVolume* currentPV; + uint32_t unitID, previousUnitID; + G4int primaryID, tSliceID; + G4double tSlice; + + G4StepPoint* preStepPoint; + G4StepPoint* postStepPoint; + float edeposit; + + G4ThreeVector hitPoint; + G4ThreeVector hitPointExit; + G4ThreeVector hitPointLocal; + G4ThreeVector hitPointLocalExit; + + float Pabs, Tof, Eloss; + short ParticleType; + float ThetaAtEntry, PhiAtEntry; + + int ParentId; + float Vx,Vy,Vz; + float X,Y,Z; + + int eventno; + +protected: + + float edepositEM, edepositHAD; + G4int emPDG; + G4int epPDG; + G4int gammaPDG; +}; + +#endif + + + + diff --git a/SimG4CMS/Forward/interface/ZdcNumberingScheme.h b/SimG4CMS/Forward/interface/ZdcNumberingScheme.h index 45c4781a45e81..5e23920955908 100644 --- a/SimG4CMS/Forward/interface/ZdcNumberingScheme.h +++ b/SimG4CMS/Forward/interface/ZdcNumberingScheme.h @@ -21,8 +21,8 @@ class ZdcNumberingScheme { virtual unsigned int getUnitID(const G4Step* aStep) const ; /** pack the Unit ID for Zdc
- * z = 1,2 = -z,+z; subDet = 1,2,3 = EM,Lum,HAD; fiber = 1-96 (EM,HAD), 1 (Lum); - * channel = 1-5 (EM), layer# (Lum), 1-3 (HAD) + * z = 1,2 = -z,+z; subDet = 1,2,3,4 = EM,HAD,Lum,Flow; fiber = 1-96 (EM,HAD), 1 (Lum,Flow); + * channel = 1-5 (EM), layer# (Lum), 1-3 (HAD), 1-16 (Flow) */ static unsigned int packZdcIndex(int subDet, int layer, int fiber, int channel, int z); diff --git a/SimG4CMS/Forward/plugins/module.cc b/SimG4CMS/Forward/plugins/module.cc index 9a6cb6f94e106..4c4daed643bca 100644 --- a/SimG4CMS/Forward/plugins/module.cc +++ b/SimG4CMS/Forward/plugins/module.cc @@ -9,6 +9,7 @@ #include "SimG4CMS/Forward/interface/BscTest.h" #include "SimG4CMS/Forward/interface/BscSD.h" +#include "SimG4CMS/Forward/interface/BHMSD.h" #include "SimG4Core/SensitiveDetector/interface/SensitiveDetectorPluginFactory.h" #include "SimG4Core/Watcher/interface/SimWatcherFactory.h" #include "FWCore/PluginManager/interface/ModuleDef.h" @@ -22,6 +23,8 @@ typedef ZdcSD ZdcSensitiveDetector; DEFINE_SENSITIVEDETECTOR(ZdcSensitiveDetector); typedef BscSD BSCSensitiveDetector; DEFINE_SENSITIVEDETECTOR(BSCSensitiveDetector); +typedef BHMSD BHMSensitiveDetector; +DEFINE_SENSITIVEDETECTOR(BHMSensitiveDetector); DEFINE_SENSITIVEDETECTOR(PLTSensitiveDetector); DEFINE_SIMWATCHER (CastorTestAnalysis); DEFINE_SIMWATCHER (ZdcTestAnalysis); diff --git a/SimG4CMS/Forward/src/BHMNumberingScheme.cc b/SimG4CMS/Forward/src/BHMNumberingScheme.cc new file mode 100644 index 0000000000000..80aa2e1f9d0f2 --- /dev/null +++ b/SimG4CMS/Forward/src/BHMNumberingScheme.cc @@ -0,0 +1,85 @@ +#include "SimG4CMS/Forward/interface/BHMNumberingScheme.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "CLHEP/Units/GlobalSystemOfUnits.h" +#include "globals.hh" + +BHMNumberingScheme::BHMNumberingScheme() { + LogDebug("BHMSim") << " Creating BHMNumberingScheme" ; +} + +BHMNumberingScheme::~BHMNumberingScheme() { + LogDebug("BHMSim") << " Deleting BHMNumberingScheme" ; +} + +int BHMNumberingScheme::detectorLevel(const G4Step* aStep) const { + + //Find number of levels + const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable(); + int level = 0; + if (touch) level = ((touch->GetHistoryDepth())+1); + return level; +} + +void BHMNumberingScheme::detectorLevel(const G4Step* aStep, int& level, + int* copyno, G4String* name) const { + + //Get name and copy numbers + if (level > 0) { + const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable(); + for (int ii = 0; ii < level; ii++) { + int i = level - ii - 1; + name[ii] = touch->GetVolume(i)->GetName(); + copyno[ii] = touch->GetReplicaNumber(i); + } + } +} + +unsigned int BHMNumberingScheme::getUnitID(const G4Step* aStep) const { + + unsigned intindex=0; + int level = detectorLevel(aStep); + + LogDebug("BHMSim") << "BHMNumberingScheme number of levels= " << level; + if (level > 0) { + int* copyno = new int[level]; + G4String* name = new G4String[level]; + detectorLevel(aStep, level, copyno, name); + + if (level > 3) { + int subdet = copyno[0]; + int zside = copyno[3]; + int station = copyno[1]; + intindex = packIndex (subdet, zside, station); + LogDebug("BHMSim") << "BHMNumberingScheme : subdet " << subdet + << " zside " << zside << " station " << station; + } + delete[] copyno; + delete[] name; + } + LogDebug("BHMSim") << "BHMNumberingScheme : UnitID 0x" << std::hex + << intindex << std::dec; + + return intindex; + +} + +unsigned BHMNumberingScheme::packIndex(int subdet, int zside, int station) { + + unsigned int idx = ((6<<28)|(subdet&0x7)<<25); // Use 6 as the detector name + idx |= ((zside&0x3)<<5) | (station&0x1F); // bits 0-4:station 5-6:side + LogDebug("BHMSim") << "BHM packing: subdet " << subdet + << " zside " << zside << " station " << station + << "-> 0x" << std::hex << idx << std::dec; + return idx; +} + +void BHMNumberingScheme::unpackIndex(const unsigned int& idx, int& subdet, + int& zside, int& station) { + + subdet = (idx>>25)>>0x7; + zside = (idx>>5)&0x3; + station = idx&0x1F; + LogDebug("BHMSim") << " Bsc unpacking: 0x " << std::hex << idx << std::dec + << " -> subdet " << subdet << " zside " << zside + << " station " << station ; +} diff --git a/SimG4CMS/Forward/src/BHMSD.cc b/SimG4CMS/Forward/src/BHMSD.cc new file mode 100644 index 0000000000000..4813015f1a6cf --- /dev/null +++ b/SimG4CMS/Forward/src/BHMSD.cc @@ -0,0 +1,410 @@ +#include "SimG4Core/Notification/interface/TrackInformation.h" +#include "SimG4Core/Notification/interface/G4TrackToParticleID.h" +#include "SimG4Core/Physics/interface/G4ProcessTypeEnumerator.h" + +#include "SimDataFormats/SimHitMaker/interface/TrackingSlaveSD.h" +#include "SimDataFormats/TrackingHit/interface/UpdatablePSimHit.h" +#include "SimG4CMS/Forward/interface/BHMSD.h" + +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" + +#include "SimG4Core/Notification/interface/TrackInformation.h" + +#include "G4Track.hh" +#include "G4SDManager.hh" +#include "G4VProcess.hh" +#include "G4EventManager.hh" +#include "G4Step.hh" +#include "G4ParticleTable.hh" + +#include +#include +#include + +#include "FWCore/MessageLogger/interface/MessageLogger.h" + +#define debug +//------------------------------------------------------------------- +BHMSD::BHMSD(std::string name, const DDCompactView & cpv, + SensitiveDetectorCatalog & clg, + edm::ParameterSet const & p, const SimTrackManager* manager) : + SensitiveTkDetector(name, cpv, clg, p), numberingScheme(0), name(name), + hcID(-1), theHC(0), theManager(manager), currentHit(0), theTrack(0), + currentPV(0), unitID(0), previousUnitID(0), preStepPoint(0), + postStepPoint(0), eventno(0){ + + //Add BHM Sentitive Detector Name + collectionName.insert(name); + + + //Parameters + edm::ParameterSet m_p = p.getParameter("BHMSD"); + int verbn = m_p.getUntrackedParameter("Verbosity"); + //int verbn = 1; + + SetVerboseLevel(verbn); + LogDebug("BHMSim") + << "*******************************************************\n" + << "* *\n" + << "* Constructing a BHMSD with name " << name << "\n" + << "* *\n" + << "*******************************************************"; + + + slave = new TrackingSlaveSD(name); + + // + // attach detectors (LogicalVolumes) + // + std::vector lvNames = clg.logicalNames(name); + + this->Register(); + + for (std::vector::iterator it=lvNames.begin(); + it !=lvNames.end(); it++) { + this->AssignSD(*it); + edm::LogInfo("BHMSim") << "BHMSD : Assigns SD to LV " << (*it); + } + + if (name == "BSCHits") { + if (verbn > 0) { + edm::LogInfo("BHMSim") << "name = BSCHits and new BHMNumberingSchem"; + } + numberingScheme = new BHMNumberingScheme() ; + } else { + edm::LogWarning("BHMSim") << "BHMSD: ReadoutName "<GetTotalEnergyDeposit(); +} + +void BHMSD::Initialize(G4HCofThisEvent * HCE) { +#ifdef debug + LogDebug("BHMSim") << "BHMSD : Initialize called for " << name << std::endl; +#endif + + theHC = new BscG4HitCollection(name, collectionName[0]); + if (hcID<0) + hcID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); + HCE->AddHitsCollection(hcID, theHC); + + tsID = -2; + primID = -2; +} + + +bool BHMSD::ProcessHits(G4Step * aStep, G4TouchableHistory * ) { + + if (aStep == NULL) { + return true; + } else { + GetStepInfo(aStep); +#ifdef debug + LogDebug("BHMSim") << "BHMSD : number of hits = " << theHC->entries() << std::endl; +#endif + if (HitExists() == false && edeposit>0. ){ + CreateNewHit(); + return true; + } + } + return true; +} + +void BHMSD::GetStepInfo(G4Step* aStep) { + + preStepPoint = aStep->GetPreStepPoint(); + postStepPoint= aStep->GetPostStepPoint(); + theTrack = aStep->GetTrack(); + hitPoint = preStepPoint->GetPosition(); + currentPV = preStepPoint->GetPhysicalVolume(); + hitPointExit = postStepPoint->GetPosition(); + + hitPointLocal = preStepPoint->GetTouchable()->GetHistory()->GetTopTransform().TransformPoint(hitPoint); + hitPointLocalExit = preStepPoint->GetTouchable()->GetHistory()->GetTopTransform().TransformPoint(hitPointExit); + + + G4int particleCode = theTrack->GetDefinition()->GetPDGEncoding(); + LogDebug("BHMSim") << " BHMSD :particleType = " << theTrack->GetDefinition()->GetParticleName() <GetTotalEnergyDeposit(); + tSlice = (postStepPoint->GetGlobalTime() )/nanosecond; + tSliceID = (int) tSlice; + unitID = setDetUnitId(aStep); +#ifdef debug + LogDebug("BHMSim") << "unitID=" << unitID <GetTrackID(); + // Position = hitPoint; + Pabs = aStep->GetPreStepPoint()->GetMomentum().mag()/GeV; + Tof = aStep->GetPostStepPoint()->GetGlobalTime()/nanosecond; + Eloss = aStep->GetTotalEnergyDeposit()/GeV; + ParticleType = theTrack->GetDefinition()->GetPDGEncoding(); + ThetaAtEntry = aStep->GetPreStepPoint()->GetPosition().theta()/deg; + PhiAtEntry = aStep->GetPreStepPoint()->GetPosition().phi()/deg; + + ParentId = theTrack->GetParentID(); + Vx = theTrack->GetVertexPosition().x(); + Vy = theTrack->GetVertexPosition().y(); + Vz = theTrack->GetVertexPosition().z(); + X = hitPoint.x(); + Y = hitPoint.y(); + Z = hitPoint.z(); +} + +uint32_t BHMSD::setDetUnitId(G4Step * aStep) { + return (numberingScheme == 0 ? 0 : numberingScheme->getUnitID(aStep)); +} + + +G4bool BHMSD::HitExists() { + if (primaryID<1) { + edm::LogWarning("BHMSim") << "***** BHMSD error: primaryID = " + << primaryID + << " maybe detector name changed"; + } + + // Update if in the same detector, time-slice and for same track + if (tSliceID == tsID && unitID==previousUnitID) { + UpdateHit(); + return true; + } + // Reset entry point for new primary + if (primaryID != primID) + ResetForNewPrimary(); + + //look in the HitContainer whether a hit with the same primID, unitID, + //tSliceID already exists: + + G4bool found = false; + + for (int j=0; jentries()&&!found; j++) { + BscG4Hit* aPreviousHit = (*theHC)[j]; + if (aPreviousHit->getTrackID() == primaryID && + aPreviousHit->getTimeSliceID() == tSliceID && + aPreviousHit->getUnitID() == unitID ) { + currentHit = aPreviousHit; + found = true; + } + } + + if (found) { + UpdateHit(); + return true; + } else { + return false; + } +} + + +void BHMSD::ResetForNewPrimary() { + + entrancePoint = SetToLocal(hitPoint); + exitPoint = SetToLocalExit(hitPointExit); + incidentEnergy = preStepPoint->GetKineticEnergy(); +} + + +void BHMSD::StoreHit(BscG4Hit* hit){ + + if (primID<0) return; + if (hit == 0 ) { + edm::LogWarning("BHMSim") << "BHMSD: hit to be stored is NULL !!"; + return; + } + + theHC->insert( hit ); +} + + +void BHMSD::CreateNewHit() { + +#ifdef debug + LogDebug("BHMSim") << "BHMSD CreateNewHit for" + << " PV " << currentPV->GetName() + << " PVid = " << currentPV->GetCopyNo() + << " Unit " << unitID <GetTrackID() + << " which is a " << theTrack->GetDefinition()->GetParticleName(); + + if (theTrack->GetTrackID()==1) { + LogDebug("BHMSim") << " of energy " << theTrack->GetTotalEnergy(); + } else { + LogDebug("BHMSim") << " daughter of part. " << theTrack->GetParentID(); + } + + LogDebug("BHMSim") << " and created by " ; + if (theTrack->GetCreatorProcess()!=NULL) + LogDebug("BHMSim") << theTrack->GetCreatorProcess()->GetProcessName() ; + else + LogDebug("BHMSim") << "NO process"; + LogDebug("BHMSim") << std::endl; +#endif + + currentHit = new BscG4Hit; + currentHit->setTrackID(primaryID); + currentHit->setTimeSlice(tSlice); + currentHit->setUnitID(unitID); + currentHit->setIncidentEnergy(incidentEnergy); + + currentHit->setPabs(Pabs); + currentHit->setTof(Tof); + currentHit->setEnergyLoss(Eloss); + currentHit->setParticleType(ParticleType); + currentHit->setThetaAtEntry(ThetaAtEntry); + currentHit->setPhiAtEntry(PhiAtEntry); + + currentHit->setEntry(hitPoint); + + currentHit->setEntryLocalP(hitPointLocal); + currentHit->setExitLocalP(hitPointLocalExit); + + currentHit->setParentId(ParentId); + currentHit->setVx(Vx); + currentHit->setVy(Vy); + currentHit->setVz(Vz); + + currentHit->setX(X); + currentHit->setY(Y); + currentHit->setZ(Z); + + UpdateHit(); + + StoreHit(currentHit); +} + + +void BHMSD::UpdateHit() { + + if (Eloss > 0.) { + currentHit->addEnergyDeposit(edepositEM,edepositHAD); + +#ifdef debug + LogDebug("BHMSim") << "updateHit: add eloss " << Eloss <getEntry().z()<< "\n"; + LogDebug("BHMSim") << "entr theta " << aHit->getThetaAtEntry()<< "\n"; + + Local3DPoint locExitPoint(0,0,0); + Local3DPoint locEntryPoint(aHit->getEntry().x(), + aHit->getEntry().y(), + aHit->getEntry().z()); + slave->processHits(PSimHit(locEntryPoint,locExitPoint, + aHit->getPabs(), + aHit->getTof(), + aHit->getEnergyLoss(), + aHit->getParticleType(), + aHit->getUnitID(), + aHit->getTrackID(), + aHit->getThetaAtEntry(), + aHit->getPhiAtEntry())); + } + Summarize(); +} + + +void BHMSD::Summarize() { +} + + +void BHMSD::clear() { +} + + +void BHMSD::DrawAll() { +} + + +void BHMSD::PrintAll() { + LogDebug("BHMSim") << "BHMSD: Collection " << theHC->GetName() << "\n"; + theHC->PrintAllHits(); +} + + +void BHMSD::fillHits(edm::PSimHitContainer& c, std::string n) { + if (slave->name() == n) c=slave->hits(); +} + +void BHMSD::update (const BeginOfEvent * i) { + LogDebug("BHMSim") << " Dispatched BeginOfEvent for " << GetName() + << " !" ; + clearHits(); + eventno = (*i)()->GetEventID(); +} + +void BHMSD::update(const BeginOfRun *) { + + G4ParticleTable * theParticleTable = G4ParticleTable::GetParticleTable(); + G4String particleName; + emPDG = theParticleTable->FindParticle(particleName="e-")->GetPDGEncoding(); + epPDG = theParticleTable->FindParticle(particleName="e+")->GetPDGEncoding(); + gammaPDG = theParticleTable->FindParticle(particleName="gamma")->GetPDGEncoding(); + +} + +void BHMSD::update (const ::EndOfEvent*) { +} + +void BHMSD::clearHits(){ + slave->Initialize(); +} + +std::vector BHMSD::getNames(){ + std::vector temp; + temp.push_back(slave->name()); + return temp; +} diff --git a/SimG4CMS/Forward/src/ZdcNumberingScheme.cc b/SimG4CMS/Forward/src/ZdcNumberingScheme.cc index 9d7075011ec9c..91146a7272a97 100755 --- a/SimG4CMS/Forward/src/ZdcNumberingScheme.cc +++ b/SimG4CMS/Forward/src/ZdcNumberingScheme.cc @@ -8,7 +8,7 @@ #include "DataFormats/HcalDetId/interface/HcalZDCDetId.h" #include "CLHEP/Units/GlobalSystemOfUnits.h" #include -#undef debug +#define debugLog ZdcNumberingScheme::ZdcNumberingScheme(int iv){ verbosity = iv; @@ -45,53 +45,54 @@ unsigned int ZdcNumberingScheme::getUnitID(const G4Step* aStep) const { if (name[ich] == "ZDC") { if(copyno[ich] == 1)zside = 1; if(copyno[ich] == 2)zside = -1; - } - else if (name[ich] == "ZDC_EMLayer") { + } else if (name[ich] == "ZDC_EMLayer") { section = HcalZDCDetId::EM; layer = copyno[ich]; - } - else if (name[ich] == "ZDC_EMFiber") { + } else if (name[ich] == "ZDC_EMFiber") { fiber = copyno[ich]; - if (fiber < 20) - channel = 1; - else if (fiber < 39) - channel = 2; - else if (fiber < 58) - channel = 3; - else if (fiber < 77) - channel = 4; - else - channel = 5; - } - else if (name[ich] == "ZDC_LumLayer") { + if (fiber < 20) channel = 1; + else if (fiber < 39) channel = 2; + else if (fiber < 58) channel = 3; + else if (fiber < 77) channel = 4; + else channel = 5; +#ifdef debugLog + std::cout<<"ZdcNumberingScheme::getUnitID section: "<>20)&1); - channel = (idx>>17)&7; - fiber = (idx>>9)&255; - layer = (idx>>2)&127; - section = idx&3; + + z = 1 + ((idx>>23)&1); + channel = (idx>>18)&31; + fiber = (idx>>10)&255; + layer = (idx>>3)&127; + section = idx&7; - #ifdef debug +#ifdef debugLog std::cout<< "ZDC unpacking: idx:"<< idx << " -> section " << section << " layer " << layer << " fiber " << fiber << " channel " << channel << " zside " << z << std::endl; - #endif + + int newidx = packZdcIndex(section, layer, fiber, channel, z); + std::cout<< "ZDC packing result after unpacking and repacking: section " << section << " layer " << layer << " fiber " + << fiber << " channel " << channel << " zside " << z << " new idx: " < + * + * Modification: + * + */ + +#include "SimG4CMS/Muon/interface/MuonFrameRotation.h" +#include "SimG4CMS/Muon/interface/MuonG4Numbering.h" + +#include "G4Step.hh" + +class DDCompactView; + +class MuonMe0FrameRotation : public MuonFrameRotation { + +public: + MuonMe0FrameRotation( const DDCompactView& cpv ); + virtual ~MuonMe0FrameRotation(); + virtual Local3DPoint transformPoint(const Local3DPoint &, const G4Step *) const; + +private: + MuonG4Numbering* g4numbering; + int theSectorLevel; +}; + + +#endif diff --git a/SimG4CMS/Muon/interface/MuonSlaveSD.h b/SimG4CMS/Muon/interface/MuonSlaveSD.h index 387d5ac62d154..cae393fb8780b 100644 --- a/SimG4CMS/Muon/interface/MuonSlaveSD.h +++ b/SimG4CMS/Muon/interface/MuonSlaveSD.h @@ -65,4 +65,16 @@ class FormatRpcHits { int sortId (const PSimHit & a) const; }; +class FormatGemHits { + public: + bool operator() (const PSimHit & a, const PSimHit & b); + int sortId (const PSimHit & a) const; +}; + +class FormatMe0Hits { + public: + bool operator() (const PSimHit & a, const PSimHit & b); + int sortId (const PSimHit & a) const; +}; + #endif // MuonSlaveSD_h diff --git a/SimG4CMS/Muon/src/MuonMe0FrameRotation.cc b/SimG4CMS/Muon/src/MuonMe0FrameRotation.cc new file mode 100644 index 0000000000000..d604a30417cf5 --- /dev/null +++ b/SimG4CMS/Muon/src/MuonMe0FrameRotation.cc @@ -0,0 +1,44 @@ +#include "SimG4CMS/Muon/interface/MuonMe0FrameRotation.h" +#include "Geometry/MuonNumbering/interface/MuonDDDConstants.h" +#include "Geometry/MuonNumbering/interface/MuonBaseNumber.h" + +#include "G4StepPoint.hh" +#include "G4TouchableHistory.hh" + +//#define LOCAL_DEBUG + +MuonMe0FrameRotation::MuonMe0FrameRotation(const DDCompactView& cpv) : MuonFrameRotation::MuonFrameRotation(cpv) { + g4numbering = new MuonG4Numbering(cpv); + MuonDDDConstants muonConstants(cpv); + int theLevelPart= muonConstants.getValue("level"); + theSectorLevel = muonConstants.getValue("mg_sector")/theLevelPart; +#ifdef LOCAL_DEBUG + std::cout << "MuonMe0FrameRotation: theSectorLevel " << theSectorLevel + << std::endl; +#endif +} + +MuonMe0FrameRotation::~MuonMe0FrameRotation() { + delete g4numbering; +} + +Local3DPoint MuonMe0FrameRotation::transformPoint(const Local3DPoint & point,const G4Step * aStep=0) const { + if (!aStep) return Local3DPoint(0.,0.,0.); + + //check if it is rotated +#ifdef LOCAL_DEBUG + std::cout << "Position " << aStep->GetPreStepPoint()->GetPosition() << std::endl; +#endif + MuonBaseNumber num = g4numbering->PhysicalVolumeToBaseNumber(aStep); + bool rotated = (num.getBaseNo(theSectorLevel)>=50); +#ifdef LOCAL_DEBUG + std::cout << "MuonMe0FrameRotation num " << num.getBaseNo(theSectorLevel) + << " Rotation " << rotated << std::endl; +#endif + if (rotated) { + // return Local3DPoint(-point.x(),point.z(),point.y()); + return Local3DPoint(point.x(),point.z(),-point.y()); + } else { + return Local3DPoint(point.x(),point.z(),-point.y()); + } +} diff --git a/SimG4CMS/Muon/src/MuonSensitiveDetector.cc b/SimG4CMS/Muon/src/MuonSensitiveDetector.cc index 2d28e73f0400f..ac0b3e27bfce7 100644 --- a/SimG4CMS/Muon/src/MuonSensitiveDetector.cc +++ b/SimG4CMS/Muon/src/MuonSensitiveDetector.cc @@ -1,8 +1,9 @@ #include "SimG4CMS/Muon/interface/MuonSensitiveDetector.h" #include "SimG4CMS/Muon/interface/MuonSlaveSD.h" #include "SimG4CMS/Muon//interface/MuonEndcapFrameRotation.h" -#include "SimG4CMS/Muon/interface/MuonGemFrameRotation.h" #include "SimG4CMS/Muon/interface/MuonRpcFrameRotation.h" +#include "SimG4CMS/Muon/interface/MuonGemFrameRotation.h" +#include "SimG4CMS/Muon/interface/MuonMe0FrameRotation.h" #include "Geometry/MuonNumbering/interface/MuonSubDetector.h" #include "DataFormats/GeometryVector/interface/LocalVector.h" @@ -58,6 +59,9 @@ MuonSensitiveDetector::MuonSensitiveDetector(std::string name, } else if (detector->isGem()) { // cout << "MuonFrameRotation create MuonGemFrameRotation"<isME0()) { + // cout << "MuonFrameRotation create MuonMe0FrameRotation"<isRpc()) { sort(hits_.begin(),hits_.end(), FormatRpcHits()); + } else if (detector->isGem()) { + sort(hits_.begin(),hits_.end(), FormatGemHits()); + } else if (detector->isME0()) { + sort(hits_.begin(),hits_.end(), FormatMe0Hits()); } - return true; } @@ -69,3 +72,23 @@ int FormatRpcHits::sortId(const PSimHit & a) const return a.detUnitId(); } +bool FormatGemHits::operator() (const PSimHit & a, const PSimHit & b) +{ + return (sortId(a)("FP420SI"); produces("BSCHits"); produces("PLTHits"); + produces("BHMHits"); produces("EcalHitsEB"); produces("EcalHitsEE"); @@ -83,6 +84,7 @@ OscarProducer::OscarProducer(edm::ParameterSet const & p) produces("MuonCSCHits"); produces("MuonRPCHits"); produces("MuonGEMHits"); + produces("MuonME0Hits"); produces("CastorPL"); produces("CastorFI"); produces("CastorBU"); diff --git a/SimG4Core/Application/python/g4SimHits_cfi.py b/SimG4Core/Application/python/g4SimHits_cfi.py index 4b29190051593..1593f72c67f2f 100644 --- a/SimG4Core/Application/python/g4SimHits_cfi.py +++ b/SimG4Core/Application/python/g4SimHits_cfi.py @@ -376,6 +376,9 @@ BscSD = cms.PSet( Verbosity = cms.untracked.int32(0) ), + BHMSD = cms.PSet( + Verbosity = cms.untracked.int32(0) + ), PltSD = cms.PSet( EnergyThresholdForPersistencyInGeV = cms.double(0.2), EnergyThresholdForHistoryInGeV = cms.double(0.05) diff --git a/SimMuon/GEMDigitizer/interface/GEMDigiProducer.h b/SimMuon/GEMDigitizer/interface/GEMDigiProducer.h index 49f1f6dfe3828..726bb172a07de 100644 --- a/SimMuon/GEMDigitizer/interface/GEMDigiProducer.h +++ b/SimMuon/GEMDigitizer/interface/GEMDigiProducer.h @@ -36,7 +36,6 @@ class GEMDigiProducer : public edm::EDProducer std::string digiModelString_; GEMDigiModel* gemDigiModel_; - std::vector neutronGammaRoll_; }; diff --git a/SimMuon/GEMDigitizer/interface/GEMSimpleModel.h b/SimMuon/GEMDigitizer/interface/GEMSimpleModel.h index da58076f2a63f..42a87631c2011 100644 --- a/SimMuon/GEMDigitizer/interface/GEMSimpleModel.h +++ b/SimMuon/GEMDigitizer/interface/GEMSimpleModel.h @@ -13,7 +13,6 @@ #include "SimMuon/GEMDigitizer/interface/GEMDigiModel.h" class GEMGeometry; - namespace CLHEP { class HepRandomEngine; @@ -50,7 +49,8 @@ class GEMSimpleModel: public GEMDigiModel double averageShapingTime_; double timeResolution_; double timeJitter_; - double timeCalibrationOffset_; + double timeCalibrationOffset1_; + double timeCalibrationOffset23_; double averageNoiseRate_; double averageClusterSize_; double signalPropagationSpeed_; @@ -59,7 +59,9 @@ class GEMSimpleModel: public GEMDigiModel int minBunch_; int maxBunch_; bool digitizeOnlyMuons_; - std::vector neutronGammaRoll_; + std::vector neutronGammaRoll1_; + std::vector neutronGammaRoll2_; + std::vector neutronGammaRoll3_; bool doNoiseCLS_; double minPabsNoiseCLS_; bool simulateIntrinsicNoise_; @@ -76,4 +78,3 @@ class GEMSimpleModel: public GEMDigiModel #endif - diff --git a/SimMuon/GEMDigitizer/python/muonGEMDigis_cfi.py b/SimMuon/GEMDigitizer/python/muonGEMDigis_cfi.py index add1975c06ce8..aa6cde2f5bbcb 100644 --- a/SimMuon/GEMDigitizer/python/muonGEMDigis_cfi.py +++ b/SimMuon/GEMDigitizer/python/muonGEMDigis_cfi.py @@ -7,11 +7,12 @@ timeResolution = cms.double(5), timeJitter = cms.double(1.0), averageShapingTime = cms.double(50.0), - timeCalibrationOffset = cms.double(19.9), + timeCalibrationOffset1 = cms.double(19.9), + timeCalibrationOffset23 = cms.double(27.7), averageClusterSize = cms.double(1.5), averageEfficiency = cms.double(0.98), averageNoiseRate = cms.double(0.001), #intrinsic noise - numberOfStripsPerPartition = cms.int32(384), +# numberOfStripsPerPartition = cms.int32(384), bxwidth = cms.int32(25), minBunch = cms.int32(-5), ## in terms of 25 ns maxBunch = cms.int32(3), @@ -19,9 +20,11 @@ digiModelString = cms.string('Simple'), digitizeOnlyMuons = cms.bool(False), # neutronGammaRoll = cms.vdouble(18., 23., 30., 39., 45., 52., 62., 76)#, #n and gamma bkg per roll - neutronGammaRoll = cms.vdouble(69.3, 74.0, 101.7, 121.1, 145.5, 143.8, 199.1, 314.1), #n, gamma and charged prtcls bkg per roll + neutronGammaRoll1 = cms.vdouble(69.3, 74.0, 101.7, 121.1, 145.5, 143.8, 199.1, 314.1), #n, gamma and charged prtcls bkg per roll of station1 + neutronGammaRoll2 = cms.vdouble(69.3, 74.0, 101.7, 121.1, 145.5, 143.8, 199.1, 314.1), #n, gamma and charged prtcls bkg per roll of station2 + neutronGammaRoll3 = cms.vdouble(69.3, 74.0, 101.7, 121.1, 145.5, 143.8, 199.1, 314.1, 314.1, 314.1, 314.1, 314.1), # bkg/roll of station3 doNoiseCLS = cms.bool(True), - minPabsNoiseCLS = cms.double(0.), #do cls>=1 for the particles with |p|> minPabsNoiseCLS + minPabsNoiseCLS = cms.double(0.), simulateIntrinsicNoise = cms.bool(False), scaleLumi = cms.double(1.) diff --git a/SimMuon/GEMDigitizer/src/GEMDigiProducer.cc b/SimMuon/GEMDigitizer/src/GEMDigiProducer.cc index 844daf4c5f716..5cc3e440238de 100644 --- a/SimMuon/GEMDigitizer/src/GEMDigiProducer.cc +++ b/SimMuon/GEMDigitizer/src/GEMDigiProducer.cc @@ -28,7 +28,6 @@ GEMDigiProducer::GEMDigiProducer(const edm::ParameterSet& ps) : collectionXF_(ps.getParameter("inputCollection")) , digiModelString_(ps.getParameter("digiModelString")) - , neutronGammaRoll_(ps.getParameter > ("neutronGammaRoll")) { produces(); produces("GEM"); diff --git a/SimMuon/GEMDigitizer/src/GEMSimpleModel.cc b/SimMuon/GEMDigitizer/src/GEMSimpleModel.cc index 45b0d16407271..554fbd309f7ec 100644 --- a/SimMuon/GEMDigitizer/src/GEMSimpleModel.cc +++ b/SimMuon/GEMDigitizer/src/GEMSimpleModel.cc @@ -25,7 +25,8 @@ GEMDigiModel(config) , averageShapingTime_(config.getParameter ("averageShapingTime")) , timeResolution_(config.getParameter ("timeResolution")) , timeJitter_(config.getParameter ("timeJitter")) -, timeCalibrationOffset_(config.getParameter ("timeCalibrationOffset")) +, timeCalibrationOffset1_(config.getParameter ("timeCalibrationOffset1")) +, timeCalibrationOffset23_(config.getParameter ("timeCalibrationOffset23")) , averageNoiseRate_(config.getParameter ("averageNoiseRate")) , averageClusterSize_(config.getParameter ("averageClusterSize")) , signalPropagationSpeed_(config.getParameter ("signalPropagationSpeed")) @@ -34,7 +35,9 @@ GEMDigiModel(config) , minBunch_(config.getParameter ("minBunch")) , maxBunch_(config.getParameter ("maxBunch")) , digitizeOnlyMuons_(config.getParameter ("digitizeOnlyMuons")) -, neutronGammaRoll_(config.getParameter>("neutronGammaRoll")) +, neutronGammaRoll1_(config.getParameter>("neutronGammaRoll1")) +, neutronGammaRoll2_(config.getParameter>("neutronGammaRoll2")) +, neutronGammaRoll3_(config.getParameter>("neutronGammaRoll3")) , doNoiseCLS_(config.getParameter ("doNoiseCLS")) , scaleLumi_(config.getParameter ("scaleLumi")) { @@ -109,16 +112,14 @@ int GEMSimpleModel::getSimHitBx(const PSimHit* simhit) if (!roll) { throw cms::Exception("Geometry") - << "GEMSimpleModel::getSimHitBx() - GEM simhit id does not match any GEM roll id: " << id - << "\n"; + << "GEMSimpleModel::getSimHitBx() - GEM simhit id does not match any GEM roll id: " << id << "\n"; return 999; } if (roll->id().region() == 0) { throw cms::Exception("Geometry") - << "GEMSimpleModel::getSimHitBx() - this GEM id is from barrel, which cannot happen: " - << roll->id() << "\n"; + << "GEMSimpleModel::getSimHitBx() - this GEM id is from barrel, which cannot happen: " << roll->id() << "\n"; } const TrapezoidalStripTopology* top(dynamic_cast (&(roll->topology()))); @@ -136,7 +137,17 @@ int GEMSimpleModel::getSimHitBx(const PSimHit* simhit) const float randomResolutionTime(gauss2_->fire(0., timeResolution_)); const float simhitTime(tof + averageShapingTime_ + randomResolutionTime + averagePropagationTime + randomJitterTime); - const float referenceTime(timeCalibrationOffset_ + halfStripLength / signalPropagationSpeedTrue + averageShapingTime_); + + float referenceTime = 0.; + if (id.station() == 1) + { + referenceTime = timeCalibrationOffset1_ + halfStripLength / signalPropagationSpeedTrue + averageShapingTime_; + } + if (id.station() == 2 || id.station() == 3) + { + referenceTime = timeCalibrationOffset23_ + halfStripLength / signalPropagationSpeedTrue + averageShapingTime_; + } + const float timeDifference(cosmics_ ? (simhitTime - referenceTime) / COSMIC_PAR : simhitTime - referenceTime); // assign the bunch crossing @@ -163,16 +174,29 @@ void GEMSimpleModel::simulateNoise(const GEMEtaPartition* roll) if (gemId.region() == 0) { - throw cms::Exception("Geometry") - << "GEMSynchronizer::simulateNoise() - this GEM id is from barrel, which cannot happen."; + throw cms::Exception("Geometry") << "GEMSynchronizer::simulateNoise() - this GEM id is from barrel, which cannot happen."; } + const TrapezoidalStripTopology* top_(dynamic_cast (&(roll->topology()))); const float striplength(top_->stripLength()); trStripArea = (roll->pitch()) * striplength; trArea = trStripArea * nstrips; const int nBxing(maxBunch_ - minBunch_ + 1); - double averageNoiseRatePerRoll = neutronGammaRoll_[rollNumb - 1]; + double averageNoiseRatePerRoll = 0.; + + if(gemId.station() == 1) + { + averageNoiseRatePerRoll = neutronGammaRoll1_[rollNumb - 1]; + } + if(gemId.station() == 2) + { + averageNoiseRatePerRoll = neutronGammaRoll2_[rollNumb - 1]; + } + if(gemId.station() == 3) + { + averageNoiseRatePerRoll = neutronGammaRoll3_[rollNumb - 1]; + } //simulate intrinsic noise if(simulateIntrinsicNoise_) @@ -181,6 +205,7 @@ void GEMSimpleModel::simulateNoise(const GEMEtaPartition* roll) for(int j = 0; j < nstrips; ++j) { const int n_intrHits = poisson_->fire(aveIntrinsicNoisPerStrip); + for (int k = 0; k < n_intrHits; k++ ) { const int time_hit(static_cast (flat2_->fire(nBxing)) + minBunch_); @@ -193,6 +218,7 @@ void GEMSimpleModel::simulateNoise(const GEMEtaPartition* roll) //simulate bkg contribution const double averageNoise(averageNoiseRatePerRoll * nBxing * bxwidth_ * trArea * 1.0e-9 * scaleLumi_); const int n_hits(poisson_->fire(averageNoise)); + for (int i = 0; i < n_hits; ++i) { const int centralStrip(static_cast (flat1_->fire(1, nstrips))); @@ -215,7 +241,7 @@ void GEMSimpleModel::simulateNoise(const GEMEtaPartition* roll) if (clusterSize % 2 != 0) { int clsR = (clusterSize - 1) / 2; - for (int i = 1; i < clsR; ++i) + for (int i = 1; i <= clsR; ++i) { if (flat1_->fire(1) < averageEfficiency_ && (centralStrip - i > 0)) cluster_.push_back(std::pair(centralStrip - i, time_hit)); @@ -230,7 +256,7 @@ void GEMSimpleModel::simulateNoise(const GEMEtaPartition* roll) { if (flat1_->fire(1) < averageEfficiency_ && (centralStrip - 1 > 0)) cluster_.push_back(std::pair(centralStrip - 1, time_hit)); - for (int i = 1; i < clsR; ++i) + for (int i = 1; i <= clsR; ++i) { if (flat1_->fire(1) < averageEfficiency_ && (centralStrip - 1 - i > 0)) cluster_.push_back(std::pair(centralStrip - 1 - i, time_hit)); @@ -253,8 +279,7 @@ void GEMSimpleModel::simulateNoise(const GEMEtaPartition* roll) return; } -std::vector > GEMSimpleModel::simulateClustering(const GEMEtaPartition* roll, - const PSimHit* simHit, const int bx) +std::vector > GEMSimpleModel::simulateClustering(const GEMEtaPartition* roll, const PSimHit* simHit, const int bx) { const StripTopology& topology = roll->specificTopology(); const LocalPoint& hit_position(simHit->localPosition()); @@ -290,7 +315,7 @@ std::vector > GEMSimpleModel::simulateClustering(const GEMEt if (clusterSize % 2 != 0) { int clsR = (clusterSize - 1) / 2; - for (int i = 1; i < clsR; ++i) + for (int i = 1; i <= clsR; ++i) { if (flat1_->fire(1) < averageEfficiency_ && (centralStrip - i > 0)) cluster_.push_back(std::pair(centralStrip - i, bx)); @@ -306,7 +331,7 @@ std::vector > GEMSimpleModel::simulateClustering(const GEMEt { if (flat1_->fire(1) < averageEfficiency_ && (centralStrip - 1 > 0)) cluster_.push_back(std::pair(centralStrip - 1, bx)); - for (int i = 1; i < clsR; ++i) + for (int i = 1; i <= clsR; ++i) { if (flat1_->fire(1) < averageEfficiency_ && (centralStrip - 1 - i > 0)) cluster_.push_back(std::pair(centralStrip - 1 - i, bx)); @@ -318,7 +343,7 @@ std::vector > GEMSimpleModel::simulateClustering(const GEMEt { if (flat1_->fire(1) < averageEfficiency_ && (centralStrip + 1 <= nstrips)) cluster_.push_back(std::pair(centralStrip + 1, bx)); - for (int i = 1; i < clsR; ++i) + for (int i = 1; i <= clsR; ++i) { if (flat1_->fire(1) < averageEfficiency_ && (centralStrip + 1 + i <= nstrips)) cluster_.push_back(std::pair(centralStrip + 1 + i, bx)); diff --git a/Validation/CheckOverlap/test/python/runBSC_cfg.py b/Validation/CheckOverlap/test/python/runBSC_cfg.py index b0da0f513aa3e..b9008a97e76cc 100644 --- a/Validation/CheckOverlap/test/python/runBSC_cfg.py +++ b/Validation/CheckOverlap/test/python/runBSC_cfg.py @@ -27,14 +27,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runBeam_cfg.py b/Validation/CheckOverlap/test/python/runBeam_cfg.py index 8ec0fe06e8383..7f9b4a1a60746 100644 --- a/Validation/CheckOverlap/test/python/runBeam_cfg.py +++ b/Validation/CheckOverlap/test/python/runBeam_cfg.py @@ -27,14 +27,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runCFC_cfg.py b/Validation/CheckOverlap/test/python/runCFC_cfg.py new file mode 100644 index 0000000000000..a0d67382a6979 --- /dev/null +++ b/Validation/CheckOverlap/test/python/runCFC_cfg.py @@ -0,0 +1,70 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("PROD") +process.load("SimGeneral.HepPDTESSource.pdt_cfi") + +process.load("Geometry.HGCalCommonData.testCFCXML_cfi") + +process.load("Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi") + +process.load("Geometry.MuonNumbering.muonNumberingInitialization_cfi") + +process.load("SimG4Core.Application.g4SimHits_cfi") + +process.MessageLogger = cms.Service("MessageLogger", + destinations = cms.untracked.vstring('cout'), + categories = cms.untracked.vstring('G4cout', 'G4cerr', 'HCalGeom'), + debugModules = cms.untracked.vstring('*'), + cout = cms.untracked.PSet( + threshold = cms.untracked.string('DEBUG'), + default = cms.untracked.PSet( + limit = cms.untracked.int32(0) + ), + G4cout = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ), + G4cerr = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ), + HCalGeom = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ) + ), +) + +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 + +process.source = cms.Source("EmptySource") + +process.generator = cms.EDProducer("FlatRandomEGunProducer", + PGunParameters = cms.PSet( + PartID = cms.vint32(14), + MinEta = cms.double(-3.5), + MaxEta = cms.double(3.5), + MinPhi = cms.double(-3.14159265359), + MaxPhi = cms.double(3.14159265359), + MinE = cms.double(9.99), + MaxE = cms.double(10.01) + ), + AddAntiParticle = cms.bool(False), + Verbosity = cms.untracked.int32(0), + firstRun = cms.untracked.uint32(1) +) + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) +) + +process.p1 = cms.Path(process.generator*process.g4SimHits) +process.g4SimHits.UseMagneticField = False +process.g4SimHits.Physics.type = 'SimG4Core/Physics/DummyPhysics' +process.g4SimHits.Physics.DummyEMPhysics = True +process.g4SimHits.Watchers = cms.VPSet(cms.PSet( + type = cms.string('CheckOverlap'), + Resolution = cms.untracked.int32(1000), + NodeNames = cms.untracked.vstring('CALO') +)) + diff --git a/Validation/CheckOverlap/test/python/runCMS_cfg.py b/Validation/CheckOverlap/test/python/runCMS_cfg.py index 3545b697348e9..b6a58cea04548 100644 --- a/Validation/CheckOverlap/test/python/runCMS_cfg.py +++ b/Validation/CheckOverlap/test/python/runCMS_cfg.py @@ -25,14 +25,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runCastor_cfg.py b/Validation/CheckOverlap/test/python/runCastor_cfg.py index 4817199016164..db017a9905ec8 100644 --- a/Validation/CheckOverlap/test/python/runCastor_cfg.py +++ b/Validation/CheckOverlap/test/python/runCastor_cfg.py @@ -29,14 +29,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runEB_cfg.py b/Validation/CheckOverlap/test/python/runEB_cfg.py index d54caa06f6370..25b8a8c338008 100644 --- a/Validation/CheckOverlap/test/python/runEB_cfg.py +++ b/Validation/CheckOverlap/test/python/runEB_cfg.py @@ -3,7 +3,8 @@ process = cms.Process("PROD") process.load("SimGeneral.HepPDTESSource.pdt_cfi") -process.load("Geometry.CMSCommonData.cmsAllGeometryXML_cfi") +#process.load("Geometry.CMSCommonData.cmsAllGeometryXML_cfi") +process.load("Geometry.EcalCommonData.EcalOnlyPhase2_cfi") process.load("Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi") @@ -13,7 +14,7 @@ process.MessageLogger = cms.Service("MessageLogger", destinations = cms.untracked.vstring('cout'), - categories = cms.untracked.vstring('G4cout', 'G4cerr'), + categories = cms.untracked.vstring('G4cout', 'G4cerr', 'SimG4CoreGeometry'), cout = cms.untracked.PSet( default = cms.untracked.PSet( limit = cms.untracked.int32(0) @@ -23,18 +24,17 @@ ), G4cerr = cms.untracked.PSet( limit = cms.untracked.int32(-1) + ), + SimG4CoreGeometry = cms.untracked.PSet( + limit = cms.untracked.int32(-1) ) ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runEE_cfg.py b/Validation/CheckOverlap/test/python/runEE_cfg.py index 763e7089dfe78..40125eb3e9e95 100644 --- a/Validation/CheckOverlap/test/python/runEE_cfg.py +++ b/Validation/CheckOverlap/test/python/runEE_cfg.py @@ -27,14 +27,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runES_cfg.py b/Validation/CheckOverlap/test/python/runES_cfg.py index c285de791b92d..5c395ae51737f 100644 --- a/Validation/CheckOverlap/test/python/runES_cfg.py +++ b/Validation/CheckOverlap/test/python/runES_cfg.py @@ -27,14 +27,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runFP420_cfg.py b/Validation/CheckOverlap/test/python/runFP420_cfg.py index bb8cd03847118..31eab60a67c97 100644 --- a/Validation/CheckOverlap/test/python/runFP420_cfg.py +++ b/Validation/CheckOverlap/test/python/runFP420_cfg.py @@ -26,15 +26,10 @@ ) ), ) - -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runForward_cfg.py b/Validation/CheckOverlap/test/python/runForward_cfg.py index 32e610d06299d..07012823fd960 100644 --- a/Validation/CheckOverlap/test/python/runForward_cfg.py +++ b/Validation/CheckOverlap/test/python/runForward_cfg.py @@ -25,14 +25,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runGEM_cfg.py b/Validation/CheckOverlap/test/python/runGEM_cfg.py new file mode 100644 index 0000000000000..1c5ca1f7ded04 --- /dev/null +++ b/Validation/CheckOverlap/test/python/runGEM_cfg.py @@ -0,0 +1,65 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("PROD") +process.load("SimGeneral.HepPDTESSource.pdt_cfi") + +process.load("Geometry.MuonCommonData.testMFXML_cfi") + +process.load("Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi") + +process.load("Geometry.MuonNumbering.muonNumberingInitialization_cfi") + +process.load("SimG4Core.Application.g4SimHits_cfi") + +process.MessageLogger = cms.Service("MessageLogger", + destinations = cms.untracked.vstring('cout'), + categories = cms.untracked.vstring('G4cout', 'G4cerr'), + cout = cms.untracked.PSet( + default = cms.untracked.PSet( + limit = cms.untracked.int32(0) + ), + G4cout = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ), + G4cerr = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ) + ) +) + +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 + +runprocess.source = cms.Source("EmptySource") + +process.generator = cms.EDProducer("FlatRandomEGunProducer", + PGunParameters = cms.PSet( + PartID = cms.vint32(14), + MinEta = cms.double(-3.5), + MaxEta = cms.double(3.5), + MinPhi = cms.double(-3.14159265359), + MaxPhi = cms.double(3.14159265359), + MinE = cms.double(9.99), + MaxE = cms.double(10.01) + ), + AddAntiParticle = cms.bool(False), + Verbosity = cms.untracked.int32(0), + firstRun = cms.untracked.uint32(1) +) + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) +) + +process.p1 = cms.Path(process.generator*process.g4SimHits) +process.g4SimHits.UseMagneticField = False +process.g4SimHits.Physics.type = 'SimG4Core/Physics/DummyPhysics' +process.g4SimHits.Physics.DummyEMPhysics = True +process.g4SimHits.Watchers = cms.VPSet(cms.PSet( + type = cms.string('CheckOverlap'), + Resolution = cms.untracked.int32(1000), + NodeNames = cms.untracked.vstring('MEP', 'MEN') +)) + diff --git a/Validation/CheckOverlap/test/python/runHC_cfg.py b/Validation/CheckOverlap/test/python/runHC_cfg.py index a2b664bda1e30..d43b289346693 100644 --- a/Validation/CheckOverlap/test/python/runHC_cfg.py +++ b/Validation/CheckOverlap/test/python/runHC_cfg.py @@ -3,7 +3,8 @@ process = cms.Process("PROD") process.load("SimGeneral.HepPDTESSource.pdt_cfi") -process.load("Geometry.CMSCommonData.cmsAllGeometryXML_cfi") +process.load("Geometry.HcalCommonData.testPhase2GeometryXML_cfi") +#process.load("Geometry.CMSCommonData.cmsAllGeometryXML_cfi") process.load("Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi") @@ -32,14 +33,10 @@ ), ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runHE_cfg.py b/Validation/CheckOverlap/test/python/runHE_cfg.py new file mode 100644 index 0000000000000..7f1d183045716 --- /dev/null +++ b/Validation/CheckOverlap/test/python/runHE_cfg.py @@ -0,0 +1,74 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("PROD") +process.load("SimGeneral.HepPDTESSource.pdt_cfi") + +process.load("Geometry.HcalCommonData.testHcalOnlyGeometryXML_cfi") +#process.load("Geometry.CMSCommonData.cmsAllGeometryXML_cfi") + +process.load("Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi") +process.load("Geometry.MuonNumbering.muonNumberingInitialization_cfi") +process.load("Geometry.HcalCommonData.hcalSimNumberingInitialization_cfi") + +process.load("SimG4Core.Application.g4SimHits_cfi") + +process.MessageLogger = cms.Service("MessageLogger", + destinations = cms.untracked.vstring('cout'), + categories = cms.untracked.vstring('G4cout', 'G4cerr', 'SimG4CoreGeometry', 'HCalGeom'), + debugModules = cms.untracked.vstring('*'), + cout = cms.untracked.PSet( + threshold = cms.untracked.string('DEBUG'), + default = cms.untracked.PSet( + limit = cms.untracked.int32(0) + ), + G4cout = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ), + G4cerr = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ), + SimG4CoreGeometry = cms.untracked.PSet( + limit = cms.untracked.int32(0) + ), + HCalGeom = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ) + ), +) + +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 + +process.source = cms.Source("EmptySource") + +process.generator = cms.EDProducer("FlatRandomEGunProducer", + PGunParameters = cms.PSet( + PartID = cms.vint32(14), + MinEta = cms.double(-3.5), + MaxEta = cms.double(3.5), + MinPhi = cms.double(-3.14159265359), + MaxPhi = cms.double(3.14159265359), + MinE = cms.double(9.99), + MaxE = cms.double(10.01) + ), + AddAntiParticle = cms.bool(False), + Verbosity = cms.untracked.int32(0), + firstRun = cms.untracked.uint32(1) +) + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) +) + +process.p1 = cms.Path(process.generator*process.g4SimHits) +process.g4SimHits.UseMagneticField = False +process.g4SimHits.Physics.type = 'SimG4Core/Physics/DummyPhysics' +process.g4SimHits.Physics.DummyEMPhysics = True +process.g4SimHits.Watchers = cms.VPSet(cms.PSet( + type = cms.string('CheckOverlap'), + Resolution = cms.untracked.int32(1000), + NodeNames = cms.untracked.vstring('CALO') +)) + diff --git a/Validation/CheckOverlap/test/python/runHF_cfg.py b/Validation/CheckOverlap/test/python/runHF_cfg.py index 728a6bcd58f62..cfa746735a239 100644 --- a/Validation/CheckOverlap/test/python/runHF_cfg.py +++ b/Validation/CheckOverlap/test/python/runHF_cfg.py @@ -27,14 +27,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runHO_cfg.py b/Validation/CheckOverlap/test/python/runHO_cfg.py index 865a2ac74886a..a6bd3e6683046 100644 --- a/Validation/CheckOverlap/test/python/runHO_cfg.py +++ b/Validation/CheckOverlap/test/python/runHO_cfg.py @@ -32,14 +32,10 @@ ), ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runMB_cfg.py b/Validation/CheckOverlap/test/python/runMB_cfg.py index 709204f372a63..24aa7341c3306 100644 --- a/Validation/CheckOverlap/test/python/runMB_cfg.py +++ b/Validation/CheckOverlap/test/python/runMB_cfg.py @@ -27,14 +27,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runME_cfg.py b/Validation/CheckOverlap/test/python/runME_cfg.py index cb0528827bac1..921b9666021c7 100644 --- a/Validation/CheckOverlap/test/python/runME_cfg.py +++ b/Validation/CheckOverlap/test/python/runME_cfg.py @@ -27,14 +27,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runPLT_cfg.py b/Validation/CheckOverlap/test/python/runPLT_cfg.py index f60653c616cc3..b01018995a683 100644 --- a/Validation/CheckOverlap/test/python/runPLT_cfg.py +++ b/Validation/CheckOverlap/test/python/runPLT_cfg.py @@ -27,14 +27,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runPixelBarrel_cfg.py b/Validation/CheckOverlap/test/python/runPixelBarrel_cfg.py index 6e355aea017c7..03da7348fbd86 100644 --- a/Validation/CheckOverlap/test/python/runPixelBarrel_cfg.py +++ b/Validation/CheckOverlap/test/python/runPixelBarrel_cfg.py @@ -27,14 +27,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runPixelForward_cfg.py b/Validation/CheckOverlap/test/python/runPixelForward_cfg.py index 735f87869f182..81729eaacd10a 100644 --- a/Validation/CheckOverlap/test/python/runPixelForward_cfg.py +++ b/Validation/CheckOverlap/test/python/runPixelForward_cfg.py @@ -27,14 +27,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runShashlik_cfg.py b/Validation/CheckOverlap/test/python/runShashlik_cfg.py new file mode 100644 index 0000000000000..0d28a72419a9d --- /dev/null +++ b/Validation/CheckOverlap/test/python/runShashlik_cfg.py @@ -0,0 +1,64 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("PROD") +process.load("SimGeneral.HepPDTESSource.pdt_cfi") + +process.load("Geometry.HGCalCommonData.shashlikCapsuleGeometryXML_cfi") + +process.load("SimG4Core.Application.g4SimHits_cfi") + +process.MessageLogger = cms.Service("MessageLogger", + destinations = cms.untracked.vstring('cout'), + categories = cms.untracked.vstring('G4cout', 'G4cerr', 'HGCalGeom'), + cout = cms.untracked.PSet( + default = cms.untracked.PSet( + limit = cms.untracked.int32(0) + ), + HGCalGeom = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ), + G4cout = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ), + G4cerr = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ) + ) +) + +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 + +process.source = cms.Source("EmptySource") + +process.generator = cms.EDProducer("FlatRandomEGunProducer", + PGunParameters = cms.PSet( + PartID = cms.vint32(14), + MinEta = cms.double(-3.5), + MaxEta = cms.double(3.5), + MinPhi = cms.double(-3.14159265359), + MaxPhi = cms.double(3.14159265359), + MinE = cms.double(9.99), + MaxE = cms.double(10.01) + ), + AddAntiParticle = cms.bool(False), + Verbosity = cms.untracked.int32(0), + firstRun = cms.untracked.uint32(1) +) + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) +) + +process.p1 = cms.Path(process.generator*process.g4SimHits) +process.g4SimHits.UseMagneticField = False +process.g4SimHits.Physics.type = 'SimG4Core/Physics/DummyPhysics' +process.g4SimHits.Physics.DummyEMPhysics = True +process.g4SimHits.Watchers = cms.VPSet(cms.PSet( + type = cms.string('CheckOverlap'), + Resolution = cms.untracked.int32(1000), + NodeNames = cms.untracked.vstring('ShashlikCapsule') +)) + diff --git a/Validation/CheckOverlap/test/python/runShield_cfg.py b/Validation/CheckOverlap/test/python/runShield_cfg.py index ff795839f0b89..13e26c080b4f5 100644 --- a/Validation/CheckOverlap/test/python/runShield_cfg.py +++ b/Validation/CheckOverlap/test/python/runShield_cfg.py @@ -27,14 +27,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runTEC_cfg.py b/Validation/CheckOverlap/test/python/runTEC_cfg.py index 5acf05000030b..9182b12200b7f 100644 --- a/Validation/CheckOverlap/test/python/runTEC_cfg.py +++ b/Validation/CheckOverlap/test/python/runTEC_cfg.py @@ -27,14 +27,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runTIB_cfg.py b/Validation/CheckOverlap/test/python/runTIB_cfg.py index 78ab2184044fc..f61940b0ecf5c 100644 --- a/Validation/CheckOverlap/test/python/runTIB_cfg.py +++ b/Validation/CheckOverlap/test/python/runTIB_cfg.py @@ -27,14 +27,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runTID_cfg.py b/Validation/CheckOverlap/test/python/runTID_cfg.py index 5beb9219767a9..648fe5a5b0804 100644 --- a/Validation/CheckOverlap/test/python/runTID_cfg.py +++ b/Validation/CheckOverlap/test/python/runTID_cfg.py @@ -27,14 +27,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runTOB_cfg.py b/Validation/CheckOverlap/test/python/runTOB_cfg.py index 7724d1b1147f6..2d480e8019d32 100644 --- a/Validation/CheckOverlap/test/python/runTOB_cfg.py +++ b/Validation/CheckOverlap/test/python/runTOB_cfg.py @@ -27,14 +27,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runTotemT1_cfg.py b/Validation/CheckOverlap/test/python/runTotemT1_cfg.py index 3c7f3580ba0ee..d1ddbcf0ba8d5 100644 --- a/Validation/CheckOverlap/test/python/runTotemT1_cfg.py +++ b/Validation/CheckOverlap/test/python/runTotemT1_cfg.py @@ -27,14 +27,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runTotemT2_cfg.py b/Validation/CheckOverlap/test/python/runTotemT2_cfg.py index a5370c16553fa..2996329a8ca7a 100644 --- a/Validation/CheckOverlap/test/python/runTotemT2_cfg.py +++ b/Validation/CheckOverlap/test/python/runTotemT2_cfg.py @@ -27,14 +27,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runTracker_cfg.py b/Validation/CheckOverlap/test/python/runTracker_cfg.py index 8b4d6e63ef789..ada0ad1f587ef 100644 --- a/Validation/CheckOverlap/test/python/runTracker_cfg.py +++ b/Validation/CheckOverlap/test/python/runTracker_cfg.py @@ -27,14 +27,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/runZDC_cfg.py b/Validation/CheckOverlap/test/python/runZDC_cfg.py index dae42ea601c7d..1db9c01dfe5c2 100644 --- a/Validation/CheckOverlap/test/python/runZDC_cfg.py +++ b/Validation/CheckOverlap/test/python/runZDC_cfg.py @@ -27,14 +27,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource") diff --git a/Validation/CheckOverlap/test/python/run_cfg.py b/Validation/CheckOverlap/test/python/run_cfg.py index 1ddea2dd9a11d..a5e362a526c50 100644 --- a/Validation/CheckOverlap/test/python/run_cfg.py +++ b/Validation/CheckOverlap/test/python/run_cfg.py @@ -29,14 +29,10 @@ ) ) -process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService", - moduleSeeds = cms.PSet( - generator = cms.untracked.uint32(456789), - g4SimHits = cms.untracked.uint32(9876), - VtxSmeared = cms.untracked.uint32(12345) - ), - sourceSeed = cms.untracked.uint32(98765) -) +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 process.source = cms.Source("EmptySource")