CbmRoot
Loading...
Searching...
No Matches
CbmMvdStationPar.h
Go to the documentation of this file.
1/* Copyright (C) 2014-2017 Institut fuer Kernphysik, Goethe-Universitaet Frankfurt, Frankfurt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Philipp Sitzmann [committer], Florian Uhlig */
4
5// -------------------------------------------------------------------------
6// ----- CbmMvdStationPar header file -----
7// ----- Created 28/10/14 by P.Sitzmann -----
8// -------------------------------------------------------------------------
9
10
19#ifndef CBMMVDSTATIONPAR_H
20#define CBMMVDSTATIONPAR_H 1
21
22#include <Rtypes.h> // for ClassDef
23#include <RtypesCore.h> // for Double_t, Int_t, Option_t
24#include <TNamed.h> // for TNamed
25
26#include <vector> // for vector
27
28class TBuffer;
29class TClass;
30class TMemberInspector;
31
32class CbmMvdStationPar : public TNamed {
33
34public:
37
39 virtual ~CbmMvdStationPar();
40
41 void Init(Int_t nrOfStations);
42
44 Int_t GetStationCount() const { return fStationCount; };
45 Double_t GetZPosition(Int_t stationNumber) const;
46 Double_t GetZThickness(Int_t stationNumber) const;
47 Double_t GetHeight(Int_t stationNumber) const;
48 Double_t GetWidth(Int_t stationNumber) const;
49 Double_t GetXRes(Int_t stationNumber) const;
50 Double_t GetYRes(Int_t stationNumber) const;
51 Double_t GetZRadThickness(Int_t stationNumber) const;
52 Double_t GetBeamHeight(Int_t stationNumber) const;
53 Double_t GetBeamWidth(Int_t stationNumber) const;
54
56 void AddZPosition(Int_t stationNumber, Double_t z, Double_t zThickness);
57 void AddHeight(Int_t stationNumber, Double_t height);
58 void AddWidth(Int_t stationNumber, Double_t width);
59 void AddXRes(Int_t stationNumber, Double_t xres);
60 void AddYRes(Int_t stationNumber, Double_t yres);
61 void AddZRadThickness(Int_t stationNumber, Double_t length);
62 void AddBeamHeight(Int_t stationNumber, Double_t beamheight);
63 void AddBeamWidth(Int_t stationNumber, Double_t beamwidth);
64
66 void Print(Option_t* opt = "") const;
67
68private:
69 Double_t GetParameter(const std::vector<Double_t>& parArray, Int_t iStation) const;
70 void SetParameterMax(std::vector<Double_t>& parArray, Int_t iStation, Double_t value);
71 void SetParameterMin(std::vector<Double_t>& parArray, Int_t iStation, Double_t value);
72
73 Int_t fStationCount {-1}; // Number of Stations, station numbering starts at 0!!!
74
75 std::vector<Double_t> fZPositions {}; // map of the z positions of all Stations
76 std::vector<Double_t> fZPositionMin {}; // a helper array for filling the fZPositions
77 std::vector<Double_t> fZPositionMax {}; // a helper array for filling the fZPositions
78 std::vector<Double_t> fZThicknesses {}; // in cm
79 std::vector<Double_t> fHeights {}; // in cm
80 std::vector<Double_t> fWidths {}; // in cm
81 std::vector<Double_t> fXResolutions {}; // in mu m
82 std::vector<Double_t> fYResolutions {}; // in mu m
83 std::vector<Double_t> fZRadThickness {}; // Z thickness [in radiation lengths]
84 std::vector<Double_t> fBeamHeights {}; // in cm
85 std::vector<Double_t> fBeamWidths {}; // in cm
86
88};
89
90
91#endif
void AddYRes(Int_t stationNumber, Double_t yres)
Int_t GetStationCount() const
void Init(Int_t nrOfStations)
void SetParameterMin(std::vector< Double_t > &parArray, Int_t iStation, Double_t value)
Double_t GetBeamWidth(Int_t stationNumber) const
std::vector< Double_t > fZPositionMax
std::vector< Double_t > fZPositions
std::vector< Double_t > fWidths
Double_t GetParameter(const std::vector< Double_t > &parArray, Int_t iStation) const
void Print(Option_t *opt="") const
void AddZPosition(Int_t stationNumber, Double_t z, Double_t zThickness)
void AddBeamWidth(Int_t stationNumber, Double_t beamwidth)
std::vector< Double_t > fZPositionMin
std::vector< Double_t > fHeights
std::vector< Double_t > fYResolutions
Double_t GetYRes(Int_t stationNumber) const
std::vector< Double_t > fZThicknesses
void AddHeight(Int_t stationNumber, Double_t height)
Double_t GetHeight(Int_t stationNumber) const
Double_t GetZRadThickness(Int_t stationNumber) const
std::vector< Double_t > fZRadThickness
Double_t GetZPosition(Int_t stationNumber) const
std::vector< Double_t > fBeamHeights
ClassDef(CbmMvdStationPar, 2)
Double_t GetXRes(Int_t stationNumber) const
void AddWidth(Int_t stationNumber, Double_t width)
void SetParameterMax(std::vector< Double_t > &parArray, Int_t iStation, Double_t value)
Double_t GetWidth(Int_t stationNumber) const
void AddBeamHeight(Int_t stationNumber, Double_t beamheight)
void AddZRadThickness(Int_t stationNumber, Double_t length)
Double_t GetZThickness(Int_t stationNumber) const
Double_t GetBeamHeight(Int_t stationNumber) const
void AddXRes(Int_t stationNumber, Double_t xres)
std::vector< Double_t > fBeamWidths
std::vector< Double_t > fXResolutions