CbmRoot
Loading...
Searching...
No Matches
CbmRichPmt.h
Go to the documentation of this file.
1/* Copyright (C) 2015-2020 GSI/JINR-LIT, Darmstadt/Dubna
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Semen Lebedev, Andrey Lebedev [committer], Florian Uhlig */
4
5/*
6 * CbmRichPmt.h
7 *
8 * Created on: Dec 16, 2015
9 * Author: slebedev
10 */
11
12#ifndef RICH_DETECTOR_CBMRICHPMT_H_
13#define RICH_DETECTOR_CBMRICHPMT_H_
14
15#include "CbmRichPmtType.h" // for CbmRichPmtTypeEnum
16
17#include <Rtypes.h> // for THashConsistencyHolder, ClassDef
18#include <RtypesCore.h> // for Double_t, Bool_t
19#include <TObject.h> // for TObject
20
21#include <map> // for map
22#include <vector> // for vector
23
24class TGraph;
25
27public:
29 Double_t fLambdaMin; // minimum wavelength in QE table
30 Double_t fLambdaMax; // maximum wavelength in QE table
31 Double_t fLambdaStep; // wavelaength in QE table
32 std::vector<Double_t> fEfficiency; // Array of QE
33
35};
36
37class CbmRichPmt : public TObject {
38public:
39 CbmRichPmt();
40
41 virtual ~CbmRichPmt();
42
43 static Double_t getLambda(Double_t momentum);
44
45 Bool_t isPhotonDetected(CbmRichPmtTypeEnum detType, Double_t momentum);
46
50 void SetCollectionEfficiency(Double_t collEff) { fCollectionEfficiency = collEff; }
51
52 /*
53 * Get QE curve as TGraph for specified detector type
54 */
55 TGraph* getQEGraph(CbmRichPmtTypeEnum detType);
56
57private:
58 Double_t fCollectionEfficiency; // collection efficiency. Final QE = QE * fCollectionEfficiency
59 std::map<CbmRichPmtTypeEnum, CbmRichPmtQEData*> fPmtDataMap; // store QE for specific PMT type
60
61 static const Double_t c; // speed of light
62 static const Double_t h; // Planck constant
63 static const Double_t e; // elementary charge
64 Double_t fRefractiveIndex; // refractive index of the gas. Set in the constructor from CbmRichGeoManager
65
66 void InitQE();
67
68 void ClearMap();
69
70
75
80
81 ClassDef(CbmRichPmt, 1)
82};
83
84#endif /* RICH_DETECTOR_CBMRICHPMT_H_ */
CbmRichPmtTypeEnum
std::vector< Double_t > fEfficiency
Definition CbmRichPmt.h:32
CbmRichPmtTypeEnum fDetectorType
Definition CbmRichPmt.h:28
Double_t fLambdaMax
Definition CbmRichPmt.h:30
Double_t fLambdaStep
Definition CbmRichPmt.h:31
Double_t fLambdaMin
Definition CbmRichPmt.h:29
virtual ~CbmRichPmt()
std::map< CbmRichPmtTypeEnum, CbmRichPmtQEData * > fPmtDataMap
Definition CbmRichPmt.h:59
void InitQE()
static Double_t getLambda(Double_t momentum)
static const Double_t h
Definition CbmRichPmt.h:62
TGraph * getQEGraph(CbmRichPmtTypeEnum detType)
CbmRichPmt(const CbmRichPmt &)
Copy constructor.
static const Double_t c
Definition CbmRichPmt.h:61
Bool_t isPhotonDetected(CbmRichPmtTypeEnum detType, Double_t momentum)
CbmRichPmt & operator=(const CbmRichPmt &)
Assignment operator.
static const Double_t e
Definition CbmRichPmt.h:63
void SetCollectionEfficiency(Double_t collEff)
Set collection efficiency for photoelectrons in PMT optics.
Definition CbmRichPmt.h:50
void ClearMap()
Double_t fCollectionEfficiency
Definition CbmRichPmt.h:58
Double_t fRefractiveIndex
Definition CbmRichPmt.h:64