File indexing completed on 2024-07-28 22:48:41
0001 #ifndef L1Trigger_TrackFindingTMTT_Settings_h
0002 #define L1Trigger_TrackFindingTMTT_Settings_h
0003
0004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0005 #include "FWCore/Utilities/interface/InputTag.h"
0006 #include "FWCore/Utilities/interface/ESInputTag.h"
0007 #include "FWCore/Utilities/interface/Exception.h"
0008 #include "CLHEP/Units/PhysicalConstants.h"
0009 #include <vector>
0010 #include <iostream>
0011 #include <atomic>
0012
0013
0014
0015 namespace tmtt {
0016
0017 class Settings {
0018 public:
0019
0020 Settings();
0021
0022
0023 Settings(const edm::ParameterSet& iConfig);
0024
0025
0026 edm::ESInputTag magneticFieldInputTag() const { return magneticFieldInputTag_; }
0027 edm::ESInputTag trackerGeometryInputTag() const { return trackerGeometryInputTag_; }
0028 edm::ESInputTag trackerTopologyInputTag() const { return trackerTopologyInputTag_; }
0029 edm::ESInputTag ttStubAlgoInputTag() const { return ttStubAlgoInputTag_; }
0030
0031 edm::InputTag stubInputTag() const { return stubInputTag_; }
0032 edm::InputTag tpInputTag() const { return tpInputTag_; }
0033 edm::InputTag stubTruthInputTag() const { return stubTruthInputTag_; }
0034 edm::InputTag clusterTruthInputTag() const { return clusterTruthInputTag_; }
0035 edm::InputTag genJetInputTag() const { return genJetInputTag_; }
0036
0037
0038
0039
0040 bool enableMCtruth() const { return enableMCtruth_; }
0041
0042 bool enableHistos() const { return enableHistos_; }
0043
0044 bool enableOutputIntermediateTTTracks() const { return enableOutputIntermediateTTTracks_; }
0045
0046
0047
0048 double genMinPt() const { return genMinPt_; }
0049 double genMaxAbsEta() const { return genMaxAbsEta_; }
0050 double genMaxVertR() const { return genMaxVertR_; }
0051 double genMaxVertZ() const { return genMaxVertZ_; }
0052 double genMaxD0() const { return genMaxD0_; }
0053 double genMaxZ0() const { return genMaxZ0_; }
0054 const std::vector<int>& genPdgIds() const { return genPdgIds_; }
0055
0056 unsigned int genMinStubLayers() const { return genMinStubLayers_; }
0057
0058
0059
0060
0061
0062 unsigned int degradeBendRes() const { return degradeBendRes_; }
0063
0064 double maxStubEta() const { return maxStubEta_; }
0065
0066 bool killLowPtStubs() const { return killLowPtStubs_; }
0067
0068 bool printStubWindows() const { return printStubWindows_; }
0069
0070 double bendCut() const { return bendCut_; }
0071
0072
0073
0074 double bendCutExtra() const { return bendCutExtra_; }
0075
0076 bool orderStubsByBend() const { return orderStubsByBend_; }
0077
0078
0079
0080 bool enableDigitize() const { return enableDigitize_; }
0081
0082 unsigned int phiSectorBits() const { return phiSectorBits_; }
0083 unsigned int phiSBits() const { return phiSBits_; }
0084 double phiSRange() const { return phiSRange_; }
0085 unsigned int rtBits() const { return rtBits_; }
0086 double rtRange() const { return rtRange_; }
0087 unsigned int zBits() const { return zBits_; }
0088 double zRange() const { return zRange_; }
0089
0090 unsigned int phiNBits() const { return phiNBits_; }
0091 double phiNRange() const { return phiNRange_; }
0092 unsigned int bendBits() const { return bendBits_; }
0093
0094
0095 const std::vector<double>& pitchVsType() const { return pitchVsType_; }
0096 const std::vector<double>& spaceVsType() const { return spaceVsType_; }
0097 const std::vector<bool>& barrelVsType() const { return barrelVsType_; }
0098 const std::vector<bool>& psVsType() const { return psVsType_; }
0099 const std::vector<bool>& tiltedVsType() const { return tiltedVsType_; }
0100
0101
0102
0103 bool useApproxB() const { return useApproxB_; }
0104 double bApprox_gradient() const { return bApprox_gradient_; }
0105 double bApprox_intercept() const { return bApprox_intercept_; }
0106
0107
0108
0109 unsigned int numPhiNonants() const { return numPhiNonants_; }
0110 unsigned int numPhiSectors() const { return numPhiSectors_; }
0111
0112 double chosenRofPhi() const { return chosenRofPhi_; }
0113
0114 bool useStubPhi() const { return useStubPhi_; }
0115
0116 bool useStubPhiTrk() const { return useStubPhiTrk_; }
0117
0118 double assumedPhiTrkRes() const { return assumedPhiTrkRes_; }
0119
0120 bool calcPhiTrkRes() const { return calcPhiTrkRes_; }
0121
0122
0123
0124 const std::vector<double>& etaRegions() const { return etaRegions_; }
0125 unsigned int numEtaRegions() const { return (etaRegions_.size() - 1); }
0126
0127 double chosenRofZ() const { return chosenRofZ_; }
0128
0129 double beamWindowZ() const { return beamWindowZ_; }
0130
0131 bool allowOver2EtaSecs() const { return allowOver2EtaSecs_; }
0132
0133
0134
0135 double houghMinPt() const { return houghMinPt_; }
0136
0137 unsigned int houghNbinsPt() const { return houghNbinsPt_; }
0138
0139 unsigned int houghNbinsPhi() const { return houghNbinsPhi_; }
0140
0141 bool enableMerge2x2() const { return enableMerge2x2_; }
0142
0143 double maxPtToMerge2x2() const { return maxPtToMerge2x2_; }
0144
0145 unsigned int numSubSecsEta() const { return numSubSecsEta_; }
0146
0147 unsigned int shape() const { return shape_; }
0148
0149 bool miniHTstage() const { return miniHTstage_; }
0150
0151 unsigned int miniHoughNbinsPt() const { return miniHoughNbinsPt_; }
0152 unsigned int miniHoughNbinsPhi() const { return miniHoughNbinsPhi_; }
0153
0154 float miniHoughMinPt() const { return miniHoughMinPt_; }
0155
0156 bool miniHoughDontKill() const { return miniHoughDontKill_; }
0157
0158 float miniHoughDontKillMinPt() const { return miniHoughDontKillMinPt_; }
0159
0160 unsigned int miniHoughLoadBalance() const { return miniHoughLoadBalance_; }
0161
0162
0163
0164
0165
0166 unsigned int killSomeHTCellsRphi() const { return killSomeHTCellsRphi_; }
0167
0168 bool useBendFilter() const { return useBendFilter_; }
0169
0170 unsigned int maxStubsInCell() const { return maxStubsInCell_; }
0171
0172 unsigned int maxStubsInCellMiniHough() const { return maxStubsInCellMiniHough_; }
0173
0174
0175 bool busySectorKill() const { return busySectorKill_; }
0176 unsigned int busySectorNumStubs() const { return busySectorNumStubs_; }
0177
0178 const std::vector<unsigned int>& busySectorMbinRanges() const { return busySectorMbinRanges_; }
0179
0180
0181 const std::vector<unsigned int>& busySectorMbinOrder() const { return busySectorMbinOrder_; }
0182
0183
0184 bool busyInputSectorKill() const { return busyInputSectorKill_; }
0185 unsigned int busyInputSectorNumStubs() const { return busyInputSectorNumStubs_; }
0186
0187
0188
0189 unsigned int muxOutputsHT() const { return muxOutputsHT_; }
0190
0191 bool isHTRPhiEtaRegWhitelisted(unsigned const iEtaReg) const;
0192
0193
0194
0195
0196 const std::string& rzFilterName() const { return rzFilterName_; }
0197
0198
0199 double seedResCut() const { return seedResCut_; }
0200
0201 bool keepAllSeed() const { return keepAllSeed_; }
0202
0203 unsigned int maxSeedCombinations() const { return maxSeedCombinations_; }
0204
0205 unsigned int maxGoodSeedCombinations() const { return maxGoodSeedCombinations_; }
0206
0207 unsigned int maxSeedsPerStub() const { return maxSeedsPerStub_; }
0208
0209 bool zTrkSectorCheck() const { return zTrkSectorCheck_; }
0210
0211 unsigned int minFilterLayers() const { return minFilterLayers_; }
0212
0213
0214
0215
0216 unsigned int minStubLayers() const { return minStubLayers_; }
0217
0218
0219 double minPtToReduceLayers() const { return minPtToReduceLayers_; }
0220
0221 const std::vector<unsigned int>& etaSecsReduceLayers() const { return etaSecsReduceLayers_; }
0222
0223 bool reduceLayerID() const { return reduceLayerID_; }
0224
0225
0226
0227
0228 unsigned int dupTrkAlgFit() const { return dupTrkAlgFit_; }
0229
0230
0231
0232
0233
0234 double minFracMatchStubsOnReco() const { return minFracMatchStubsOnReco_; }
0235
0236 double minFracMatchStubsOnTP() const { return minFracMatchStubsOnTP_; }
0237
0238 unsigned int minNumMatchLayers() const { return minNumMatchLayers_; }
0239 unsigned int minNumMatchPSLayers() const { return minNumMatchPSLayers_; }
0240
0241 bool stubMatchStrict() const { return stubMatchStrict_; }
0242
0243
0244
0245
0246
0247
0248 const std::vector<std::string>& trackFitters() const { return trackFitters_; }
0249
0250
0251 const std::vector<std::string>& useRZfilter() const { return useRZfilter_; }
0252
0253 bool detailedFitOutput() const { return detailedFitOutput_; }
0254
0255 bool trackFitCheat() const { return trackFitCheat_; }
0256
0257
0258
0259
0260 unsigned int numTrackFitIterations() const { return numTrackFitIterations_; }
0261
0262 bool killTrackFitWorstHit() const { return killTrackFitWorstHit_; }
0263
0264
0265
0266 double generalResidualCut() const { return generalResidualCut_; }
0267 double killingResidualCut() const { return killingResidualCut_; }
0268
0269
0270
0271
0272 bool digitizeSLR() const { return digitizeSLR_; }
0273
0274 unsigned int dividerBitsHelix() const { return dividerBitsHelix_; }
0275 unsigned int dividerBitsHelixZ() const { return dividerBitsHelixZ_; }
0276
0277 unsigned int ShiftingBitsDenRPhi() const { return ShiftingBitsDenRPhi_; }
0278
0279
0280 unsigned int ShiftingBitsDenRZ() const { return ShiftingBitsDenRZ_; }
0281
0282 unsigned int ShiftingBitsPt() const { return ShiftingBitsPt_; }
0283
0284 unsigned int ShiftingBitsPhi() const { return ShiftingBitsPhi_; }
0285
0286 unsigned int ShiftingBitsLambda() const { return ShiftingBitsLambda_; }
0287
0288 unsigned int ShiftingBitsZ0() const { return ShiftingBitsZ0_; }
0289
0290 double slr_chi2cut() const { return slr_chi2cut_; }
0291
0292 double ResidualCut() const { return residualCut_; }
0293
0294
0295
0296
0297 unsigned kalmanDebugLevel() const { return kalmanDebugLevel_; }
0298
0299 unsigned int kalmanMinNumStubs() const { return kalmanMinNumStubs_; }
0300
0301 unsigned int kalmanMaxNumStubs() const { return kalmanMaxNumStubs_; }
0302
0303 bool kalmanAddBeamConstr() const { return kalmanAddBeamConstr_; }
0304
0305 bool kalmanRemove2PScut() const { return kalmanRemove2PScut_; }
0306
0307 unsigned int kalmanMaxSkipLayersHard() const { return kalmanMaxSkipLayersHard_; }
0308 unsigned int kalmanMaxSkipLayersEasy() const { return kalmanMaxSkipLayersEasy_; }
0309
0310 unsigned int kalmanMaxStubsEasy() const { return kalmanMaxStubsEasy_; }
0311
0312 bool kfUseMaybeLayers() const { return kfUseMaybeLayers_; }
0313
0314
0315 const std::vector<double>& kfLayerVsPtToler() const { return kfLayerVsPtToler_; }
0316 const std::vector<double>& kfLayerVsD0Cut5() const { return kfLayerVsD0Cut5_; }
0317 const std::vector<double>& kfLayerVsZ0Cut5() const { return kfLayerVsZ0Cut5_; }
0318 const std::vector<double>& kfLayerVsZ0Cut4() const { return kfLayerVsZ0Cut4_; }
0319 const std::vector<double>& kfLayerVsChiSq5() const { return kfLayerVsChiSq5_; }
0320 const std::vector<double>& kfLayerVsChiSq4() const { return kfLayerVsChiSq4_; }
0321
0322 unsigned int kalmanMaxStubsPerLayer() const { return kalmanMaxStubsPerLayer_; }
0323
0324 double kalmanMultiScattTerm() const { return kalmanMultiScattTerm_; }
0325
0326 unsigned int kalmanChi2RphiScale() const { return kalmanChi2RphiScale_; }
0327
0328
0329 bool kalmanHOtilted() const { return kalmanHOtilted_; }
0330
0331 bool kalmanHOhelixExp() const { return kalmanHOhelixExp_; }
0332
0333 unsigned int kalmanHOalpha() const { return kalmanHOalpha_; }
0334
0335 unsigned int kalmanHOprojZcorr() const { return kalmanHOprojZcorr_; }
0336
0337 bool kalmanHOfw() const { return kalmanHOfw_; }
0338
0339
0340
0341
0342
0343 unsigned int killScenario() const { return killScenario_; }
0344
0345 bool killRecover() const { return killRecover_; }
0346
0347
0348
0349
0350 bool slr_skipTrackDigi() const { return slr_skipTrackDigi_; }
0351 unsigned int slr_oneOver2rBits() const { return slr_oneOver2rBits_; }
0352 double slr_oneOver2rRange() const { return slr_oneOver2rRange_; }
0353 unsigned int slr_d0Bits() const { return slr_d0Bits_; }
0354 double slr_d0Range() const { return slr_d0Range_; }
0355 unsigned int slr_phi0Bits() const { return slr_phi0Bits_; }
0356 double slr_phi0Range() const { return slr_phi0Range_; }
0357 unsigned int slr_z0Bits() const { return slr_z0Bits_; }
0358 double slr_z0Range() const { return slr_z0Range_; }
0359 unsigned int slr_tanlambdaBits() const { return slr_tanlambdaBits_; }
0360 double slr_tanlambdaRange() const { return slr_tanlambdaRange_; }
0361 unsigned int slr_chisquaredBits() const { return slr_chisquaredBits_; }
0362 double slr_chisquaredRange() const { return slr_chisquaredRange_; }
0363
0364 bool kf_skipTrackDigi() const { return kf_skipTrackDigi_; }
0365 unsigned int kf_oneOver2rBits() const { return kf_oneOver2rBits_; }
0366 double kf_oneOver2rRange() const { return kf_oneOver2rRange_; }
0367 unsigned int kf_d0Bits() const { return kf_d0Bits_; }
0368 double kf_d0Range() const { return kf_d0Range_; }
0369 unsigned int kf_phi0Bits() const { return kf_phi0Bits_; }
0370 double kf_phi0Range() const { return kf_phi0Range_; }
0371 unsigned int kf_z0Bits() const { return kf_z0Bits_; }
0372 double kf_z0Range() const { return kf_z0Range_; }
0373 unsigned int kf_tanlambdaBits() const { return kf_tanlambdaBits_; }
0374 double kf_tanlambdaRange() const { return kf_tanlambdaRange_; }
0375 unsigned int kf_chisquaredBits() const { return kf_chisquaredBits_; }
0376 double kf_chisquaredRange() const { return kf_chisquaredRange_; }
0377 const std::vector<double>& kf_chisquaredBinEdges() const { return kf_chisquaredBinEdges_; }
0378
0379 bool other_skipTrackDigi() const { return other_skipTrackDigi_; }
0380
0381
0382
0383
0384
0385 bool resPlotOpt() const { return resPlotOpt_; }
0386
0387
0388
0389 bool writeOutEdmFile() const { return writeOutEdmFile_; }
0390
0391
0392
0393 double cSpeed() const { return 1.0e8 * CLHEP::c_light; }
0394
0395 double invPtToInvR() const { return (this->magneticField()) * (this->cSpeed()) / 1.0E13; }
0396
0397 double invPtToDphi() const { return (this->magneticField()) * (this->cSpeed()) / 2.0E13; }
0398
0399
0400 void setMagneticField(float magneticField) const { magneticField_ = magneticField; }
0401 float magneticField() const {
0402 if (magneticField_ == 0.)
0403 throw cms::Exception("LogicError") << "Settings: You attempted to access the B field before it was initialized";
0404 return magneticField_;
0405 }
0406
0407
0408
0409 bool hybrid() const { return hybrid_; }
0410
0411 private:
0412
0413 const edm::ESInputTag magneticFieldInputTag_;
0414 const edm::ESInputTag trackerGeometryInputTag_;
0415 const edm::ESInputTag trackerTopologyInputTag_;
0416 const edm::ESInputTag ttStubAlgoInputTag_;
0417
0418 const edm::InputTag stubInputTag_;
0419 const edm::InputTag tpInputTag_;
0420 const edm::InputTag stubTruthInputTag_;
0421 const edm::InputTag clusterTruthInputTag_;
0422 const edm::InputTag genJetInputTag_;
0423
0424
0425 edm::ParameterSet genCuts_;
0426 edm::ParameterSet stubCuts_;
0427 edm::ParameterSet stubDigitize_;
0428 edm::ParameterSet trackerModuleType_;
0429 edm::ParameterSet geometricProc_;
0430 edm::ParameterSet phiSectors_;
0431 edm::ParameterSet etaSectors_;
0432 edm::ParameterSet htArraySpecRphi_;
0433 edm::ParameterSet htFillingRphi_;
0434 edm::ParameterSet rzFilterOpts_;
0435 edm::ParameterSet l1TrackDef_;
0436 edm::ParameterSet dupTrkRemoval_;
0437 edm::ParameterSet trackMatchDef_;
0438 edm::ParameterSet trackFitSettings_;
0439 edm::ParameterSet deadModuleOpts_;
0440 edm::ParameterSet trackDigi_;
0441
0442
0443 bool enableMCtruth_ = false;
0444 bool enableHistos_ = false;
0445 bool enableOutputIntermediateTTTracks_ = false;
0446
0447
0448 double genMinPt_ = 0.;
0449 double genMaxAbsEta_ = 0.;
0450 double genMaxVertR_ = 0.;
0451 double genMaxVertZ_ = 0.;
0452 double genMaxD0_ = 0.;
0453 double genMaxZ0_ = 0.;
0454 std::vector<int> genPdgIds_;
0455 unsigned int genMinStubLayers_ = 0;
0456
0457
0458 unsigned int degradeBendRes_ = 0;
0459 double maxStubEta_ = 0.;
0460 bool killLowPtStubs_ = false;
0461 bool printStubWindows_ = false;
0462 double bendCut_ = 0.;
0463 double bendCutExtra_ = 0.;
0464 bool orderStubsByBend_ = false;
0465
0466
0467 bool enableDigitize_ = false;
0468 unsigned int phiSectorBits_ = 0;
0469 unsigned int phiSBits_ = 0;
0470 double phiSRange_ = false;
0471 unsigned int rtBits_ = 0;
0472 double rtRange_ = 0.;
0473 unsigned int zBits_ = 0;
0474 double zRange_ = 0.;
0475 unsigned int phiNBits_ = 0;
0476 double phiNRange_ = 0.;
0477 unsigned int bendBits_ = 0;
0478
0479
0480 std::vector<double> pitchVsType_;
0481 std::vector<double> spaceVsType_;
0482 std::vector<bool> barrelVsType_;
0483 std::vector<bool> psVsType_;
0484 std::vector<bool> tiltedVsType_;
0485 std::vector<unsigned int> barrelVsTypeTmp_;
0486 std::vector<unsigned int> psVsTypeTmp_;
0487 std::vector<unsigned int> tiltedVsTypeTmp_;
0488
0489
0490 bool useApproxB_ = false;
0491 double bApprox_gradient_ = 0.;
0492 double bApprox_intercept_ = 0.;
0493
0494
0495 unsigned int numPhiNonants_ = 0;
0496 unsigned int numPhiSectors_ = 0;
0497 double chosenRofPhi_ = 0.;
0498 bool useStubPhi_ = false;
0499 bool useStubPhiTrk_ = false;
0500 double assumedPhiTrkRes_ = 0.;
0501 bool calcPhiTrkRes_ = false;
0502
0503
0504 std::vector<double> etaRegions_;
0505 double chosenRofZ_ = 0.;
0506 double beamWindowZ_ = 0.;
0507 bool allowOver2EtaSecs_ = false;
0508
0509
0510 double houghMinPt_ = 0.;
0511 unsigned int houghNbinsPt_ = 0;
0512 unsigned int houghNbinsPhi_ = 0;
0513 bool enableMerge2x2_ = false;
0514 double maxPtToMerge2x2_ = 0.;
0515 unsigned int numSubSecsEta_ = 0;
0516 unsigned int shape_ = 0;
0517 bool miniHTstage_ = false;
0518 unsigned int miniHoughNbinsPt_ = 0;
0519 unsigned int miniHoughNbinsPhi_ = 0;
0520 double miniHoughMinPt_ = 0.;
0521 bool miniHoughDontKill_ = false;
0522 double miniHoughDontKillMinPt_ = 0.;
0523 unsigned int miniHoughLoadBalance_ = 0;
0524
0525
0526 unsigned int killSomeHTCellsRphi_ = 0;
0527 bool useBendFilter_ = false;
0528 unsigned int maxStubsInCell_ = 0;
0529 unsigned int maxStubsInCellMiniHough_ = 0;
0530 bool busySectorKill_ = false;
0531 unsigned int busySectorNumStubs_ = 0;
0532 std::vector<unsigned int> busySectorMbinRanges_;
0533 std::vector<unsigned int> busySectorMbinOrder_;
0534 bool busyInputSectorKill_ = false;
0535 unsigned int busyInputSectorNumStubs_ = 0;
0536 unsigned int muxOutputsHT_ = 0;
0537 std::vector<unsigned int> etaRegWhitelist_;
0538
0539
0540 std::string rzFilterName_;
0541 double seedResCut_ = 0.;
0542 bool keepAllSeed_ = false;
0543 unsigned int maxSeedCombinations_ = 0;
0544 unsigned int maxGoodSeedCombinations_ = 0;
0545 unsigned int maxSeedsPerStub_ = 0;
0546 bool zTrkSectorCheck_ = false;
0547 unsigned int minFilterLayers_ = 0;
0548
0549
0550 unsigned int minStubLayers_ = 0;
0551 double minPtToReduceLayers_ = 0.;
0552 std::vector<unsigned int> etaSecsReduceLayers_;
0553 bool reduceLayerID_ = false;
0554
0555
0556 unsigned int dupTrkAlgFit_ = 0;
0557
0558
0559 double minFracMatchStubsOnReco_ = 0.;
0560 double minFracMatchStubsOnTP_ = 0.;
0561 unsigned int minNumMatchLayers_ = 0;
0562 unsigned int minNumMatchPSLayers_ = 0;
0563 bool stubMatchStrict_ = false;
0564
0565
0566 std::vector<std::string> trackFitters_;
0567 std::vector<std::string> useRZfilter_;
0568 double chi2OverNdfCut_ = 0.;
0569 bool detailedFitOutput_ = false;
0570 bool trackFitCheat_ = false;
0571
0572 unsigned int numTrackFitIterations_ = 0;
0573 bool killTrackFitWorstHit_ = false;
0574 double generalResidualCut_ = 0.;
0575 double killingResidualCut_ = 0.;
0576
0577 bool digitizeSLR_ = false;
0578 unsigned int dividerBitsHelix_ = 0;
0579 unsigned int dividerBitsHelixZ_ = 0;
0580 unsigned int ShiftingBitsDenRPhi_ = 0;
0581 unsigned int ShiftingBitsDenRZ_ = 0;
0582 unsigned int ShiftingBitsPt_ = 0;
0583 unsigned int ShiftingBitsPhi_ = 0;
0584
0585 unsigned int ShiftingBitsLambda_ = 0;
0586 unsigned int ShiftingBitsZ0_ = 0;
0587 double slr_chi2cut_ = 0.;
0588 double residualCut_ = 0.;
0589
0590 unsigned kalmanDebugLevel_ = 0;
0591 unsigned int kalmanMinNumStubs_ = 0;
0592 unsigned int kalmanMaxNumStubs_ = 0;
0593 bool kalmanAddBeamConstr_ = false;
0594 bool kalmanRemove2PScut_ = false;
0595 unsigned int kalmanMaxSkipLayersHard_ = 0;
0596 unsigned int kalmanMaxSkipLayersEasy_ = 0;
0597 unsigned int kalmanMaxStubsEasy_ = 0;
0598 bool kfUseMaybeLayers_ = false;
0599
0600 std::vector<double> kfLayerVsPtToler_;
0601 std::vector<double> kfLayerVsD0Cut5_;
0602 std::vector<double> kfLayerVsZ0Cut5_;
0603 std::vector<double> kfLayerVsZ0Cut4_;
0604 std::vector<double> kfLayerVsChiSq5_;
0605 std::vector<double> kfLayerVsChiSq4_;
0606
0607 unsigned int kalmanMaxStubsPerLayer_ = 0;
0608 double kalmanMultiScattTerm_ = 0.;
0609 unsigned int kalmanChi2RphiScale_ = 0;
0610 bool kalmanHOtilted_ = false;
0611 bool kalmanHOhelixExp_ = false;
0612 unsigned int kalmanHOalpha_ = 0;
0613 unsigned int kalmanHOprojZcorr_ = 0;
0614 bool kalmanHOfw_ = false;
0615
0616
0617 unsigned int killScenario_ = 0;
0618 bool killRecover_ = false;
0619
0620
0621 bool slr_skipTrackDigi_ = false;
0622 unsigned int slr_oneOver2rBits_ = 0;
0623 double slr_oneOver2rRange_ = 0.;
0624 double slr_oneOver2rMult_ = 0.;
0625 unsigned int slr_d0Bits_ = 0;
0626 double slr_d0Range_ = 0.;
0627 unsigned int slr_phi0Bits_ = 0;
0628 double slr_phi0Range_ = 0.;
0629 unsigned int slr_z0Bits_ = 0;
0630 double slr_z0Range_ = 0.;
0631 unsigned int slr_tanlambdaBits_ = 0;
0632 double slr_tanlambdaRange_ = 0.;
0633 unsigned int slr_chisquaredBits_ = 0;
0634 double slr_chisquaredRange_ = 0.;
0635
0636 bool kf_skipTrackDigi_ = false;
0637 unsigned int kf_oneOver2rBits_ = 0;
0638 double kf_oneOver2rRange_ = 0.;
0639 double kf_oneOver2rMult_ = 0.;
0640 unsigned int kf_d0Bits_ = 0;
0641 double kf_d0Range_ = 0.;
0642 unsigned int kf_phi0Bits_ = 0;
0643 double kf_phi0Range_ = 0.;
0644 unsigned int kf_z0Bits_ = 0;
0645 double kf_z0Range_ = 0.;
0646 unsigned int kf_tanlambdaBits_ = 0;
0647 double kf_tanlambdaRange_ = 0.;
0648 unsigned int kf_chisquaredBits_ = 0;
0649 double kf_chisquaredRange_ = 0.;
0650 std::vector<double> kf_chisquaredBinEdges_;
0651
0652 bool other_skipTrackDigi_ = false;
0653
0654
0655 bool resPlotOpt_ = false;
0656
0657
0658 bool writeOutEdmFile_ = false;
0659
0660
0661 mutable std::atomic<float> magneticField_;
0662
0663
0664 bool hybrid_ = false;
0665 };
0666
0667 }
0668
0669 #endif