File indexing completed on 2024-08-09 23:47:33
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 "SimDataFormats/Associations/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 double disk2SR(int layerId, int r) const { return disk2SRs_.at(layerId).at(r); }
0307
0308 int tbWidthR(SensorModule::Type type) const { return tbWidthsR_.at(type); }
0309
0310
0311
0312
0313 double numTiltedLayerRing(int layerId) const { return numTiltedLayerRings_.at(layerId); };
0314
0315 double windowSizeBarrelLayer(int layerId) const { return windowSizeBarrelLayers_.at(layerId); };
0316
0317 double windowSizeTiltedLayerRing(int layerId, int ring) const {
0318 return windowSizeTiltedLayerRings_.at(layerId).at(ring);
0319 };
0320
0321 double windowSizeEndcapDisksRing(int layerId, int ring) const {
0322 return windowSizeEndcapDisksRings_.at(layerId).at(ring);
0323 };
0324
0325 double baseWindowSize() const { return baseWindowSize_; }
0326
0327 const std::vector<double>& encodingBend(int windowSize, bool psModule) const;
0328
0329
0330
0331
0332 int widthBend() const { return widthBend_; }
0333
0334 int widthCol() const { return widthCol_; }
0335
0336 int widthRow() const { return widthRow_; }
0337
0338 double baseBend() const { return baseBend_; }
0339
0340 double baseCol() const { return baseCol_; }
0341
0342 double baseRow() const { return baseRow_; }
0343
0344 double bendCut() const { return bendCut_; }
0345
0346
0347
0348
0349 int numRegions() const { return numRegions_; }
0350
0351 int numOverlappingRegions() const { return numOverlappingRegions_; }
0352
0353 int numATCASlots() const { return numATCASlots_; }
0354
0355 int numDTCsPerRegion() const { return numDTCsPerRegion_; }
0356
0357 int numModulesPerDTC() const { return numModulesPerDTC_; }
0358
0359 int dtcNumRoutingBlocks() const { return dtcNumRoutingBlocks_; }
0360
0361 int dtcDepthMemory() const { return dtcDepthMemory_; }
0362
0363 int dtcWidthRowLUT() const { return dtcWidthRowLUT_; }
0364
0365 int dtcWidthInv2R() const { return dtcWidthInv2R_; }
0366
0367 int offsetDetIdDSV() const { return offsetDetIdDSV_; }
0368
0369 int offsetDetIdTP() const { return offsetDetIdTP_; }
0370
0371 int offsetLayerDisks() const { return offsetLayerDisks_; }
0372
0373 int offsetLayerId() const { return offsetLayerId_; }
0374
0375 int numBarrelLayer() const { return numBarrelLayer_; }
0376
0377 int numDTCs() const { return numDTCs_; }
0378
0379 int numDTCsPerTFP() const { return numDTCsPerTFP_; }
0380
0381 int numModules() const { return numModules_; }
0382
0383 int dtcNumModulesPerRoutingBlock() const { return dtcNumModulesPerRoutingBlock_; }
0384
0385 int dtcNumMergedRows() const { return dtcNumMergedRows_; }
0386
0387 int dtcWidthM() const { return dtcWidthM_; }
0388
0389 double dtcBaseInv2R() const { return dtcBaseInv2R_; }
0390
0391 double dtcBaseM() const { return dtcBaseM_; }
0392
0393 const std::vector<SensorModule*>& dtcModules(int dtcId) const { return dtcModules_.at(dtcId); }
0394
0395 int dtcNumStreams() const { return dtcNumStreams_; }
0396
0397
0398
0399
0400 int tfpWidthPhi0() const { return tfpWidthPhi0_; }
0401
0402 int tfpWidthInv2R() const { return tfpWidthInv2R_; }
0403
0404 int tfpWidthCot() const { return tfpWidthCot_; }
0405
0406 int tfpWidthZ0() const { return tfpWidthZ0_; }
0407
0408 int tfpNumChannel() const { return tfpNumChannel_; }
0409
0410
0411
0412
0413 int numSectorsPhi() const { return numSectorsPhi_; }
0414
0415 int numSectorsEta() const { return numSectorsEta_; }
0416
0417 double chosenRofZ() const { return chosenRofZ_; }
0418
0419 int gpDepthMemory() const { return gpDepthMemory_; }
0420
0421 double boundarieEta(int eta) const { return boundariesEta_.at(eta); }
0422 std::vector<double> boundarieEta() const { return boundariesEta_; }
0423
0424 double baseSector() const { return baseSector_; }
0425
0426 double maxZT() const { return maxZT_; }
0427
0428 double maxCot() const { return maxCot_; }
0429
0430 int numSectors() const { return numSectors_; }
0431
0432 double sectorCot(int eta) const { return sectorCots_.at(eta); }
0433
0434 double neededRangeChiZ() const { return neededRangeChiZ_; }
0435
0436
0437
0438
0439 int htNumBinsInv2R() const { return htNumBinsInv2R_; }
0440
0441 int htNumBinsPhiT() const { return htNumBinsPhiT_; }
0442
0443 int htMinLayers() const { return htMinLayers_; }
0444
0445 int htDepthMemory() const { return htDepthMemory_; }
0446
0447
0448
0449
0450 int mhtNumBinsInv2R() const { return mhtNumBinsInv2R_; }
0451
0452 int mhtNumBinsPhiT() const { return mhtNumBinsPhiT_; }
0453
0454 int mhtNumDLBs() const { return mhtNumDLBs_; }
0455
0456 int mhtNumDLBNodes() const { return mhtNumDLBNodes_; }
0457
0458 int mhtNumDLBChannel() const { return mhtNumDLBChannel_; }
0459
0460 int mhtMinLayers() const { return mhtMinLayers_; }
0461
0462 int mhtNumCells() const { return mhtNumCells_; }
0463
0464
0465
0466
0467 int zhtNumBinsZT() const { return zhtNumBinsZT_; }
0468
0469 int zhtNumBinsCot() const { return zhtNumBinsCot_; }
0470
0471 int zhtNumStages() const { return zhtNumStages_; }
0472
0473 int zhtMinLayers() const { return zhtMinLayers_; }
0474
0475 int zhtMaxTracks() const { return zhtMaxTracks_; }
0476
0477 int zhtMaxStubsPerLayer() const { return zhtMaxStubsPerLayer_; }
0478
0479 int zhtNumCells() const { return zhtNumCells_; }
0480
0481
0482
0483
0484 int kfinShiftRangePhi() const { return kfinShiftRangePhi_; }
0485
0486 int kfinShiftRangeZ() const { return kfinShiftRangeZ_; }
0487
0488
0489
0490
0491 int kfNumWorker() const { return kfNumWorker_; }
0492
0493 int kfMinLayers() const { return kfMinLayers_; }
0494
0495 int kfMaxLayers() const { return kfMaxLayers_; }
0496
0497 double kfRangeFactor() const { return kfRangeFactor_; }
0498
0499 int kfShiftInitialC00() const { return kfShiftInitialC00_; }
0500
0501 int kfShiftInitialC11() const { return kfShiftInitialC11_; }
0502
0503 int kfShiftInitialC22() const { return kfShiftInitialC22_; }
0504
0505 int kfShiftInitialC33() const { return kfShiftInitialC33_; }
0506
0507
0508
0509 int kfoutchi2rphiConv() const { return kfoutchi2rphiConv_; }
0510
0511 int kfoutchi2rzConv() const { return kfoutchi2rzConv_; }
0512
0513 int weightBinFraction() const { return weightBinFraction_; }
0514
0515 int dzTruncation() const { return dzTruncation_; }
0516
0517 int dphiTruncation() const { return dphiTruncation_; }
0518
0519
0520
0521
0522 int drDepthMemory() const { return drDepthMemory_; }
0523
0524
0525 const StubAlgorithmOfficial* stubAlgorithm() const { return stubAlgorithm_; }
0526
0527 private:
0528
0529 void checkHistory(const edm::ProcessHistory&,
0530 const edm::pset::Registry*,
0531 const std::string&,
0532 const edm::ParameterSetID&) const;
0533
0534 std::string dumpDiff(const edm::ParameterSet& pSetHistory, const edm::ParameterSet& pSetProcess) const;
0535
0536 void checkMagneticField();
0537
0538 void checkGeometry();
0539
0540 void calculateConstants();
0541
0542 void consumeStubAlgorithm();
0543
0544 void encodeBend(std::vector<std::vector<double>>&, bool) const;
0545
0546 void produceSensorModules();
0547
0548 void checkDTCId(int dtcId) const;
0549
0550 void checkTKLayoutId(int tkLayoutId) const;
0551
0552 void checkTFPIdentifier(int tfpRegion, int tfpChannel) const;
0553
0554 void configureTPSelector();
0555
0556
0557 const MagneticField* magneticField_;
0558
0559 const TrackerGeometry* trackerGeometry_;
0560
0561 const TrackerTopology* trackerTopology_;
0562
0563 const TrackerDetToDTCELinkCablingMap* cablingMap_;
0564
0565 const StubAlgorithmOfficial* stubAlgorithm_;
0566
0567 const edm::ParameterSet* pSetSA_;
0568
0569 const edm::ParameterSet* pSetGC_;
0570
0571 edm::ParameterSetID pSetIdTTStubAlgorithm_;
0572
0573 edm::ParameterSetID pSetIdGeometryConfiguration_;
0574
0575
0576 bool fromDD4hep_;
0577
0578
0579 edm::ParameterSet pSetSG_;
0580
0581 std::string sgXMLLabel_;
0582
0583 std::string sgXMLPath_;
0584
0585 std::string sgXMLFile_;
0586
0587 std::vector<std::string> sgXMLVersions_;
0588
0589
0590 edm::ParameterSet pSetPH_;
0591
0592 std::string phGeometryConfiguration_;
0593
0594 std::string phTTStubAlgorithm_;
0595
0596
0597 edm::ParameterSet pSetTF_;
0598
0599 double beamWindowZ_;
0600
0601 int matchedLayers_;
0602
0603 int matchedLayersPS_;
0604
0605 int unMatchedStubs_;
0606
0607 int unMatchedStubsPS_;
0608
0609 double scattering_;
0610
0611
0612 edm::ParameterSet pSetTMTT_;
0613
0614 double minPt_;
0615
0616 double maxEta_;
0617
0618 double chosenRofPhi_;
0619
0620 int numLayers_;
0621
0622 int tmttWidthR_;
0623
0624 int tmttWidthPhi_;
0625
0626 int tmttWidthZ_;
0627
0628
0629 edm::ParameterSet pSetHybrid_;
0630
0631 double hybridMinPtStub_;
0632
0633 double hybridMinPtCand_;
0634
0635 double hybridMaxEta_;
0636
0637 double hybridChosenRofPhi_;
0638
0639 int hybridNumLayers_;
0640
0641 std::vector<int> hybridNumRingsPS_;
0642
0643 std::vector<int> hybridWidthsR_;
0644
0645 std::vector<int> hybridWidthsZ_;
0646
0647 std::vector<int> hybridWidthsPhi_;
0648
0649 std::vector<int> hybridWidthsAlpha_;
0650
0651 std::vector<int> hybridWidthsBend_;
0652
0653 std::vector<double> hybridRangesR_;
0654
0655 std::vector<double> hybridRangesZ_;
0656
0657 std::vector<double> hybridRangesAlpha_;
0658
0659 std::vector<double> hybridLayerRs_;
0660
0661 std::vector<double> hybridDiskZs_;
0662
0663 std::vector<edm::ParameterSet> hybridDisk2SRsSet_;
0664
0665 double hybridRangePhi_;
0666
0667 double tbInnerRadius_;
0668
0669 std::vector<int> tbWidthsR_;
0670
0671
0672 edm::ParameterSet pSetTP_;
0673
0674 double tpMinPt_;
0675
0676 double tpMaxEta_;
0677
0678 double tpMaxVertR_;
0679
0680 double tpMaxVertZ_;
0681
0682 double tpMaxD0_;
0683
0684 int tpMinLayers_;
0685
0686 int tpMinLayersPS_;
0687
0688 int tpMaxBadStubs2S_;
0689
0690 int tpMaxBadStubsPS_;
0691
0692
0693 edm::ParameterSet pSetFW_;
0694
0695 int widthDSPa_;
0696
0697 int widthDSPab_;
0698
0699 int widthDSPau_;
0700
0701 int widthDSPb_;
0702
0703 int widthDSPbb_;
0704
0705 int widthDSPbu_;
0706
0707 int widthDSPc_;
0708
0709 int widthDSPcb_;
0710
0711 int widthDSPcu_;
0712
0713 int widthAddrBRAM36_;
0714
0715 int widthAddrBRAM18_;
0716
0717 int numFramesInfra_;
0718
0719 double freqLHC_;
0720
0721 double freqBE_;
0722
0723 int tmpFE_;
0724
0725 int tmpTFP_;
0726
0727 double speedOfLight_;
0728
0729 double bField_;
0730
0731 double bFieldError_;
0732
0733 double outerRadius_;
0734
0735 double innerRadius_;
0736
0737 double halfLength_;
0738
0739 double maxPitch_;
0740
0741 double maxLength_;
0742
0743 double tiltApproxSlope_;
0744
0745 double tiltApproxIntercept_;
0746
0747 double tiltUncertaintyR_;
0748
0749 double mindPhi_;
0750
0751 double maxdPhi_;
0752
0753 double mindZ_;
0754
0755 double maxdZ_;
0756
0757 double pitch2S_;
0758
0759 double pitchPS_;
0760
0761 double length2S_;
0762
0763 double lengthPS_;
0764
0765 std::vector<double> tiltedLayerLimitsZ_;
0766
0767 std::vector<double> psDiskLimitsR_;
0768
0769
0770 edm::ParameterSet pSetFE_;
0771
0772 int widthBend_;
0773
0774 int widthCol_;
0775
0776 int widthRow_;
0777
0778 double baseBend_;
0779
0780 double baseCol_;
0781
0782 double baseRow_;
0783
0784 double baseWindowSize_;
0785
0786 double bendCut_;
0787
0788
0789 edm::ParameterSet pSetDTC_;
0790
0791 int numRegions_;
0792
0793 int numOverlappingRegions_;
0794
0795 int numATCASlots_;
0796
0797 int numDTCsPerRegion_;
0798
0799 int numModulesPerDTC_;
0800
0801 int dtcNumRoutingBlocks_;
0802
0803 int dtcDepthMemory_;
0804
0805 int dtcWidthRowLUT_;
0806
0807 int dtcWidthInv2R_;
0808
0809 int offsetDetIdDSV_;
0810
0811 int offsetDetIdTP_;
0812
0813 int offsetLayerDisks_;
0814
0815 int offsetLayerId_;
0816
0817 int numBarrelLayer_;
0818
0819 int dtcNumStreams_;
0820
0821 int slotLimitPS_;
0822
0823 int slotLimit10gbps_;
0824
0825
0826 edm::ParameterSet pSetTFP_;
0827
0828 int tfpWidthPhi0_;
0829
0830 int tfpWidthInv2R_;
0831
0832 int tfpWidthCot_;
0833
0834 int tfpWidthZ0_;
0835
0836 int tfpNumChannel_;
0837
0838
0839 edm::ParameterSet pSetGP_;
0840
0841 int numSectorsPhi_;
0842
0843 int numSectorsEta_;
0844
0845 double chosenRofZ_;
0846
0847 double neededRangeChiZ_;
0848
0849 int gpDepthMemory_;
0850
0851 std::vector<double> boundariesEta_;
0852
0853
0854 edm::ParameterSet pSetHT_;
0855
0856 int htNumBinsInv2R_;
0857
0858 int htNumBinsPhiT_;
0859
0860 int htMinLayers_;
0861
0862 int htDepthMemory_;
0863
0864
0865 edm::ParameterSet pSetMHT_;
0866
0867 int mhtNumBinsInv2R_;
0868
0869 int mhtNumBinsPhiT_;
0870
0871 int mhtNumDLBs_;
0872
0873 int mhtNumDLBNodes_;
0874
0875 int mhtNumDLBChannel_;
0876
0877 int mhtMinLayers_;
0878
0879
0880 edm::ParameterSet pSetZHT_;
0881
0882 int zhtNumBinsZT_;
0883
0884 int zhtNumBinsCot_;
0885
0886 int zhtNumStages_;
0887
0888 int zhtMinLayers_;
0889
0890 int zhtMaxTracks_;
0891
0892 int zhtMaxStubsPerLayer_;
0893
0894
0895 edm::ParameterSet pSetKFin_;
0896
0897 int kfinShiftRangePhi_;
0898
0899 int kfinShiftRangeZ_;
0900
0901
0902 edm::ParameterSet pSetKF_;
0903
0904 int kfNumWorker_;
0905
0906 int kfMinLayers_;
0907
0908 int kfMaxLayers_;
0909
0910 double kfRangeFactor_;
0911
0912 int kfShiftInitialC00_;
0913
0914 int kfShiftInitialC11_;
0915
0916 int kfShiftInitialC22_;
0917
0918 int kfShiftInitialC33_;
0919
0920
0921 edm::ParameterSet pSetKFOut_;
0922
0923 int kfoutchi2rphiConv_;
0924
0925 int kfoutchi2rzConv_;
0926
0927 int weightBinFraction_;
0928
0929 int dzTruncation_;
0930
0931 int dphiTruncation_;
0932
0933
0934 edm::ParameterSet pSetDR_;
0935
0936 int drDepthMemory_;
0937
0938
0939
0940
0941
0942
0943 bool configurationSupported_;
0944
0945 TrackingParticleSelector tpSelector_;
0946
0947 TrackingParticleSelector tpSelectorLoose_;
0948
0949
0950
0951
0952 std::vector<double> numTiltedLayerRings_;
0953
0954 std::vector<double> windowSizeBarrelLayers_;
0955
0956 std::vector<std::vector<double>> windowSizeTiltedLayerRings_;
0957
0958 std::vector<std::vector<double>> windowSizeEndcapDisksRings_;
0959
0960 int maxWindowSize_;
0961
0962
0963
0964
0965 int numFrames_;
0966
0967 int numFramesIO_;
0968
0969 int numFramesFE_;
0970
0971 double invPtToDphi_;
0972
0973 double baseRegion_;
0974
0975
0976
0977
0978 int widthLayerId_;
0979
0980 double tmttBaseR_;
0981
0982 double tmttBaseZ_;
0983
0984 double tmttBasePhi_;
0985
0986 double tmttBaseInv2R_;
0987
0988 double tmttBasePhiT_;
0989
0990 int dtcNumUnusedBits_;
0991
0992 int tmttWidthLayer_;
0993
0994 int tmttWidthSectorEta_;
0995
0996 int tmttWidthInv2R_;
0997
0998 int tmttNumUnusedBits_;
0999
1000
1001
1002
1003 int hybridWidthLayerId_;
1004
1005 std::vector<double> hybridBasesR_;
1006
1007 std::vector<double> hybridBasesPhi_;
1008
1009 std::vector<double> hybridBasesZ_;
1010
1011 std::vector<double> hybridBasesAlpha_;
1012
1013 double hybridBaseZ_;
1014
1015 double hybridBaseR_;
1016
1017 double hybridBasePhi_;
1018
1019 double hybridMaxCot_;
1020
1021 std::vector<int> hybridNumsUnusedBits_;
1022
1023 std::vector<std::vector<double>> disk2SRs_;
1024
1025
1026
1027
1028 int numDTCs_;
1029
1030 int numDTCsPerTFP_;
1031
1032 int numModules_;
1033
1034 int dtcNumModulesPerRoutingBlock_;
1035
1036 int dtcNumMergedRows_;
1037
1038 int dtcWidthM_;
1039
1040 double dtcBaseInv2R_;
1041
1042 double dtcBaseM_;
1043
1044 std::vector<std::vector<double>> encodingsBendPS_;
1045
1046 std::vector<std::vector<double>> encodingsBend2S_;
1047
1048 std::vector<SensorModule> sensorModules_;
1049
1050 std::vector<std::vector<SensorModule*>> dtcModules_;
1051
1052 std::unordered_map<DetId, SensorModule*> detIdToSensorModule_;
1053
1054
1055
1056
1057 double baseSector_;
1058
1059 double maxZT_;
1060
1061 double maxCot_;
1062
1063 int numSectors_;
1064
1065 int gpNumUnusedBits_;
1066
1067 std::vector<double> sectorCots_;
1068
1069
1070
1071
1072 int mhtNumCells_;
1073
1074
1075
1076
1077 int zhtNumCells_;
1078
1079
1080
1081 int kfWidthLayerCount_;
1082 };
1083
1084 }
1085
1086 EVENTSETUP_DATA_DEFAULT_RECORD(tt::Setup, tt::SetupRcd);
1087
1088 #endif