PandaRoot
PndRichCalDb.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 // -------------------------------------------------------------------------
14 // ----- PndFieldMap header file -----
15 // ----- Created 12/01/04 by M. Al/Turany -----
16 // -------------------------------------------------------------------------
17 
24 #ifndef PNDRICHCALDB_H
25 #define PNDRICHCALDB_H 1
26 
27 #include "FairField.h"
28 
29 class TArrayF;
30 class PndRichCalDbData;
31 class PndRichCalDbPar;
32 
33 struct dbpoint {
34  Double_t mass;
35  Double_t beta;
36  Double_t x;
37  Double_t y;
38  Double_t theta;
39  Double_t phi;
40 };
41 
42 class PndRichCalDb : public FairField {
43 
44  public:
46  PndRichCalDb();
47 
52  PndRichCalDb(const char *mapName, const char *fileType = "R");
53 
55  PndRichCalDb(PndRichCalDbPar *CaldbPar);
56 
58  virtual ~PndRichCalDb();
59 
61  virtual void Init();
62 
67  virtual Double_t GetBetaMean(dbpoint pnt);
68  virtual Double_t GetBetaSig(dbpoint pnt);
69  virtual Double_t GetBetaEff(dbpoint pnt);
70 
77  virtual Bool_t IsInside(Double_t p, Double_t x, Double_t y, Double_t t, Double_t f, Int_t &ip, Int_t &ix, Int_t &iy, Int_t &it, Int_t &iq, Double_t &dp, Double_t &dx,
78  Double_t &dy, Double_t &dt, Double_t &df);
79 
81  void WriteAsciiFile(const char *fileName);
82 
84  void WriteRootFile(const char *fileName, const char *mapName);
85 
87  Double_t GetPmin() const { return fPmin; }
88  Double_t GetXmin() const { return fXmin; }
89  Double_t GetYmin() const { return fYmin; }
90  Double_t GetTmin() const { return fTmin; }
91  Double_t GetFmin() const { return fFmin; }
92  Double_t GetPmax() const { return fPmax; }
93  Double_t GetXmax() const { return fXmax; }
94  Double_t GetYmax() const { return fYmax; }
95  Double_t GetTmax() const { return fTmax; }
96  Double_t GetFmax() const { return fFmax; }
97  Double_t GetPstep() const { return fPstep; }
98  Double_t GetXstep() const { return fXstep; }
99  Double_t GetYstep() const { return fYstep; }
100  Double_t GetTstep() const { return fTstep; }
101  Double_t GetFstep() const { return fFstep; }
102  Int_t GetNp() const { return fNp; }
103  Int_t GetNx() const { return fNx; }
104  Int_t GetNy() const { return fNy; }
105  Int_t GetNt() const { return fNt; }
106  Int_t GetNf() const { return fNf; }
107 
109  TArrayF *GetBetaMean() const { return fBetaMean; }
110  TArrayF *GetBetaSig() const { return fBetaSig; }
111  TArrayF *GetBetaEff() const { return fBetaEff; }
112 
114  const char *GetFileName() { return fFileName.Data(); }
115 
117  virtual void Print();
118 
119  private:
120  PndRichCalDb(const PndRichCalDb &L);
121  PndRichCalDb &operator=(const PndRichCalDb &) { return *this; };
122 
123  protected:
125  void Reset();
126 
128  void ReadAsciiFile(const char *fileName);
129 
131  void ReadRootFile(const char *fileName, const char *mapName);
132 
134  void SetCalDb(const PndRichCalDbData *data);
135 
137  TString fFileName;
138 
140  Double_t fPmin, fPmax, fPstep;
141  Double_t fXmin, fXmax, fXstep;
142  Double_t fYmin, fYmax, fYstep;
143  Double_t fTmin, fTmax, fTstep;
144  Double_t fFmin, fFmax, fFstep;
145 
147  Int_t fNp, fNx, fNy, fNt, fNf;
148 
150  TArrayF *fBetaMean;
151  TArrayF *fBetaSig;
152  TArrayF *fBetaEff;
153 
154  ClassDef(PndRichCalDb, 1)
155 };
156 
157 #endif
Double_t GetTstep() const
Definition: PndRichCalDb.h:100
Double_t x
Definition: PndRichCalDb.h:36
Double_t GetFmax() const
Definition: PndRichCalDb.h:96
TArrayF * fBetaSig
Definition: PndRichCalDb.h:151
Int_t GetNf() const
Definition: PndRichCalDb.h:106
Double_t fPstep
Definition: PndRichCalDb.h:140
TArrayF * fBetaMean
Definition: PndRichCalDb.h:150
TString fFileName
Definition: PndRichCalDb.h:137
Double_t GetYmin() const
Definition: PndRichCalDb.h:89
TArrayF * GetBetaSig() const
Definition: PndRichCalDb.h:110
Double_t fYstep
Definition: PndRichCalDb.h:142
Double_t GetFmin() const
Definition: PndRichCalDb.h:91
Double_t fFstep
Definition: PndRichCalDb.h:144
const char * GetFileName()
Definition: PndRichCalDb.h:114
TArrayF * fBetaEff
Definition: PndRichCalDb.h:152
Double_t fXstep
Definition: PndRichCalDb.h:141
Double_t fTstep
Definition: PndRichCalDb.h:143
Double_t GetYstep() const
Definition: PndRichCalDb.h:99
Double_t GetTmin() const
Definition: PndRichCalDb.h:90
Int_t GetNy() const
Definition: PndRichCalDb.h:104
Double_t GetPmax() const
Definition: PndRichCalDb.h:92
Double_t GetFstep() const
Definition: PndRichCalDb.h:101
TArrayF * GetBetaEff() const
Definition: PndRichCalDb.h:111
Double_t mass
Definition: PndRichCalDb.h:34
Int_t GetNt() const
Definition: PndRichCalDb.h:105
Double_t GetXmin() const
Definition: PndRichCalDb.h:88
Int_t GetNp() const
Definition: PndRichCalDb.h:102
Double_t GetXmax() const
Definition: PndRichCalDb.h:93
Double_t GetPmin() const
Definition: PndRichCalDb.h:87
Double_t GetYmax() const
Definition: PndRichCalDb.h:94
Int_t GetNx() const
Definition: PndRichCalDb.h:103
float f
Definition: P4_F32vec4.h:32
Double_t GetPstep() const
Definition: PndRichCalDb.h:97
Double_t theta
Definition: PndRichCalDb.h:38
TArrayF * GetBetaMean() const
Definition: PndRichCalDb.h:109
Double_t GetTmax() const
Definition: PndRichCalDb.h:95
Double_t phi
Definition: PndRichCalDb.h:39
Double_t GetXstep() const
Definition: PndRichCalDb.h:98
Double_t beta
Definition: PndRichCalDb.h:35
Double_t y
Definition: PndRichCalDb.h:37