From 0a37e03de894e89a005e80d39acb501a991819d8 Mon Sep 17 00:00:00 2001 From: Gaelle Date: Fri, 16 Sep 2016 11:57:42 +0200 Subject: [PATCH 1/5] Fix merge conflict --- Configuration/Geometry/README.md | 3 +- .../python/GeometryExtended2023D4Reco_cff.py | 48 + .../python/GeometryExtended2023D4_cff.py | 11 + .../Geometry/scripts/dict2023Geometry.py | 39 +- .../PyReleaseValidation/python/relval_2023.py | 1 + .../python/relval_steps.py | 1 + .../python/upgradeWorkflowComponents.py | 23 +- .../StandardSequences/python/GeometryConf.py | 1 + .../cmsExtendedGeometry2023D4XML_cfi.py | 129 + .../data/PhaseII/TiltedTracker4021/pixbar.xml | 267 + .../data/PhaseII/TiltedTracker4021/pixel.xml | 12871 ++++ .../pixelStructureTopology.xml | 654 + .../data/PhaseII/TiltedTracker4021/pixfwd.xml | 117 + .../TiltedTracker4021/pixfwdCylinder.xml | 237 + .../TiltedTracker4021/pixfwdMaterials.xml | 444 + .../PhaseII/TiltedTracker4021/tracker.xml | 52268 ++++++++++++++++ .../trackerStructureTopology.xml | 3212 + .../PhaseII/TiltedTracker4021/trackerbar.xml | 13 + .../PhaseII/TiltedTracker4021/trackerfwd.xml | 34 + .../src/TrackerGeometry.cc | 12 +- Geometry/TrackerNumberingBuilder/README.md | 62 +- .../doc/GeometricDetBuilder.png | Bin 107099 -> 93222 bytes .../interface/GeometricDet.h | 3 +- .../CmsTrackerPixelPhase2DiskBuilder.cc | 62 + .../CmsTrackerPixelPhase2DiskBuilder.h | 20 + .../CmsTrackerPixelPhase2EndcapBuilder.cc | 5 + .../CmsTrackerPixelPhase2EndcapBuilder.h | 2 +- .../CmsTrackerPixelPhase2RingBuilder.cc | 31 + .../CmsTrackerPixelPhase2RingBuilder.h | 18 + .../src/CmsTrackerStringToEnum.cc | 24 +- .../TiltedTracker4021/pixelRecoMaterial.xml | 177 + .../TiltedTracker4021/trackerRecoMaterial.xml | 445 + .../TiltedTracker4021/pixelProdCuts.xml | 99 + .../PhaseII/TiltedTracker4021/pixelsens.xml | 91 + .../TiltedTracker4021/trackerProdCuts.xml | 351 + .../PhaseII/TiltedTracker4021/trackersens.xml | 339 + .../Configuration/python/combinedCustoms.py | 6 + .../Configuration/python/phase2TkTilted.py | 1 - .../python/phase2TkTilted4021.py | 90 + .../fakeConditions_phase2TkTilted4021_cff.py | 13 + .../writeFile_phase2TiltedPixel4021_cfg.py | 50 + .../plugins/Phase2TrackerDigitizer.cc | 6 + 42 files changed, 72263 insertions(+), 17 deletions(-) create mode 100644 Configuration/Geometry/python/GeometryExtended2023D4Reco_cff.py create mode 100644 Configuration/Geometry/python/GeometryExtended2023D4_cff.py create mode 100644 Geometry/CMSCommonData/python/cmsExtendedGeometry2023D4XML_cfi.py create mode 100644 Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixbar.xml create mode 100644 Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixel.xml create mode 100644 Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixelStructureTopology.xml create mode 100644 Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixfwd.xml create mode 100644 Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixfwdCylinder.xml create mode 100644 Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixfwdMaterials.xml create mode 100644 Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/tracker.xml create mode 100644 Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/trackerStructureTopology.xml create mode 100644 Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/trackerbar.xml create mode 100644 Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/trackerfwd.xml create mode 100644 Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2DiskBuilder.cc create mode 100644 Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2DiskBuilder.h create mode 100644 Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2RingBuilder.cc create mode 100644 Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2RingBuilder.h create mode 100644 Geometry/TrackerRecoData/data/PhaseII/TiltedTracker4021/pixelRecoMaterial.xml create mode 100644 Geometry/TrackerRecoData/data/PhaseII/TiltedTracker4021/trackerRecoMaterial.xml create mode 100644 Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/pixelProdCuts.xml create mode 100644 Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/pixelsens.xml create mode 100644 Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/trackerProdCuts.xml create mode 100644 Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/trackersens.xml create mode 100644 SLHCUpgradeSimulations/Configuration/python/phase2TkTilted4021.py create mode 100644 SLHCUpgradeSimulations/Geometry/python/fakeConditions_phase2TkTilted4021_cff.py create mode 100644 SLHCUpgradeSimulations/Geometry/test/writeFile_phase2TiltedPixel4021_cfg.py diff --git a/Configuration/Geometry/README.md b/Configuration/Geometry/README.md index 2676337c57a4f..c7a2a2d5d491f 100644 --- a/Configuration/Geometry/README.md +++ b/Configuration/Geometry/README.md @@ -5,7 +5,7 @@ Different versions of various subdetectors can be combined. The available versio Tracker: * T1: Phase2 tilted tracker (v2016-04-12) w/ phase 1 (extended) pixel * T2: Phase2 flat tracker (v2016-04-12) w/ phase 1 (extended) pixel -* T3: Phase2 tilted tracker (v3.6.2) w/ phase 2 pixel (v4.0.2.1) +* T3: Phase2 tilted tracker (v3.6.2) w/ phase 2 pixel (v4.0.2.1) Calorimeters: * C1: Run2 calorimeters @@ -21,6 +21,7 @@ Several detector combinations have been generated: * D1 = T1+C1+M1 * D2 = T2+C1+M1 * D3 = T1+C2+M1 +* D4 = T3+C2+M1 Currently, D1 is considered to be the baseline for development purposes. diff --git a/Configuration/Geometry/python/GeometryExtended2023D4Reco_cff.py b/Configuration/Geometry/python/GeometryExtended2023D4Reco_cff.py new file mode 100644 index 0000000000000..b5165c5acc562 --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2023D4Reco_cff.py @@ -0,0 +1,48 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2023Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Configuration.Geometry.GeometryExtended2023D4_cff import * + +# tracker +from Geometry.CommonDetUnit.globalTrackingGeometry_cfi import * +from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * +from Geometry.TrackerGeometryBuilder.trackerParameters_cfi import * +from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * +from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * +trackerGeometry.applyAlignment = cms.bool(False) + +# calo +from Geometry.CaloEventSetup.HGCalV6Topology_cfi import * +from Geometry.HGCalGeometry.HGCalV6GeometryESProducer_cfi import * +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.CaloTowerTopology_cfi import * +from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * +from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * +from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * +from Geometry.EcalMapping.EcalMapping_cfi import * +from Geometry.EcalMapping.EcalMappingRecord_cfi import * + +# muon +from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * +from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * +from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * +from Geometry.GEMGeometryBuilder.me0Geometry_cfi import * +from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * +from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * + +# forward +from Geometry.ForwardGeometry.ForwardGeometry_cfi import * + diff --git a/Configuration/Geometry/python/GeometryExtended2023D4_cff.py b/Configuration/Geometry/python/GeometryExtended2023D4_cff.py new file mode 100644 index 0000000000000..5bd5ca5e62166 --- /dev/null +++ b/Configuration/Geometry/python/GeometryExtended2023D4_cff.py @@ -0,0 +1,11 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2023Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +from Geometry.CMSCommonData.cmsExtendedGeometry2023D4XML_cfi import * +from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * +from Geometry.HcalCommonData.hcalParameters_cfi import * +from Geometry.HcalCommonData.hcalDDDSimConstants_cfi import * +from Geometry.HGCalCommonData.hgcalV6ParametersInitialization_cfi import * +from Geometry.HGCalCommonData.hgcalV6NumberingInitialization_cfi import * diff --git a/Configuration/Geometry/scripts/dict2023Geometry.py b/Configuration/Geometry/scripts/dict2023Geometry.py index bfa3d7898a718..941778e2deb7f 100644 --- a/Configuration/Geometry/scripts/dict2023Geometry.py +++ b/Configuration/Geometry/scripts/dict2023Geometry.py @@ -172,7 +172,43 @@ 'trackerGeometry.applyAlignment = cms.bool(False)', ], "era" : "self.phase2_tracker, self.trackingPhase2PU140", - } + }, + "T3" : { + 1 : [ + 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml', + 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixfwdMaterials.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixfwdCylinder.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixbar.xml', + 'Geometry/TrackerCommonData/data/trackermaterial.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/tracker.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixel.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/trackerbar.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/trackerfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/trackerStructureTopology.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixelStructureTopology.xml', + 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/trackersens.xml', + 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/pixelsens.xml', + 'Geometry/TrackerRecoData/data/PhaseII/TiltedTracker4021/trackerRecoMaterial.xml', + 'Geometry/TrackerRecoData/data/PhaseII/TiltedTracker4021/pixelRecoMaterial.xml', + 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/trackerProdCuts.xml', + 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/pixelProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', + ], + "sim" : [ + 'from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import *', + ], + "reco" : [ + 'from Geometry.CommonDetUnit.globalTrackingGeometry_cfi import *', + 'from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import *', + 'from Geometry.TrackerGeometryBuilder.trackerParameters_cfi import *', + 'from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import *', + 'from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import *', + 'trackerGeometry.applyAlignment = cms.bool(False)', + ], + "era" : "self.phase2_tracker, self.trackingPhase2PU140", + } } caloDict = { @@ -399,5 +435,6 @@ ("O1","T1","C1","M1","F1") : "D1", ("O1","T2","C1","M1","F1") : "D2", ("O1","T1","C2","M1","F1") : "D3", + ("O1","T3","C2","M1","F1") : "D4" } diff --git a/Configuration/PyReleaseValidation/python/relval_2023.py b/Configuration/PyReleaseValidation/python/relval_2023.py index d064d6a22d2c2..3170d90e7d662 100644 --- a/Configuration/PyReleaseValidation/python/relval_2023.py +++ b/Configuration/PyReleaseValidation/python/relval_2023.py @@ -18,6 +18,7 @@ numWFIB = [20021.0,20024.0,20025.0,20026.0] #2023D1 scenario numWFIB.extend([20421.0,20424.0,20425.0,20426.0]) #2023D2 numWFIB.extend([20821.0,20824.0,20825.0,20826.0]) #2023D3 +numWFIB.extend([21021.0,21024.0,21025.0,21026.0]) #2023D4 for i,key in enumerate(upgradeKeys[2023]): numWF=numWFStart+i*numWFSkip for frag in upgradeFragments: diff --git a/Configuration/PyReleaseValidation/python/relval_steps.py b/Configuration/PyReleaseValidation/python/relval_steps.py index dc56ab0e2b839..6eeb00eaf5d25 100644 --- a/Configuration/PyReleaseValidation/python/relval_steps.py +++ b/Configuration/PyReleaseValidation/python/relval_steps.py @@ -1606,6 +1606,7 @@ def lhegensim(fragment,howMuch): defaultDataSets['2023D1Timing']='' defaultDataSets['2023D2Timing']='' defaultDataSets['2023D3Timing']='' +defaultDataSets['2023D4']='' keys=defaultDataSets.keys() for key in keys: diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index 8abd401c087ee..46d81f774a664 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -22,6 +22,8 @@ '2023D2TimingPU', '2023D3Timing', '2023D3TimingPU' + '2023D4', + '2023D4PU', ] upgradeSteps=[ @@ -82,10 +84,18 @@ 'Custom' : 'SLHCUpgradeSimulations/Configuration/combinedCustoms.cust_2023tilted', 'Era' : 'Phase2C2', 'ScenToRun' : ['GenSimFull','DigiFull','RecoFullGlobal', 'HARVESTFullGlobal'], - } + }, + '2023D4' : { + 'Geom' : 'Extended2023D4', + 'GT' : 'auto:run2_mc', + 'Custom' : 'SLHCUpgradeSimulations/Configuration/combinedCustoms.cust_2023tilted4021', + 'Era' : 'Phase2C2', + 'ScenToRun' : ['GenSimFull','DigiFull','RecoFullLocal'], + } } + #Timing (later we can alter geometry, etc, if need be) upgradeProperties[2023]['2023D1Timing'] = deepcopy(upgradeProperties[2023]['2023D1']) upgradeProperties[2023]['2023D1Timing']['Era'] = 'Phase2C1_timing' @@ -113,6 +123,17 @@ upgradeProperties[2023]['2023D3TimingPU']['ScenToRun'] = deepcopy(upgradeProperties[2023]['2023D3PU']['ScenToRun']) +upgradeProperties['2017PU'] = deepcopy(upgradeProperties['2017']) +upgradeProperties['2017PU']['ScenToRun'] = ['GenSimFull','DigiFullPU','RecoFullPU','HARVESTFullPU'] +upgradeProperties['2023D1PU'] = deepcopy(upgradeProperties['2023D1']) +upgradeProperties['2023D1PU']['ScenToRun'] = ['GenSimFull','DigiFullPU','RecoFullGlobalPU', 'HARVESTFullGlobalPU'] +upgradeProperties['2023D2PU'] = deepcopy(upgradeProperties['2023D2']) +upgradeProperties['2023D2PU']['ScenToRun'] = ['GenSimFull','DigiFullPU','RecoFullGlobalPU', 'HARVESTFullGlobalPU'] +upgradeProperties['2023D3PU'] = deepcopy(upgradeProperties['2023D3']) +upgradeProperties['2023D3PU']['ScenToRun'] = ['GenSimFull','DigiFullPU','RecoFullGlobalPU', 'HARVESTFullGlobalPU'] +upgradeProperties['2023D4PU'] = deepcopy(upgradeProperties['2023D4']) +upgradeProperties['2023D4PU']['ScenToRun'] = ['GenSimFull','DigiFullPU','RecoFullLocalPU'] + from Configuration.PyReleaseValidation.relval_steps import Kby upgradeFragments=['FourMuPt_1_200_pythia8_cfi', diff --git a/Configuration/StandardSequences/python/GeometryConf.py b/Configuration/StandardSequences/python/GeometryConf.py index ac76c6e507597..983de008765cd 100644 --- a/Configuration/StandardSequences/python/GeometryConf.py +++ b/Configuration/StandardSequences/python/GeometryConf.py @@ -31,4 +31,5 @@ 'Extended2023D1' : 'Extended2023D1,Extended2023D1Reco', 'Extended2023D2' : 'Extended2023D2,Extended2023D2Reco', 'Extended2023D3' : 'Extended2023D3,Extended2023D3Reco', + 'Extended2023D4' : 'Extended2023D4,Extended2023D4Reco' } diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2023D4XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2023D4XML_cfi.py new file mode 100644 index 0000000000000..9e472a4bb3879 --- /dev/null +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2023D4XML_cfi.py @@ -0,0 +1,129 @@ +import FWCore.ParameterSet.Config as cms + +# This config was generated automatically using generate2023Geometry.py +# If you notice a mistake, please update the generating script, not just this config + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring( + 'Geometry/CMSCommonData/data/PhaseII/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/cmsextent.xml', + 'Geometry/CMSCommonData/data/PhaseI/cms.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.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/PhaseII/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/PhaseII/trackerParameters.xml', + 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixfwdMaterials.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixfwdCylinder.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixbar.xml', + 'Geometry/TrackerCommonData/data/trackermaterial.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/tracker.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixel.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/trackerbar.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/trackerfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/trackerStructureTopology.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixelStructureTopology.xml', + 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/trackersens.xml', + 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/pixelsens.xml', + 'Geometry/TrackerRecoData/data/PhaseII/TiltedTracker4021/trackerRecoMaterial.xml', + 'Geometry/TrackerRecoData/data/PhaseII/TiltedTracker4021/pixelRecoMaterial.xml', + 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/trackerProdCuts.xml', + 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/pixelProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', + 'Geometry/EcalCommonData/data/ectkcable.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/PhaseII/escon.xml', + 'Geometry/EcalCommonData/data/PhaseII/esalgo.xml', + 'Geometry/HcalCommonData/data/hcalrotations.xml', + 'Geometry/HcalCommonData/data/PhaseII/HGCal/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/PhaseII/HGCal/hcalendcapalgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/PhaseII/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/PhaseII/HGCal/hcalRecNumberingRebuild.xml', + 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HGCalCommonData/data/v7/hgcal.xml', + 'Geometry/HGCalCommonData/data/v7/hgcalEE.xml', + 'Geometry/HGCalCommonData/data/v7/hgcalHEsil.xml', + 'Geometry/HGCalCommonData/data/v7/hgcalwafer.xml', + 'Geometry/HGCalCommonData/data/v7/hgcalCons.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/PhaseII/mf.xml', + 'Geometry/MuonCommonData/data/PhaseII/rpcf.xml', + 'Geometry/MuonCommonData/data/PhaseII/gemf.xml', + 'Geometry/MuonCommonData/data/PhaseII/TDR_BaseLine/gem11.xml', + 'Geometry/MuonCommonData/data/PhaseII/TDR_BaseLine/gem21.xml', + 'Geometry/MuonCommonData/data/v2/csc.xml', + 'Geometry/MuonCommonData/data/PhaseII/mfshield.xml', + 'Geometry/MuonCommonData/data/PhaseII/TDR_BaseLine/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/muonNumbering.xml', + 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', + 'Geometry/HcalCommonData/data/PhaseII/HGCal/hcalsenspmf.xml', + 'Geometry/HcalSimData/data/hf.xml', + 'Geometry/HcalSimData/data/hfpmt.xml', + 'Geometry/HcalSimData/data/hffibrebundle.xml', + 'Geometry/HcalSimData/data/CaloUtil.xml', + 'Geometry/HGCalSimData/data/hgcsensv6.xml', + 'Geometry/HGCalSimData/data/hgccons.xml', + 'Geometry/HGCalSimData/data/hgcProdCuts.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/PhaseII/RPCSpecs.xml', + 'Geometry/GEMGeometryBuilder/data/GEMSpecsFilter.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/MuonSimData/data/PhaseII/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/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixbar.xml b/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixbar.xml new file mode 100644 index 0000000000000..235a0631032cb --- /dev/null +++ b/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixbar.xml @@ -0,0 +1,267 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixel.xml b/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixel.xml new file mode 100644 index 0000000000000..e9155f55d7507 --- /dev/null +++ b/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixel.xml @@ -0,0 +1,12871 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0,0,0 + + + + + + + + + + +0,0,0 + + + + + + + + + + +0,0,0 + + + + + + + + + + +0,0,0 + + + + + + + + + + +0,0,0 + + + + + + + + + + +0,0,0 + + + + + + + + + + +0,0,0 + + + + + + + + + + +0,0,0 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + + + + + + + + +0,0,-2 + + + + + + + + + + + + + +0,0,2 + + + + + + diff --git a/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixelStructureTopology.xml b/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixelStructureTopology.xml new file mode 100644 index 0000000000000..ba8db154eed64 --- /dev/null +++ b/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixelStructureTopology.xml @@ -0,0 +1,654 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixfwd.xml b/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixfwd.xml new file mode 100644 index 0000000000000..96fcbb40ad4a5 --- /dev/null +++ b/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixfwd.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixfwdCylinder.xml b/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixfwdCylinder.xml new file mode 100644 index 0000000000000..c592edc566365 --- /dev/null +++ b/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixfwdCylinder.xml @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixfwdMaterials.xml b/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixfwdMaterials.xml new file mode 100644 index 0000000000000..15cf56f3116b6 --- /dev/null +++ b/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/pixfwdMaterials.xml @@ -0,0 +1,444 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/tracker.xml b/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/tracker.xml new file mode 100644 index 0000000000000..66c54ac8d383f --- /dev/null +++ b/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/tracker.xml @@ -0,0 +1,52268 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0,0,5.45415 + + + + + + + + + + + + + +0,0,-5.45415 + + + + + + + + + + + + + +0,0,5.45415 + + + + + + + + + + + + + +0,0,-5.45415 + + + + + + + + + + + + + +0,0,5.45415 + + + + + + + + + + + + + +0,0,-5.45415 + + + + + + + + + + + + + +0,0,5.95877 + + + + + + + + + + + + + +0,0,-5.95877 + + + + + + + + + + + + + +0,0,5.95877 + + + + + + + + + + + + + +0,0,-5.95877 + + + + + + + + + + + + + +0,0,5.95877 + + + + + + + + + + + + + +0,0,-5.95877 + + + + + + + + + + + + + +0,0,5.95877 + + + + + + + + + + + + + +0,0,-5.95877 + + + + + + + + + + + + + +0,0,6.15091 + + + + + + + + + + + + + +0,0,-6.15091 + + + + + + + + + + + + + +0,0,6.15091 + + + + + + + + + + + + + +0,0,-6.15091 + + + + + + + + + + + + + +0,0,6.15091 + + + + + + + + + + + + + +0,0,-6.15091 + + + + + + + + + + + + + +0,0,6.15091 + + + + + + + + + + + + + +0,0,-6.15091 + + + + + + + + + + + + + +0,0,-5.45415 + + + + + + + + + + + + + +0,0,5.45415 + + + + + + + + + + + + + +0,0,-5.45415 + + + + + + + + + + + + + +0,0,5.45415 + + + + + + + + + + + + + +0,0,-5.45415 + + + + + + + + + + + + + +0,0,5.45415 + + + + + + + + + + + + + +0,0,-5.95877 + + + + + + + + + + + + + +0,0,5.95877 + + + + + + + + + + + + + +0,0,-5.95877 + + + + + + + + + + + + + +0,0,5.95877 + + + + + + + + + + + + + +0,0,-5.95877 + + + + + + + + + + + + + +0,0,5.95877 + + + + + + + + + + + + + +0,0,-5.95877 + + + + + + + + + + + + + +0,0,5.95877 + + + + + + + + + + + + + +0,0,-6.15091 + + + + + + + + + + + + + +0,0,6.15091 + + + + + + + + + + + + + +0,0,-6.15091 + + + + + + + + + + + + + +0,0,6.15091 + + + + + + + + + + + + + +0,0,-6.15091 + + + + + + + + + + + + + +0,0,6.15091 + + + + + + + + + + + + + +0,0,-6.15091 + + + + + + + + + + + + + +0,0,6.15091 + + + + + + + + + + + + + + + + + + + + + + + + + + +0,0,4.6188 + + + + + + + + + + + + + +0,0,-4.6188 + + + + + + + + + + + + + +0,0,4.6188 + + + + + + + + + + + + + +0,0,-4.6188 + + + + + + + + + + + + + +0,0,4.6188 + + + + + + + + + + + + + +0,0,-4.6188 + + + + + + + + + + + + + +0,0,5.06495 + + + + + + + + + + + + + +0,0,-5.06495 + + + + + + + + + + + + + +0,0,5.06495 + + + + + + + + + + + + + +0,0,-5.06495 + + + + + + + + + + + + + +0,0,5.06495 + + + + + + + + + + + + + +0,0,-5.06495 + + + + + + + + + + + + + +0,0,5.06495 + + + + + + + + + + + + + +0,0,-5.06495 + + + + + + + + + + + + + +0,0,6.00125 + + + + + + + + + + + + + +0,0,-6.00125 + + + + + + + + + + + + + +0,0,6.00125 + + + + + + + + + + + + + +0,0,-6.00125 + + + + + + + + + + + + + +0,0,6.00125 + + + + + + + + + + + + + +0,0,-6.00125 + + + + + + + + + + + + + +0,0,6.00125 + + + + + + + + + + + + + +0,0,-6.00125 + + + + + + + + + + + + + +0,0,6.00125 + + + + + + + + + + + + + +0,0,-6.00125 + + + + + + + + + + + + + +0,0,-4.6188 + + + + + + + + + + + + + +0,0,4.6188 + + + + + + + + + + + + + +0,0,-4.6188 + + + + + + + + + + + + + +0,0,4.6188 + + + + + + + + + + + + + +0,0,-4.6188 + + + + + + + + + + + + + +0,0,4.6188 + + + + + + + + + + + + + +0,0,-5.06495 + + + + + + + + + + + + + +0,0,5.06495 + + + + + + + + + + + + + +0,0,-5.06495 + + + + + + + + + + + + + +0,0,5.06495 + + + + + + + + + + + + + +0,0,-5.06495 + + + + + + + + + + + + + +0,0,5.06495 + + + + + + + + + + + + + +0,0,-5.06495 + + + + + + + + + + + + + +0,0,5.06495 + + + + + + + + + + + + + +0,0,-6.00125 + + + + + + + + + + + + + +0,0,6.00125 + + + + + + + + + + + + + +0,0,-6.00125 + + + + + + + + + + + + + +0,0,6.00125 + + + + + + + + + + + + + +0,0,-6.00125 + + + + + + + + + + + + + +0,0,6.00125 + + + + + + + + + + + + + +0,0,-6.00125 + + + + + + + + + + + + + +0,0,6.00125 + + + + + + + + + + + + + +0,0,-6.00125 + + + + + + + + + + + + + +0,0,6.00125 + + + + + + + + + + + + + + + + + + + + + + + + + + +0,0,4.04145 + + + + + + + + + + + + + +0,0,-4.04145 + + + + + + + + + + + + + +0,0,4.04145 + + + + + + + + + + + + + +0,0,-4.04145 + + + + + + + + + + + + + +0,0,4.04145 + + + + + + + + + + + + + +0,0,-4.04145 + + + + + + + + + + + + + +0,0,4.04145 + + + + + + + + + + + + + +0,0,-4.04145 + + + + + + + + + + + + + +0,0,4.04145 + + + + + + + + + + + + + +0,0,-4.04145 + + + + + + + + + + + + + +0,0,4.04145 + + + + + + + + + + + + + +0,0,-4.04145 + + + + + + + + + + + + + +0,0,4.76701 + + + + + + + + + + + + + +0,0,-4.76701 + + + + + + + + + + + + + +0,0,4.76701 + + + + + + + + + + + + + +0,0,-4.76701 + + + + + + + + + + + + + +0,0,4.76701 + + + + + + + + + + + + + +0,0,-4.76701 + + + + + + + + + + + + + +0,0,4.76701 + + + + + + + + + + + + + +0,0,-4.76701 + + + + + + + + + + + + + +0,0,4.76701 + + + + + + + + + + + + + +0,0,-4.76701 + + + + + + + + + + + + + +0,0,4.76701 + + + + + + + + + + + + + +0,0,-4.76701 + + + + + + + + + + + + + +0,0,-4.04145 + + + + + + + + + + + + + +0,0,4.04145 + + + + + + + + + + + + + +0,0,-4.04145 + + + + + + + + + + + + + +0,0,4.04145 + + + + + + + + + + + + + +0,0,-4.04145 + + + + + + + + + + + + + +0,0,4.04145 + + + + + + + + + + + + + +0,0,-4.04145 + + + + + + + + + + + + + +0,0,4.04145 + + + + + + + + + + + + + +0,0,-4.04145 + + + + + + + + + + + + + +0,0,4.04145 + + + + + + + + + + + + + +0,0,-4.04145 + + + + + + + + + + + + + +0,0,4.04145 + + + + + + + + + + + + + +0,0,-4.76701 + + + + + + + + + + + + + +0,0,4.76701 + + + + + + + + + + + + + +0,0,-4.76701 + + + + + + + + + + + + + +0,0,4.76701 + + + + + + + + + + + + + +0,0,-4.76701 + + + + + + + + + + + + + +0,0,4.76701 + + + + + + + + + + + + + +0,0,-4.76701 + + + + + + + + + + + + + +0,0,4.76701 + + + + + + + + + + + + + +0,0,-4.76701 + + + + + + + + + + + + + +0,0,4.76701 + + + + + + + + + + + + + +0,0,-4.76701 + + + + + + + + + + + + + +0,0,4.76701 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,8.85 + + + + + + + + + + + + + +0,0,-8.85 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,8.85 + + + + + + + + + + + + + +0,0,-8.85 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,8.85 + + + + + + + + + + + + + +0,0,-8.85 + + + + + + + + + + + + + +0,0,8.85 + + + + + + + + + + + + + +0,0,-8.85 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,8.85 + + + + + + + + + + + + + +0,0,-8.85 + + + + + + + + + + + + + +0,0,8.85 + + + + + + + + + + + + + +0,0,-8.85 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,7.4 + + + + + + + + + + + + + +0,0,-7.4 + + + + + + + + + + + + + +0,0,8.85 + + + + + + + + + + + + + +0,0,-8.85 + + + + + + + + + + + + + +0,0,8.85 + + + + + + + + + + + + + +0,0,-8.85 + + + + + + + + + + + + + +0,0,8.85 + + + + + + + + + + + + + +0,0,-8.85 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + + + + + + + + +0,0,7.95 + + + + + + + + + + + + + +0,0,-7.95 + + + + + + diff --git a/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/trackerStructureTopology.xml b/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/trackerStructureTopology.xml new file mode 100644 index 0000000000000..5ce8c8293b33a --- /dev/null +++ b/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/trackerStructureTopology.xml @@ -0,0 +1,3212 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/trackerbar.xml b/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/trackerbar.xml new file mode 100644 index 0000000000000..73a321da80023 --- /dev/null +++ b/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/trackerbar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/trackerfwd.xml b/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/trackerfwd.xml new file mode 100644 index 0000000000000..d782e65ee2253 --- /dev/null +++ b/Geometry/TrackerCommonData/data/PhaseII/TiltedTracker4021/trackerfwd.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/TrackerGeometryBuilder/src/TrackerGeometry.cc b/Geometry/TrackerGeometryBuilder/src/TrackerGeometry.cc index ac403e49d78ff..a752d0bd8eb71 100644 --- a/Geometry/TrackerGeometryBuilder/src/TrackerGeometry.cc +++ b/Geometry/TrackerGeometryBuilder/src/TrackerGeometry.cc @@ -284,9 +284,12 @@ float TrackerGeometry::getDetectorThickness(DetId detid) const { } TrackerGeometry::ModuleType TrackerGeometry::moduleType(const std::string& name) const { - if ( name.find("PixelBarrel") != std::string::npos) return ModuleType::Ph1PXB; - else if (name.find("PixelForward") != std::string::npos) return ModuleType::Ph1PXF; - else if ( name.find("TIB") != std::string::npos) { + if ( name.find("Pixel") != std::string::npos ){ + if ( name.find("BarrelActive") != std::string::npos) return ModuleType::Ph1PXB; + else if ( name.find("ForwardSensor") != std::string::npos) return ModuleType::Ph1PXF; + else if ( name.find("BModule") != std::string::npos && name.find("InnerPixelActive") != std::string::npos ) return ModuleType::Ph2PXB; + else if ( name.find("EModule") != std::string::npos && name.find("InnerPixelActive") != std::string::npos ) return ModuleType::Ph2PXF; + } else if ( name.find("TIB") != std::string::npos) { if ( name.find("0") != std::string::npos) return ModuleType::IB1; else return ModuleType::IB2; } else if ( name.find("TOB") != std::string::npos) { @@ -304,7 +307,8 @@ TrackerGeometry::ModuleType TrackerGeometry::moduleType(const std::string& name) else if ( name.find("4") != std::string::npos) return ModuleType::W5; else if ( name.find("5") != std::string::npos) return ModuleType::W6; else if ( name.find("6") != std::string::npos) return ModuleType::W7; - } else if ( name.find("BModule") != std::string::npos || name.find("EModule") != std::string::npos ) { + } + if ( name.find("BModule") != std::string::npos || name.find("EModule") != std::string::npos ) { if (name.find("PSMacroPixel") != std::string::npos) return ModuleType::Ph2PSP; else if (name.find("PSStrip") != std::string::npos) return ModuleType::Ph2PSS; else if (name.find("2S") != std::string::npos) return ModuleType::Ph2SS; diff --git a/Geometry/TrackerNumberingBuilder/README.md b/Geometry/TrackerNumberingBuilder/README.md index f2919c344556f..4b7ffa33c6c69 100644 --- a/Geometry/TrackerNumberingBuilder/README.md +++ b/Geometry/TrackerNumberingBuilder/README.md @@ -6,8 +6,9 @@ The graph of the `GeometricDet` tree can be found in [this file](doc/GeometricDe ## Available DetId Schemas The predefined DetId schemas available in this package are: * The Run 1 (aka _present_) detector DetId schema -* The Phase1 detector DetId schema where the pixel detector is replaced by the upgraded one -* The Phase 2 upgrade detectors DetId schema where the strip tracker is replaced by the upgraded outer tracker +* The Phase 1 detector DetId schema where the pixel detector is replaced by the upgraded one +* The Phase 2 upgrade detector DetId schema where only the strip tracker is replaced by the upgraded outer tracker and the pixel is `a-la TP` +* The Phase 2 upgrade detector DetId schema where a new ordering for also the pixel is introduced to take into account the new Geometry for the TDR In the table below the DetId levels which are in normal font represents _real_ hierarchy levels which are present also in the `GeometricDet` tree which is build in parallel to the DetId assignment. Those levels which are in _italic_ font are _fake_ levels and are not known by the GeometricDet tree. @@ -122,7 +123,7 @@ Subdetectors 3 to 6 are as for the Run 1 detector since the SiStrip Tracker is t The configuration names for this detid schema are `trackerNumberingGeometry_cfi` (to run on geometry built from xml files) or `trackerNumberingGeometryDB_cfi` (to run on geometry from DB) for `TrackerGeometricDetESModule` and `trackerTopology2017Constants_cfi` for `TrackerTopology` The xml description of tracker parameters for this detid schema is in [Geometry/TrackerCommonData/data/PhaseI/trackerParameters.xml](../TrackerCommonData/data/PhaseI/trackerParameters.xml) -### Phase 2 Upgrade Detector DetId schema +### Phase 2 Upgrade Detector DetId schema Flat or Tilted Geometry with old pixel detector The phase 2 detector DetId schema is identical to the one of the phase 1 detector for the inner pixel detector while for the outer tracker subdetector 5, for the barrel, and subdetector 4, for the endcap, are used. In some cases the name of the `TrackerTopology` methods is not so meaningful. In particular, for the Outer Tracker, the methods DoubleSided is not implemented, firstly because there is no need, secondly because it is not possible, just looking at the DetId and without something hardcoded, to understand if the module is single or double. This is also valid for Run I and Phase I. The OT tilted option has been introduced in the subdetector 5 with two bits (in the table referred with _subdetector part_ ) that correspond to the rings in the negative and positive part and the central barrel part. The order is thus changed respectevely for the three different subparts: ladders by increasing phi and rings by increasing |z|, same consistency for the modules order. With this subdetector, the flat geometry is compatible using just the central barrel part of the subdetector 5. @@ -175,6 +176,61 @@ With this subdetector, the flat geometry is compatible using just the central ba The configuration names for this detid schema are `trackerNumberingGeometry_cfi` (to run on geometry built from xml files) or `trackerNumberingGeometryDB_cfi` (to run on geometry from DB) for `TrackerGeometricDetESModule` and `trackerTopology2023Constants_cfi` for `TrackerTopology` The xml description of tracker parameters for this detid schema is in [Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml](../TrackerCommonData/data/PhaseII/trackerParameters.xml) + +### Phase 2 Upgrade Detector DetId schema Tilted Geometry with new pixel detector for TDR (from Version V4021) +The phase 2 detector DetId schema for the pixel has been re-designed in order to have the correct hierarchy endcap-->disk-->ring-->module +while the outer tracker, use, as in previous case, subdetector 5, for the barrel, and subdetector 4, for the endcap. In some cases the name of the `TrackerTopology` methods is not so meaningful. In particular, for the Outer Tracker, the methods DoubleSided is not implemented, firstly because there is no need, secondly because it is not possible, just looking at the DetId and without something hardcoded, to understand if the module is single or double. This is also valid for Run I and Phase I. +The OT tilted option has been introduced in the subdetector 5 with two bits (in the table referred with _subdetector part_ ) that correspond to the rings in the negative and positive part and the central barrel part. The order is thus changed respectevely for the three different subparts: ladders by increasing phi and rings by increasing |z|, same consistency for the modules order. + +* Subdetector 1: (`DetId::subDetId() == PixelSubdetector::PixelBarrel`): Phase1 Pixel Barrel + +| Name | start bit | hex mask | bit size | `TrackerTopology` method | Notes | +|------|-----------|-----------|-----|----|-----| +| _not used_ | 24 | 0x1 | 1 | | | +| Layer | 20 | 0xF | 4 | pxbLayer(id) or layer(id) | increasing r | +| Ladder | 12 | 0xFF | 8 | pxbLadder(id) | increasing phi | +| Module | 2 | 0x3FF | 10 | pxbModule(id) | increasing z | +| _not used_ | 0 | 0x3 | 2 | | | + +* Subdetector 2: (`DetId::subDetId() == PixelSubdetector::PixelEndcap`): Phase2 Pixel Forward + +| Name | start bit | hex mask | bit size | `TrackerTopology` method | Notes | +|------|-----------|-----------|----|-----|-----| +| subdetector part | 23 | 0x3 | 2 | pxfSide(id) or side(id) | 1=FPIX- 2=FPIX+ | +| _not used_ | 22 | 0x1 | 1 | | | +| Disk | 18 | 0xF | 4 | pxfDisk(id) or layer(id) | increasing abs(z) | +| _Ring_ | 12 | 0x3F | 6 | pxfBlade(id) | increasing r | +| Panel | 10 | 0x3 | 2 | pxfPanel(id) | always 1 | +| Module | 2 | 0xFF | 8 | pxfModule(id) | increasing phi | +| _not used_ | 0 | 0x3 | 2 | | | + +* Subdetector 5 (`DetId::subDetId() == StripSubdetector::TOB`): Phase2 Outer Tracker Barrel + +| Name | start bit | hex mask | bit size | `TrackerTopology` method | Notes | +|------|-----------|-----------|-----|----|-----| +| _not used_ | 24 | 0x1 | 1 | | | +| Layer | 20 | 0xF | 4 | tobLayer(id) or layer(id) | increasing r | +| _subdetector part_ | 18| 0x3 | 2 | tobSide(id) | 1=rings- 2=rings+ 3=barrel0| +| Ladder | 10 | 0xFF | 8 | tobRod(id) | increasing abs(z) (rings) or phi(barrel) | +| Module | 2 | 0xFF | 8 | tobModule(id) | increasing phi (rings) or z(barrel) | +| Module type | 0 | 0x3 | 2 | tobLower(id) or tobUpper(id) | 1=lower in local s.o.r.(P sensor into PS), 2=upper in local s.o.r.(S sensor into PS), 0=pair | +* Subdetector 4 (`DetId::subDetId() == StripSubdetector::TID`): Phase2 Outer Tracker Endcap + +| Name | start bit | hex mask | bit size | `TrackerTopology` method | Notes | +|------|-----------|-----------|----|-----|----| +| subdetector part | 23 | 0x3 | 2 | tidSide(id) or side(id) | 1=-ve 2=+ve | +| _not used_ | 22 | 0x1 | 1 | | | +| Disk | 18 | 0xF | 4 | tidDisk(id) or side(id) | increasing abs(z) | +| _Ring_ | 12 | 0x3F | 6 | tidRing(id) | increasing r | +| Panel | 10 | 0x3 | 2 | _tidOrder(id)_ | always = 1 | +| Module | 2 | 0xFF | 8 | tidModule(id) | increasing phi | +| Module type | 0 | 0x3 | 2 | tidLower(id) or tidUpper(id) | 1=lower in local s.o.r.(P sensor into PS), 2=upper in local s.o.r.(S sensor into PS), 0=pair | + +The configuration names for this detid schema are `trackerNumberingGeometry_cfi` (to run on geometry built from xml files) or `trackerNumberingGeometryDB_cfi` (to run on geometry from DB) for `TrackerGeometricDetESModule` and `trackerTopology2023Constants_cfi` for `TrackerTopology` +The xml description of tracker parameters for this detid schema is in [Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml](../TrackerCommonData/data/PhaseII/trackerParameters.xml + + + ### Subdetector `GeometricDet` Enumerators The link between the subdetectors described in the geometry and the `DetId::subDetId()` is created by the `GeometricDet::GDEnumType` enumerators. Each subdetector name in the Tracker DDD is associated to a `GeometricDet::GDEnumType` enumerator which has to be of the form n*100+m where m is between 1 and 6 and it will correspond to the `DetId::subDetId()` value. The present link table is: diff --git a/Geometry/TrackerNumberingBuilder/doc/GeometricDetBuilder.png b/Geometry/TrackerNumberingBuilder/doc/GeometricDetBuilder.png index d4fb7969fa827b7ce49d5d682c5409a10eda5427..91f0c19347231bfd837bc208801b64b66124e288 100644 GIT binary patch literal 93222 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

