File indexing completed on 2024-04-06 12:26:06
0001 #ifndef RecoLocalMuon_DTLinearDriftFromDBAlgo_H
0002 #define RecoLocalMuon_DTLinearDriftFromDBAlgo_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include "RecoLocalMuon/DTRecHit/interface/DTRecHitBaseAlgo.h"
0013 #include "FWCore/Utilities/interface/ESGetToken.h"
0014
0015 class DTMtime;
0016 class DTRecoConditions;
0017 class MagneticField;
0018 class DTMtimeRcd;
0019 class DTRecoConditionsVdriftRcd;
0020 class IdealMagneticFieldRecord;
0021 class DTRecoConditionsUncertRcd;
0022
0023 class DTLinearDriftFromDBAlgo : public DTRecHitBaseAlgo {
0024 public:
0025
0026 DTLinearDriftFromDBAlgo(const edm::ParameterSet& config, edm::ConsumesCollector cc);
0027
0028
0029 ~DTLinearDriftFromDBAlgo() override;
0030
0031
0032
0033
0034 void setES(const edm::EventSetup& setup) override;
0035
0036
0037
0038
0039
0040 bool compute(const DTLayer* layer,
0041 const DTDigi& digi,
0042 LocalPoint& leftPoint,
0043 LocalPoint& rightPoint,
0044 LocalError& error) const override;
0045
0046
0047
0048
0049 bool compute(const DTLayer* layer,
0050 const DTRecHit1D& recHit1D,
0051 const float& angle,
0052 DTRecHit1D& newHit1D) const override;
0053
0054
0055
0056
0057
0058
0059 bool compute(const DTLayer* layer,
0060 const DTRecHit1D& recHit1D,
0061 const float& angle,
0062 const GlobalPoint& globPos,
0063 DTRecHit1D& newHit1D) const override;
0064
0065 private:
0066
0067 virtual bool compute(const DTLayer* layer,
0068 const DTWireId& wireId,
0069 const float digiTime,
0070 const GlobalPoint& globPos,
0071 LocalPoint& leftPoint,
0072 LocalPoint& rightPoint,
0073 LocalError& error,
0074 int step) const;
0075
0076
0077 virtual bool compute(const DTLayer* layer,
0078 const DTWireId& wireId,
0079 const float digiTime,
0080 const GlobalPoint& globPos,
0081 DTRecHit1D& newHit1D,
0082 int step) const;
0083
0084
0085 const DTMtime* mTimeMap;
0086 edm::ESGetToken<DTMtime, DTMtimeRcd> mTimeMapToken_;
0087
0088
0089 const DTRecoConditions* vDriftMap;
0090 edm::ESGetToken<DTRecoConditions, DTRecoConditionsVdriftRcd> vDriftMapToken_;
0091
0092
0093 const MagneticField* field;
0094 edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> fieldToken_;
0095 int nominalB;
0096
0097
0098 const DTRecoConditions* uncertMap;
0099 edm::ESGetToken<DTRecoConditions, DTRecoConditionsUncertRcd> uncertMapToken_;
0100
0101
0102 const float minTime;
0103
0104
0105 const float maxTime;
0106
0107
0108 const bool doVdriftCorr;
0109
0110
0111
0112 const bool stepTwoFromDigi;
0113
0114
0115
0116 bool useUncertDB;
0117
0118
0119 bool readLegacyTTrigDB;
0120 bool readLegacyVDriftDB;
0121
0122
0123 const bool debug;
0124 };
0125 #endif