SND@LHC Software
Loading...
Searching...
No Matches
hcalInf.h
Go to the documentation of this file.
1
7#ifndef HCALINF_H
8#define HCALINF_H
9
10#include "TObjArray.h"
11#include "TString.h"
12#include "TObjString.h"
13
14#include <list>
15#include <stdlib.h>
16
17class TMap;
18
19class hcalInf:public TObject
20{
21public:
23 hcalInf() : TObject(), fVariables(NULL), fHcalStr(), fXPos(0.), fYPos(0.),
24 fZPos(0.), fNLayers(0), fXSize(0), fYSize(0), fModuleSize(0.), fAbsorber(0.),
25 fScin(0.), fTyveec(0.), fThicknessLayer(0.), fCellSize(0.), fHcalSize(),
26 fECut(0.), fHCut(0.), fSemiX(0.0), fSemiY(0.0), fFastMC(-1),
27 fSuccess(-1), fFileName("")
28 {};
29
30 static hcalInf* GetInstance(const char* filename);
32 inline Double_t GetXPos() const {return fXPos;}
33 inline Double_t GetYPos() const {return fYPos;}
34 inline Double_t GetZPos() const {return fZPos;}
35
36 inline Double_t GetModuleSize() const {return fModuleSize;}
37
38 inline Int_t GetNLayers() const {return fNLayers;}
39 inline Int_t GetN1Layers()const {return fN1Layers;}
40 inline Double_t GetAbsorber()const {return fAbsorber;}
41 inline Double_t GetScin() const {return fScin;}
42 inline Double_t GetTyveec() const {return fTyveec;}
43 inline Double_t GetThicknessLayer() const {return fThicknessLayer;}
44
46 inline Int_t GetXSize() const {return fXSize;}
47 inline Int_t GetYSize() const {return fYSize;}
48 inline Double_t GetContainerXSemiAxiss() const {return fSemiX;}
49 inline Double_t GetContainerYSemiAxiss() const {return fSemiY;}
50
52 inline Double_t GetElectronCut() const {return fECut;}
53 inline Double_t GetHadronCut() const {return fHCut;}
54
55 inline Double_t GetHcalSize(Int_t num) const {
56 if (num>-1&&num<3) return fHcalSize[num];
57 return -1;
58 }
59 char GetType(Int_t x, Int_t y) const; //returns type of (X,Y) supercell
60 inline Int_t GetFastMC() const {return fFastMC;}
61 void DumpContainer() const;
62
63 void FreeInstance();
64
69 Double_t GetVariable(const char* key);
74 Double_t GetVariableStrict(const char* key);
75 TString GetStringVariable(const char* key);
76
77 void AddVariable(const char* key, const char* value);
80 // void CheckVariables();
81protected:
82
84 hcalInf(const char* filename);
86 virtual ~hcalInf();
87
88 static hcalInf* fInf;
89 static Int_t fRefCount;
90
91
92private:
95 void InitVariables();
97 Bool_t ExcludeParameter(TString parname);
103 TObjArray fHcalStr;
105 Double_t fXPos;
107 Double_t fYPos;
109 Double_t fZPos;
110
112 Int_t fNLayers;
115
117 Int_t fXSize;
119 Int_t fYSize;
120
122 Double_t fModuleSize;
123
125 Double_t fAbsorber;
127 Double_t fScin;
129 Double_t fTyveec;
133 Double_t fCellSize;
135 Double_t fHcalSize[3];
137 Double_t fECut;
139 Double_t fHCut;
141 Double_t fSemiX;
142 Double_t fSemiY;
143
145 Int_t fFastMC;
146
148 Int_t fSuccess;
149
150 TString fFileName;
151
154
156};
157
158inline char hcalInf::GetType(Int_t x, Int_t y) const
159{
161 if (x<0||y<0||y>fHcalStr.GetLast()) return 0;
162 TObjString* str=(TObjString*)fHcalStr.At(y);
163 if (str->GetString().Length()<x) return 0;
164 char stri[2]={str->GetString()[x],0};
165 return atoi(stri);
166}
167
169{
170 fRefCount--;
171 if (fRefCount==0)
172 {
173 delete this;
174 fInf=NULL;
175 }
176}
177#endif
Double_t fXPos
Definition hcalInf.h:105
void InitVariables()
Definition hcalInf.cxx:325
Double_t fScin
Definition hcalInf.h:127
Int_t fNLayers
Definition hcalInf.h:112
Double_t GetAbsorber() const
Definition hcalInf.h:40
TObjArray fHcalStr
Definition hcalInf.h:103
void CalculateHoleSize()
Double_t GetThicknessLayer() const
Definition hcalInf.h:43
Double_t fSemiY
Definition hcalInf.h:142
Double_t GetScin() const
Definition hcalInf.h:41
Double_t GetYPos() const
Definition hcalInf.h:33
void DumpContainer() const
Definition hcalInf.cxx:363
Int_t fFastMC
Definition hcalInf.h:145
hcalInf()
Definition hcalInf.h:23
virtual ~hcalInf()
Definition hcalInf.cxx:28
Int_t fYSize
Definition hcalInf.h:119
Int_t GetN1Layers() const
Definition hcalInf.h:39
hcalInf & operator=(const hcalInf &)
Double_t GetContainerXSemiAxiss() const
Definition hcalInf.h:48
Double_t fThicknessLayer
Definition hcalInf.h:131
Int_t fN1Layers
Definition hcalInf.h:114
Double_t fAbsorber
Definition hcalInf.h:125
Double_t GetContainerYSemiAxiss() const
Definition hcalInf.h:49
void FreeInstance()
Definition hcalInf.h:168
void AddVariable(const char *key, const char *value)
Definition hcalInf.cxx:128
Double_t fYPos
Definition hcalInf.h:107
Double_t GetVariable(const char *key)
Definition hcalInf.cxx:115
static hcalInf * GetInstance(const char *filename)
Definition hcalInf.cxx:35
ClassDef(hcalInf, 2)
Double_t GetVariableStrict(const char *key)
Definition hcalInf.cxx:82
Double_t GetHcalSize(Int_t num) const
Definition hcalInf.h:55
Double_t GetTyveec() const
Definition hcalInf.h:42
Double_t GetModuleSize() const
Definition hcalInf.h:36
Int_t GetNLayers() const
Definition hcalInf.h:38
Double_t GetXPos() const
Definition hcalInf.h:32
Double_t fHCut
Definition hcalInf.h:139
Bool_t ExcludeParameter(TString parname)
Definition hcalInf.cxx:261
Double_t fModuleSize
Definition hcalInf.h:122
Double_t GetElectronCut() const
Definition hcalInf.h:52
Int_t fXSize
Definition hcalInf.h:117
static hcalInf * fInf
Definition hcalInf.h:88
TMap * fVariables
Definition hcalInf.h:100
Double_t fECut
Definition hcalInf.h:137
Int_t GetYSize() const
Definition hcalInf.h:47
hcalInf(const hcalInf &)
Int_t GetXSize() const
Definition hcalInf.h:46
TString fFileName
Definition hcalInf.h:150
Double_t fZPos
Definition hcalInf.h:109
Double_t fTyveec
Definition hcalInf.h:129
Double_t GetHadronCut() const
Definition hcalInf.h:53
static Int_t fRefCount
Definition hcalInf.h:89
char GetType(Int_t x, Int_t y) const
Definition hcalInf.h:158
Double_t fHcalSize[3]
Definition hcalInf.h:135
Double_t fSemiX
Definition hcalInf.h:141
TString GetStringVariable(const char *key)
Definition hcalInf.cxx:103
Int_t GetFastMC() const
Definition hcalInf.h:60
Double_t fCellSize
Definition hcalInf.h:133
Double_t GetZPos() const
Definition hcalInf.h:34
Int_t fSuccess
Definition hcalInf.h:148