CbmRoot
Loading...
Searching...
No Matches
CbmQaCheckerObjectHandler.h
Go to the documentation of this file.
1/* Copyright (C) 2023 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Sergei Zharko [committer] */
4
9
10#ifndef CbmQaCheckerObjectHandler_h
11#define CbmQaCheckerObjectHandler_h 1
12
14#include "CbmQaCheckerResult.h"
16#include "Rtypes.h"
17
18#include <memory>
19#include <string>
20
21class TDirectory;
22class TNamed;
23class TObject;
24class TCanvas;
25
26namespace cbm::qa::checker
27{
33 public:
39 ObjectHandler(int iObject, int iFile, int iDataset, const char* objType = "");
40
42 virtual ~ObjectHandler();
43
46 void AddObjects(const std::vector<TNamed*>& vpObj);
47
48
51 virtual void CreateCanvases(Option_t*){};
52
56 virtual Result Compare(int iVersion) const = 0;
57
60 std::vector<Result> CompareWithDefault();
61
64 void SetOutputDirectory(TDirectory* pDir);
65
68 void SetObjectDB(std::shared_ptr<ObjectDB>& pObjDB) { fpObjDB = pObjDB; }
69
74 void SetComparisonMethod(ECmpMethod method) { fCmpBits.set(static_cast<uint8_t>(method)); }
75
77 void Write();
78
79 protected:
80 std::string fsObjType{""};
81 std::string fsBaseName{""};
82 std::vector<TNamed*> fvpObjects;
83 std::shared_ptr<ObjectDB> fpObjDB{nullptr};
84 std::shared_ptr<TCanvas> fpCanvasCmp{nullptr};
85 std::shared_ptr<TCanvas> fpCanvasRat{nullptr};
86 std::shared_ptr<TCanvas> fpCanvasDiff{nullptr};
87 TDirectory* fpOutDir{nullptr};
88 int fObjectID{-1};
89 int fFileID{-1};
90 int fDatasetID{-1};
91
92 std::bitset<static_cast<size_t>(ECmpMethod::END)> fCmpBits;
93 };
94} // namespace cbm::qa::checker
95
96#endif // CbmQaCheckerObjectHandler_h
Database for processed objects in the QA checker framework (implementation)
Common definitions for QA-Checker framework.
std::string fsObjType
Base type of the object to be handled.
virtual void CreateCanvases(Option_t *)
Creates object comparison canvas.
std::string fsBaseName
Base names of the object.
std::shared_ptr< TCanvas > fpCanvasCmp
Comparison canvas: plots together.
std::vector< Result > CompareWithDefault()
Compares different versions with default.
std::shared_ptr< TCanvas > fpCanvasDiff
Comparison canvas: difference with default.
std::shared_ptr< ObjectDB > fpObjDB
Pointer to object database.
std::shared_ptr< TCanvas > fpCanvasRat
Comparison canvas: ratios to default.
void SetComparisonMethod(ECmpMethod method)
Sets bit flag to control handler behaviour.
std::vector< TNamed * > fvpObjects
Vector of objects.
ObjectHandler(int iObject, int iFile, int iDataset, const char *objType="")
Default constructor.
TDirectory * fpOutDir
Pointer to directory.
void AddObjects(const std::vector< TNamed * > &vpObj)
Adds vector of pointer to objects.
void SetOutputDirectory(TDirectory *pDir)
Sets folder to store output.
virtual Result Compare(int iVersion) const =0
Compares objects to default.
std::bitset< static_cast< size_t >(ECmpMethod::END)> fCmpBits
Bitset for comparison methods.
void SetObjectDB(std::shared_ptr< ObjectDB > &pObjDB)
Sets objects database.
A storable result of the QA-checker comparison routine.
ECmpMethod
Comparison method.