Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:02:28

0001 // Original Author:  Jan Kašpar
0002 
0003 #ifndef CondFormats_PPSObjects_LHCOpticalFunctionsSet_h
0004 #define CondFormats_PPSObjects_LHCOpticalFunctionsSet_h
0005 
0006 #include "CondFormats/Serialization/interface/Serializable.h"
0007 
0008 #include <vector>
0009 #include <string>
0010 #include <memory>
0011 
0012 /// Set of optical functions corresponding to one scoring plane along LHC.
0013 class LHCOpticalFunctionsSet {
0014 public:
0015   /// indices for m_fcn_values and m_splines data members
0016   enum { evx, eLx, e14, exd, evpx, eLpx, e24, expd, e32, evy, eLy, eyd, e42, evpy, eLpy, eypd, nFunctions };
0017 
0018   LHCOpticalFunctionsSet() = default;
0019 
0020   /// fills m_*_values fields from a ROOT file
0021   LHCOpticalFunctionsSet(const std::string& fileName, const std::string& directoryName, double z);
0022 
0023   ~LHCOpticalFunctionsSet() = default;
0024 
0025   /// returns the position of the scoring plane (LHC/TOTEM convention)
0026   double getScoringPlaneZ() const { return m_z; }
0027 
0028   const std::vector<double>& getXiValues() const { return m_xi_values; }
0029   const std::vector<std::vector<double>>& getFcnValues() const { return m_fcn_values; }
0030 
0031 protected:
0032   /// position of the scoring plane, in LHC/TOTEM convention, cm
0033   double m_z;
0034 
0035   std::vector<double> m_xi_values;
0036   std::vector<std::vector<double>> m_fcn_values;  ///< length unit cm
0037 
0038   COND_SERIALIZABLE;
0039 };
0040 
0041 #endif