R3BROOT
R3B analysis software
Loading...
Searching...
No Matches
R3BNeulandClusterMon.h
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright (C) 2019 GSI Helmholtzzentrum für Schwerionenforschung GmbH *
3 * Copyright (C) 2019-2025 Members of R3B Collaboration *
4 * *
5 * This software is distributed under the terms of the *
6 * GNU General Public Licence (GPL) version 3, *
7 * copied verbatim in the file "LICENSE". *
8 * *
9 * In applying this license GSI does not waive the privileges and immunities *
10 * granted to it by virtue of its status as an Intergovernmental Organization *
11 * or submit itself to any jurisdiction. *
12 ******************************************************************************/
13
14#ifndef R3BNEULANDCLUSTERMON_H
15#define R3BNEULANDCLUSTERMON_H
16
26
27#include "FairTask.h"
28#include "Filterable.h"
29#include "R3BNeulandCluster.h"
30#include <R3BIOConnector.h>
31
32class TH1D;
33class TH2D;
34class TH3D;
35
36class R3BNeulandClusterMon : public FairTask
37{
38 public:
39 explicit R3BNeulandClusterMon(TString input = "NeulandClusters",
40 TString output = "NeulandClusterMon",
41 const Option_t* option = "");
42
43 protected:
44 auto Init() -> InitStatus override;
45 void Finish() override;
46
47 public:
48 void Exec(Option_t*) override;
49 void SetBeta(double b) { fBeta = b; }
50 void AddFilter(const Filterable<R3BNeulandCluster*>::Filter& f) { fClusterFilters.Add(f); }
51
52 private:
54 std::vector<R3BNeulandCluster> fNeulandClustersBuffer;
55 TString fOutput;
56
57 double fBeta; // just for ClusterRValue
58
59 Bool_t fIs3DTrackEnabled;
60 TH3D* fh3;
61
62 TH1D* fhClusters;
63 TH1D* fhClusterSize;
64 TH1D* fhClusterEnergy;
65 TH1D* fhClusterRValue;
66 TH2D* fhClusterEnergyVSSize;
67 TH1D* fhClusterEToF;
68 TH1D* fhClusterTime;
69 TH2D* fhClusterNumberVSEnergy;
70 TH2D* fhClusterEToFVSEnergy;
71 TH2D* fhClusterEToFVSTime;
72 TH2D* fhClusterEVSTime;
73
74 TH2D* fhClusterEnergyVSEToF;
75 TH2D* fhClusterSizeVSEToF;
76 TH3D* fhClusterEnergyVSSizeVSEToF;
77
78 TH2D* fhElasticTargetMass;
79
80 TH2D* fhClusterForemostMinusCentroidVSEnergy;
81 TH2D* fhClusterForemostMinusMaxEnergyDigiPosVSEnergy;
82
83 TH2D* fhClusterCentroidMinusFirstDigiPosVSEnergy;
84 TH2D* fhClusterMaxEnergyDigiMinusFirstDigiPosVSEnergy;
85 TH2D* fhClusterMaxEnergyDigiMinusCentroidVSEnergy;
86 TH2D* fhClusterEnergyMomentVSEnergy;
87 TH2D* fhClusterEnergyMomentVSClusterSize;
88 TH1D* fhClusterEnergyMoment;
89 TH1D* fhClusterMaxEnergyDigiMinusFirstDigiMag;
90 TH2D* fhClusterLastMinusFirstDigiMagVSEnergy;
91
92 TH2D* fhENFromScatterVSEToF;
93
94 TH2D* fhEToFVSEelastic;
95 TH2D* fhScatteredNEnergyVSAngle;
96 TH2D* fhScatteredNEnergyVSEdep;
97 TH2D* fhScatterAngleVSRecoilAngle;
98 TH2D* fhSumAngleVSRatioErecoEtof;
99 TH2D* fhClusterEnergyVSScatteredRecoilAngle;
100 TH2D* fhClusterEnergyVSScatteredNeutronAngle;
101
102 TH1D* fhZ;
103 TH2D* fhZVSEToF;
104 TH1D* fhDistFromCenter;
105 TH2D* fhDistFromCenterVSEToF;
106 TH1D* fhDeltaT;
107 TH1D* fhForemostMinusFirstDigiTime;
108
109 TH2D* fhThetaEDigi;
110 TH2D* fhThetaEDigiCosTheta;
111
112 TH1D* hT;
113 TH1D* hTNeigh;
114
115 Filterable<R3BNeulandCluster*> fClusterFilters;
116
117 public:
119};
120
121#endif // R3BNEULANDCLUSTERMON_H
std::function< bool(const T)> Filter
Definition Filterable.h:24
void Exec(Option_t *) override
void AddFilter(const Filterable< R3BNeulandCluster * >::Filter &f)
R3BNeulandClusterMon(TString input="NeulandClusters", TString output="NeulandClusterMon", const Option_t *option="")
auto Init() -> InitStatus override
ClassDefOverride(R3BNeulandClusterMon, 0)
InputConnector< std::vector< ElementType > > InputVectorConnector