Belle II Software  release-05-01-25
eclWriteWaveformParametersLocalDB.cc
1 #include <framework/database/DBImportObjPtr.h>
2 #include <ecl/dbobjects/ECLDigitWaveformParameters.h>
3 #include <iostream>
4 #include <TFile.h>
5 #include <TTree.h>
6 //
7 //See eclComputePulseTemplates_Step0.cc for README instructions.
9 int main()
10 {
11  //
12  TString FileName = "DigitWaveformParameters.root";
13  //
14  TFile* WaveformParameterFileInput = new TFile(FileName, "READ");
15  if (!WaveformParameterFileInput or WaveformParameterFileInput->IsZombie()) {
16  std::cout << "Could not open file " << FileName << std::endl;;
17  }
18  WaveformParameterFileInput->cd();
19  TTree* WaveformParametersTree = (TTree*) WaveformParameterFileInput->Get("ParTree");
20  //
21  double treePhotonPar11[11];
22  double treeHadronPar11[11];
23  double treeDiodePar11[11];
24  //
25  WaveformParametersTree->SetBranchAddress("PhotonPar", &treePhotonPar11);
26  WaveformParametersTree->SetBranchAddress("HadronPar", &treeHadronPar11);
27  WaveformParametersTree->SetBranchAddress("DiodePar", &treeDiodePar11);
28  //
29 
30  //
31  Belle2::DBImportObjPtr<Belle2::ECLDigitWaveformParameters> importer("ECLDigitWaveformParameters");
32  importer.construct();
33  for (int ID = 0; ID < 8736; ID++) {
34  WaveformParametersTree->GetEntry(ID);
35  float tempPhotonPar11[11];
36  float tempHadronPar11[11];
37  float tempDiodePar11[11];
38  for (unsigned int k = 0; k < 11; k++) {
39  tempPhotonPar11[k] = (float)treePhotonPar11[k];
40  tempHadronPar11[k] = (float)treeHadronPar11[k];
41  tempDiodePar11[k] = (float)treeDiodePar11[k];
42  }
43  std::cout << "cellID: " << ID + 1 << " " << tempPhotonPar11[0] << " " << tempHadronPar11[0] << " " << tempDiodePar11[0] <<
44  std::endl;
45  //
46  if (tempPhotonPar11[0] == 0 || tempHadronPar11[0] == 0
47  || tempDiodePar11[0] == 0) std::cout << "WARNING CELLID MISSING: " << ID + 1 << std::endl;
48  //
49  importer->setTemplateParameters(ID + 1, tempPhotonPar11, tempHadronPar11, tempDiodePar11);
50  }
51  importer.import(Belle2::IntervalOfValidity::always());
52  std::cout << "Successfully wrote payload ECLDigitWaveformParameters" << std::endl;
53  //
54 }
Belle2::IntervalOfValidity::always
static IntervalOfValidity always()
Function that returns an interval of validity that is always valid, c.f.
Definition: IntervalOfValidity.h:72
main
int main(int argc, char **argv)
Run all tests.
Definition: test_main.cc:77
Belle2::DBImportObjPtr
Class for importing a single object to the database.
Definition: DBImportObjPtr.h:33