ROOT logo
#ifndef HRICH700PMT_H_
#define HRICH700PMT_H_

#include "TObject.h"
#include "TGraph.h"
#include <vector>
#include <map>

#include "hrich700pmttypeenum.h"

using namespace std;

class HRich700PmtQEData {
public:

    HRich700PmtTypeEnum fDetectorType; // pmt type
    Double_t fLambdaMin; // minimum wavelength in QE table
    Double_t fLambdaMax; // maximum wavelength in QE table
    Double_t fLambdaStep; // wavelaength in QE table
    vector<Double_t> fEfficiency; // Array of QE
};

class HRich700Pmt {

private:

    map<HRich700PmtTypeEnum, HRich700PmtQEData*> fPmtDataMap; // store QE for specific PMT type

    static const Double_t c; // speed of light
    static const Double_t h; // Planck constant
    static const Double_t e; // elementary charge
    static const Double_t NRefrac; // refractive index of the gas

   void initQE();
   void clearMap();


   HRich700Pmt(const HRich700Pmt&);

   HRich700Pmt& operator=(const HRich700Pmt&);

public:
   HRich700Pmt();

   virtual ~HRich700Pmt();

   Bool_t isPhotonDetected(HRich700PmtTypeEnum detType, Double_t collEff, Double_t momentum);

   TGraph* getQEGraph(HRich700PmtTypeEnum detType);

   static Double_t getWavelength(Double_t energy); // eV -> nm

};

#endif /* HRICH700PMT_H_ */
 hrich700pmt.h:1
 hrich700pmt.h:2
 hrich700pmt.h:3
 hrich700pmt.h:4
 hrich700pmt.h:5
 hrich700pmt.h:6
 hrich700pmt.h:7
 hrich700pmt.h:8
 hrich700pmt.h:9
 hrich700pmt.h:10
 hrich700pmt.h:11
 hrich700pmt.h:12
 hrich700pmt.h:13
 hrich700pmt.h:14
 hrich700pmt.h:15
 hrich700pmt.h:16
 hrich700pmt.h:17
 hrich700pmt.h:18
 hrich700pmt.h:19
 hrich700pmt.h:20
 hrich700pmt.h:21
 hrich700pmt.h:22
 hrich700pmt.h:23
 hrich700pmt.h:24
 hrich700pmt.h:25
 hrich700pmt.h:26
 hrich700pmt.h:27
 hrich700pmt.h:28
 hrich700pmt.h:29
 hrich700pmt.h:30
 hrich700pmt.h:31
 hrich700pmt.h:32
 hrich700pmt.h:33
 hrich700pmt.h:34
 hrich700pmt.h:35
 hrich700pmt.h:36
 hrich700pmt.h:37
 hrich700pmt.h:38
 hrich700pmt.h:39
 hrich700pmt.h:40
 hrich700pmt.h:41
 hrich700pmt.h:42
 hrich700pmt.h:43
 hrich700pmt.h:44
 hrich700pmt.h:45
 hrich700pmt.h:46
 hrich700pmt.h:47
 hrich700pmt.h:48
 hrich700pmt.h:49
 hrich700pmt.h:50
 hrich700pmt.h:51
 hrich700pmt.h:52
 hrich700pmt.h:53
 hrich700pmt.h:54
 hrich700pmt.h:55