Heavy ion Analysis Libriares
Loading...
Searching...
No Matches
CutsAndMonitors.h
1/*
2 * Cuts.h
3 *
4 * Created on: 04-05-2022
5 * Author: Daniel Wielanek
6 * E-mail: daniel.wielanek@gmail.com
7 * Warsaw University of Technology, Faculty of Physics
8 */
9#ifndef HALCUTSANDMONITORS_HALCUTS_H_
10#define HALCUTSANDMONITORS_HALCUTS_H_
11
12#include "Cut.h"
13#include "CutMonitor.h"
14#include "CutMonitorRequest.h"
15
16#include <TLorentzVector.h>
17#include <TString.h>
18
19
20class TObjString;
21namespace Hal {
22 class CutMonitorX;
23 class CutMonitorYX;
24 class CutMonitorXYZ;
25
37 class CutsAndMonitors : public TObject {
38 TObjArray* fCuts;
39 TObjArray* fCutsOptions;
40 TObjArray* fCutMonitors;
41 TObjArray* fCutMonitorsOptions;
42 TString fGlobalOptionCuts;
43 TString fGlobalOptionsCutMonitors;
44 std::vector<CutMonitorRequest> fCutMonitorRequests;
45
46 protected:
52 Cut* CutAt(Int_t i) const;
58 CutMonitor* MonitorAt(Int_t i) const;
62 void ClearCuts();
66 void ClearMonitors();
72 void AddRawCut(Cut* cut, TObjString* opt = nullptr);
78 void AddRawCutMonitor(CutMonitor* mon, TObjString* opt = nullptr);
89 void AddCutMonitorRequest(const CutMonAxisConf& x, const CutMonAxisConf& y);
96 void AddCutMonitorRequest(const CutMonAxisConf& x, const CutMonAxisConf& y, const CutMonAxisConf& z);
101 virtual void AddAllCutMonitorRequests(Option_t* opt) = 0;
107 CutMonitor* MakeCutMonitor(Int_t request_no) const;
113 Int_t GetCutNo(TString classname) const;
114
115 public:
117 CutsAndMonitors(const CutsAndMonitors& other);
118 CutsAndMonitors& operator=(const CutsAndMonitors& other);
123 void SetOptionForAllCuts(TString opt) { fGlobalOptionCuts = opt; };
128 void SetOptionForAllMonitors(TString opt) { fGlobalOptionsCutMonitors = opt; }
134 void AddCut(const Cut& cut, Option_t* opt = "");
141 void AddCutMonitor(const CutMonitor& monitor, Option_t* opt = "");
146 void SetCollectionID(Int_t id);
152 const Cut* GetCut(Int_t i) const;
158 TString GetCutOption(Int_t i) const;
163 TString GetGlobalCutOption() { return fGlobalOptionCuts; };
169 const CutMonitor* GetMonitor(Int_t i) const;
174 TString GetGlobalCutMonitorOption() { return fGlobalOptionsCutMonitors; };
180 TString GetCutMonitorOption(Int_t i) const;
185 Int_t GetNCuts() const;
190 Int_t GetNCutMonitors() const;
195 Int_t GetNRequest() const { return fCutMonitorRequests.size(); }
201 CutMonitorRequest& GetCutMonitorRequest(Int_t i) { return fCutMonitorRequests[i]; }
205 void MakeCutMonitors(Option_t* opt = "");
206 virtual ~CutsAndMonitors();
207 ClassDef(CutsAndMonitors, 1)
208 };
209} // namespace Hal
210#endif /* HALCUTSANDMONITORS_HALCUTS_H_ */
Definition Cut.h:40
Int_t GetNCutMonitors() const
void MakeCutMonitors(Option_t *opt="")
void AddCutMonitor(const CutMonitor &monitor, Option_t *opt="")
CutMonitor * MonitorAt(Int_t i) const
TString GetGlobalCutMonitorOption()
CutMonitorRequest & GetCutMonitorRequest(Int_t i)
Int_t GetNRequest() const
void AddRawCut(Cut *cut, TObjString *opt=nullptr)
void SetOptionForAllMonitors(TString opt)
void SetOptionForAllCuts(TString opt)
TString GetCutOption(Int_t i) const
const CutMonitor * GetMonitor(Int_t i) const
CutMonitor * MakeCutMonitor(Int_t request_no) const
Int_t GetCutNo(TString classname) const
void AddCut(const Cut &cut, Option_t *opt="")
void SetCollectionID(Int_t id)
virtual void AddAllCutMonitorRequests(Option_t *opt)=0
const Cut * GetCut(Int_t i) const
TString GetCutMonitorOption(Int_t i) const
void AddCutMonitorRequest(const CutMonAxisConf &x)
void AddRawCutMonitor(CutMonitor *mon, TObjString *opt=nullptr)
Cut * CutAt(Int_t i) const