er  dev
ERNeuRadSetup.h
1 // -------------------------------------------------------------------------
2 // ----- ERNeuRadSetup header file -----
3 // ----- V.Schetinin (sch_vitaliy@mail.ru) -----
4 // -------------------------------------------------------------------------
5 
6 #ifndef ERNEURADSETUP_H
7 #define ERNEURADSETUP_H
8 
9 #include <vector>
10 #include "Rtypes.h"
11 
12 //TODO fix
13 #include "ERNeuRadDigiPar.h"
14 class ERNeuRadDigiPar;
15 
17  Float_t fX;
18  Float_t fY;
19  ERNeuRadModule(Float_t x, Float_t y) {fX = x; fY = y;}
20 };
21 
22 struct ERNeuRadFiber {
23  Float_t fX;
24  Float_t fY;
25  ERNeuRadFiber(Float_t x, Float_t y) {fX = x; fY = y;}
26 };
27 
29  static ERNeuRadSetup* fInstance;
30  static ERNeuRadDigiPar* fDigiPar;
31  static std::vector<ERNeuRadModule*> fModules;
32  static std::vector<std::vector<ERNeuRadFiber*> > fFibers;
33  static Float_t fZ;
34  static Float_t fLength;
35  static Float_t fFiberWidth;
36  static Int_t fRowNofFibers;
37  static Int_t fRowNofModules;
38  static Int_t fRowNofPixels;
39  ERNeuRadSetup();
40 
41 public:
42 
43  static ERNeuRadSetup* Instance();
44  static Int_t NofFibers();
45  static Int_t NofPixels();
46  static Int_t NofModules();
47  static Float_t FiberLength();
48  static Float_t FiberWidth();
49  static Float_t ModuleX(Int_t iModule);
50  static Float_t ModuleY(Int_t iModule);
51  static Float_t FiberX(Int_t iModule, Int_t iFiber);
52  static Float_t FiberY(Int_t iModule, Int_t iFiber);
53  static Float_t PixelQuantumEfficiency(Int_t iModule, Int_t iFiber);
54  static Float_t PixelGain(Int_t iModule, Int_t iFiber);
55  static Float_t PixelSigma(Int_t iModule, Int_t iFiber);
56  static Float_t Z(){return fZ;}
57  static void Print();
58  static void Crosstalks(Int_t iFiber, TArrayF& crosstalks);
59  static Int_t RowNofFibers();
60  static Int_t RowNofPixels();
61  static Int_t RowNofModules();
62  static Bool_t UseCrosstalks();
63  static Int_t SetParContainers();
64 
65  ClassDef(ERNeuRadSetup,1)
66 };
67 
68 #endif // ERNEURADSETUP_H