Belle II Software development
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
17namespace Belle2 {
26 class ARICHAerogelInfo: public TObject {
27
28 public:
29
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
59 void setAerogelVersion(float version) {m_version = version; }
60
65 std::string getAerogelSN() const {return m_serial; };
66
71 void setAerogelSN(const std::string& serial) {m_serial = serial; }
72
77 std::string getAerogelID() const {return m_id; };
78
83 void setAerogelID(const std::string& agelid) {m_id = agelid; }
84
90
95 void setAerogelRefractiveIndex(float index) {m_refractiveIndex = index; }
96
102
107 void setAerogelTransmissionLength(float translength) {m_transmissionLength = translength; }
108
113 float getAerogelThickness() const {return m_thickness; }
114
119 void setAerogelThickness(float thickness) {m_thickness = thickness; }
120
125 float getAerogelTransmittanceElement(int lambda) const;
126
132 void setAerogelTransmittanceElement(int lambda, float transmittance);
133
138 float getAerogelTransmittance(unsigned int i) const { if (i < m_transmittance.size()) return m_transmittance[i]; else return -1;}
139
144 void setAerogelTransmittance(std::vector<float> transmittance);
145
150 int getAerogelTransmittanceLambda(unsigned int i) const { if (i < m_lambda.size()) return m_lambda[i]; else return -1;}
151
156 void setAerogelTransmittanceLambda(std::vector<float> lambda);
157
162 std::string getAerogelComment() const {return m_comment; }
163
168 void setAerogelComment(const std::string& comment) {m_comment = comment; }
169
170 private:
171
172 float c_lambdaMin = 200.0;
173 float c_lambdaMax = 700.0;
174 float c_lambdaStep = 10.0;
176 float m_version;
177 std::string m_serial;
178 std::string m_id;
182 std::vector<int> m_lambda;
183 std::vector<float> m_transmittance;
184 std::string m_comment;
188 };
190} // 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
Get aerogel version.
std::string m_id
Aerogel Identifier.
float getAerogelRefractiveIndex() const
Get refractive index of aerogel.
float getAerogelTransmittanceElement(int lambda) const
Get 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
Get aerogel serial number.
float getAerogelThickness() const
Get 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
Get 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
Get 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
Get lambda for aerogel transmittance.
float getAerogelTransmittance(unsigned int i) const
Get 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
Get comment.
void setAerogelTransmittanceElement(int lambda, float transmittance)
Set aerogel transmittance at lambda.
Abstract base class for different kinds of events.