CbmRoot
Loading...
Searching...
No Matches
CbmRichTrainAnnSelect.h
Go to the documentation of this file.
1/* Copyright (C) 2005-2017 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Claudia Hoehne [committer], Semen Lebedev */
4
14#ifndef CBM_RICH_TRAIN_ANN_SELECT
15#define CBM_RICH_TRAIN_ANN_SELECT
16
19#include "FairTask.h"
20#include "TH1D.h"
21
22#include <vector>
23using std::vector;
24
25//class TH1D;
26//class TH1;
27//class CbmRichRingFitterCOP;
28//class CbmRichRingSelectImpl;
29class CbmRichRing;
30
31class TClonesArray;
32
42 public:
43 Double_t fNofHits;
44 Double_t fAngle;
45 Double_t fHitsOnRing;
46 Double_t fRadPos;
47 Double_t fChi2;
48 Double_t fRadius;
49};
50
59class CbmRichTrainAnnSelect : public FairTask {
60 public:
65
69 virtual ~CbmRichTrainAnnSelect();
70
74 virtual InitStatus Init();
75
79 virtual void Exec(Option_t* option);
80
84 virtual void FinishTask();
85
86 private:
87 TClonesArray* fRichRings; // Array of CbmRichRings
88 TClonesArray* fMcTracks; // Array of CbmMCTracks
89 TClonesArray* fRichRingMatches; // Array of CbmRichRingMatch
90
92 Double_t fQuota; // Quality quota for reconstructed ring
93 UInt_t fMaxNofTrainSamples; // maximum number of train samples for ANN
96 Double_t fAnnCut;
97
98 // Difference Fake and True rings histograms BEGIN
99 // [0] = is true; [1] = is fake
100 vector<TH1D*> fhNofHits;
101 vector<TH1D*> fhAngle;
102 vector<TH1D*> fhNofHitsOnRing;
103 vector<TH1D*> fhChi2;
104 vector<TH1D*> fhRadPos;
105 vector<TH1D*> fhRadius;
106
107 // ANN outputs
108 // [0] = is true; [1] = is fake
109 vector<TH1D*> fhAnnOutput;
110 vector<TH1D*> fhCumProb;
111
112 // Data for ANN input
113 // [0] = true, [1] = fake
114 vector<vector<RingSelectParam>> fRSParams;
115
116 CbmRichRingFitterCOP* fFitCOP; // Pointer to COP fitter
117 CbmRichRingSelectImpl* fSelectImpl; // Pointer to ellipse fitter
118
119 vector<TH1*> fHists; // Store pointer for all histograms
120
124 void SetRecFlag();
125
129 void DiffFakeTrueCircle();
130
134 void TrainAndTestAnn();
135
139 void Draw(Option_t* = "");
140
145
150
151 ClassDef(CbmRichTrainAnnSelect, 1)
152};
153
154#endif
Here the ring is fitted with the COP algorithm from A. Ayriyan/G. Ososkov.
Here the ring is fitted with the COP algorithm from A. Ayriyan/G. Ososkov.
Train ANN for fake rejection.
virtual void FinishTask()
Inherited from FairTask.
void TrainAndTestAnn()
Train and test ANN.
CbmRichRingFitterCOP * fFitCOP
vector< vector< RingSelectParam > > fRSParams
CbmRichTrainAnnSelect()
Default constructor.
CbmRichRingSelectImpl * fSelectImpl
void Draw(Option_t *="")
Draw results.
void SetRecFlag()
Set recFlag weather ring was found correctly or not.
CbmRichTrainAnnSelect(const CbmRichTrainAnnSelect &)
Copy constructor.
virtual void Exec(Option_t *option)
Inherited from FairTask.
void DiffFakeTrueCircle()
Fill ring selection parameters in array and histograms.
virtual InitStatus Init()
Inherited from FairTask.
virtual ~CbmRichTrainAnnSelect()
Destructor.
CbmRichTrainAnnSelect & operator=(const CbmRichTrainAnnSelect &)
Assignment operator.
Input Parameters for ANN.