Belle II Software  release-08-01-10
ARICHAerogelInfo.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #pragma once
10 
11 #include <TObject.h>
12 #include <string>
13 #include <vector>
14 
15 #include <TClass.h>
16 
17 namespace Belle2 {
27  class ARICHAerogelInfo: public TObject {
28  public:
29 
34  m_lambda(), m_transmittance(), m_comment("") {};
35 
39  ARICHAerogelInfo(float version, const std::string& serial, const std::string& id, float index, float trlen, float thickness,
40  std::vector<int>& lambda, std::vector<float>& transmittance): m_version(version), m_serial(serial), m_id(id),
41  m_refractiveIndex(index), m_transmissionLength(trlen), m_thickness(thickness), m_lambda(lambda), m_transmittance(transmittance),
42  m_comment("") {};
43 
48 
53  float getAerogelVersion() const {return m_version; }
54 
58  void setAerogelVersion(float version) {m_version = version; }
59 
63  std::string getAerogelSN() const {return m_serial; };
64 
68  void setAerogelSN(const std::string& serial) {m_serial = serial; }
69 
73  std::string getAerogelID() const {return m_id; };
74 
78  void setAerogelID(const std::string& agelid) {m_id = agelid; }
79 
85 
89  void setAerogelRefractiveIndex(float index) {m_refractiveIndex = index; }
90 
95 
99  void setAerogelTransmissionLength(float translength) {m_transmissionLength = translength; }
100 
104  float getAerogelThickness() const {return m_thickness; }
105 
109  void setAerogelThickness(float thickness) {m_thickness = thickness; }
110 
115  float getAerogelTransmittanceElement(int lambda) const;
116 
122  void setAerogelTransmittanceElement(int lambda, float transmittance);
127  float getAerogelTransmittance(unsigned int i) const { if (i < m_transmittance.size()) return m_transmittance[i]; else return -1;}
128 
133  void setAerogelTransmittance(std::vector<float> transmittance);
134 
139  int getAerogelTransmittanceLambda(unsigned int i) const { if (i < m_lambda.size()) return m_lambda[i]; else return -1;}
140 
145  void setAerogelTransmittanceLambda(std::vector<float> lambda);
149  std::string getAerogelComment() const {return m_comment; }
150 
154  void setAerogelComment(const std::string& comment) {m_comment = comment; }
155 
156  private:
157 
158  float c_lambdaMin = 200.0;
159  float c_lambdaMax = 700.0;
160  float c_lambdaStep = 10.0;
162  float m_version;
163  std::string m_serial;
164  std::string m_id;
167  float m_thickness;
168  std::vector<int> m_lambda;
169  std::vector<float> m_transmittance;
170  std::string m_comment;
174  };
176 } // end namespace Belle2
The Class for ARICH Aerogel Parameters.
std::string m_comment
optional comment
float m_refractiveIndex
Refractive Index of the aerogel.
void setAerogelComment(const std::string &comment)
Set comment.
float c_lambdaMin
Min value of lambda.
ARICHAerogelInfo()
Default constructor.
ARICHAerogelInfo(float version, const std::string &serial, const std::string &id, float index, float trlen, float thickness, std::vector< int > &lambda, std::vector< float > &transmittance)
Constructor.
float c_lambdaStep
Lambda - steps.
float getAerogelVersion() const
Return Aerogel Version.
std::string m_id
Aerogel Identifier.
float getAerogelRefractiveIndex() const
Return Refractive Index of Aerogel.
float getAerogelTransmittanceElement(int lambda) const
Return Aerogel Transmittance at lambda.
void setAerogelSN(const std::string &serial)
Set Aerogel Serial number.
void setAerogelTransmissionLength(float translength)
Set Transmission Length at 400 nm.
float m_transmissionLength
Transmission Length at 400 nm.
std::string getAerogelSN() const
Return Aerogel Serial number.
float getAerogelThickness() const
Return Aerogel Thickness.
void setAerogelRefractiveIndex(float index)
Set Aerogel Refractive Index.
void setAerogelVersion(float version)
Set Aerogel Version.
std::vector< int > m_lambda
Lambda for transmittance.
float m_thickness
Thickness of the aerogel.
std::string m_serial
Aerogel Serial number.
std::string getAerogelID() const
Return Aerogel Identifier.
void setAerogelID(const std::string &agelid)
Set Aerogel Identifier.
std::vector< float > m_transmittance
Transmittance of aerogel.
float m_version
Aerogel data version (measurement number)
float getAerogelTransmissionLength() const
Return Transmission Length at 400 nm.
float c_lambdaMax
Max value of lambda.
void setAerogelTransmittanceLambda(std::vector< float > lambda)
Set Lambda for Aerogel Transmittance.
int getAerogelTransmittanceLambda(unsigned int i) const
Return Lambda for Aerogel Transmittance.
float getAerogelTransmittance(unsigned int i) const
Return Aerogel Transmittance.
void setAerogelThickness(float thickness)
Set Aerogel Thickness.
void setAerogelTransmittance(std::vector< float > transmittance)
Set Aerogel Transmittance.
ClassDef(ARICHAerogelInfo, 4)
ClassDef.
std::string getAerogelComment() const
Return comment.
void setAerogelTransmittanceElement(int lambda, float transmittance)
Set Aerogel Transmittance at lambda.
Abstract base class for different kinds of events.