PandaRoot
PndPatternDBMerger.h
Go to the documentation of this file.
1 /*
2  * PndPatternDBMerger.h
3  *
4  * Created on: Nov 15, 2017
5  * Author: vagrant
6  */
7 
8 #ifndef PNDTRACKERS_PNDPATTERNMATCHER_PNDPATTERNDBMERGER_H_
9 #define PNDTRACKERS_PNDPATTERNMATCHER_PNDPATTERNDBMERGER_H_
10 #include "PndPattern.h"
11 #include <TChain.h>
12 #include <TFile.h>
13 #include <TString.h>
14 #include <TTree.h>
15 
16 // number of identical entries, actual entries in file
17 typedef std::multimap<int, std::set<int>> IdenticalEntries;
18 
20  public:
22  virtual ~PndPatternDBMerger();
23 
24  void SetInputFilename(TString filename) { finputFilename = filename; }
25  void SetInputTreename(TString treename) { finputTreename = treename; }
26  void SetOutputFilename(TString filename) { foutputFilename = filename; }
27  void SetOutputTreename(TString treename) { foutputTreename = treename; }
28 
29  void Execute();
30 
31  private:
32  bool InitInputChain();
33  void InitOutputTree();
34 
35  IdenticalEntries FindIdenticalEntries();
36  std::vector<PndPattern> GetPatternsForMerging(std::pair<int, std::set<int>> entryPair);
37  PndPattern MergePatterns(std::vector<PndPattern> &entries);
38  void FillOutputTree(PndPattern &mergedPattern);
39 
40  TChain *fpatternTree;
41  TFile *foutputDBFile;
42  TTree *foutputTree;
43 
44  TString finputFilename;
45  TString finputTreename;
46  TString foutputFilename;
47  TString foutputTreename;
48 
49  PndPattern *bPattern;
50  PndPattern *bMergedPattern;
51 
52  ClassDef(PndPatternDBMerger, 1)
53 };
54 
55 #endif /* PNDTRACKERS_PNDPATTERNMATCHER_PNDPATTERNDBMERGER_H_ */
void SetOutputFilename(TString filename)
virtual ~PndPatternDBMerger()
void SetInputFilename(TString filename)
std::multimap< int, std::set< int > > IdenticalEntries
void SetOutputTreename(TString treename)
void SetInputTreename(TString treename)