00001 //------------------------------------------------- 00002 // 00012 // 00013 // 00014 //-------------------------------------------------- 00015 #ifndef DT_SC_H 00016 #define DT_SC_H 00017 00018 //------------------------------------ 00019 // Collaborating Class Declarations -- 00020 //------------------------------------ 00021 class DTTracoTrigData; 00022 class DTChambPhSegm; 00023 class DTSectCollPhCand; 00024 class DTSectCollThCand; 00025 class DTConfigSectColl; 00026 class DTTrigGeom; 00027 00028 //---------------------- 00029 // Base Class Headers -- 00030 //---------------------- 00031 #include "L1Trigger/DTUtilities/interface/DTGeomSupplier.h" 00032 00033 //--------------- 00034 // C++ Headers -- 00035 //--------------- 00036 #include <vector> 00037 00038 // --------------------- 00039 // -- Class Interface -- 00040 // --------------------- 00041 00042 00043 class DTSC{ 00044 00045 public: 00046 00048 DTSC(int istat); 00049 00051 ~DTSC(); 00052 00053 // non-const methods 00054 00056 void setConfig(DTConfigSectColl *conf) { _config=conf; }; 00057 00059 void addPhCand(DTSectCollPhCand* cand); 00060 00062 void addThCand(DTSectCollThCand* cand); 00063 00064 // CB CONTROLLA LA DIFFERENZA TRA QUESTO E addPhCand!!!!!!!!!! 00066 void addDTSectCollPhCand(DTSectCollPhCand* cand); 00067 00068 00070 void ignoreSecondTrack() { _ignoreSecondTrack=1; } 00071 00073 void run(); 00074 00076 DTSectCollPhCand* DTSectCollsort1(); 00077 00079 DTSectCollPhCand* DTSectCollsort2(); 00080 00082 void clear(); 00083 00084 // const methods 00085 00087 inline DTConfigSectColl* config() const { return _config; } 00088 00090 unsigned nCandPh (int ifs) const; 00091 00093 unsigned nCandTh () const; 00094 00096 inline int nFirstTPh() const { return _incand_ph[0].size(); } 00097 00099 inline int nSecondTPh() const { return _incand_ph[1].size(); } 00100 00102 DTSectCollPhCand* getDTSectCollPhCand(int ifs, unsigned n) const; 00103 00105 DTSectCollThCand* getDTSectCollThCand(unsigned n) const; 00106 00108 inline int nTracksPh() const { return _outcand_ph.size(); } 00109 00111 inline int nTracksTh() const { return _cand_th.size(); } 00112 00114 DTSectCollPhCand* getTrackPh(int n) const ; 00115 00117 DTSectCollThCand* getTrackTh(int n) const ; 00118 00119 private: 00120 00121 // Configuration 00122 DTConfigSectColl* _config; 00123 00124 // input phi data 00125 std::vector<DTSectCollPhCand*> _incand_ph[2]; 00126 00127 // output phi data 00128 std::vector<DTSectCollPhCand*> _outcand_ph; 00129 00130 // theta data 00131 std::vector<DTSectCollThCand*> _cand_th; 00132 00133 // internal use variables 00134 int _ignoreSecondTrack; 00135 00136 // station number [1-5] 00137 int _stat; 00138 00139 }; 00140 00141 #endif