00001 //------------------------------------------------- 00002 // 00012 // 00013 //-------------------------------------------------- 00014 #ifndef DT_TSS_H 00015 #define DT_TSS_H 00016 00017 //------------------------------------ 00018 // Collaborating Class Declarations -- 00019 //------------------------------------ 00020 class DTTracoTrigData; 00021 class DTTSCand; 00022 class DTConfigTSPhi; 00023 00024 //---------------------- 00025 // Base Class Headers -- 00026 //---------------------- 00027 00028 //--------------- 00029 // C++ Headers -- 00030 //--------------- 00031 #include <vector> 00032 #include <string> 00033 00034 // --------------------- 00035 // -- Class Interface -- 00036 // --------------------- 00037 00038 class DTTSS { 00039 00040 public: 00041 00043 DTTSS(int); 00044 00046 ~DTTSS(); 00047 00049 void addDTTSCand(DTTSCand* cand); 00050 00052 void setConfig(DTConfigTSPhi *config) { _config=config; } 00053 00055 void ignoreSecondTrack() { _ignoreSecondTrack=1; } 00056 00058 void run(); 00059 00061 DTTSCand* sortTSS1(); 00062 00064 DTTSCand* sortTSS2(); 00065 00067 void clear(); 00068 00070 inline int number() const { return _n; } 00071 00073 inline DTConfigTSPhi* config() const { return _config; } 00074 00076 unsigned nTracoT(int ifs) const; 00077 00079 inline int nFirstT() const { return _tctrig[0].size(); } 00080 00082 inline int nSecondT() const { return _tctrig[1].size(); } 00083 00085 DTTSCand* getDTTSCand(int ifs, unsigned n) const; 00086 00088 const DTTracoTrigData* getTracoT(int ifs, unsigned n) const; 00089 00091 DTTSCand* getCarry() const; 00092 00094 inline int nTracks() const { return _outcand.size(); } 00095 00097 DTTSCand* getTrack(int n) const; 00098 00100 std::string logWord(int n) const; 00101 00102 private: 00103 00104 DTConfigTSPhi* _config; 00105 00106 // identification 00107 int _n; 00108 00109 // input data 00110 std::vector<DTTSCand*> _tctrig[2]; 00111 00112 // output data 00113 std::vector<DTTSCand*> _outcand; 00114 00115 // internal use variables 00116 int _ignoreSecondTrack; 00117 00118 // log words 00119 std::string _logWord1; 00120 std::string _logWord2; 00121 00122 }; 00123 00124 #endif