File indexing completed on 2024-08-09 23:47:31
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 "SimDataFormats/Associations/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 TTStubRef ttStubRef() const { return ttStubRef_; }
0024
0025 bool valid() const { return valid_; }
0026
0027 int bend() const { return bend_; }
0028
0029 tt::Frame frame(int region) const;
0030
0031 bool inRegion(int region) const;
0032
0033 private:
0034
0035 double digi(double value, double precision) const;
0036
0037 tt::Frame formatHybrid(int region) const;
0038
0039 tt::Frame formatTMTT(int region) const;
0040
0041 const tt::Setup* setup_;
0042
0043 const LayerEncoding* layerEncoding_;
0044
0045 tt::SensorModule* sm_;
0046
0047 TTStubRef ttStubRef_;
0048
0049 bool hybrid_;
0050
0051 bool valid_;
0052
0053 int col_;
0054
0055 int row_;
0056
0057 int bend_;
0058
0059 int rowLUT_;
0060
0061 int rowSub_;
0062
0063 double r_;
0064
0065 double phi_;
0066
0067 double z_;
0068
0069 double m_;
0070
0071 double c_;
0072
0073 double d_;
0074
0075 std::pair<double, double> inv2R_;
0076
0077 std::pair<double, double> cot_;
0078
0079 std::pair<double, double> phiT_;
0080
0081 std::vector<int> regions_;
0082 };
0083
0084 }
0085
0086 #endif