CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/L1Trigger/DTTriggerServerPhi/interface/DTTSPhi.h

Go to the documentation of this file.
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