GRSISort "v4.0.0.5"
An extension of the ROOT analysis Framework
Loading...
Searching...
No Matches
TFragHistLoop.h
Go to the documentation of this file.
1#ifndef TFRAGHISTOGRAMLOOP_H
2#define TFRAGHISTOGRAMLOOP_H
3
4/** \addtogroup Loops
5 * @{
6 */
7
8////////////////////////////////////////////////////////////////////////////////
9///
10/// \class TFragHistLoop
11///
12/// This loop takes fragments and fills histograms based on
13/// 'histos/MakeFragmentHistograms.cxx'
14///
15////////////////////////////////////////////////////////////////////////////////
16
17#include <string>
18
19#include "StoppableThread.h"
20#include "TCompiledHistograms.h"
21#include "ThreadsafeQueue.h"
22
23class TFile;
24
26public:
27 static TFragHistLoop* Get(std::string name = "");
28
29 TFragHistLoop(const TFragHistLoop&) = delete;
30 TFragHistLoop(TFragHistLoop&&) noexcept = delete;
31 TFragHistLoop& operator=(const TFragHistLoop&) = delete;
32 TFragHistLoop& operator=(TFragHistLoop&&) noexcept = delete;
34
35#ifndef __CINT__
36 std::shared_ptr<ThreadsafeQueue<std::shared_ptr<const TFragment>>>& InputQueue()
37 {
38 return fInputQueue;
39 }
40#endif
41
42 void SetOutputFilename(const std::string& name);
43 std::string GetOutputFilename() const;
44
45 void LoadLibrary(const std::string& library);
46 std::string GetLibraryName() const;
47 void ClearHistograms();
48
49 void AddCutFile(TFile* cut_file);
50
51 void Write();
52
53 void ClearQueue() override;
54
55 TList* GetObjects();
56 TList* GetGates();
57
58 size_t GetItemsPopped() override { return 0; }
59 size_t GetItemsPushed() override { return 0; }
60 size_t GetItemsCurrent() override { return 0; }
61 size_t GetRate() override { return 0; }
62
63protected:
64 bool Iteration() override;
65
66private:
67 explicit TFragHistLoop(std::string name);
68
70
71 void OpenFile();
72 void CloseFile();
73
75 std::string fOutputFilename;
76
77#ifndef __CINT__
78 std::shared_ptr<ThreadsafeQueue<std::shared_ptr<const TFragment>>> fInputQueue;
79#endif
80
81 /// \cond CLASSIMP
82 ClassDefOverride(TFragHistLoop, 0) // NOLINT(readability-else-after-return)
83 /// \endcond
84};
85
86/*! @} */
87#endif /* _THISTOGRAMLOOP_H_ */
void LoadLibrary(const std::string &library)
std::string GetLibraryName() const
static TFragHistLoop * Get(std::string name="")
size_t GetItemsCurrent() override
void ClearQueue() override
size_t GetItemsPushed() override
std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TFragment > > > fInputQueue
bool Iteration() override
TFragHistLoop(const TFragHistLoop &)=delete
TFragHistLoop(TFragHistLoop &&) noexcept=delete
TList * GetObjects()
std::string fOutputFilename
TCompiledHistograms fCompiledHistograms
std::shared_ptr< ThreadsafeQueue< std::shared_ptr< const TFragment > > > & InputQueue()
size_t GetRate() override
void AddCutFile(TFile *cut_file)
std::string GetOutputFilename() const
void SetOutputFilename(const std::string &name)
TFile * fOutputFile
size_t GetItemsPopped() override