23#ifndef RestCore_TRestTrackAnalysisProcess
24#define RestCore_TRestTrackAnalysisProcess
26#include <TRestEventProcess.h>
28#include "TRestTrackEvent.h"
37 std::vector<Double_t> fPreviousEventTime;
41 std::vector<std::string> fTrack_LE_EnergyObservables;
42 std::vector<Double_t> fTrack_LE_Threshold;
43 std::vector<Int_t> nTracks_LE;
45 std::vector<std::string> fTrack_HE_EnergyObservables;
46 std::vector<Double_t> fTrack_HE_Threshold;
47 std::vector<Int_t> nTracks_HE;
49 std::vector<std::string> fTrack_En_EnergyObservables;
50 std::vector<Double_t> fTrack_En_Threshold;
51 std::vector<Int_t> nTracks_En;
53 Bool_t fEnableTwistParameters;
55 std::vector<TString> fTwistLowObservables;
56 std::vector<Double_t> fTwistLowTailPercentage;
57 std::vector<Double_t> fTwistLowValue;
59 std::vector<TString> fTwistHighObservables;
60 std::vector<Double_t> fTwistHighTailPercentage;
61 std::vector<Double_t> fTwistHighValue;
63 std::vector<TString> fTwistBalanceObservables;
64 std::vector<Double_t> fTwistBalanceTailPercentage;
65 std::vector<Double_t> fTwistBalanceValue;
67 std::vector<TString> fTwistRatioObservables;
68 std::vector<Double_t> fTwistRatioTailPercentage;
69 std::vector<Double_t> fTwistRatioValue;
71 std::vector<TString> fTwistWeightedLowObservables;
72 std::vector<Double_t> fTwistWeightedLowTailPercentage;
73 std::vector<Double_t> fTwistWeightedLowValue;
75 std::vector<TString> fTwistWeightedHighObservables;
76 std::vector<Double_t> fTwistWeightedHighTailPercentage;
77 std::vector<Double_t> fTwistWeightedHighValue;
79 std::vector<TString> fTwistLowObservables_X;
80 std::vector<Double_t> fTwistLowTailPercentage_X;
81 std::vector<Double_t> fTwistLowValue_X;
83 std::vector<TString> fTwistHighObservables_X;
84 std::vector<Double_t> fTwistHighTailPercentage_X;
85 std::vector<Double_t> fTwistHighValue_X;
87 std::vector<TString> fTwistBalanceObservables_X;
88 std::vector<Double_t> fTwistBalanceTailPercentage_X;
89 std::vector<Double_t> fTwistBalanceValue_X;
91 std::vector<TString> fTwistRatioObservables_X;
92 std::vector<Double_t> fTwistRatioTailPercentage_X;
93 std::vector<Double_t> fTwistRatioValue_X;
95 std::vector<TString> fTwistWeightedLowObservables_X;
96 std::vector<Double_t> fTwistWeightedLowTailPercentage_X;
97 std::vector<Double_t> fTwistWeightedLowValue_X;
99 std::vector<TString> fTwistWeightedHighObservables_X;
100 std::vector<Double_t> fTwistWeightedHighTailPercentage_X;
101 std::vector<Double_t> fTwistWeightedHighValue_X;
103 std::vector<TString> fTwistLowObservables_Y;
104 std::vector<Double_t> fTwistLowTailPercentage_Y;
105 std::vector<Double_t> fTwistLowValue_Y;
107 std::vector<TString> fTwistHighObservables_Y;
108 std::vector<Double_t> fTwistHighTailPercentage_Y;
109 std::vector<Double_t> fTwistHighValue_Y;
111 std::vector<TString> fTwistBalanceObservables_Y;
112 std::vector<Double_t> fTwistBalanceTailPercentage_Y;
113 std::vector<Double_t> fTwistBalanceValue_Y;
115 std::vector<TString> fTwistRatioObservables_Y;
116 std::vector<Double_t> fTwistRatioTailPercentage_Y;
117 std::vector<Double_t> fTwistRatioValue_Y;
119 std::vector<TString> fTwistWeightedLowObservables_Y;
120 std::vector<Double_t> fTwistWeightedLowTailPercentage_Y;
121 std::vector<Double_t> fTwistWeightedLowValue_Y;
123 std::vector<TString> fTwistWeightedHighObservables_Y;
124 std::vector<Double_t> fTwistWeightedHighTailPercentage_Y;
125 std::vector<Double_t> fTwistWeightedHighValue_Y;
132 void LoadDefaultConfig();
137 TVector2 fNTracksXCut;
138 TVector2 fNTracksYCut;
139 Double_t fDeltaEnergy;
149 void LoadConfig(
const std::string& configFilename,
const std::string& name =
"");
155 std::cout <<
"Number of tracks in X cut : ( " << fNTracksXCut.X() <<
" , " << fNTracksXCut.Y()
156 <<
" ) " << std::endl;
157 std::cout <<
"Number of tracks in Y cut : ( " << fNTracksYCut.X() <<
" , " << fNTracksYCut.Y()
158 <<
" ) " << std::endl;
160 std::cout << std::endl;
161 std::cout <<
"No cuts have been enabled" << std::endl;
167 const char* GetProcessName()
const override {
return "trackAnalysis"; }
A base class for any REST event process.
void BeginPrintProcess()
[name, cut range]
A base class for any REST event.
An analysis REST process to extract valuable information from Track type of data.
void InitProcess() override
To be executed at the beginning of the run (outside event loop)
void PrintMetadata() override
Implemented it in the derived metadata class to print out specific metadata information.
void InitFromConfigFile() override
To make settings from rml file. This method must be implemented in the derived class.
RESTValue GetOutputEvent() const override
Get pointer to output event. Must be implemented in the derived class.
TRestEvent * ProcessEvent(TRestEvent *inputEvent) override
Process one event.
RESTValue GetInputEvent() const override
Get pointer to input event. Must be implemented in the derived class.
void Initialize() override
Making default settings.
void EndProcess() override
To be executed at the end of the run (outside event loop)