00001 //------------------------------------------------- 00002 // 00012 // 00013 //-------------------------------------------------- 00014 #ifndef MU_DT_TSM_H 00015 #define MU_DT_TSM_H 00016 00017 //------------------------------------ 00018 // Collaborating Class Declarations -- 00019 //------------------------------------ 00020 class DTTracoTrigData; 00021 class DTTSCand; 00022 class DTConfigTSPhi; 00023 // added DBSM 00024 class DTTrigGeom; 00025 //---------------------- 00026 // Base Class Headers -- 00027 //---------------------- 00028 // added DBSM 00029 #include "L1Trigger/DTUtilities/interface/DTGeomSupplier.h" 00030 00031 //--------------- 00032 // C++ Headers -- 00033 //--------------- 00034 #include <vector> 00035 00036 // --------------------- 00037 // -- Class Interface -- 00038 // --------------------- 00039 00040 class DTTSM { 00041 00042 public: 00043 00045 // SM double TSM 00046 DTTSM(int); 00047 00049 ~DTTSM(); 00050 00052 inline int number() const { return _n; } 00053 00055 void setConfig(DTConfigTSPhi *config) { _config=config; } 00056 00058 void addCand(DTTSCand* cand); 00059 00061 void ignoreSecondTrack() { _ignoreSecondTrack=1; } 00062 00064 void run(int bkmod); 00065 00067 // added DBSM 00068 DTTSCand* sortTSM1(int bkmod); 00069 00071 DTTSCand* sortTSM2(int bkmod); 00072 00074 void clear(); 00075 00077 inline DTConfigTSPhi* config() const { return _config; } 00078 00080 unsigned nCand(int ifs) const; 00081 00083 inline int nFirstT() const { return _incand[0].size(); } 00084 00086 inline int nSecondT() const { return _incand[1].size(); } 00087 00089 DTTSCand* getDTTSCand(int ifs, unsigned n) const; 00090 00092 const DTTracoTrigData* getTracoT(int ifs, unsigned n) const; 00093 00095 inline int nTracks() const { return _outcand.size(); } 00096 00098 DTTSCand* getTrack(int n) const; 00099 00100 private: 00101 00102 DTConfigTSPhi* _config; 00103 00104 00105 // SM double TSM 00106 // identification (as for DTTSS.h) 00107 int _n; 00108 00109 // input data 00110 std::vector<DTTSCand*> _incand[2]; 00111 00112 // output data 00113 std::vector<DTTSCand*> _outcand; 00114 00115 // internal use variables 00116 int _ignoreSecondTrack; 00117 00118 }; 00119 #endif 00120 00121 00122 00123 00124 00125 00126 00127 00128 00129 00130