CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/L1Trigger/DTTriggerServerTheta/interface/DTTSTheta.h

Go to the documentation of this file.
00001 //-------------------------------------------------
00002 //
00011 //
00012 //--------------------------------------------------
00013 #ifndef DT_TS_THETA_H
00014 #define DT_TS_THETA_H
00015 
00016 //------------------------------------
00017 // Collaborating Class Declarations --
00018 //------------------------------------
00019 class DTBtiCard;
00020 class DTBtiTrigData;
00021 class DTTrigGeom;
00022 
00023 //----------------------
00024 // Base Class Headers --
00025 //----------------------
00026 #include "L1Trigger/DTUtilities/interface/DTGeomSupplier.h"
00027 #include "L1TriggerConfig/DTTPGConfig/interface/BitArray.h"
00028 #include "L1Trigger/DTTriggerServerTheta/interface/DTChambThSegm.h"
00029 #include "L1TriggerConfig/DTTPGConfig/interface/DTConfigTSTheta.h"
00030 #include "L1TriggerConfig/DTTPGConfig/interface/DTConfigManager.h"
00031 #include "L1Trigger/DTUtilities/interface/DTCache.h"
00032 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00033 
00034 //---------------
00035 // C++ Headers --
00036 //---------------
00037 #include <vector>
00038 
00039 //              ---------------------
00040 //              -- Class Interface --
00041 //              ---------------------
00042 
00043 typedef std::vector<DTChambThSegm> DTChambThVector;
00044 typedef DTCache < DTChambThSegm, DTChambThVector > DTTSThetaManager;
00045 
00046 class DTTSTheta : public DTTSThetaManager, public DTGeomSupplier {
00047 
00048   public:
00049 
00051     //DTTSTheta(DTTrigGeom*, DTBtiCard*, edm::ParameterSet&);
00052     DTTSTheta(DTTrigGeom*, DTBtiCard*);
00053 
00055     ~DTTSTheta();
00056 
00058     inline DTConfigTSTheta* config() const { return _config; }
00059 
00061     void setConfig(const DTConfigManager *conf);
00062 
00064     int nSegm(int step);
00065 
00067     const DTChambThSegm* segment(int step, unsigned n);
00068 
00070     int nTrig(int step);
00071 
00073     int nHTrig(int step);
00074 
00076     LocalPoint localPosition(const DTTrigData*) const;
00077 
00079     LocalVector localDirection(const DTTrigData*) const;
00080 
00082     void print(const DTTrigData* trig) const;
00083 
00085     void reconstruct() { loadDTTSTheta(); runDTTSTheta(); }
00086 
00087   private:
00088 
00090     void loadDTTSTheta();
00091 
00093     void runDTTSTheta();
00094 
00096     void add_btiT(int step, const DTBtiTrigData* btitrig);
00097 
00099     void localClear();
00100 
00102     BitArray<DTConfigTSTheta::NCELLTH>* btiMask(int step) const;
00103 
00105     BitArray<DTConfigTSTheta::NCELLTH>* btiQual(int step) const;
00106 
00107   private:
00108 
00109     DTBtiCard* _bticard;
00110 
00111     DTConfigTSTheta* _config;
00112 
00113     // Input data
00114     BitArray<DTConfigTSTheta::NCELLTH> _trig[DTConfigTSTheta::NSTEPL-DTConfigTSTheta::NSTEPF+1];
00115     BitArray<DTConfigTSTheta::NCELLTH> _Htrig[DTConfigTSTheta::NSTEPL-DTConfigTSTheta::NSTEPF+1];
00116     int _ntrig[DTConfigTSTheta::NSTEPL-DTConfigTSTheta::NSTEPF+1];
00117     int _nHtrig[DTConfigTSTheta::NSTEPL-DTConfigTSTheta::NSTEPF+1];
00118 
00119 };
00120 
00121 #endif