Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:19:43

0001 //-------------------------------------------------
0002 //
0003 /**  \class DTTracoLUTs
0004  *
0005  *   Look-up tables for traco angle and position
0006  *
0007  *
0008  *
0009  *   \author S. Vanini - INFN Padova
0010  */
0011 //
0012 //--------------------------------------------------
0013 #ifndef DT_TRACO_LUTS_H
0014 #define DT_TRACO_LUTS_H
0015 
0016 //---------------
0017 // C++ Headers --
0018 //---------------
0019 
0020 #include <string>
0021 #include <vector>
0022 
0023 //------------------------------------
0024 // Collaborating Class Declarations --
0025 //------------------------------------
0026 
0027 //              ---------------------
0028 //              -- Class Interface --
0029 //              ---------------------
0030 
0031 typedef std::vector<unsigned short int> LUT;
0032 
0033 class DTTracoLUTs {
0034 public:
0035   //    typedef static std::vector<unsigned short int> LUT;
0036 
0037   /// constructor
0038   DTTracoLUTs(std::string filename);
0039 
0040   /// destructor
0041   virtual ~DTTracoLUTs();
0042 
0043   /// reset look-up tables
0044   void reset();
0045 
0046   /// load look-up tables
0047   int load();
0048 
0049   /// print look-up tables
0050   void print() const;
0051 
0052   /// get radial angle from traco position and flag: 0=outer, 1=inner, 2=correl.
0053   unsigned short int getPhiRad(int pos, int qualflag) const;
0054 
0055   /// get psi angle from traco k parameter
0056   unsigned short int getPsi(int ang) const;
0057 
0058   /// return bending angle from pos and ang
0059   unsigned short int getBendAng(int pos, int ang, int qualflag) const;
0060 
0061   /// return number of entries in the LUT
0062   inline int size_psiLUT() const { return psi_lut.size(); }
0063   inline int size_phiLUT(int i) const { return phi_lut[i].size(); }
0064 
0065 private:
0066   LUT phi_lut[3];  // phi rad: elem.0: inner; elem.1: outer; elem.2: corr.
0067   LUT psi_lut;     // psi
0068   std::string _testfile;
0069 };
0070 
0071 #endif