File indexing completed on 2025-12-16 09:21:09
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048 #ifndef USPIN_SPINDBCONTENT_H
0049 #define USPIN_SPINDBCONTENT_H
0050
0051 #include <phool/PHObject.h>
0052
0053 #include <limits>
0054
0055 class SpinDBContent : public PHObject
0056 {
0057 public:
0058 SpinDBContent() = default;
0059 virtual ~SpinDBContent() override = default;
0060
0061 void identify(std::ostream& os = std::cout) const override;
0062
0063 static constexpr int GetNCrossing() { return 120; }
0064 static constexpr int GetErrorValue() { return -999; }
0065
0066 virtual int CheckBunchNumber(int) const { return 0; }
0067
0068 virtual int GetRunNumber() const = 0;
0069 virtual int GetQALevel() const = 0;
0070 virtual int GetFillNumber() const = 0;
0071 virtual int GetBadRunFlag() const = 0;
0072 virtual int GetCrossingShift() const = 0;
0073
0074 virtual int GetPolarizationBlue(int, float&, float&) const { return -1; }
0075 virtual int GetPolarizationBlue(int, float&, float&, float&) const { return -1; }
0076 virtual int GetPolarizationBlue(int, double&, double&) const { return -1; }
0077 virtual int GetPolarizationBlue(int, double&, double&, double&) const { return -1; }
0078 virtual int GetPolarizationYellow(int, float&, float&) const { return -1; }
0079 virtual int GetPolarizationYellow(int, float&, float&, float&) const { return -1; }
0080 virtual int GetPolarizationYellow(int, double&, double&) const { return -1; }
0081 virtual int GetPolarizationYellow(int, double&, double&, double&) const { return -1; }
0082
0083 virtual int GetSpinPatternBlue(int) const { return -1; }
0084 virtual int GetSpinPatternYellow(int) const { return -1; }
0085 virtual long long GetScalerMbdVertexCut(int) const { return 0; }
0086 virtual long long GetScalerMbdNoCut(int) const { return 0; }
0087 virtual long long GetScalerZdcNoCut(int) const { return 0; }
0088 virtual long long GetScaler(int, int) const { return 0; }
0089 virtual int GetBadBunchFlag(int) const { return 0; }
0090
0091 virtual void GetAsymBlueForward(float& v, float& e) const
0092 {
0093 v = std::numeric_limits<float>::quiet_NaN();
0094 e = std::numeric_limits<float>::quiet_NaN();
0095 }
0096 virtual void GetAsymBlueBackward(float& v, float& e) const
0097 {
0098 v = std::numeric_limits<float>::quiet_NaN();
0099 e = std::numeric_limits<float>::quiet_NaN();
0100 }
0101 virtual void GetAsymYellowForward(float& v, float& e) const
0102 {
0103 v = std::numeric_limits<float>::quiet_NaN();
0104 e = std::numeric_limits<float>::quiet_NaN();
0105 }
0106 virtual void GetAsymYellowBackward(float& v, float& e) const
0107 {
0108 v = std::numeric_limits<float>::quiet_NaN();
0109 e = std::numeric_limits<float>::quiet_NaN();
0110 }
0111 virtual void GetPhaseBlueForward(float& v, float& e) const
0112 {
0113 v = std::numeric_limits<float>::quiet_NaN();
0114 e = std::numeric_limits<float>::quiet_NaN();
0115 }
0116 virtual void GetPhaseBlueBackward(float& v, float& e) const
0117 {
0118 v = std::numeric_limits<float>::quiet_NaN();
0119 e = std::numeric_limits<float>::quiet_NaN();
0120 }
0121 virtual void GetPhaseYellowForward(float& v, float& e) const
0122 {
0123 v = std::numeric_limits<float>::quiet_NaN();
0124 e = std::numeric_limits<float>::quiet_NaN();
0125 }
0126 virtual void GetPhaseYellowBackward(float& v, float& e) const
0127 {
0128 v = std::numeric_limits<float>::quiet_NaN();
0129 e = std::numeric_limits<float>::quiet_NaN();
0130 }
0131
0132 virtual float GetCrossAngle() const { return std::numeric_limits<float>::quiet_NaN(); }
0133 virtual float GetCrossAngleStd() const { return std::numeric_limits<float>::quiet_NaN(); }
0134 virtual float GetCrossAngleMin() const { return std::numeric_limits<float>::quiet_NaN(); }
0135 virtual float GetCrossAngleMax() const { return std::numeric_limits<float>::quiet_NaN(); }
0136
0137 virtual void SetRunNumber(int) {}
0138 virtual void SetQALevel(int) {}
0139 virtual void SetFillNumber(int) {}
0140 virtual void SetBadRunFlag(int) {}
0141 virtual void SetCrossingShift(int) {}
0142
0143 virtual int SetPolarizationBlue(int, float, float) { return -1; }
0144 virtual int SetPolarizationYellow(int, float, float) { return -1; }
0145 virtual int SetPolarizationBlue(int, float, float, float) { return -1; }
0146 virtual int SetPolarizationYellow(int, float, float, float) { return -1; }
0147
0148 virtual int SetSpinPatternBlue(int, int) { return -1; }
0149 virtual int SetSpinPatternYellow(int, int) { return -1; }
0150
0151 virtual int SetScalerMbdVertexCut(int, long long) { return -1; }
0152 virtual int SetScalerMbdNoCut(int, long long) { return -1; }
0153 virtual int SetScalerZdcNoCut(int, long long) { return -1; }
0154 virtual int SetScaler(int, int, long long) { return -1; }
0155 virtual int SetBadBunchFlag(int, int) { return -1; }
0156
0157 virtual void SetAsymBlueForward(float, float) {}
0158 virtual void SetAsymBlueBackward(float, float) {}
0159 virtual void SetAsymYellowForward(float, float) {}
0160 virtual void SetAsymYellowBackward(float, float) {}
0161 virtual void SetPhaseBlueForward(float, float) {}
0162 virtual void SetPhaseBlueBackward(float, float) {}
0163 virtual void SetPhaseYellowForward(float, float) {}
0164 virtual void SetPhaseYellowBackward(float, float) {}
0165
0166 virtual void SetCrossAngle(float) {}
0167 virtual void SetCrossAngleStd(float) {}
0168 virtual void SetCrossAngleMin(float) {}
0169 virtual void SetCrossAngleMax(float) {}
0170
0171 private:
0172 ClassDefOverride(SpinDBContent, 1);
0173 };
0174
0175 #endif