File indexing completed on 2023-03-17 11:14:03
0001 #ifndef L1Trigger_TrackTrigger_Setup_h
0002 #define L1Trigger_TrackTrigger_Setup_h
0003
0004 #include "FWCore/Framework/interface/data_default_record_trait.h"
0005 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0006 #include "FWCore/ParameterSet/interface/Registry.h"
0007 #include "DataFormats/Provenance/interface/ProcessHistory.h"
0008 #include "DataFormats/Provenance/interface/ParameterSetID.h"
0009 #include "DataFormats/DetId/interface/DetId.h"
0010 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0011 #include "DataFormats/Math/interface/deltaPhi.h"
0012 #include "DataFormats/TrackerCommon/interface/TrackerTopology.h"
0013 #include "DataFormats/SiStripDetId/interface/StripSubdetector.h"
0014 #include "Geometry/CommonTopologies/interface/PixelGeomDetUnit.h"
0015 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0016 #include "DetectorDescription/Core/interface/DDCompactView.h"
0017 #include "DetectorDescription/DDCMS/interface/DDCompactView.h"
0018 #include "L1Trigger/TrackTrigger/interface/TTStubAlgorithm_official.h"
0019 #include "MagneticField/Engine/interface/MagneticField.h"
0020 #include "CondFormats/SiPhase2TrackerObjects/interface/TrackerDetToDTCELinkCablingMap.h"
0021 #include "SimTracker/Common/interface/TrackingParticleSelector.h"
0022
0023 #include "SimTracker/TrackTriggerAssociation/interface/TTTypes.h"
0024 #include "DataFormats/L1TrackTrigger/interface/TTDTC.h"
0025 #include "L1Trigger/TrackTrigger/interface/SensorModule.h"
0026 #include "L1Trigger/TrackTrigger/interface/SetupRcd.h"
0027
0028 #include <vector>
0029 #include <set>
0030 #include <unordered_map>
0031
0032 namespace tt {
0033
0034 typedef TTStubAlgorithm<Ref_Phase2TrackerDigi_> StubAlgorithm;
0035 typedef TTStubAlgorithm_official<Ref_Phase2TrackerDigi_> StubAlgorithmOfficial;
0036
0037 inline double deltaPhi(double lhs, double rhs = 0.) { return reco::deltaPhi(lhs, rhs); }
0038
0039
0040
0041
0042
0043
0044 class Setup {
0045 public:
0046 Setup() {}
0047 Setup(const edm::ParameterSet& iConfig,
0048 const MagneticField& magneticField,
0049 const TrackerGeometry& trackerGeometry,
0050 const TrackerTopology& trackerTopology,
0051 const TrackerDetToDTCELinkCablingMap& cablingMap,
0052 const StubAlgorithmOfficial& stubAlgorithm,
0053 const edm::ParameterSet& pSetStubAlgorithm,
0054 const edm::ParameterSet& pSetGeometryConfiguration,
0055 const edm::ParameterSetID& pSetIdTTStubAlgorithm,
0056 const edm::ParameterSetID& pSetIdGeometryConfiguration);
0057 ~Setup() {}
0058
0059
0060 bool configurationSupported() const { return configurationSupported_; }
0061
0062 void checkHistory(const edm::ProcessHistory& processHistory) const;
0063
0064 int dtcId(int tklId) const;
0065
0066 int tkLayoutId(int dtcId) const;
0067
0068 int dtcId(int tfpRegion, int tfpChannel) const;
0069
0070 bool psModule(int dtcId) const;
0071
0072 bool gbps10(int dtcId) const;
0073
0074 bool side(int dtcId) const;
0075
0076 int slot(int dtcId) const;
0077
0078 SensorModule* sensorModule(const DetId& detId) const;
0079
0080 const TrackerGeometry* trackerGeometry() const { return trackerGeometry_; }
0081
0082 const TrackerTopology* trackerTopology() const { return trackerTopology_; }
0083
0084 GlobalPoint stubPos(const TTStubRef& ttStubRef) const;
0085
0086 double stubR(const TTBV& hw, const TTStubRef& ttStubRef) const;
0087
0088 GlobalPoint stubPos(bool hybrid, const tt::FrameStub& frame, int region) const;
0089
0090 TTDTC ttDTC() const { return TTDTC(numRegions_, numOverlappingRegions_, numDTCsPerRegion_); }
0091
0092 bool reconstructable(const std::vector<TTStubRef>& ttStubRefs) const;
0093
0094 bool useForAlgEff(const TrackingParticle& tp) const;
0095
0096 bool useForReconstructable(const TrackingParticle& tp) const { return tpSelectorLoose_(tp); }
0097
0098 int layerId(const TTStubRef& ttStubRef) const;
0099
0100 int trackletLayerId(const TTStubRef& ttStubRef) const;
0101
0102 int indexLayerId(const TTStubRef& ttStubRef) const;
0103
0104 bool barrel(const TTStubRef& ttStubRef) const;
0105
0106 bool psModule(const TTStubRef& ttStubRef) const;
0107
0108 SensorModule::Type type(const TTStubRef& ttStubRef) const;
0109
0110 TTBV layerMap(const std::vector<int>& ints) const;
0111
0112 TTBV layerMap(const TTBV& hitPattern, const std::vector<int>& ints) const;
0113
0114 std::vector<int> layerMap(const TTBV& hitPattern, const TTBV& ttBV) const;
0115
0116 std::vector<int> layerMap(const TTBV& ttBV) const;
0117
0118 double dPhi(const TTStubRef& ttStubRef, double inv2R) const;
0119
0120 double dZ(const TTStubRef& ttStubRef, double cot) const;
0121
0122 double v0(const TTStubRef& ttStubRef, double inv2R) const;
0123
0124 double v1(const TTStubRef& ttStubRef, double cot) const;
0125
0126 const std::vector<SensorModule>& sensorModules() const { return sensorModules_; }
0127
0128
0129
0130
0131 int widthDSPa() const { return widthDSPa_; }
0132
0133 int widthDSPab() const { return widthDSPab_; }
0134
0135 int widthDSPau() const { return widthDSPau_; }
0136
0137 int widthDSPb() const { return widthDSPb_; }
0138
0139 int widthDSPbb() const { return widthDSPbb_; }
0140
0141 int widthDSPbu() const { return widthDSPbu_; }
0142
0143 int widthDSPc() const { return widthDSPc_; }
0144
0145 int widthDSPcb() const { return widthDSPcb_; }
0146
0147 int widthDSPcu() const { return widthDSPcu_; }
0148
0149 int widthAddrBRAM36() const { return widthAddrBRAM36_; }
0150
0151 int widthAddrBRAM18() const { return widthAddrBRAM18_; }
0152
0153 int numFrames() const { return numFrames_; }
0154
0155 int numFramesInfra() const { return numFramesInfra_; }
0156
0157 int numFramesIO() const { return numFramesIO_; }
0158
0159 int numFramesFE() const { return numFramesFE_; }
0160
0161 double maxdPhi() const { return maxdPhi_; }
0162
0163 double maxdZ() const { return maxdZ_; }
0164
0165 double tiltedLayerLimitZ(int layer) const { return tiltedLayerLimitsZ_.at(layer); }
0166
0167 double psDiskLimitR(int layer) const { return psDiskLimitsR_.at(layer); }
0168
0169 double pitch2S() const { return pitch2S_; }
0170
0171 double pitchPS() const { return pitchPS_; }
0172
0173 double length2S() const { return length2S_; }
0174
0175 double lengthPS() const { return lengthPS_; }
0176
0177
0178
0179
0180 double beamWindowZ() const { return beamWindowZ_; }
0181
0182 double invPtToDphi() const { return invPtToDphi_; }
0183
0184 double baseRegion() const { return baseRegion_; }
0185
0186 double tpMinPt() const { return tpMinPt_; }
0187
0188 double tpMaxEta() const { return tpMaxEta_; }
0189
0190 double tpMaxVertR() const { return tpMaxVertR_; }
0191
0192 double tpMaxVertZ() const { return tpMaxVertZ_; }
0193
0194 double tpMaxD0() const { return tpMaxD0_; }
0195
0196 int tpMinLayers() const { return tpMinLayers_; }
0197
0198 int tpMinLayersPS() const { return tpMinLayersPS_; }
0199
0200 int tpMaxBadStubs2S() const { return tpMaxBadStubs2S_; }
0201
0202 int tpMaxBadStubsPS() const { return tpMaxBadStubsPS_; }
0203
0204 double bField() const { return bField_; }
0205
0206
0207
0208
0209 double minPt() const { return minPt_; }
0210
0211 double maxEta() const { return maxEta_; }
0212
0213 double chosenRofPhi() const { return chosenRofPhi_; }
0214
0215 int numLayers() const { return numLayers_; }
0216
0217 int tmttWidthR() const { return tmttWidthR_; }
0218
0219 int tmttWidthPhi() const { return tmttWidthPhi_; }
0220
0221 int tmttWidthZ() const { return tmttWidthZ_; }
0222
0223 int tmttWidthLayer() const { return tmttWidthLayer_; }
0224
0225 int tmttWidthSectorEta() const { return tmttWidthSectorEta_; }
0226
0227 int tmttWidthInv2R() const { return tmttWidthInv2R_; }
0228
0229 double tmttBaseR() const { return tmttBaseR_; }
0230
0231 double tmttBaseZ() const { return tmttBaseZ_; }
0232
0233 double tmttBasePhi() const { return tmttBasePhi_; }
0234
0235 double tmttBaseInv2R() const { return tmttBaseInv2R_; }
0236
0237 double tmttBasePhiT() const { return tmttBasePhiT_; }
0238
0239 int tmttNumUnusedBits() const { return tmttNumUnusedBits_; }
0240
0241 double outerRadius() const { return outerRadius_; }
0242
0243 double innerRadius() const { return innerRadius_; }
0244
0245 double halfLength() const { return halfLength_; }
0246
0247 double maxLength() const { return maxLength_; }
0248
0249 double tiltApproxSlope() const { return tiltApproxSlope_; }
0250
0251 double tiltApproxIntercept() const { return tiltApproxIntercept_; }
0252
0253 double tiltUncertaintyR() const { return tiltUncertaintyR_; }
0254
0255 double scattering() const { return scattering_; }
0256
0257
0258
0259
0260 double hybridMinPtStub() const { return hybridMinPtStub_; }
0261
0262 double hybridMinPtCand() const { return hybridMinPtCand_; }
0263
0264 double hybridMaxEta() const { return hybridMaxEta_; }
0265
0266 double hybridChosenRofPhi() const { return hybridChosenRofPhi_; }
0267
0268 int hybridNumLayers() const { return hybridNumLayers_; }
0269
0270 int hybridWidthR(SensorModule::Type type) const { return hybridWidthsR_.at(type); }
0271
0272 int hybridWidthZ(SensorModule::Type type) const { return hybridWidthsZ_.at(type); }
0273
0274 int hybridWidthPhi(SensorModule::Type type) const { return hybridWidthsPhi_.at(type); }
0275
0276 int hybridWidthAlpha(SensorModule::Type type) const { return hybridWidthsAlpha_.at(type); }
0277
0278 int hybridWidthBend(SensorModule::Type type) const { return hybridWidthsBend_.at(type); }
0279
0280 int hybridWidthLayerId() const { return hybridWidthLayerId_; }
0281
0282 double hybridBaseR(SensorModule::Type type) const { return hybridBasesR_.at(type); }
0283
0284 double hybridBasePhi(SensorModule::Type type) const { return hybridBasesPhi_.at(type); }
0285
0286 double hybridBaseZ(SensorModule::Type type) const { return hybridBasesZ_.at(type); }
0287
0288 double hybridBaseAlpha(SensorModule::Type type) const { return hybridBasesAlpha_.at(type); }
0289
0290 int hybridNumUnusedBits(SensorModule::Type type) const { return hybridNumsUnusedBits_.at(type); }
0291
0292 double hybridMaxCot() const { return hybridMaxCot_; }
0293
0294 int hybridNumRingsPS(int layerId) const { return hybridNumRingsPS_.at(layerId); }
0295
0296 double hybridLayerR(int layerId) const { return hybridLayerRs_.at(layerId); }
0297
0298 double hybridDiskZ(int layerId) const { return hybridDiskZs_.at(layerId); }
0299
0300 double hybridRangePhi() const { return hybridRangePhi_; }
0301
0302 double hybridRangeR() const { return hybridRangesR_[SensorModule::DiskPS]; }
0303
0304 double tbInnerRadius() const { return tbInnerRadius_; }
0305
0306
0307
0308
0309 double numTiltedLayerRing(int layerId) const { return numTiltedLayerRings_.at(layerId); };
0310
0311 double windowSizeBarrelLayer(int layerId) const { return windowSizeBarrelLayers_.at(layerId); };
0312
0313 double windowSizeTiltedLayerRing(int layerId, int ring) const {
0314 return windowSizeTiltedLayerRings_.at(layerId).at(ring);
0315 };
0316
0317 double windowSizeEndcapDisksRing(int layerId, int ring) const {
0318 return windowSizeEndcapDisksRings_.at(layerId).at(ring);
0319 };
0320
0321 double baseWindowSize() const { return baseWindowSize_; }
0322
0323 const std::vector<double>& encodingBend(int windowSize, bool psModule) const;
0324
0325
0326
0327
0328 int widthBend() const { return widthBend_; }
0329
0330 int widthCol() const { return widthCol_; }
0331
0332 int widthRow() const { return widthRow_; }
0333
0334 double baseBend() const { return baseBend_; }
0335
0336 double baseCol() const { return baseCol_; }
0337
0338 double baseRow() const { return baseRow_; }
0339
0340 double bendCut() const { return bendCut_; }
0341
0342
0343
0344
0345 int numRegions() const { return numRegions_; }
0346
0347 int numOverlappingRegions() const { return numOverlappingRegions_; }
0348
0349 int numATCASlots() const { return numATCASlots_; }
0350
0351 int numDTCsPerRegion() const { return numDTCsPerRegion_; }
0352
0353 int numModulesPerDTC() const { return numModulesPerDTC_; }
0354
0355 int dtcNumRoutingBlocks() const { return dtcNumRoutingBlocks_; }
0356
0357 int dtcDepthMemory() const { return dtcDepthMemory_; }
0358
0359 int dtcWidthRowLUT() const { return dtcWidthRowLUT_; }
0360
0361 int dtcWidthInv2R() const { return dtcWidthInv2R_; }
0362
0363 int offsetDetIdDSV() const { return offsetDetIdDSV_; }
0364
0365 int offsetDetIdTP() const { return offsetDetIdTP_; }
0366
0367 int offsetLayerDisks() const { return offsetLayerDisks_; }
0368
0369 int offsetLayerId() const { return offsetLayerId_; }
0370
0371 int numBarrelLayer() const { return numBarrelLayer_; }
0372
0373 int numDTCs() const { return numDTCs_; }
0374
0375 int numDTCsPerTFP() const { return numDTCsPerTFP_; }
0376
0377 int numModules() const { return numModules_; }
0378
0379 int dtcNumModulesPerRoutingBlock() const { return dtcNumModulesPerRoutingBlock_; }
0380
0381 int dtcNumMergedRows() const { return dtcNumMergedRows_; }
0382
0383 int dtcWidthM() const { return dtcWidthM_; }
0384
0385 double dtcBaseInv2R() const { return dtcBaseInv2R_; }
0386
0387 double dtcBaseM() const { return dtcBaseM_; }
0388
0389 const std::vector<SensorModule*>& dtcModules(int dtcId) const { return dtcModules_.at(dtcId); }
0390
0391 int dtcNumStreams() const { return dtcNumStreams_; }
0392
0393
0394
0395
0396 int tfpWidthPhi0() const { return tfpWidthPhi0_; }
0397
0398 int tfpWidthInv2R() const { return tfpWidthInv2R_; }
0399
0400 int tfpWidthCot() const { return tfpWidthCot_; }
0401
0402 int tfpWidthZ0() const { return tfpWidthZ0_; }
0403
0404 int tfpNumChannel() const { return tfpNumChannel_; }
0405
0406
0407
0408
0409 int numSectorsPhi() const { return numSectorsPhi_; }
0410
0411 int numSectorsEta() const { return numSectorsEta_; }
0412
0413 double chosenRofZ() const { return chosenRofZ_; }
0414
0415 int gpDepthMemory() const { return gpDepthMemory_; }
0416
0417 double boundarieEta(int eta) const { return boundariesEta_.at(eta); }
0418 std::vector<double> boundarieEta() const { return boundariesEta_; }
0419
0420 double baseSector() const { return baseSector_; }
0421
0422 double maxZT() const { return maxZT_; }
0423
0424 double maxCot() const { return maxCot_; }
0425
0426 int numSectors() const { return numSectors_; }
0427
0428 double sectorCot(int eta) const { return sectorCots_.at(eta); }
0429
0430 double neededRangeChiZ() const { return neededRangeChiZ_; }
0431
0432
0433
0434
0435 int htNumBinsInv2R() const { return htNumBinsInv2R_; }
0436
0437 int htNumBinsPhiT() const { return htNumBinsPhiT_; }
0438
0439 int htMinLayers() const { return htMinLayers_; }
0440
0441 int htDepthMemory() const { return htDepthMemory_; }
0442
0443
0444
0445
0446 int mhtNumBinsInv2R() const { return mhtNumBinsInv2R_; }
0447
0448 int mhtNumBinsPhiT() const { return mhtNumBinsPhiT_; }
0449
0450 int mhtNumDLBs() const { return mhtNumDLBs_; }
0451
0452 int mhtNumDLBNodes() const { return mhtNumDLBNodes_; }
0453
0454 int mhtNumDLBChannel() const { return mhtNumDLBChannel_; }
0455
0456 int mhtMinLayers() const { return mhtMinLayers_; }
0457
0458 int mhtNumCells() const { return mhtNumCells_; }
0459
0460
0461
0462
0463 int zhtNumBinsZT() const { return zhtNumBinsZT_; }
0464
0465 int zhtNumBinsCot() const { return zhtNumBinsCot_; }
0466
0467 int zhtNumStages() const { return zhtNumStages_; }
0468
0469 int zhtMinLayers() const { return zhtMinLayers_; }
0470
0471 int zhtMaxTracks() const { return zhtMaxTracks_; }
0472
0473 int zhtMaxStubsPerLayer() const { return zhtMaxStubsPerLayer_; }
0474
0475 int zhtNumCells() const { return zhtNumCells_; }
0476
0477
0478
0479
0480 int kfinShiftRangePhi() const { return kfinShiftRangePhi_; }
0481
0482 int kfinShiftRangeZ() const { return kfinShiftRangeZ_; }
0483
0484
0485
0486
0487 int kfNumWorker() const { return kfNumWorker_; }
0488
0489 int kfMinLayers() const { return kfMinLayers_; }
0490
0491 int kfMaxLayers() const { return kfMaxLayers_; }
0492
0493 double kfRangeFactor() const { return kfRangeFactor_; }
0494
0495
0496
0497
0498 std::vector<double> kfoutchi2rphiBins() const { return kfoutchi2rphiBins_; }
0499
0500 std::vector<double> kfoutchi2rzBins() const { return kfoutchi2rzBins_; }
0501
0502 int kfoutchi2rphiConv() const { return kfoutchi2rphiConv_; }
0503
0504 int kfoutchi2rzConv() const { return kfoutchi2rzConv_; }
0505
0506 int tttrackBits() const { return tttrackBits_; }
0507
0508 int weightBinFraction() const { return weightBinFraction_; }
0509
0510
0511
0512
0513 int drDepthMemory() const { return drDepthMemory_; }
0514
0515 private:
0516
0517 void checkHistory(const edm::ProcessHistory&,
0518 const edm::pset::Registry*,
0519 const std::string&,
0520 const edm::ParameterSetID&) const;
0521
0522 std::string dumpDiff(const edm::ParameterSet& pSetHistory, const edm::ParameterSet& pSetProcess) const;
0523
0524 void checkMagneticField();
0525
0526 void checkGeometry();
0527
0528 void calculateConstants();
0529
0530 void consumeStubAlgorithm();
0531
0532 void encodeBend(std::vector<std::vector<double>>&, bool) const;
0533
0534 void produceSensorModules();
0535
0536 void checkDTCId(int dtcId) const;
0537
0538 void checkTKLayoutId(int tkLayoutId) const;
0539
0540 void checkTFPIdentifier(int tfpRegion, int tfpChannel) const;
0541
0542 void configureTPSelector();
0543
0544
0545 const MagneticField* magneticField_;
0546
0547 const TrackerGeometry* trackerGeometry_;
0548
0549 const TrackerTopology* trackerTopology_;
0550
0551 const TrackerDetToDTCELinkCablingMap* cablingMap_;
0552
0553 const StubAlgorithmOfficial* stubAlgorithm_;
0554
0555 const edm::ParameterSet* pSetSA_;
0556
0557 const edm::ParameterSet* pSetGC_;
0558
0559 edm::ParameterSetID pSetIdTTStubAlgorithm_;
0560
0561 edm::ParameterSetID pSetIdGeometryConfiguration_;
0562
0563
0564 bool fromDD4hep_;
0565
0566
0567 edm::ParameterSet pSetSG_;
0568
0569 std::string sgXMLLabel_;
0570
0571 std::string sgXMLPath_;
0572
0573 std::string sgXMLFile_;
0574
0575 std::vector<std::string> sgXMLVersions_;
0576
0577
0578 edm::ParameterSet pSetPH_;
0579
0580 std::string phGeometryConfiguration_;
0581
0582 std::string phTTStubAlgorithm_;
0583
0584
0585 edm::ParameterSet pSetTF_;
0586
0587 double beamWindowZ_;
0588
0589 int matchedLayers_;
0590
0591 int matchedLayersPS_;
0592
0593 int unMatchedStubs_;
0594
0595 int unMatchedStubsPS_;
0596
0597 double scattering_;
0598
0599
0600 edm::ParameterSet pSetTMTT_;
0601
0602 double minPt_;
0603
0604 double maxEta_;
0605
0606 double chosenRofPhi_;
0607
0608 int numLayers_;
0609
0610 int tmttWidthR_;
0611
0612 int tmttWidthPhi_;
0613
0614 int tmttWidthZ_;
0615
0616
0617 edm::ParameterSet pSetHybrid_;
0618
0619 double hybridMinPtStub_;
0620
0621 double hybridMinPtCand_;
0622
0623 double hybridMaxEta_;
0624
0625 double hybridChosenRofPhi_;
0626
0627 int hybridNumLayers_;
0628
0629 std::vector<int> hybridNumRingsPS_;
0630
0631 std::vector<int> hybridWidthsR_;
0632
0633 std::vector<int> hybridWidthsZ_;
0634
0635 std::vector<int> hybridWidthsPhi_;
0636
0637 std::vector<int> hybridWidthsAlpha_;
0638
0639 std::vector<int> hybridWidthsBend_;
0640
0641 std::vector<double> hybridRangesR_;
0642
0643 std::vector<double> hybridRangesZ_;
0644
0645 std::vector<double> hybridRangesAlpha_;
0646
0647 std::vector<double> hybridLayerRs_;
0648
0649 std::vector<double> hybridDiskZs_;
0650
0651 std::vector<edm::ParameterSet> hybridDisk2SRsSet_;
0652
0653 double hybridRangePhi_;
0654
0655 double tbInnerRadius_;
0656
0657
0658 edm::ParameterSet pSetTP_;
0659
0660 double tpMinPt_;
0661
0662 double tpMaxEta_;
0663
0664 double tpMaxVertR_;
0665
0666 double tpMaxVertZ_;
0667
0668 double tpMaxD0_;
0669
0670 int tpMinLayers_;
0671
0672 int tpMinLayersPS_;
0673
0674 int tpMaxBadStubs2S_;
0675
0676 int tpMaxBadStubsPS_;
0677
0678
0679 edm::ParameterSet pSetFW_;
0680
0681 int widthDSPa_;
0682
0683 int widthDSPab_;
0684
0685 int widthDSPau_;
0686
0687 int widthDSPb_;
0688
0689 int widthDSPbb_;
0690
0691 int widthDSPbu_;
0692
0693 int widthDSPc_;
0694
0695 int widthDSPcb_;
0696
0697 int widthDSPcu_;
0698
0699 int widthAddrBRAM36_;
0700
0701 int widthAddrBRAM18_;
0702
0703 int numFramesInfra_;
0704
0705 double freqLHC_;
0706
0707 double freqBE_;
0708
0709 int tmpFE_;
0710
0711 int tmpTFP_;
0712
0713 double speedOfLight_;
0714
0715 double bField_;
0716
0717 double bFieldError_;
0718
0719 double outerRadius_;
0720
0721 double innerRadius_;
0722
0723 double halfLength_;
0724
0725 double maxPitch_;
0726
0727 double maxLength_;
0728
0729 double tiltApproxSlope_;
0730
0731 double tiltApproxIntercept_;
0732
0733 double tiltUncertaintyR_;
0734
0735 double mindPhi_;
0736
0737 double maxdPhi_;
0738
0739 double mindZ_;
0740
0741 double maxdZ_;
0742
0743 double pitch2S_;
0744
0745 double pitchPS_;
0746
0747 double length2S_;
0748
0749 double lengthPS_;
0750
0751 std::vector<double> tiltedLayerLimitsZ_;
0752
0753 std::vector<double> psDiskLimitsR_;
0754
0755
0756 edm::ParameterSet pSetFE_;
0757
0758 int widthBend_;
0759
0760 int widthCol_;
0761
0762 int widthRow_;
0763
0764 double baseBend_;
0765
0766 double baseCol_;
0767
0768 double baseRow_;
0769
0770 double baseWindowSize_;
0771
0772 double bendCut_;
0773
0774
0775 edm::ParameterSet pSetDTC_;
0776
0777 int numRegions_;
0778
0779 int numOverlappingRegions_;
0780
0781 int numATCASlots_;
0782
0783 int numDTCsPerRegion_;
0784
0785 int numModulesPerDTC_;
0786
0787 int dtcNumRoutingBlocks_;
0788
0789 int dtcDepthMemory_;
0790
0791 int dtcWidthRowLUT_;
0792
0793 int dtcWidthInv2R_;
0794
0795 int offsetDetIdDSV_;
0796
0797 int offsetDetIdTP_;
0798
0799 int offsetLayerDisks_;
0800
0801 int offsetLayerId_;
0802
0803 int numBarrelLayer_;
0804
0805 int dtcNumStreams_;
0806
0807 int slotLimitPS_;
0808
0809 int slotLimit10gbps_;
0810
0811
0812 edm::ParameterSet pSetTFP_;
0813
0814 int tfpWidthPhi0_;
0815
0816 int tfpWidthInv2R_;
0817
0818 int tfpWidthCot_;
0819
0820 int tfpWidthZ0_;
0821
0822 int tfpNumChannel_;
0823
0824
0825 edm::ParameterSet pSetGP_;
0826
0827 int numSectorsPhi_;
0828
0829 int numSectorsEta_;
0830
0831 double chosenRofZ_;
0832
0833 double neededRangeChiZ_;
0834
0835 int gpDepthMemory_;
0836
0837 std::vector<double> boundariesEta_;
0838
0839
0840 edm::ParameterSet pSetHT_;
0841
0842 int htNumBinsInv2R_;
0843
0844 int htNumBinsPhiT_;
0845
0846 int htMinLayers_;
0847
0848 int htDepthMemory_;
0849
0850
0851 edm::ParameterSet pSetMHT_;
0852
0853 int mhtNumBinsInv2R_;
0854
0855 int mhtNumBinsPhiT_;
0856
0857 int mhtNumDLBs_;
0858
0859 int mhtNumDLBNodes_;
0860
0861 int mhtNumDLBChannel_;
0862
0863 int mhtMinLayers_;
0864
0865
0866 edm::ParameterSet pSetZHT_;
0867
0868 int zhtNumBinsZT_;
0869
0870 int zhtNumBinsCot_;
0871
0872 int zhtNumStages_;
0873
0874 int zhtMinLayers_;
0875
0876 int zhtMaxTracks_;
0877
0878 int zhtMaxStubsPerLayer_;
0879
0880
0881 edm::ParameterSet pSetKFin_;
0882
0883 int kfinShiftRangePhi_;
0884
0885 int kfinShiftRangeZ_;
0886
0887
0888 edm::ParameterSet pSetKF_;
0889
0890 int kfNumWorker_;
0891
0892 int kfMinLayers_;
0893
0894 int kfMaxLayers_;
0895
0896 double kfRangeFactor_;
0897
0898
0899 edm::ParameterSet pSetKFOut_;
0900
0901 std::vector<int> kfoutdPhiBins_;
0902
0903 std::vector<int> kfoutdZBins_;
0904
0905 std::vector<int> kfoutv0Bins_;
0906
0907 std::vector<int> kfoutv1Bins_;
0908
0909 std::vector<double> kfoutchi2rphiBins_;
0910
0911 std::vector<double> kfoutchi2rzBins_;
0912
0913 int kfoutchi2rphiConv_;
0914
0915 int kfoutchi2rzConv_;
0916
0917 int tttrackBits_;
0918
0919 int weightBinFraction_;
0920
0921
0922 edm::ParameterSet pSetDR_;
0923
0924 int drDepthMemory_;
0925
0926
0927
0928
0929
0930
0931 bool configurationSupported_;
0932
0933 TrackingParticleSelector tpSelector_;
0934
0935 TrackingParticleSelector tpSelectorLoose_;
0936
0937
0938
0939
0940 std::vector<double> numTiltedLayerRings_;
0941
0942 std::vector<double> windowSizeBarrelLayers_;
0943
0944 std::vector<std::vector<double>> windowSizeTiltedLayerRings_;
0945
0946 std::vector<std::vector<double>> windowSizeEndcapDisksRings_;
0947
0948 int maxWindowSize_;
0949
0950
0951
0952
0953 int numFrames_;
0954
0955 int numFramesIO_;
0956
0957 int numFramesFE_;
0958
0959 double invPtToDphi_;
0960
0961 double baseRegion_;
0962
0963
0964
0965
0966 int widthLayerId_;
0967
0968 double tmttBaseR_;
0969
0970 double tmttBaseZ_;
0971
0972 double tmttBasePhi_;
0973
0974 double tmttBaseInv2R_;
0975
0976 double tmttBasePhiT_;
0977
0978 int dtcNumUnusedBits_;
0979
0980 int tmttWidthLayer_;
0981
0982 int tmttWidthSectorEta_;
0983
0984 int tmttWidthInv2R_;
0985
0986 int tmttNumUnusedBits_;
0987
0988
0989
0990
0991 int hybridWidthLayerId_;
0992
0993 std::vector<double> hybridBasesR_;
0994
0995 std::vector<double> hybridBasesPhi_;
0996
0997 std::vector<double> hybridBasesZ_;
0998
0999 std::vector<double> hybridBasesAlpha_;
1000
1001 double hybridBaseZ_;
1002
1003 double hybridBaseR_;
1004
1005 double hybridBasePhi_;
1006
1007 double hybridMaxCot_;
1008
1009 std::vector<int> hybridNumsUnusedBits_;
1010
1011 std::vector<std::vector<double>> disk2SRs_;
1012
1013
1014
1015
1016 int numDTCs_;
1017
1018 int numDTCsPerTFP_;
1019
1020 int numModules_;
1021
1022 int dtcNumModulesPerRoutingBlock_;
1023
1024 int dtcNumMergedRows_;
1025
1026 int dtcWidthM_;
1027
1028 double dtcBaseInv2R_;
1029
1030 double dtcBaseM_;
1031
1032 std::vector<std::vector<double>> encodingsBendPS_;
1033
1034 std::vector<std::vector<double>> encodingsBend2S_;
1035
1036 std::vector<SensorModule> sensorModules_;
1037
1038 std::vector<std::vector<SensorModule*>> dtcModules_;
1039
1040 std::unordered_map<DetId, SensorModule*> detIdToSensorModule_;
1041
1042
1043
1044
1045 double baseSector_;
1046
1047 double maxZT_;
1048
1049 double maxCot_;
1050
1051 int numSectors_;
1052
1053 int gpNumUnusedBits_;
1054
1055 std::vector<double> sectorCots_;
1056
1057
1058
1059
1060 int mhtNumCells_;
1061
1062
1063
1064
1065 int zhtNumCells_;
1066
1067
1068
1069 int kfWidthLayerCount_;
1070 };
1071
1072 }
1073
1074 EVENTSETUP_DATA_DEFAULT_RECORD(tt::Setup, tt::SetupRcd);
1075
1076 #endif