ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtTriggerPar.cxx
Go to the documentation of this file.
1 #include "AtTriggerPar.h"
2 
3 #include <FairLogger.h>
4 #include <FairParGenericSet.h>
5 #include <FairParamList.h>
6 
7 #include <TString.h>
8 #include <TSystem.h>
9 
10 #include <fstream>
11 #include <string>
12 
14 
15 AtTriggerPar::AtTriggerPar(const Char_t *name, const Char_t *title, const Char_t *context)
16  : FairParGenericSet("AtTriggerPar", "AtTPC Parameter Container", ""), fInitialized(kFALSE)
17 {
18 }
19 
20 // Getters
21 
23 {
24  return fWrite_clock;
25 }
27 {
28  return fRead_clock;
29 }
31 {
32  return fMaster_clock;
33 }
35 {
36  return fPad_thresh_MSB;
37 }
39 {
40  return fPad_thresh_LSB;
41 }
43 {
44  return fTrigger_signal_width;
45 }
47 {
48  return fTrigger_discriminator_fraction;
49 }
51 {
52  return fMultiplicity_threshold;
53 }
55 {
56  return fMultiplicity_window;
57 }
59 {
60  return fTrigger_height;
61 }
62 
63 Bool_t AtTriggerPar::getParams(FairParamList *paramList)
64 {
65  if (!paramList) {
66  LOG(fatal) << "Parameter list doesn't exist!";
67  return kFALSE;
68  }
69 
70  if (!fInitialized) {
71  if (!(paramList->fill("Write_clock", &fWrite_clock))) {
72  LOG(fatal) << "Cannot find write_clock parameter!";
73  return kFALSE;
74  }
75  if (!(paramList->fill("Read_clock", &fRead_clock))) {
76  LOG(fatal) << "Cannot find read_clock parameter!";
77  return kFALSE;
78  }
79  if (!(paramList->fill("Master_clock", &fMaster_clock))) {
80  LOG(fatal) << "Cannot find master_clock parameter!";
81  return kFALSE;
82  }
83  if (!(paramList->fill("Pad_thresh_MSB", &fPad_thresh_MSB))) {
84  LOG(fatal) << "Cannot find pad_thresh_MSB parameter!";
85  return kFALSE;
86  }
87  if (!(paramList->fill("Pad_thresh_LSB", &fPad_thresh_LSB))) {
88  LOG(fatal) << "Cannot find pad_thresh_LSB parameter!";
89  return kFALSE;
90  }
91  if (!(paramList->fill("Trigger_signal_width", &fTrigger_signal_width))) {
92  LOG(fatal) << "Cannot find trigger_signal_width parameter!";
93  return kFALSE;
94  }
95  if (!(paramList->fill("Trigger_discriminator_fraction", &fTrigger_discriminator_fraction))) {
96  LOG(fatal) << "Cannot find trigger_discriminator_fraction parameter!";
97  return kFALSE;
98  }
99  if (!(paramList->fill("Multiplicity_threshold", &fMultiplicity_threshold))) {
100  LOG(fatal) << "Cannot find multiplicity_threshold parameter!";
101  return kFALSE;
102  }
103  if (!(paramList->fill("Multiplicity_window", &fMultiplicity_window))) {
104  LOG(fatal) << "Cannot find multiplicity_window parameter!";
105  return kFALSE;
106  }
107  if (!(paramList->fill("Trigger_height", &fTrigger_height))) {
108  LOG(fatal) << "Cannot find trigger_height parameter!";
109  return kFALSE;
110  }
111  }
112  return kTRUE;
113 }
114 
115 void AtTriggerPar::putParams(FairParamList *paramList)
116 {
117  if (!paramList) {
118  LOG(fatal) << "Parameter list doesn't exist!";
119  return;
120  }
121 
122  paramList->add("Write_clock", fWrite_clock);
123  paramList->add("Read_clock", fRead_clock);
124  paramList->add("Master_clock", fMaster_clock);
125  paramList->add("Pad_thresh_LSB", fPad_thresh_LSB);
126  paramList->add("Pad_thresh_MSB", fPad_thresh_MSB);
127  paramList->add("Trigger_signal_width", fTrigger_signal_width);
128  paramList->add("Trigger_discriminator_fraction", fTrigger_discriminator_fraction);
129  paramList->add("Tultiplicity_threshold", fMultiplicity_threshold);
130  paramList->add("Tultiplicity_window", fMultiplicity_window);
131  paramList->add("Trigger_height", fTrigger_height);
132 }
133 
134 TString AtTriggerPar::GetFile(Int_t fileNum)
135 {
136  std::ifstream fileList;
137  TString sysFile = gSystem->Getenv("VMCWORKDIR");
138  TString parFile = sysFile + "/parameters/AT.files.par";
139  fileList.open(parFile.Data());
140 
141  if (!fileList) {
142  LOG(fatal) << Form("File %s not found!", parFile.Data());
143 
144  throw;
145  }
146 
147  std::string buffer;
148  for (Int_t iFileNum = 0; iFileNum < fileNum + 1; ++iFileNum) {
149  if (fileList.eof()) {
150  LOG(fatal) << Form("Did not find string #%d in file %s.", fileNum, parFile.Data());
151 
152  throw;
153  }
154 
155  std::getline(fileList, buffer);
156  }
157 
158  fileList.close();
159 
160  return TString(sysFile + "/" + buffer);
161 }
AtTriggerPar::GetMultiplicity_window
Double_t GetMultiplicity_window()
Definition: AtTriggerPar.cxx:54
AtTriggerPar::AtTriggerPar
AtTriggerPar(const Char_t *name, const Char_t *title, const Char_t *context)
Definition: AtTriggerPar.cxx:15
AtTriggerPar::GetPad_thres_MSB
Double_t GetPad_thres_MSB()
Definition: AtTriggerPar.cxx:34
AtTriggerPar::putParams
virtual void putParams(FairParamList *paramList)
Definition: AtTriggerPar.cxx:115
AtTriggerPar::GetFile
TString GetFile(Int_t fileNum)
Definition: AtTriggerPar.cxx:134
AtTriggerPar::GetRead_Clock
Double_t GetRead_Clock()
Definition: AtTriggerPar.cxx:26
AtTriggerPar::GetTrigger_signal_width
Double_t GetTrigger_signal_width()
Definition: AtTriggerPar.cxx:42
AtTriggerPar::GetWrite_Clock
Double_t GetWrite_Clock()
Definition: AtTriggerPar.cxx:22
AtTriggerPar.h
AtTriggerPar::getParams
virtual Bool_t getParams(FairParamList *paramList)
Definition: AtTriggerPar.cxx:63
AtTriggerPar
Definition: AtTriggerPar.h:19
AtTriggerPar::GetTrigger_height
Double_t GetTrigger_height()
Definition: AtTriggerPar.cxx:58
AtTriggerPar::GetPad_thres_LSB
Double_t GetPad_thres_LSB()
Definition: AtTriggerPar.cxx:38
AtTriggerPar::GetTrigger_discriminator_fraction
Double_t GetTrigger_discriminator_fraction()
Definition: AtTriggerPar.cxx:46
ClassImp
ClassImp(AtTriggerPar)
AtTriggerPar::GetMultiplicity_threshold
Double_t GetMultiplicity_threshold()
Definition: AtTriggerPar.cxx:50
AtTriggerPar::GetMaster_Clock
Double_t GetMaster_Clock()
Definition: AtTriggerPar.cxx:30