11 #include <alignment/calibration/MillepedeTreeConversionAlgorithm.h>
13 #include <genfit/GblData.h>
33 const int max_entries = 100;
35 std::vector<gbl::GblData>* dat = NULL;
36 std::vector<gbl::GblData>::iterator it;
38 std::vector<unsigned int>* indLocal;
39 std::vector<int>* labGlobal;
40 std::vector<double>* derLocal, *derGlobal;
41 float value, error, der[max_entries];
42 int nlab, label[max_entries];
43 auto gblData = getObjectPtr<TTree>(
"GblDataTree");
44 gblData->SetBranchAddress(
"GblData", &dat);
45 TFile* f_out =
new TFile(
m_OutputFile.c_str(),
"recreate");
46 TTree* t_out =
new TTree(
"mille",
"");
47 t_out->Branch(
"value", &value,
"value/F");
48 t_out->Branch(
"error", &error,
"error/F");
49 t_out->Branch(
"nlab", &nlab,
"nlab/I");
50 t_out->Branch(
"label", label,
"label[nlab]/I");
51 t_out->Branch(
"der", der,
"der[nlab]/F");
52 n = gblData->GetEntries();
53 for (i = 0; i < n; i++) {
55 for (it = dat->begin(); it != dat->end(); ++it) {
56 it->getAllData(aValue, aErr, indLocal, derLocal, labGlobal, derGlobal);
57 if (labGlobal->size() == 0)
61 nlab = std::min((
int)labGlobal->size(), max_entries);
62 for (j = 0; j < nlab; j++) {
63 label[j] = (*labGlobal)[j];
64 der[j] = (*derGlobal)[j];