Heavy ion Analysis Libriares
Loading...
Searching...
No Matches
CutMonitor.h
1/*
2 * CutMonitor.h
3 *
4 * Created on: 04-05-2022
5 * Author: Daniel Wielanek
6 */
7
8#ifndef HALCUTMONITOR_H_
9#define HALCUTMONITOR_H_
10
11#include <TObject.h>
12#include <TString.h>
13
14#include "Std.h"
15
16namespace Hal {
17 class Cut;
18 class Package;
19
23 class CutContainer;
24 class CutMonitor : public TObject {
25 friend class CutContainer;
26
27 protected:
31 const Int_t fAxisNo;
35 Int_t fCuts;
43 Int_t* fAxisBins; //[fAxisNo]
47 Int_t* fOptionAxis; //[fAxisNo]
59 Double_t* fAxisMin; //[fAxisNo]
63 Double_t* fAxisMax; //[fAxisNo]
67 Bool_t fInit;
71 Bool_t fExUpdate;
75 Cut** fCut; //[fAxisNo]
79 TString* fCutNames; //[fAxisNo]
83 ECutUpdate fUpdateRatio;
87 virtual void CreateHistograms();
92 virtual void TrueUpdate(Bool_t passed);
100 void SetAxis(Int_t bins, Double_t min, Double_t max, Int_t opt);
106 void SetAxisList(std::initializer_list<Double_t> axis, Char_t opt);
112 Cut* GetCut(Int_t i) const;
113
114 public:
119 CutMonitor(Int_t size = 0);
124 CutMonitor(const CutMonitor& other);
130 CutMonitor& operator=(const CutMonitor& other);
134 void Reset();
141 void AddCut(TString cut, Int_t parameter_no = 0);
148 void SetXaxis(Int_t bins, Double_t min, Double_t max);
155 void SetYaxis(Int_t bins, Double_t min, Double_t max);
162 void SetZaxis(Int_t bins, Double_t min, Double_t max);
169 void AddForcedCut(Cut* cut, Int_t no);
174 void CopySettings(const CutMonitor* original);
179 void SetCollectionID(Int_t i);
188 Int_t GetCollectionID() const { return fCollectionID; };
193 Int_t GetAxisNo() const { return fAxisNo; };
199 Int_t GetCutParameter(Int_t i) const;
205 Bool_t AreSimilar(CutMonitor* other) const;
211 TString GetCutName(Int_t i) const { return fCutNames[i]; };
216 ECutUpdate GetUpdateRatio() const;
221 virtual Bool_t ObjMonitor() const { return kFALSE; };
226 virtual Bool_t Init(Int_t task_id);
232 virtual void Update(Bool_t passed, TObject* obj);
237 virtual CutMonitor* MakeCopy() const;
242 virtual Package* Report() const;
248 Cut* GetCutLink(Int_t i) const { return fCut[i]; };
249 virtual ~CutMonitor();
250 ClassDef(CutMonitor, 1)
251 };
252} // namespace Hal
253#endif /* HALCUTMONITOR_H_ */
CutMonitor & operator=(const CutMonitor &other)
void CopySettings(const CutMonitor *original)
CutMonitor(Int_t size=0)
void EnableExclusiveUpdate()
Int_t GetCutParameter(Int_t i) const
void AddCut(TString cut, Int_t parameter_no=0)
TString * fCutNames
Definition CutMonitor.h:79
Double_t * fAxisMax
Definition CutMonitor.h:63
virtual void Update(Bool_t passed, TObject *obj)
Int_t fCollectionID
Definition CutMonitor.h:39
void AddForcedCut(Cut *cut, Int_t no)
TString GetCutName(Int_t i) const
Definition CutMonitor.h:211
void SetYaxis(Int_t bins, Double_t min, Double_t max)
Bool_t AreSimilar(CutMonitor *other) const
Int_t GetCollectionID() const
Definition CutMonitor.h:188
virtual void TrueUpdate(Bool_t passed)
Cut * GetCutLink(Int_t i) const
Definition CutMonitor.h:248
virtual Bool_t Init(Int_t task_id)
void SetZaxis(Int_t bins, Double_t min, Double_t max)
Int_t * fAxisBins
Definition CutMonitor.h:43
const Int_t fAxisNo
Definition CutMonitor.h:31
virtual Bool_t ObjMonitor() const
Definition CutMonitor.h:221
void SetAxis(Int_t bins, Double_t min, Double_t max, Int_t opt)
void SetAxisList(std::initializer_list< Double_t > axis, Char_t opt)
Int_t * fOptionAxis
Definition CutMonitor.h:47
ECutUpdate GetUpdateRatio() const
virtual void CreateHistograms()
virtual CutMonitor * MakeCopy() const
Double_t * fAxisMin
Definition CutMonitor.h:59
Int_t GetAxisNo() const
Definition CutMonitor.h:193
void SetCollectionID(Int_t i)
Cut * GetCut(Int_t i) const
void SetXaxis(Int_t bins, Double_t min, Double_t max)
ECutUpdate fUpdateRatio
Definition CutMonitor.h:83
virtual Package * Report() const
Definition Cut.h:40