]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TFluka/TFlukaCerenkov.h
Bug fix (C.Cheshkov)
[u/mrichter/AliRoot.git] / TFluka / TFlukaCerenkov.h
CommitLineData
70f12a9d 1#ifndef TFLUKACERENKOV
2#define TFLUKACERENKOV
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7/* $Id$ */
8
9///////////////////////////////////////////////////////////////////////////////
10// //
11// //
12// Class that gives access to optical properties for Cerenkov photon //
13// production and transport //
14// //
15// //
16///////////////////////////////////////////////////////////////////////////////
17
18
19#include <TObject.h>
20#include <TMath.h>
21
22const Double_t khc = 2. * TMath::Pi() * 0.1973269602e-13; // GeV cm
23
24
25class TFlukaCerenkov : public TObject
26{
27
28public:
29 // constructors
30 TFlukaCerenkov();
31 TFlukaCerenkov(Int_t npckov, Float_t *ppckov, Float_t *absco, Float_t *effic, Float_t *rindex);
32 virtual Float_t GetAbsorptionCoefficient(Float_t energy);
33 virtual Float_t GetQuantumEfficiency(Float_t energy);
34 virtual Float_t GetRefractionIndex(Float_t energy);
35 virtual Float_t GetAbsorptionCoefficientByWaveLength(Float_t energy);
36 virtual Float_t GetQuantumEfficiencyByWaveLength(Float_t energy);
37 virtual Float_t GetRefractionIndexByWaveLength(Float_t energy);
38 virtual Float_t GetMinimumEnergy() {return fEnergy[0];}
39 virtual Float_t GetMaximumEnergy() {return fEnergy[fSamples-1];}
40 virtual Float_t GetMinimumWavelength() {return khc / fEnergy[fSamples-1];}
41 virtual Float_t GetMaximumWavelength() {return khc / fEnergy[0];}
42 virtual Int_t GetNSamples() {return fSamples;}
43 virtual Bool_t IsMetal() {return fIsMetal;}
058fcd99 44 virtual Bool_t IsSensitive() {return fIsSensitive;}
3a242b1f 45 virtual Double_t GetMaximumEfficiency() const {return fMaximumEfficiency;}
46 static Double_t GetGlobalMaximumEfficiency() {return fgGlobalMaximumEfficiency;}
47 static void SetGlobalMaximumEfficiency(Double_t eff) {fgGlobalMaximumEfficiency = eff;}
70f12a9d 48 protected:
49 virtual Float_t Interpolate(Float_t energy, Float_t* array1, Float_t* array2);
50
51 protected:
3a242b1f 52 Int_t fSamples; // Number of sampling points
53 Bool_t fIsMetal; // Flag for metals
54 Bool_t fIsSensitive; // Flag for metals
55 Float_t* fEnergy; // [fSamples] Energy (GeV)
56 Float_t* fWaveLength; // [fSamples] Wafelength (cm)
57 Float_t* fAbsorptionCoefficient; // [fSamples] Absorption Coefficient (1/cm)
58 Float_t* fQuantumEfficiency; // [fSamples] Quantum efficiency
59 Float_t* fRefractionIndex; // [fSamples] Refraction Index
60 Double_t fMaximumEfficiency; // Local maximum quantum efficiency
61 // static
62 static Double_t fgGlobalMaximumEfficiency; // Global maximum quantum efficiency
70f12a9d 63
64 ClassDef(TFlukaCerenkov, 1) // CerenkovProperties
65};
66
67#endif
68