U~p&;54f21`)Ky8XYl8ke@ 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 L*u!63@Jag*T+vRMv(6A970N9 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

    I{LcIFio7 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

    skO&UvY5|iM?!`Db0tR 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 diff --git a/Geometry/TrackerNumberingBuilder/interface/GeometricDet.h b/Geometry/TrackerNumberingBuilder/interface/GeometricDet.h index a80b71dfa7510..f43fc1d212daf 100644 --- a/Geometry/TrackerNumberingBuilder/interface/GeometricDet.h +++ b/Geometry/TrackerNumberingBuilder/interface/GeometricDet.h @@ -57,7 +57,8 @@ class GeometricDet { PixelPhase1EndCap=102, PixelPhase1Disk=117, OTPhase2EndCap=204, OTPhase2Barrel=205, OTPhase2Layer=208, OTPhase2Stack=215, PixelPhase2EndCap=202, OTPhase2Wheel=209, PixelPhase2FullDisk=217, - PixelPhase2ReducedDisk=227 } GeometricEnumType; + PixelPhase2ReducedDisk=227, PixelPhase2TDRDisk=237 } GeometricEnumType; + // PixelV4021Barrel=301, PixelV4021EndCap=302 } GeometricEnumType; /** * Constructors to be used when looping over DDD */ diff --git a/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2DiskBuilder.cc b/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2DiskBuilder.cc new file mode 100644 index 0000000000000..33f3e8f951302 --- /dev/null +++ b/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2DiskBuilder.cc @@ -0,0 +1,62 @@ +#include "Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2DiskBuilder.h" +#include "DetectorDescription/Core/interface/DDFilteredView.h" +#include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h" +#include "Geometry/TrackerNumberingBuilder/plugins/ExtractStringFromDDD.h" +#include "Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2RingBuilder.h" +#include "Geometry/TrackerNumberingBuilder/plugins/TrackerStablePhiSort.h" +#include "DataFormats/DetId/interface/DetId.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include +#include + +using namespace std; + +void +CmsTrackerPixelPhase2DiskBuilder::buildComponent( DDFilteredView& fv, GeometricDet* g, std::string s ) +{ + CmsTrackerPixelPhase2RingBuilder theCmsTrackerPixelPhase2RingBuilder; + GeometricDet * subdet = new GeometricDet( &fv, theCmsTrackerStringToEnum.type( ExtractStringFromDDD::getString( s, &fv ))); + + switch( theCmsTrackerStringToEnum.type( ExtractStringFromDDD::getString( s, &fv ))) + { + case GeometricDet::panel: + theCmsTrackerPixelPhase2RingBuilder.build( fv, subdet, s ); + break; + default: + edm::LogError( "CmsTrackerPixelPhase2DiskBuilder" ) << " ERROR - I was expecting a Panel, I got a " << ExtractStringFromDDD::getString( s, &fv ); + } + g->addComponent( subdet ); +} + +void +CmsTrackerPixelPhase2DiskBuilder::sortNS( DDFilteredView& fv, GeometricDet* det ) +{ + + + GeometricDet::ConstGeometricDetContainer & comp = det->components(); + + switch(det->components().front()->type()){ + case GeometricDet::panel: + // nothing to be done because the rings (here named panels) are already sorted ?? + break; + default: + edm::LogError("CmsTrackerPixelPhase2Builder")<<"ERROR - wrong SubDet to sort..... "<components().front()->type(); + } + + GeometricDet::GeometricDetContainer rings; + uint32_t totalrings = comp.size(); + + for ( uint32_t rn=0; rncomponent(rn)); + uint32_t blade = rn+1; + uint32_t panel = 1; + uint32_t temp = (blade<<2) | panel; + rings[rn]->setGeographicalID(temp); + + } + + det->clearComponents(); + det->addComponents(rings); + +} + diff --git a/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2DiskBuilder.h b/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2DiskBuilder.h new file mode 100644 index 0000000000000..b8de97908ddd0 --- /dev/null +++ b/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2DiskBuilder.h @@ -0,0 +1,20 @@ +#ifndef Geometry_TrackerNumberingBuilder_CmsTrackerPixelPhase2DiskBuilder_H +# define Geometry_TrackerNumberingBuilder_CmsTrackerPixelPhase2DiskBuilder_H + +# include "Geometry/TrackerNumberingBuilder/plugins/CmsTrackerLevelBuilder.h" +# include "FWCore/ParameterSet/interface/types.h" +# include + +/** + * Class which contructs Phase2 Pixel Tracker/Discs. + */ +class CmsTrackerPixelPhase2DiskBuilder : public CmsTrackerLevelBuilder +{ + +private: + virtual void sortNS( DDFilteredView& , GeometricDet* ); + virtual void buildComponent( DDFilteredView& , GeometricDet*, std::string ); + +}; + +#endif diff --git a/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2EndcapBuilder.cc b/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2EndcapBuilder.cc index 833b3872e2816..7746772170f45 100644 --- a/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2EndcapBuilder.cc +++ b/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2EndcapBuilder.cc @@ -4,6 +4,7 @@ #include "Geometry/TrackerNumberingBuilder/plugins/ExtractStringFromDDD.h" #include "DataFormats/DetId/interface/DetId.h" #include "Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPhase1DiskBuilder.h" +#include "Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2DiskBuilder.h" #include "Geometry/TrackerNumberingBuilder/plugins/CmsTrackerOTDiscBuilder.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include @@ -17,6 +18,7 @@ void CmsTrackerPixelPhase2EndcapBuilder::buildComponent( DDFilteredView& fv, GeometricDet* g, std::string s ) { CmsTrackerPhase1DiskBuilder theCmsTrackerPhase1DiskBuilder; + CmsTrackerPixelPhase2DiskBuilder theCmsTrackerPixelPhase2DiskBuilder; CmsTrackerOTDiscBuilder theCmsTrackerOTDiscBuilder; GeometricDet * subdet = new GeometricDet( &fv, theCmsTrackerStringToEnum.type( ExtractStringFromDDD::getString( s, &fv ))); @@ -29,6 +31,9 @@ CmsTrackerPixelPhase2EndcapBuilder::buildComponent( DDFilteredView& fv, Geometri case GeometricDet::PixelPhase2ReducedDisk: theCmsTrackerPhase1DiskBuilder.build(fv,subdet,s); break; + case GeometricDet::PixelPhase2TDRDisk: + theCmsTrackerPixelPhase2DiskBuilder.build(fv,subdet,s); + break; case GeometricDet::OTPhase2Wheel: theCmsTrackerOTDiscBuilder.build(fv,subdet,s); break; diff --git a/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2EndcapBuilder.h b/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2EndcapBuilder.h index edd0dbc7a4466..ce0fdddb3a0d8 100644 --- a/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2EndcapBuilder.h +++ b/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2EndcapBuilder.h @@ -6,7 +6,7 @@ # include /** - * Class which builds the pixel phase 1 endcap + * Class which builds the pixel phase 2 endcap */ class CmsTrackerPixelPhase2EndcapBuilder : public CmsTrackerLevelBuilder { diff --git a/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2RingBuilder.cc b/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2RingBuilder.cc new file mode 100644 index 0000000000000..05447427b127d --- /dev/null +++ b/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2RingBuilder.cc @@ -0,0 +1,31 @@ +#include "Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2RingBuilder.h" +#include "DetectorDescription/Core/interface/DDFilteredView.h" +#include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h" +#include "Geometry/TrackerNumberingBuilder/plugins/ExtractStringFromDDD.h" +#include "Geometry/TrackerNumberingBuilder/plugins/CmsDetConstruction.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "DataFormats/DetId/interface/DetId.h" +#include + +#include "Geometry/TrackerNumberingBuilder/plugins/TrackerStablePhiSort.h" + +void CmsTrackerPixelPhase2RingBuilder::buildComponent(DDFilteredView& fv, GeometricDet* g, std::string s){ + CmsDetConstruction theCmsDetConstruction; + theCmsDetConstruction.buildComponent(fv,g,s); + +} + +void CmsTrackerPixelPhase2RingBuilder::sortNS(DDFilteredView& fv, GeometricDet* det){ + + GeometricDet::ConstGeometricDetContainer & comp = det->components(); + + //increasing phi taking into account the sub-modules + + TrackerStablePhiSort(comp.begin(), comp.end(), ExtractPhi()); + + + for(uint32_t i=0; icomponent(i)->setGeographicalID(i+1); + } + +} diff --git a/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2RingBuilder.h b/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2RingBuilder.h new file mode 100644 index 0000000000000..72c4b7a666774 --- /dev/null +++ b/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2RingBuilder.h @@ -0,0 +1,18 @@ +#ifndef Geometry_TrackerNumberingBuilder_CmsTrackerPixelPhase2RingBuilder_H +#define Geometry_TrackerNumberingBuilder_CmsTrackerPixelPhase2RingBuilder_H + +#include "Geometry/TrackerNumberingBuilder/plugins/CmsTrackerLevelBuilder.h" +#include "FWCore/ParameterSet/interface/types.h" +#include +/** + * Class which contructs PixelForward Panels. + */ +class CmsTrackerPixelPhase2RingBuilder : public CmsTrackerLevelBuilder { + + private: + virtual void sortNS(DDFilteredView& , GeometricDet*); + virtual void buildComponent(DDFilteredView& , GeometricDet*, std::string); + +}; + +#endif diff --git a/Geometry/TrackerNumberingBuilder/src/CmsTrackerStringToEnum.cc b/Geometry/TrackerNumberingBuilder/src/CmsTrackerStringToEnum.cc index 3461dbfee897f..a081003532789 100644 --- a/Geometry/TrackerNumberingBuilder/src/CmsTrackerStringToEnum.cc +++ b/Geometry/TrackerNumberingBuilder/src/CmsTrackerStringToEnum.cc @@ -25,9 +25,20 @@ CmsTrackerStringToEnum::Impl::Impl(){ _map.insert(std::pair("PixelPhase1EndcapSubDet",GeometricDet::PixelPhase1EndCap)); _map.insert(std::pair("PixelPhase1EndcapDisk",GeometricDet::PixelPhase1Disk)); - _map.insert(std::pair("PixelPhase2EndcapSubDet",GeometricDet::PixelPhase2EndCap)); - _map.insert(std::pair("PixelPhase2EndcapFullDisk",GeometricDet::PixelPhase2FullDisk)); - _map.insert(std::pair("PixelPhase2EndcapReducedDisk",GeometricDet::PixelPhase2ReducedDisk)); + _map.insert(std::pair("PixelPhase2EndcapSubDet",GeometricDet::PixelPhase2EndCap)); + _map.insert(std::pair("PixelPhase2EndcapFullDisk",GeometricDet::PixelPhase2FullDisk)); + _map.insert(std::pair("PixelPhase2EndcapReducedDisk",GeometricDet::PixelPhase2ReducedDisk)); + _map.insert(std::pair("PixelPhase2EndcapTDRDisk",GeometricDet::PixelPhase2TDRDisk)); + +// Ale +// _map.insert(std::pair("PixelPhase2Barrel",GeometricDet::PixelV4021Barrel)); +// _map.insert(std::pair("PixelPhase2EndcapSubDet",GeometricDet::PixelV4021EndCap)); +// _map.insert(std::pair("PixelPhase2EndcapFullDisk",GeometricDet::PixelPhase2FullDisk)); +// _map.insert(std::pair("PixelPhase2EndcapReducedDisk",GeometricDet::PixelPhase2ReducedDisk)); + + // _map.insert(std::pair("PixelPhase2PixelEndcapPanel",GeometricDet::panel)); + // _map.insert(std::pair("PixelPhase2PixelEndcapStack",GeometricDet::DetUnit)); + _map.insert(std::pair("Phase2OTEndcap",GeometricDet::OTPhase2EndCap)); _map.insert(std::pair("Phase2OTEndcapDisk",GeometricDet::OTPhase2Wheel)); @@ -69,6 +80,8 @@ CmsTrackerStringToEnum::Impl::Impl(){ _reverseMap.insert(std::pair(GeometricDet::PixelEndCap,"PixelEndCap")); _reverseMap.insert(std::pair(GeometricDet::PixelPhase1EndCap,"PixelEndCap")); _reverseMap.insert(std::pair(GeometricDet::PixelPhase2EndCap,"PixelEndCap")); + // _reverseMap.insert(std::pair(GeometricDet::PixelV4021Barrel,"PixelBarrel")); + // _reverseMap.insert(std::pair(GeometricDet::PixelV4021EndCap,"PixelEndCap")); _reverseMap.insert(std::pair(GeometricDet::TIB,"TIB")); _reverseMap.insert(std::pair(GeometricDet::TID,"TID")); _reverseMap.insert(std::pair(GeometricDet::TOB,"TOB")); @@ -91,8 +104,11 @@ CmsTrackerStringToEnum::Impl::Impl(){ _reverseMap.insert(std::pair(GeometricDet::PixelPhase1Disk,"Disk")); _reverseMap.insert(std::pair(GeometricDet::PixelPhase2FullDisk,"Disk")); _reverseMap.insert(std::pair(GeometricDet::PixelPhase2ReducedDisk,"Disk")); + _reverseMap.insert(std::pair(GeometricDet::PixelPhase2TDRDisk,"Disk")); _reverseMap.insert(std::pair(GeometricDet::panel,"Panel")); - +// Ale +// _reverseMap.insert(std::pair(GeometricDet::PixelPhase2PixelEndcapPanel,"Disk")); +// _reverseMap.insert(std::pair(GeometricDet::PixelPhase2PixelEndcapStack,"Disk")); // // done // diff --git a/Geometry/TrackerRecoData/data/PhaseII/TiltedTracker4021/pixelRecoMaterial.xml b/Geometry/TrackerRecoData/data/PhaseII/TiltedTracker4021/pixelRecoMaterial.xml new file mode 100644 index 0000000000000..6cf537581a4e7 --- /dev/null +++ b/Geometry/TrackerRecoData/data/PhaseII/TiltedTracker4021/pixelRecoMaterial.xml @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/TrackerRecoData/data/PhaseII/TiltedTracker4021/trackerRecoMaterial.xml b/Geometry/TrackerRecoData/data/PhaseII/TiltedTracker4021/trackerRecoMaterial.xml new file mode 100644 index 0000000000000..19fc4c945fcaa --- /dev/null +++ b/Geometry/TrackerRecoData/data/PhaseII/TiltedTracker4021/trackerRecoMaterial.xml @@ -0,0 +1,445 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/pixelProdCuts.xml b/Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/pixelProdCuts.xml new file mode 100644 index 0000000000000..aba62ac66143d --- /dev/null +++ b/Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/pixelProdCuts.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/pixelsens.xml b/Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/pixelsens.xml new file mode 100644 index 0000000000000..f311993b0ff8b --- /dev/null +++ b/Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/pixelsens.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/trackerProdCuts.xml b/Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/trackerProdCuts.xml new file mode 100644 index 0000000000000..0181f200d432c --- /dev/null +++ b/Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/trackerProdCuts.xml @@ -0,0 +1,351 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/trackersens.xml b/Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/trackersens.xml new file mode 100644 index 0000000000000..e57103b2ec336 --- /dev/null +++ b/Geometry/TrackerSimData/data/PhaseII/TiltedTracker4021/trackersens.xml @@ -0,0 +1,339 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SLHCUpgradeSimulations/Configuration/python/combinedCustoms.py b/SLHCUpgradeSimulations/Configuration/python/combinedCustoms.py index 081ce61d1b2b5..5f0278ce9e861 100644 --- a/SLHCUpgradeSimulations/Configuration/python/combinedCustoms.py +++ b/SLHCUpgradeSimulations/Configuration/python/combinedCustoms.py @@ -7,6 +7,7 @@ from SLHCUpgradeSimulations.Configuration.phase2TkTilted import customise as customiseTiltedTK from SLHCUpgradeSimulations.Configuration.phase2TkFlat import customise as customiseFlatTK +from SLHCUpgradeSimulations.Configuration.phase2TkTilted4021 import customise as customiseTiltedTK4021 import SLHCUpgradeSimulations.Configuration.aging as aging @@ -20,6 +21,11 @@ def cust_2023flat(process): process=customiseFlatTK(process) return process +def cust_2023tilted4021(process): + # To allow simulatenous use of customisation and era while the era migration is in progress + process=customiseTiltedTK4021(process) + return process + def cust_2019(process): process=customisePostLS1(process,displayDeprecationWarning=False) process=customisePhase1Tk(process) diff --git a/SLHCUpgradeSimulations/Configuration/python/phase2TkTilted.py b/SLHCUpgradeSimulations/Configuration/python/phase2TkTilted.py index 5b93b0ecc7a1b..4063328639a23 100644 --- a/SLHCUpgradeSimulations/Configuration/python/phase2TkTilted.py +++ b/SLHCUpgradeSimulations/Configuration/python/phase2TkTilted.py @@ -64,7 +64,6 @@ def customise_RawToDigi(process): return process def customise_Reco(process,pileup): - return process def customise_condOverRides(process): diff --git a/SLHCUpgradeSimulations/Configuration/python/phase2TkTilted4021.py b/SLHCUpgradeSimulations/Configuration/python/phase2TkTilted4021.py new file mode 100644 index 0000000000000..5c370808433cf --- /dev/null +++ b/SLHCUpgradeSimulations/Configuration/python/phase2TkTilted4021.py @@ -0,0 +1,90 @@ +import FWCore.ParameterSet.Config as cms +from Configuration.StandardSequences.Eras import eras +#import SLHCUpgradeSimulations.Configuration.customise_PFlow as customise_PFlow + +#GEN-SIM so far... +def customise(process): + print "!!!You are using the SUPPORTED Tilted version of the Phase2 Tracker !!!" + if hasattr(process,'DigiToRaw'): + process=customise_DigiToRaw(process) + if hasattr(process,'RawToDigi'): + process=customise_RawToDigi(process) + n=0 + if hasattr(process,'reconstruction') or hasattr(process,'dqmoffline_step'): + if hasattr(process,'mix'): + if hasattr(process.mix,'input'): + n=process.mix.input.nbPileupEvents.averageNumber.value() + else: + print 'phase1TkCustoms requires a --pileup option to cmsDriver to run the reconstruction/dqm' + print 'Please provide one!' + sys.exit(1) + if hasattr(process,'reconstruction'): + process=customise_Reco(process,float(n)) + if hasattr(process,'digitisation_step'): + process=customise_Digi(process) + if hasattr(process,'validation_step'): + process=customise_Validation(process,float(n)) + process=customise_condOverRides(process) + + return process + +def customise_Digi(process): + process.digitisation_step.remove(process.mix.digitizers.pixel) + process.load('SimTracker.SiPhase2Digitizer.phase2TrackerDigitizer_cfi') + process.mix.digitizers.pixel=process.phase2TrackerDigitizer + process.mix.digitizers.strip.ROUList = cms.vstring("g4SimHitsTrackerHitsPixelBarrelLowTof", + 'g4SimHitsTrackerHitsPixelEndcapLowTof') + #Check if mergedtruth is in the sequence first, could be taken out depending on cmsDriver options + if hasattr(process.mix.digitizers,"mergedtruth") : + process.mix.digitizers.mergedtruth.simHitCollections.tracker.remove( cms.InputTag("g4SimHits","TrackerHitsTIBLowTof")) + process.mix.digitizers.mergedtruth.simHitCollections.tracker.remove( cms.InputTag("g4SimHits","TrackerHitsTIBHighTof")) + process.mix.digitizers.mergedtruth.simHitCollections.tracker.remove( cms.InputTag("g4SimHits","TrackerHitsTOBLowTof")) + process.mix.digitizers.mergedtruth.simHitCollections.tracker.remove( cms.InputTag("g4SimHits","TrackerHitsTOBHighTof")) + process.mix.digitizers.mergedtruth.simHitCollections.tracker.remove( cms.InputTag("g4SimHits","TrackerHitsTECLowTof")) + process.mix.digitizers.mergedtruth.simHitCollections.tracker.remove( cms.InputTag("g4SimHits","TrackerHitsTECHighTof")) + process.mix.digitizers.mergedtruth.simHitCollections.tracker.remove( cms.InputTag("g4SimHits","TrackerHitsTIDLowTof")) + process.mix.digitizers.mergedtruth.simHitCollections.tracker.remove( cms.InputTag("g4SimHits","TrackerHitsTIDHighTof")) + + # keep new digis + alist=['FEVTDEBUG','FEVTDEBUGHLT','FEVT'] + for a in alist: + b=a+'output' + if hasattr(process,b): + getattr(process,b).outputCommands.append('keep Phase2TrackerDigiedmDetSetVector_*_*_*') + return process + + +def customise_DigiToRaw(process): + process.digi2raw_step.remove(process.siPixelRawData) + process.digi2raw_step.remove(process.rpcpacker) + return process + +def customise_RawToDigi(process): + process.raw2digi_step.remove(process.siPixelDigis) + return process + +def customise_Reco(process,pileup): + + return process + +def customise_condOverRides(process): + process.load('SLHCUpgradeSimulations.Geometry.fakeConditions_phase2TkTilted4021_cff') + return process + + +def customise_Validation(process,pileup): + + process.pixelDigisValid.src = cms.InputTag('simSiPixelDigis', "Pixel") + if hasattr(process,'tpClusterProducer'): + process.tpClusterProducer.pixelSimLinkSrc = cms.InputTag("simSiPixelDigis", "Pixel") + process.tpClusterProducer.phase2OTSimLinkSrc = cms.InputTag("simSiPixelDigis","Tracker") + + if hasattr(process,'simHitTPAssocProducer'): + process.simHitTPAssocProducer.simHitSrc=cms.VInputTag(cms.InputTag("g4SimHits","TrackerHitsPixelBarrelLowTof"), + cms.InputTag("g4SimHits","TrackerHitsPixelEndcapLowTof")) + + if hasattr(process,'trackingParticleNumberOfLayersProducer'): + process.trackingParticleNumberOfLayersProducer.simHits=cms.VInputTag(cms.InputTag("g4SimHits","TrackerHitsPixelBarrelLowTof"), + cms.InputTag("g4SimHits","TrackerHitsPixelEndcapLowTof")) + + return process diff --git a/SLHCUpgradeSimulations/Geometry/python/fakeConditions_phase2TkTilted4021_cff.py b/SLHCUpgradeSimulations/Geometry/python/fakeConditions_phase2TkTilted4021_cff.py new file mode 100644 index 0000000000000..6d18c86a3bc72 --- /dev/null +++ b/SLHCUpgradeSimulations/Geometry/python/fakeConditions_phase2TkTilted4021_cff.py @@ -0,0 +1,13 @@ +import FWCore.ParameterSet.Config as cms + +siPixelFakeGainOfflineESSource = cms.ESSource("SiPixelFakeGainOfflineESSource", + file = +cms.FileInPath('SLHCUpgradeSimulations/Geometry/data/PhaseII/Tilted/EmptyPixelSkimmedGeometry.txt') + ) +es_prefer_fake_gain = cms.ESPrefer("SiPixelFakeGainOfflineESSource","siPixelFakeGainOfflineESSource") + +siPixelFakeLorentzAngleESSource = cms.ESSource("SiPixelFakeLorentzAngleESSource", + file = +cms.FileInPath('SLHCUpgradeSimulations/Geometry/data/PhaseII/Tilted/PixelSkimmedGeometry4021.txt') + ) +es_prefer_fake_lorentz = cms.ESPrefer("SiPixelFakeLorentzAngleESSource","siPixelFakeLorentzAngleESSource") diff --git a/SLHCUpgradeSimulations/Geometry/test/writeFile_phase2TiltedPixel4021_cfg.py b/SLHCUpgradeSimulations/Geometry/test/writeFile_phase2TiltedPixel4021_cfg.py new file mode 100644 index 0000000000000..0c37f73d0ee92 --- /dev/null +++ b/SLHCUpgradeSimulations/Geometry/test/writeFile_phase2TiltedPixel4021_cfg.py @@ -0,0 +1,50 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("ICALIB") +process.load("Configuration.StandardSequences.Services_cff") +#process.load('Configuration.Geometry.GeometryExtendedPhase2TkBE5D_cff') +#process.load('Configuration.Geometry.GeometryExtended2023TiltedTKReco_cff') +process.load('Configuration.Geometry.GeometryExtended2023D4Reco_cff') + +#process.load('Geometry.TrackerGeometryBuilder.trackerSLHCGeometry_cfi') +#process.trackerSLHCGeometry.applyAlignment = cms.bool(False) + + + # Alignment +#from Geometry.TrackerGeometryBuilder.idealForDigiTrackerSLHCGeometry_cff import * +process.trackerGeometry.applyAlignment = cms.bool(False) + +process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:run2_mc', '') + + +process.source = cms.Source("EmptyIOVSource", + firstValue = cms.uint64(1), + lastValue = cms.uint64(1), + timetype = cms.string('runnumber'), + interval = cms.uint64(1) +) + +process.load("FWCore/MessageService/MessageLogger_cfi") +process.MessageLogger.destinations = cms.untracked.vstring("logfile") +process.MessageLogger.logfile = cms.untracked.PSet(threshold = cms.untracked.string('INFO')) + +process.Timing = cms.Service("Timing") + +process.prodstrip = cms.EDAnalyzer("SiStripDetInfoFileWriter", + FilePath = cms.untracked.string('SiStripDetInfo_phase2.dat'), +) + +process.prodpixel = cms.EDAnalyzer("SiPixelDetInfoFileWriter", + FilePath = cms.untracked.string('PixelSkimmedGeometry_GeometryExtended2023Tilted.txt'), + WriteROCInfo = cms.untracked.bool(True) +) + +process.asciiPrint = cms.OutputModule("AsciiOutputModule") + +process.p1 = cms.Path(process.prodstrip) +process.p2 = cms.Path(process.prodpixel) +process.ep = cms.EndPath(process.asciiPrint) + + diff --git a/SimTracker/SiPhase2Digitizer/plugins/Phase2TrackerDigitizer.cc b/SimTracker/SiPhase2Digitizer/plugins/Phase2TrackerDigitizer.cc index 54f6973ef21ca..c2fb08d15ac89 100644 --- a/SimTracker/SiPhase2Digitizer/plugins/Phase2TrackerDigitizer.cc +++ b/SimTracker/SiPhase2Digitizer/plugins/Phase2TrackerDigitizer.cc @@ -227,6 +227,12 @@ namespace cms case TrackerGeometry::ModuleType::Ph1PXF: algotype = AlgorithmType::InnerPixel; break; + case TrackerGeometry::ModuleType::Ph2PXB: + algotype = AlgorithmType::InnerPixel; + break; + case TrackerGeometry::ModuleType::Ph2PXF: + algotype = AlgorithmType::InnerPixel; + break; case TrackerGeometry::ModuleType::Ph2PSP: algotype = AlgorithmType::PixelinPS; break; From 2bae65968d0984bee4d605c4b2573774fe0c302d Mon Sep 17 00:00:00 2001 From: Gaelle Date: Fri, 16 Sep 2016 12:33:55 +0200 Subject: [PATCH 2/5] separating Phase1 Phase2 as in 15805 --- .../PyReleaseValidation/python/relval_2023.py | 2 +- .../python/upgradeWorkflowComponents.py | 18 +-- .../plugins/CmsTrackerPhase2TPDiskBuilder.cc | 153 ++++++++++++++++++ .../plugins/CmsTrackerPhase2TPDiskBuilder.h | 24 +++ .../CmsTrackerPixelPhase2EndcapBuilder.cc | 8 +- 5 files changed, 187 insertions(+), 18 deletions(-) create mode 100644 Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPhase2TPDiskBuilder.cc create mode 100644 Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPhase2TPDiskBuilder.h diff --git a/Configuration/PyReleaseValidation/python/relval_2023.py b/Configuration/PyReleaseValidation/python/relval_2023.py index 3170d90e7d662..0bc3eb770fe91 100644 --- a/Configuration/PyReleaseValidation/python/relval_2023.py +++ b/Configuration/PyReleaseValidation/python/relval_2023.py @@ -18,7 +18,7 @@ numWFIB = [20021.0,20024.0,20025.0,20026.0] #2023D1 scenario numWFIB.extend([20421.0,20424.0,20425.0,20426.0]) #2023D2 numWFIB.extend([20821.0,20824.0,20825.0,20826.0]) #2023D3 -numWFIB.extend([21021.0,21024.0,21025.0,21026.0]) #2023D4 +numWFIB.extend([22021.0,22024.0,22025.0,22026.0]) #2023D4 for i,key in enumerate(upgradeKeys[2023]): numWF=numWFStart+i*numWFSkip for frag in upgradeFragments: diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index 46d81f774a664..c29dd62d5d5a2 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -21,7 +21,7 @@ '2023D2Timing', '2023D2TimingPU', '2023D3Timing', - '2023D3TimingPU' + '2023D3TimingPU', '2023D4', '2023D4PU', ] @@ -105,14 +105,16 @@ upgradeProperties[2023]['2023D3Timing']['Era'] = 'Phase2C2_timing' #standard PU sequences -upgradeProperties[2023]['2017PU'] = deepcopy(upgradeProperties[2017]['2017']) -upgradeProperties[2023]['2017PU']['ScenToRun'] = ['GenSimFull','DigiFullPU','RecoFullPU','HARVESTFullPU'] +upgradeProperties[2017]['2017PU'] = deepcopy(upgradeProperties[2017]['2017']) +upgradeProperties[2017]['2017PU']['ScenToRun'] = ['GenSimFull','DigiFullPU','RecoFullPU','HARVESTFullPU'] upgradeProperties[2023]['2023D1PU'] = deepcopy(upgradeProperties[2023]['2023D1']) upgradeProperties[2023]['2023D1PU']['ScenToRun'] = ['GenSimFull','DigiFullPU','RecoFullGlobalPU', 'HARVESTFullGlobalPU'] upgradeProperties[2023]['2023D2PU'] = deepcopy(upgradeProperties[2023]['2023D2']) upgradeProperties[2023]['2023D2PU']['ScenToRun'] = ['GenSimFull','DigiFullPU','RecoFullGlobalPU', 'HARVESTFullGlobalPU'] upgradeProperties[2023]['2023D3PU'] = deepcopy(upgradeProperties[2023]['2023D3']) upgradeProperties[2023]['2023D3PU']['ScenToRun'] = ['GenSimFull','DigiFullPU','RecoFullGlobalPU', 'HARVESTFullGlobalPU'] +upgradeProperties[2023]['2023D4PU'] = deepcopy(upgradeProperties[2023]['2023D4']) +upgradeProperties[2023]['2023D4PU']['ScenToRun'] = ['GenSimFull','DigiFullPU','RecoFullLocalPU'] #Timing PU (for now copy ScenToRun of standard PU) upgradeProperties[2023]['2023D1TimingPU'] = deepcopy(upgradeProperties[2023]['2023D1Timing']) @@ -123,16 +125,6 @@ upgradeProperties[2023]['2023D3TimingPU']['ScenToRun'] = deepcopy(upgradeProperties[2023]['2023D3PU']['ScenToRun']) -upgradeProperties['2017PU'] = deepcopy(upgradeProperties['2017']) -upgradeProperties['2017PU']['ScenToRun'] = ['GenSimFull','DigiFullPU','RecoFullPU','HARVESTFullPU'] -upgradeProperties['2023D1PU'] = deepcopy(upgradeProperties['2023D1']) -upgradeProperties['2023D1PU']['ScenToRun'] = ['GenSimFull','DigiFullPU','RecoFullGlobalPU', 'HARVESTFullGlobalPU'] -upgradeProperties['2023D2PU'] = deepcopy(upgradeProperties['2023D2']) -upgradeProperties['2023D2PU']['ScenToRun'] = ['GenSimFull','DigiFullPU','RecoFullGlobalPU', 'HARVESTFullGlobalPU'] -upgradeProperties['2023D3PU'] = deepcopy(upgradeProperties['2023D3']) -upgradeProperties['2023D3PU']['ScenToRun'] = ['GenSimFull','DigiFullPU','RecoFullGlobalPU', 'HARVESTFullGlobalPU'] -upgradeProperties['2023D4PU'] = deepcopy(upgradeProperties['2023D4']) -upgradeProperties['2023D4PU']['ScenToRun'] = ['GenSimFull','DigiFullPU','RecoFullLocalPU'] from Configuration.PyReleaseValidation.relval_steps import Kby diff --git a/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPhase2TPDiskBuilder.cc b/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPhase2TPDiskBuilder.cc new file mode 100644 index 0000000000000..3d00cc1c2801a --- /dev/null +++ b/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPhase2TPDiskBuilder.cc @@ -0,0 +1,153 @@ +#include "Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPhase2TPDiskBuilder.h" +#include "DetectorDescription/Core/interface/DDFilteredView.h" +#include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h" +#include "Geometry/TrackerNumberingBuilder/plugins/ExtractStringFromDDD.h" +#include "Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPanelBuilder.h" +#include "Geometry/TrackerNumberingBuilder/plugins/TrackerStablePhiSort.h" +#include "DataFormats/DetId/interface/DetId.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include +#include + +using namespace std; + + +bool +CmsTrackerPhase2TPDiskBuilder::PhiSort( const GeometricDet* Panel1, const GeometricDet* Panel2 ) +{ + return( Panel1->phi() < Panel2->phi()); +} + +void +CmsTrackerPhase2TPDiskBuilder::PhiPosNegSplit_innerOuter( std::vector< GeometricDet const *>::iterator begin, + std::vector< GeometricDet const *>::iterator end ) +{ + // first sort in phi, lowest first (-pi to +pi) + std::sort( begin, end, PhiSort ); + + // now put positive phi (in order) ahead of negative phi as in std geometry + std::vector theCompsPosNeg; + theCompsPosNeg.empty(); + theCompsPosNeg.clear(); + // also find the average radius (used to split inner and outer disk panels) + double theRmin = (**begin).rho(); + double theRmax = theRmin; + for(vector::const_iterator it=begin; + it!=end;it++){ + if((**it).phi() >= 0) theCompsPosNeg.push_back(*it); + theRmin = std::min( theRmin, (**it).rho()); + theRmax = std::max( theRmax, (**it).rho()); + } + for(vector::const_iterator it=begin; + it!=end;it++){ + if((**it).phi() < 0) theCompsPosNeg.push_back(*it); + } + + // now put inner disk panels first + // double radius_split = 0.5 * (theRmin + theRmax); + // force the split radius to be 100 mm to be able to deal with disks with only outer ring + double radius_split = 100.; + std::vector theCompsInnerOuter; + theCompsInnerOuter.empty(); + theCompsInnerOuter.clear(); + unsigned int num_inner = 0; + for(vector::const_iterator it=theCompsPosNeg.begin(); + it!=theCompsPosNeg.end();it++){ + if((**it).rho() <= radius_split) { + theCompsInnerOuter.push_back(*it); + num_inner++; + } + } + + for(vector::const_iterator it=theCompsPosNeg.begin(); + it!=theCompsPosNeg.end();it++){ + if((**it).rho() > radius_split) theCompsInnerOuter.push_back(*it); + } + // std::cout << "num of inner = " << num_inner << " with radius less than " << radius_split << std::endl; + // now shift outer by one + + std::rotate(theCompsInnerOuter.begin()+num_inner,theCompsInnerOuter.begin()+num_inner+1,theCompsInnerOuter.end()); + std::copy(theCompsInnerOuter.begin(), theCompsInnerOuter.end(), begin); +} + +void +CmsTrackerPhase2TPDiskBuilder::buildComponent( DDFilteredView& fv, GeometricDet* g, std::string s ) +{ + CmsTrackerPanelBuilder theCmsTrackerPanelBuilder; + GeometricDet * subdet = new GeometricDet( &fv, theCmsTrackerStringToEnum.type( ExtractStringFromDDD::getString( s, &fv ))); + + switch( theCmsTrackerStringToEnum.type( ExtractStringFromDDD::getString( s, &fv ))) + { + case GeometricDet::panel: + theCmsTrackerPanelBuilder.build( fv, subdet, s ); + break; + default: + edm::LogError( "CmsTrackerPhase2TPDiskBuilder" ) << " ERROR - I was expecting a Panel, I got a " << ExtractStringFromDDD::getString( s, &fv ); + } + g->addComponent( subdet ); +} + +void +CmsTrackerPhase2TPDiskBuilder::sortNS( DDFilteredView& fv, GeometricDet* det ) +{ + + + GeometricDet::ConstGeometricDetContainer & comp = det->components(); + + switch( det->components().front()->type()) + { + case GeometricDet::panel: + PhiPosNegSplit_innerOuter( comp.begin(), comp.end()); + break; + default: + edm::LogError( "CmsTrackerPhase2TPDiskBuilder" ) << "ERROR - wrong SubDet to sort..... " << det->components().front()->type(); + } + + GeometricDet::GeometricDetContainer zminpanels; // Here z refers abs(z); + GeometricDet::GeometricDetContainer zmaxpanels; // So, zmin panel is always closer to ip. + + uint32_t totalblade = comp.size()/2; + // std::cout << "pixel_disk " << pixel_disk << endl; + + zminpanels.reserve( totalblade ); + zmaxpanels.reserve( totalblade ); + for( uint32_t j = 0; j < totalblade; j++ ) + { + if( fabs( comp[2*j]->translation().z()) > fabs( comp[ 2*j +1 ]->translation().z())) + { + zmaxpanels.push_back( det->component(2*j) ); + zminpanels.push_back( det->component(2*j+1) ); + + } + else if( fabs( comp[2*j]->translation().z()) < fabs( comp[ 2*j +1 ]->translation().z())) + { + zmaxpanels.push_back( det->component(2*j+1) ); + zminpanels.push_back( det->component(2*j) ); + } + else + { + edm::LogWarning( "CmsTrackerPhase2TPDiskBuilder" ) << "WARNING - The Z of both panels are equal! "; + } + } + + for( uint32_t fn = 0; fn < zminpanels.size(); fn++ ) + { + uint32_t blade = fn + 1; + uint32_t panel = 1; + uint32_t temp = ( blade << 2 ) | panel; + zminpanels[fn]->setGeographicalID( temp ); + } + + for( uint32_t bn = 0; bn < zmaxpanels.size(); bn++) + { + uint32_t blade = bn + 1; + uint32_t panel = 2; + uint32_t temp = ( blade << 2) | panel; + zmaxpanels[bn]->setGeographicalID( temp ); + } + + det->clearComponents(); + det->addComponents( zminpanels ); + det->addComponents( zmaxpanels ); + +} diff --git a/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPhase2TPDiskBuilder.h b/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPhase2TPDiskBuilder.h new file mode 100644 index 0000000000000..a756f7be445ca --- /dev/null +++ b/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPhase2TPDiskBuilder.h @@ -0,0 +1,24 @@ +#ifndef Geometry_TrackerNumberingBuilder_CmsTrackerPhase2TPDiskBuilder_H +# define Geometry_TrackerNumberingBuilder_CmsTrackerPhase2TPDiskBuilder_H + +# include "Geometry/TrackerNumberingBuilder/plugins/CmsTrackerLevelBuilder.h" +# include "FWCore/ParameterSet/interface/types.h" +# include + +/** + * Class which contructs PixelForward/Disk. + */ +class CmsTrackerPhase2TPDiskBuilder : public CmsTrackerLevelBuilder +{ + +private: + virtual void sortNS( DDFilteredView& , GeometricDet* ); + virtual void buildComponent( DDFilteredView& , GeometricDet*, std::string ); + + static bool PhiSort(const GeometricDet* Panel1, const GeometricDet* Panel2); + + void PhiPosNegSplit_innerOuter( std::vector< GeometricDet const *>::iterator begin, + std::vector< GeometricDet const *>::iterator end ); +}; + +#endif diff --git a/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2EndcapBuilder.cc b/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2EndcapBuilder.cc index 7746772170f45..4066ad926bb3d 100644 --- a/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2EndcapBuilder.cc +++ b/Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2EndcapBuilder.cc @@ -3,7 +3,7 @@ #include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h" #include "Geometry/TrackerNumberingBuilder/plugins/ExtractStringFromDDD.h" #include "DataFormats/DetId/interface/DetId.h" -#include "Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPhase1DiskBuilder.h" +#include "Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPhase2TPDiskBuilder.h" #include "Geometry/TrackerNumberingBuilder/plugins/CmsTrackerPixelPhase2DiskBuilder.h" #include "Geometry/TrackerNumberingBuilder/plugins/CmsTrackerOTDiscBuilder.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" @@ -17,7 +17,7 @@ CmsTrackerPixelPhase2EndcapBuilder::CmsTrackerPixelPhase2EndcapBuilder() void CmsTrackerPixelPhase2EndcapBuilder::buildComponent( DDFilteredView& fv, GeometricDet* g, std::string s ) { - CmsTrackerPhase1DiskBuilder theCmsTrackerPhase1DiskBuilder; + CmsTrackerPhase2TPDiskBuilder theCmsTrackerPhase2DiskBuilder; CmsTrackerPixelPhase2DiskBuilder theCmsTrackerPixelPhase2DiskBuilder; CmsTrackerOTDiscBuilder theCmsTrackerOTDiscBuilder; @@ -26,10 +26,10 @@ CmsTrackerPixelPhase2EndcapBuilder::buildComponent( DDFilteredView& fv, Geometri switch( theCmsTrackerStringToEnum.type( ExtractStringFromDDD::getString( s, &fv ))) { case GeometricDet::PixelPhase2FullDisk: - theCmsTrackerPhase1DiskBuilder.build(fv,subdet,s); + theCmsTrackerPhase2DiskBuilder.build(fv,subdet,s); break; case GeometricDet::PixelPhase2ReducedDisk: - theCmsTrackerPhase1DiskBuilder.build(fv,subdet,s); + theCmsTrackerPhase2DiskBuilder.build(fv,subdet,s); break; case GeometricDet::PixelPhase2TDRDisk: theCmsTrackerPixelPhase2DiskBuilder.build(fv,subdet,s); From dca87fa3e8e67f8f6620cd3e0cf5b40c1c1757fe Mon Sep 17 00:00:00 2001 From: Gaelle Date: Fri, 16 Sep 2016 14:20:42 +0200 Subject: [PATCH 3/5] updating cmsExtendedGeometry2023D4XML_cfi.py and D4 Timing --- .../PyReleaseValidation/python/relval_steps.py | 1 + .../python/upgradeWorkflowComponents.py | 10 ++++++++-- .../python/cmsExtendedGeometry2023D4XML_cfi.py | 17 ++++------------- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/Configuration/PyReleaseValidation/python/relval_steps.py b/Configuration/PyReleaseValidation/python/relval_steps.py index 6eeb00eaf5d25..415c6b89e7e92 100644 --- a/Configuration/PyReleaseValidation/python/relval_steps.py +++ b/Configuration/PyReleaseValidation/python/relval_steps.py @@ -1606,6 +1606,7 @@ def lhegensim(fragment,howMuch): defaultDataSets['2023D1Timing']='' defaultDataSets['2023D2Timing']='' defaultDataSets['2023D3Timing']='' +defaultDataSets['2023D4Timing']='' defaultDataSets['2023D4']='' keys=defaultDataSets.keys() diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index c29dd62d5d5a2..9d341706b0710 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -16,14 +16,16 @@ '2023D2PU', '2023D3', '2023D3PU', + '2023D4', + '2023D4PU', '2023D1Timing', '2023D1TimingPU', '2023D2Timing', '2023D2TimingPU', '2023D3Timing', '2023D3TimingPU', - '2023D4', - '2023D4PU', + '2023D4Timing', + '2023D4TimingPU' ] upgradeSteps=[ @@ -103,6 +105,8 @@ upgradeProperties[2023]['2023D2Timing']['Era'] = 'Phase2C1_timing' upgradeProperties[2023]['2023D3Timing'] = deepcopy(upgradeProperties[2023]['2023D3']) upgradeProperties[2023]['2023D3Timing']['Era'] = 'Phase2C2_timing' +upgradeProperties[2023]['2023D4Timing'] = deepcopy(upgradeProperties[2023]['2023D4']) +upgradeProperties[2023]['2023D4Timing']['Era'] = 'Phase2C2_timing' #standard PU sequences upgradeProperties[2017]['2017PU'] = deepcopy(upgradeProperties[2017]['2017']) @@ -123,6 +127,8 @@ upgradeProperties[2023]['2023D2TimingPU']['ScenToRun'] = deepcopy(upgradeProperties[2023]['2023D2PU']['ScenToRun']) upgradeProperties[2023]['2023D3TimingPU'] = deepcopy(upgradeProperties[2023]['2023D3Timing']) upgradeProperties[2023]['2023D3TimingPU']['ScenToRun'] = deepcopy(upgradeProperties[2023]['2023D3PU']['ScenToRun']) +upgradeProperties[2023]['2023D4TimingPU'] = deepcopy(upgradeProperties[2023]['2024D4Timing']) +upgradeProperties[2023]['2023D4TimingPU']['ScenToRun'] = deepcopy(upgradeProperties[2023]['2024D4PU']['ScenToRun']) diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2023D4XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2023D4XML_cfi.py index 9e472a4bb3879..86af91ab23a83 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2023D4XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2023D4XML_cfi.py @@ -8,7 +8,7 @@ 'Geometry/CMSCommonData/data/PhaseII/materials.xml', 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/cmsextent.xml', - 'Geometry/CMSCommonData/data/PhaseI/cms.xml', + 'Geometry/CMSCommonData/data/PostLS2/cms.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', @@ -17,8 +17,8 @@ 'Geometry/CMSCommonData/data/PhaseII/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/PhaseII/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam.xml', + 'Geometry/CMSCommonData/data/PostLS2/beampipe.xml', + 'Geometry/CMSCommonData/data/PostLS2/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', 'Geometry/CMSCommonData/data/cavern.xml', @@ -78,16 +78,9 @@ 'Geometry/MuonCommonData/data/v2/csc.xml', 'Geometry/MuonCommonData/data/PhaseII/mfshield.xml', 'Geometry/MuonCommonData/data/PhaseII/TDR_BaseLine/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/PostLS2/brm.xml', 'Geometry/ForwardCommonData/data/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', @@ -115,12 +108,10 @@ 'Geometry/GEMGeometryBuilder/data/GEMSpecsFilter.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/MuonSimData/data/PhaseII/muonProdCuts.xml', - 'Geometry/ForwardSimData/data/CastorProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/CMSCommonData/data/FieldParameters.xml', From 6c7763198ae0204aab4468821a90122d1b872828 Mon Sep 17 00:00:00 2001 From: Gaelle Date: Fri, 16 Sep 2016 14:33:33 +0200 Subject: [PATCH 4/5] Fix Typo --- Configuration/PyReleaseValidation/python/relval_2023.py | 2 +- .../PyReleaseValidation/python/upgradeWorkflowComponents.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Configuration/PyReleaseValidation/python/relval_2023.py b/Configuration/PyReleaseValidation/python/relval_2023.py index 0bc3eb770fe91..efb4d9f0de894 100644 --- a/Configuration/PyReleaseValidation/python/relval_2023.py +++ b/Configuration/PyReleaseValidation/python/relval_2023.py @@ -18,7 +18,7 @@ numWFIB = [20021.0,20024.0,20025.0,20026.0] #2023D1 scenario numWFIB.extend([20421.0,20424.0,20425.0,20426.0]) #2023D2 numWFIB.extend([20821.0,20824.0,20825.0,20826.0]) #2023D3 -numWFIB.extend([22021.0,22024.0,22025.0,22026.0]) #2023D4 +numWFIB.extend([21221.0,21224.0,21225.0,21226.0]) #2023D4 for i,key in enumerate(upgradeKeys[2023]): numWF=numWFStart+i*numWFSkip for frag in upgradeFragments: diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index 9d341706b0710..ba382239d8f36 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -127,8 +127,8 @@ upgradeProperties[2023]['2023D2TimingPU']['ScenToRun'] = deepcopy(upgradeProperties[2023]['2023D2PU']['ScenToRun']) upgradeProperties[2023]['2023D3TimingPU'] = deepcopy(upgradeProperties[2023]['2023D3Timing']) upgradeProperties[2023]['2023D3TimingPU']['ScenToRun'] = deepcopy(upgradeProperties[2023]['2023D3PU']['ScenToRun']) -upgradeProperties[2023]['2023D4TimingPU'] = deepcopy(upgradeProperties[2023]['2024D4Timing']) -upgradeProperties[2023]['2023D4TimingPU']['ScenToRun'] = deepcopy(upgradeProperties[2023]['2024D4PU']['ScenToRun']) +upgradeProperties[2023]['2023D4TimingPU'] = deepcopy(upgradeProperties[2023]['2023D4Timing']) +upgradeProperties[2023]['2023D4TimingPU']['ScenToRun'] = deepcopy(upgradeProperties[2023]['2023D4PU']['ScenToRun']) From f099d6a9c22ca8d82e4beb3443e0394bc9738263 Mon Sep 17 00:00:00 2001 From: Gaelle Date: Fri, 16 Sep 2016 14:36:10 +0200 Subject: [PATCH 5/5] removing 2017 --- .../PyReleaseValidation/python/upgradeWorkflowComponents.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index ba382239d8f36..3460cf4cfc5eb 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -109,8 +109,6 @@ upgradeProperties[2023]['2023D4Timing']['Era'] = 'Phase2C2_timing' #standard PU sequences -upgradeProperties[2017]['2017PU'] = deepcopy(upgradeProperties[2017]['2017']) -upgradeProperties[2017]['2017PU']['ScenToRun'] = ['GenSimFull','DigiFullPU','RecoFullPU','HARVESTFullPU'] upgradeProperties[2023]['2023D1PU'] = deepcopy(upgradeProperties[2023]['2023D1']) upgradeProperties[2023]['2023D1PU']['ScenToRun'] = ['GenSimFull','DigiFullPU','RecoFullGlobalPU', 'HARVESTFullGlobalPU'] upgradeProperties[2023]['2023D2PU'] = deepcopy(upgradeProperties[2023]['2023D2'])