00001 //------------------------------------------------- 00002 // 00003 // \class: DTSC.h 00012 // 00013 //-------------------------------------------------- 00014 #ifndef DT_SC_H 00015 #define DT_SC_H 00016 00017 //------------------------------------ 00018 // Collaborating Class Declarations -- 00019 //------------------------------------ 00020 class DTTracoTrigData; 00021 class DTTSCand; 00022 class DTConfigSectColl; 00023 // added DBSM 00024 class DTTrigGeom; 00025 00026 //---------------------- 00027 // Base Class Headers -- 00028 //---------------------- 00029 // added DBSM 00030 #include "L1Trigger/DTUtilities/interface/DTGeomSupplier.h" 00031 00032 //--------------- 00033 // C++ Headers -- 00034 //--------------- 00035 #include <vector> 00036 00037 // --------------------- 00038 // -- Class Interface -- 00039 // --------------------- 00040 00041 00042 class DTSC{ 00043 00044 public: 00045 00047 DTSC(DTConfigSectColl*); 00048 00050 ~DTSC(); 00051 00052 // non-const methods 00053 00055 void addCand(DTTSCand* cand); 00056 00058 void ignoreSecondTrack() { _ignoreSecondTrack=1; } 00059 00061 void run(); 00062 00064 DTTSCand* DTSectCollsort1(); 00065 00067 DTTSCand* DTSectCollsort2(); 00068 00070 void clear(); 00071 00072 // const methods 00073 00075 inline DTConfigSectColl* config() const { return _config; } 00076 00078 unsigned nCand(int ifs) const; 00079 00081 inline int nFirstT() const { return _incand[0].size(); } 00082 00084 inline int nSecondT() const { return _incand[1].size(); } 00085 00087 DTTSCand* getDTTSCand(int ifs, unsigned n) const; 00088 00090 const DTTracoTrigData* getTracoT(int ifs, unsigned n) const; 00091 00093 inline int nTracks() const { return _outcand.size(); } 00094 00096 DTTSCand* getTrack(int n) const ; 00097 00098 00099 private: 00100 00101 // Configuration 00102 DTConfigSectColl* _config; 00103 00104 // input data 00105 std::vector<DTTSCand*> _incand[2]; 00106 00107 // output data 00108 std::vector<DTTSCand*> _outcand; 00109 00110 // internal use variables 00111 int _ignoreSecondTrack; 00112 00113 00114 }; 00115 #endif 00116 00117 00118 00119 00120 00121 00122 00123 00124