clas12root
Loading...
Searching...
No Matches
HipoSelector.h
Go to the documentation of this file.
1#ifndef HipoSelector_h
2#define HipoSelector_h
3
4#include <TROOT.h>
5#include <TChain.h>
6#include <TFile.h>
7#include <TSelector.h>
8
9#include <TString.h>
10#include <TH1.h>
11#include <vector>
12#include <iostream>
13
14// Headers needed by this particular selector
15#include "HipoChain.h"
16#include "clas12reader.h"
17#include "clas12databases.h"
18#include "rcdb_vals.h"
19
20namespace clas12root{
21 using std::cout;
22 using std::endl;
23
24 class NumbersObject : public TNamed {
25 public :
26 std::set<int> _theset;
28 std::cout<<"clas12root::NumbersObject Numbers in "<<GetName()<<" : ";
29 for(auto& val:_theset)
30 std::cout<<val<<" ";
31 std::cout<<endl;
32 }
34 };
35
36
37 class HipoSelector : public TSelector {
38 public :
39
40
41 HipoSelector(TTree * /*tree*/ =0);
42 HipoSelector(TString filename) ;
43 HipoSelector(HipoChain *chain) ;
44 virtual ~HipoSelector() =default;
45
46 Int_t Version() const final{ return 2; }
47
48 void Begin(TTree *tree) override;
49 void SlaveBegin(TTree *tree) override;
50 Bool_t Process(Long64_t entry) override;
51 Bool_t Notify() override;
52 void SlaveTerminate() override;
53 void Terminate() override;
54
55 virtual Bool_t ProcessEvent() = 0; //loop action to be defined in derived class
56
57 virtual void AddFilter(){};
58
59 Int_t GetCurrentRecord()const noexcept{return _iRecord;}
60 Int_t GetCurrentFileNum()const noexcept{return _iFile;}
61 Int_t GetCurrentFileRecords()const noexcept{return _NcurrRecords;}
62
63 HipoChain* GetChain() const{return _chain;}
64
65 protected:
66
67 std::unique_ptr<clas12::clas12reader> _c12;
68
69 const clas12::rcdb_vals& RcdbVals() const {
70 return _c12->rcdb()->current();
71 }
72
73 clas12::ccdb_reader* ccdb()const {return _chain->db()->cc();}
74 clas12::CCDBTable requestCCDBTable(const std::string& tableName){
75 if(ccdb()==nullptr)return nullptr;
76 return &(ccdb()->requestTableDoubles(tableName));
77 }
78 clas12::rcdb_reader* rcdb()const {return _chain->db()->rc();}
79 clas12::qadb_reader* qadb()const {return _chain->db()->qa();}
80
81 TNamed _rcdbPath;
82 TNamed _ccdbPath;
83
84 private:
85
86 HipoChain* _chain={nullptr};
87
88 Int_t _NcurrRecords=0;
89 Int_t _iRecord=0;
90 Int_t _iFile=0;
91 Long64_t _NfileRecords=0;
92
93 NumbersObject _runNumbers;
94
95 ClassDefOverride(clas12root::HipoSelector,0);
96
97 };
98}
99
100
101#endif // #ifdef HipoSelector_cxx
Definition ccdb_reader.h:19
const TableOfDoubles_t & requestTableDoubles(std::string tableName)
Definition ccdb_reader.cpp:88
Definition qadb_reader.h:16
Definition rcdb_reader.h:25
Clas12root reader of multiple HIPO files.
Definition HipoChain.h:20
Definition HipoSelector.h:37
std::unique_ptr< clas12::clas12reader > _c12
Definition HipoSelector.h:67
Bool_t Notify() override
Definition HipoSelector.cpp:86
Int_t GetCurrentFileNum() const noexcept
Definition HipoSelector.h:60
TNamed _ccdbPath
Definition HipoSelector.h:82
virtual ~HipoSelector()=default
void SlaveTerminate() override
Definition HipoSelector.cpp:133
TNamed _rcdbPath
Definition HipoSelector.h:81
clas12::rcdb_reader * rcdb() const
Definition HipoSelector.h:78
Int_t GetCurrentFileRecords() const noexcept
Definition HipoSelector.h:61
const clas12::rcdb_vals & RcdbVals() const
Definition HipoSelector.h:69
HipoChain * GetChain() const
Definition HipoSelector.h:63
void SlaveBegin(TTree *tree) override
Definition HipoSelector.cpp:71
void Terminate() override
Definition HipoSelector.cpp:145
void Begin(TTree *tree) override
Definition HipoSelector.cpp:37
virtual void AddFilter()
Definition HipoSelector.h:57
Int_t GetCurrentRecord() const noexcept
Definition HipoSelector.h:59
Bool_t Process(Long64_t entry) override
Definition HipoSelector.cpp:94
HipoSelector(TTree *=0)
Definition HipoSelector.cpp:28
clas12::CCDBTable requestCCDBTable(const std::string &tableName)
Definition HipoSelector.h:74
clas12::qadb_reader * qadb() const
Definition HipoSelector.h:79
virtual Bool_t ProcessEvent()=0
Int_t Version() const final
Definition HipoSelector.h:46
clas12::ccdb_reader * ccdb() const
Definition HipoSelector.h:73
Definition HipoSelector.h:24
std::set< int > _theset
Definition HipoSelector.h:26
ClassDef(clas12root::NumbersObject, 1)
void PrintNumbers()
Definition HipoSelector.h:27
const clas12::TableOfDoubles_t * CCDBTable
Definition ccdb_reader.h:18
Definition BankHist.cpp:6
Definition rcdb_vals.h:8