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