File indexing completed on 2023-03-17 11:13:30
0001 #ifndef L1Trigger_TrackerDTC_Stub_h
0002 #define L1Trigger_TrackerDTC_Stub_h
0003
0004 #include "L1Trigger/TrackTrigger/interface/Setup.h"
0005 #include "L1Trigger/TrackerDTC/interface/LayerEncoding.h"
0006 #include "SimTracker/TrackTriggerAssociation/interface/TTTypes.h"
0007
0008 #include <utility>
0009 #include <vector>
0010
0011 namespace trackerDTC {
0012
0013
0014
0015
0016
0017
0018 class Stub {
0019 public:
0020 Stub(const edm::ParameterSet&, const tt::Setup*, const LayerEncoding*, tt::SensorModule*, const TTStubRef&);
0021 ~Stub() {}
0022
0023
0024 TTStubRef ttStubRef() const { return ttStubRef_; }
0025
0026 bool valid() const { return valid_; }
0027
0028 int bend() const { return bend_; }
0029
0030 tt::Frame frame(int region) const;
0031
0032 bool inRegion(int region) const;
0033
0034 private:
0035
0036 double digi(double value, double precision) const;
0037
0038 tt::Frame formatHybrid(int region) const;
0039
0040 tt::Frame formatTMTT(int region) const;
0041
0042
0043 const tt::Setup* setup_;
0044
0045 const LayerEncoding* layerEncoding_;
0046
0047 tt::SensorModule* sm_;
0048
0049 TTStubRef ttStubRef_;
0050
0051 bool hybrid_;
0052
0053 bool valid_;
0054
0055 int col_;
0056
0057 int row_;
0058
0059 int bend_;
0060
0061 int rowLUT_;
0062
0063 int rowSub_;
0064
0065 double r_;
0066
0067 double phi_;
0068
0069 double z_;
0070
0071 double m_;
0072
0073 double c_;
0074
0075 double d_;
0076
0077 std::pair<double, double> inv2R_;
0078
0079 std::pair<double, double> cot_;
0080
0081 std::pair<double, double> phiT_;
0082
0083 std::vector<int> regions_;
0084 };
0085
0086 }
0087
0088 #endif