KaliVeda
Toolkit for HIC analysis
KVINDRADB.h
1 /***************************************************************************
2  kvINDRADB.h - description
3  -------------------
4  begin : 9/12 2003
5  copyright : (C) 2003 by J.D. Frankland
6  email : frankland@ganil.fr
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef KV_INDRADB_H
19 #define KV_INDRADB_H
20 
21 #include "KVExpDB.h"
22 #include "KVDataSet.h"
23 #include "KVINDRADBRun.h"
24 #include "KVDBSystem.h"
25 #include "KVDBTape.h"
26 #include "KVDetector.h"
27 #include "Riostream.h"
28 #include "TEnv.h"
29 #include "KVINDRARunListReader.h"
30 #include "KVINDRAPulserDataTree.h"
31 #include "KVNumberList.h"
32 
34 #define MAX_NUM_RUN_RANGES 100
35 
36 class KVNumberList;
37 
59 class KVINDRADB: public KVExpDB, public KVINDRARunListReader {
60 
61 private:
62 
63  std::ifstream __ifpeaks;
64 
65 protected:
66 
68 
81 
83 
84  virtual void ReadGainList();
85  virtual void ReadChIoPressures();
86  virtual void ReadCsITotalLightGainCorrections();
87  virtual void ReadChannelVolt();
88  virtual void ReadVoltEnergyChIoSi();
89  virtual void ReadLightEnergyCsI(const Char_t*, KVDBTable*);
90  virtual void ReadCalibCsI();
91  virtual void ReadPedestalList();
92 
93  virtual void ReadAbsentDetectors();
94  virtual void ReadOoODetectors();
95  virtual void ReadOoOACQParams();
96 
97 
101  std::ifstream& GetPeakFileStream()
102  {
103  return __ifpeaks;
104  };
105 
106  mutable TF1* fMeanGDir;
107  void _init_MeanGDir_func() const;
108 
109  void init();
110 
111  void make_minimal_database() override;
112 
113  void extend_minimal_database() override;
114 
115 public:
116  KVINDRADB();
117  KVINDRADB(const Char_t* name);
118  virtual ~ KVINDRADB();
119 
120  void cd() override;
121 
122  void AddTape(KVDBTape* r)
123  {
124  fTapes->AddRecord(r);
125  }
126  virtual KVDBTape* GetTape(Int_t tape) const
127  {
128  return (KVDBTape*) fTapes->GetRecord(tape);
129  }
130  virtual KVSeqCollection* GetTapes() const
131  {
132  return fTapes->GetRecords();
133  }
134 
135  void GoodRunLine() override;
137  {
138  return (KVINDRADBRun*) GetDBRun(run);
139  }
140  void ReadNewRunList();
141 
142  KVList* GetCalibrationPeaks(Int_t run, KVDetector* detector = 0,
143  Int_t peak_type = -1, Int_t signal_type = 0,
144  Double_t peak_energy = -1.0);
145 
146  Double_t GetEventCrossSection(Int_t run, Double_t Q_apres_cible,
147  Double_t Coul_par_top = 1.e-10) const;
148  Double_t GetTotalCrossSection(Int_t run, Double_t Q_apres_cible,
149  Double_t Coul_par_top = 1.e-10) const;
151  Double_t Q_apres_cible,
152  Double_t Coul_par_top = 1.e-10) const;
154  Double_t Q_apres_cible,
155  Double_t Coul_par_top = 1.e-10) const;
157  Double_t Q_apres_cible,
158  Double_t Coul_par_top = 1.e-10) const;
160  Double_t Q_apres_cible,
161  Double_t Coul_par_top = 1.e-10) const;
162  Double_t GetEventCrossSection(const Char_t* system, Int_t Mult_trigger,
163  Double_t Q_apres_cible,
164  Double_t Coul_par_top = 1.e-10) const;
165  Double_t GetTotalCrossSection(const Char_t* system, Int_t Mult_trigger,
166  Double_t Q_apres_cible,
167  Double_t Coul_par_top = 1.e-10) const;
168  Double_t GetTotalCrossSection(TH1* events_histo, Double_t Q_apres_cible, Double_t Coul_par_top = 1.e-10);
169 
170  Double_t GetMeanGDirFreq(Int_t run) const;
171 
173  {
174  return fPulserData;
175  }
176  void WriteObjects(TFile*) override;
177  void ReadObjects(TFile*) override;
178 
179  virtual Double_t GetRunLengthFromGeneDirect(int run) const;
180  Float_t GetMeanPulser(const Char_t*, int);
181 
182  ClassDefOverride(KVINDRADB, 5) //DataBase of parameters for an INDRA campaign
183 };
184 
186 R__EXTERN KVINDRADB* gIndraDB;
187 
188 #endif
int Int_t
#define R__EXTERN
ROOT::R::TRInterface & r
bool Bool_t
char Char_t
float Float_t
double Double_t
#define ClassDefOverride(name, id)
Table in a database.
Definition: KVDBTable.h:34
virtual Bool_t AddRecord(KVDBRecord *add)
Definition: KVDBTable.cpp:74
virtual KVDBRecord * GetRecord(const Char_t *rec_name) const
Definition: KVDBTable.h:58
virtual KVSeqCollection * GetRecords() const
Definition: KVDBTable.h:63
Database entry describing a data storage tape used to store raw data.
Definition: KVDBTape.h:25
Base class for detector geometry description, interface to energy-loss calculations.
Definition: KVDetector.h:159
Base class to describe database of an experiment ,,.
Definition: KVExpDB.h:61
KVDBRun * GetDBRun(Int_t number) const
Definition: KVExpDB.h:144
Database entry for each run of an INDRA experiment.
Definition: KVINDRADBRun.h:30
DataBase of parameters for an INDRA campaign.
Definition: KVINDRADB.h:59
KVDBTable * fOoODet
(optional) Liste les detecteurs hors service
Definition: KVINDRADB.h:79
void CloseCalibrationPeakFile()
Close file containing database of calibration peaks.
Definition: KVINDRADB.cpp:406
virtual KVSeqCollection * GetTapes() const
Definition: KVINDRADB.h:130
void GoodRunLine() override
Definition: KVINDRADB.cpp:989
void AddTape(KVDBTape *r)
Definition: KVINDRADB.h:122
KVDBTable * fChanVolt
ChIo/Si channel-volt calibration parameters.
Definition: KVINDRADB.h:74
Double_t GetEventCrossSection(Int_t run, Double_t Q_apres_cible, Double_t Coul_par_top=1.e-10) const
Definition: KVINDRADB.cpp:658
std::ifstream __ifpeaks
ifstream for calibration peaks file
Definition: KVINDRADB.h:63
KVDBTable * fLitEnerCsI
CsI light-energy calibration for Z>1.
Definition: KVINDRADB.h:76
virtual void ReadOoOACQParams()
Definition: KVINDRADB.cpp:1947
Double_t GetTotalCrossSection(Int_t run, Double_t Q_apres_cible, Double_t Coul_par_top=1.e-10) const
Definition: KVINDRADB.cpp:675
void _init_MeanGDir_func() const
Definition: KVINDRADB.cpp:419
virtual void ReadChannelVolt()
Definition: KVINDRADB.cpp:1343
KVINDRAPulserDataTree * GetPulserData()
Definition: KVINDRADB.h:172
KVDBTable * fAbsentDet
(optional) Liste les detecteurs absents
Definition: KVINDRADB.h:78
void ReadNewRunList()
Read new-style runlist (written using KVDBRun v.10 or later)
Definition: KVINDRADB.cpp:947
std::ifstream & GetPeakFileStream()
Definition: KVINDRADB.h:101
Float_t GetMeanPulser(const Char_t *, int)
Definition: KVINDRADB.cpp:2003
Bool_t OpenCalibrationPeakFile()
calibration peaks database
Definition: KVINDRADB.cpp:384
void ReadObjects(TFile *) override
Read associated objects (i.e. KVINDRAPulserDataTree's TTree) from file.
Definition: KVINDRADB.cpp:1160
virtual void ReadPedestalList()
Definition: KVINDRADB.cpp:1615
virtual void ReadGainList()
Read the file listing any detectors whose gain value changes during exeriment.
Definition: KVINDRADB.cpp:437
KVDBTable * fCsILumCorr
table of CsI gain corrections for total light output
Definition: KVINDRADB.h:72
KVDBTable * fOoOACQPar
(optional) Liste des parametres d acquisition ne marchant pas
Definition: KVINDRADB.h:80
KVINDRAPulserDataTree * fPulserData
mean values of pulsers for all detectors & runs
Definition: KVINDRADB.h:82
virtual void ReadVoltEnergyChIoSi()
Definition: KVINDRADB.cpp:1526
virtual void ReadOoODetectors()
Definition: KVINDRADB.cpp:1899
void make_minimal_database() override
Definition: KVINDRADB.cpp:890
void WriteObjects(TFile *) override
Write associated objects (i.e. KVINDRAPulserDataTree's TTree) in file.
Definition: KVINDRADB.cpp:1148
KVList * GetCalibrationPeaks(Int_t run, KVDetector *detector=0, Int_t peak_type=-1, Int_t signal_type=0, Double_t peak_energy=-1.0)
Definition: KVINDRADB.cpp:151
virtual KVDBTape * GetTape(Int_t tape) const
Definition: KVINDRADB.h:126
TF1 * fMeanGDir
mean frequency of GENE_DIRECT vs. run number
Definition: KVINDRADB.h:104
void init()
Definition: KVINDRADB.cpp:49
virtual void ReadCsITotalLightGainCorrections()
Definition: KVINDRADB.cpp:1231
KVDBTable * fPedestals
table of pedestal files
Definition: KVINDRADB.h:73
KVDBTable * fVoltMeVChIoSi
ChIo/Si volt-energy calibration.
Definition: KVINDRADB.h:75
KVDBTable * fGains
(optional) table of detector gains, in case they change from run to run
Definition: KVINDRADB.h:70
virtual void ReadLightEnergyCsI(const Char_t *, KVDBTable *)
Definition: KVINDRADB.cpp:1704
void cd() override
Definition: KVINDRADB.cpp:105
virtual void ReadAbsentDetectors()
Definition: KVINDRADB.cpp:1852
virtual void ReadChIoPressures()
Definition: KVINDRADB.cpp:538
virtual Double_t GetRunLengthFromGeneDirect(int run) const
Definition: KVINDRADB.cpp:1174
Double_t GetMeanGDirFreq(Int_t run) const
Definition: KVINDRADB.cpp:873
KVINDRADBRun * GetRun(Int_t run) const
Definition: KVINDRADB.h:136
virtual void ReadCalibCsI()
Definition: KVINDRADB.cpp:1686
KVDBTable * fTapes
table of data tapes
Definition: KVINDRADB.h:71
KVDBTable * fChIoPressures
General information.
Definition: KVINDRADB.h:69
void extend_minimal_database() override
Definition: KVINDRADB.cpp:922
KVDBTable * fLitEnerCsIZ1
CsI light-energy calibration for Z=1.
Definition: KVINDRADB.h:77
virtual ~ KVINDRADB()
Handles TTree with mean pulser data for every run.
Utitlity base class for reading INDRA runlist files.
Extended TList class which owns its objects by default.
Definition: KVList.h:22
Strings used to represent a set of ranges of values.
Definition: KVNumberList.h:85
KaliVeda extensions to ROOT collection classes.