00001 //------------------------------------------------- 00002 // 00012 // 00013 //-------------------------------------------------- 00014 #ifndef DT_TS_PHI_H 00015 #define DT_TS_PHI_H 00016 00017 //------------------- 00018 // Constants file -- 00019 //------------------- 00020 00021 //------------------------------------ 00022 // Collaborating Class Declarations -- 00023 //------------------------------------ 00024 class DTTracoCard; 00025 class DTTracoTrigData; 00026 class DTTSS; 00027 class DTTSM; 00028 class DTSectColl; 00029 class DTTSCand; 00030 class DTTrigGeom; 00031 00032 //---------------------- 00033 // Base Class Headers -- 00034 //---------------------- 00035 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00036 #include "L1Trigger/DTUtilities/interface/DTCache.h" 00037 #include "L1Trigger/DTUtilities/interface/DTGeomSupplier.h" 00038 #include "L1TriggerConfig/DTTPGConfig/interface/DTConfigTSPhi.h" 00039 #include "L1TriggerConfig/DTTPGConfig/interface/DTConfigManager.h" 00040 00041 #include "L1Trigger/DTTriggerServerPhi/interface/DTChambPhSegm.h" 00042 00043 //--------------- 00044 // C++ Headers -- 00045 //--------------- 00046 #include <vector> 00047 00048 // --------------------- 00049 // -- Class Interface -- 00050 // --------------------- 00051 00052 typedef std::vector<DTChambPhSegm> DTChambPhVector; 00053 typedef DTCache < DTChambPhSegm, DTChambPhVector > DTTSPhiManager; 00054 00055 class DTTSPhi : public DTTSPhiManager, public DTGeomSupplier { 00056 00057 public: 00058 00060 DTTSPhi(DTTrigGeom*, DTTracoCard*); 00061 00063 ~DTTSPhi(); 00064 00066 inline DTConfigTSPhi* config() const {return _config; } 00067 00069 void setConfig(const DTConfigManager *conf); 00070 00072 int nSegm(int step); 00073 00075 const DTChambPhSegm* segment(int step, unsigned n); 00076 00078 LocalPoint localPosition(const DTTrigData*) const; 00079 00081 LocalVector localDirection(const DTTrigData*) const; 00082 00084 virtual void reconstruct() { loadTSPhi(); runTSPhi(); } 00085 00086 private: 00087 00089 void loadTSPhi(); 00090 00092 void runTSPhi(); 00093 00095 void addTracoT(int step, const DTTracoTrigData* tracotrig, int ifs); 00096 00098 void ignoreSecondTrack(int step, int tracon); 00099 00101 void localClear(); 00102 00103 // Return a DTTSS 00104 DTTSS* getDTTSS(int step, unsigned n) const; 00105 00106 // SM double TSM 00107 // Return a DTTSM 00108 DTTSM* getDTTSM(int step, unsigned n) const; 00109 00110 00111 00112 private: 00113 00114 DTTracoCard* _tracocard; 00115 00116 DTConfigTSPhi* _config; 00117 00118 // Components 00119 std::vector<DTTSS*> _tss[DTConfigTSPhi::NSTEPL-DTConfigTSPhi::NSTEPF+1]; 00120 // DBSM-doubleTSM 00121 std::vector<DTTSM*> _tsm[DTConfigTSPhi::NSTEPL-DTConfigTSPhi::NSTEPF+1]; 00122 00123 // Input data 00124 std::vector<DTTSCand*> _tctrig[DTConfigTSPhi::NSTEPL-DTConfigTSPhi::NSTEPF+1]; 00125 00126 }; 00127 00128 #endif