CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC4_patch1/src/L1Trigger/DTSectorCollector/interface/DTSC.h

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