FEDRA emulsion software from the OPERA Collaboration
EdbIP.h
Go to the documentation of this file.
1#ifndef ROOT_EdbIP
2#define ROOT_EdbIP
5
11
12#include "TNamed.h"
13#include "TArrayF.h"
14#include "EdbCluster.h"
15
16class EdbImage;
17class EdbFrame;
18class TTree;
19class EdbView;
20
22class EdbFIRF : public TNamed {
23
24private:
25
26 TArrayF *eArr;
27 Int_t eColumns;
28 Int_t eRows;
29
30 static const Float_t eg3x3A[];
31 static const Float_t egHP1[];
32 static const Float_t egHP2[];
33 static const Float_t egHP3[];
34 static const Float_t eg5x5A[];
35 static const Float_t eg5x5B[];
36 static const Float_t eg5x5C[];
37 static const Float_t eg6x6A[];
38
39public:
41 EdbFIRF(int cols, int rows);
42 EdbFIRF( const char *firf );
43 virtual ~EdbFIRF();
44
45 float Cell(int x, int y) { return eArr->At(eColumns*y + x); }
46 float *GetBuffer() const { return eArr->GetArray(); }
47 void SetArr(int n, float *arr){}
48 void SetAt(int x,int y, float a) { (eArr->GetArray())[eColumns*y + x]=a; }
49 void Reflect4();
50 void Print();
51 static void PrintList();
52 TH2F* ApplyTo(EdbImage* img);
53
54 ClassDef(EdbFIRF,1) // FIR filter
55};
56
58class EdbClustP : public EdbCluster {
59
60 private:
61
62 Float_t eXcg, eYcg;
63 Float_t ePeak;
64 Float_t eXp, eYp;
65
66 public:
67 EdbClustP();
68
69 void SetCG( float x, float y ) {eXcg=x; eYcg=y;}
70 void SetPeak( float x, float y, float peak ) {eXp=x; eYp=y; ePeak=peak;}
71 float Xcg() const {return eXcg;}
72 float Ycg() const {return eYcg;}
73 float Peak() const {return ePeak;}
74 float Xp() const {return eXp;}
75 float Yp() const {return eYp;}
76 void AddPixel( float ic, float ir, float pix );
77 void AddPixelSum( float ic, float ir, float pix );
78 void AddClusterSum( EdbClustP *c );
79 void Normalize();
80 void Reset();
81 void Print();
82
83 ClassDef(EdbClustP,1) // cluster reconstruction
84};
85
87class EdbIP : public TObject {
88
89 private:
91 Float_t eThr;
92
93 public:
94 EdbIP();
95
96 TTree *InitTree();
97 void SetFIR(EdbFIRF *fir) {eFIR = fir;}
98 void SetThr(Float_t thr) {eThr = thr;}
99
100 static int Peak8 ( TH2F *h, float thr );
101 static int Peak12( TH2F *h, float thr );
102 int CutBG( EdbFrame *frame );
103 int Clusterize( EdbFrame *frame, TTree *tree );
104 static int Clusterize( TH2F *h, float thr, TTree *tree, float z, int ifr );
105 static float BurnPix( TH2F *h, int ic, int ir, float thr, EdbClustP &cl );
106
107 int Clusterize2( EdbFrame *frame, TTree *tree );
108 static int Clusterize2( TH2F *h, float thr, TTree *tree, float z, int ifr );
109
110 static int Clusterize( EdbFrame *f, unsigned char thr, EdbView &v );
111 static int BurnPix( unsigned char *img, int ic, int ir, int nc, unsigned char thr, EdbCluster &cl );
112
113 ClassDef(EdbIP,1) // Image Processing
114};
115
116#endif /* ROOT_EdbIP */
FILE * f
Definition: RecDispMC.C:150
void a()
Definition: check_aligned.C:59
cluster reconstruction
Definition: EdbIP.h:58
Float_t eXp
Definition: EdbIP.h:64
void Normalize()
Definition: EdbIP.cxx:236
EdbClustP()
Definition: EdbIP.cxx:189
float Xcg() const
Definition: EdbIP.h:71
Float_t eYp
peak position
Definition: EdbIP.h:64
Float_t eXcg
Definition: EdbIP.h:62
float Ycg() const
Definition: EdbIP.h:72
void SetCG(float x, float y)
Definition: EdbIP.h:69
void Print()
Definition: EdbIP.cxx:210
float Yp() const
Definition: EdbIP.h:75
void AddPixelSum(float ic, float ir, float pix)
Definition: EdbIP.cxx:216
void SetPeak(float x, float y, float peak)
Definition: EdbIP.h:70
Float_t eYcg
center of gravity with gray level
Definition: EdbIP.h:62
void AddClusterSum(EdbClustP *c)
Definition: EdbIP.cxx:226
void AddPixel(float ic, float ir, float pix)
Definition: EdbIP.cxx:195
void Reset()
Definition: EdbIP.cxx:245
float Peak() const
Definition: EdbIP.h:73
float Xp() const
Definition: EdbIP.h:74
Float_t ePeak
peak height (above threshold)
Definition: EdbIP.h:63
Definition: EdbCluster.h:19
FIR filter.
Definition: EdbIP.h:22
static void PrintList()
Definition: EdbIP.cxx:158
static const Float_t egHP3[]
Definition: EdbIP.h:33
void Print()
Definition: EdbIP.cxx:143
TH2F * ApplyTo(EdbImage *img)
Definition: EdbIP.cxx:166
void Reflect4()
Copy left top corner to other quadrants with reflection.
Definition: EdbIP.cxx:127
void SetAt(int x, int y, float a)
Definition: EdbIP.h:48
void SetArr(int n, float *arr)
Definition: EdbIP.h:47
float Cell(int x, int y)
Definition: EdbIP.h:45
Int_t eColumns
number of columns of the matrix (1 row length)
Definition: EdbIP.h:27
static const Float_t egHP1[]
Definition: EdbIP.h:31
static const Float_t egHP2[]
Definition: EdbIP.h:32
Int_t eRows
number of rows of the matrix
Definition: EdbIP.h:28
static const Float_t eg5x5A[]
Definition: EdbIP.h:34
float * GetBuffer() const
Definition: EdbIP.h:46
static const Float_t eg5x5C[]
Definition: EdbIP.h:36
virtual ~EdbFIRF()
Definition: EdbIP.cxx:121
TArrayF * eArr
Definition: EdbIP.h:26
static const Float_t eg3x3A[]
Definition: EdbIP.h:30
static const Float_t eg5x5B[]
Definition: EdbIP.h:35
EdbFIRF()
Definition: EdbIP.h:40
static const Float_t eg6x6A[]
Definition: EdbIP.h:37
Definition: EdbFrame.h:20
Image Processing.
Definition: EdbIP.h:87
void SetThr(Float_t thr)
Definition: EdbIP.h:98
static int Peak12(TH2F *h, float thr)
Definition: EdbIP.cxx:295
Float_t eThr
threshold
Definition: EdbIP.h:91
int Clusterize2(EdbFrame *frame, TTree *tree)
Definition: EdbIP.cxx:477
EdbFIRF * eFIR
Definition: EdbIP.h:90
TTree * InitTree()
Definition: EdbIP.cxx:347
EdbIP()
Definition: EdbIP.cxx:253
void SetFIR(EdbFIRF *fir)
Definition: EdbIP.h:97
int CutBG(EdbFrame *frame)
Definition: EdbIP.cxx:361
static float BurnPix(TH2F *h, int ic, int ir, float thr, EdbClustP &cl)
Definition: EdbIP.cxx:451
static int Peak8(TH2F *h, float thr)
Definition: EdbIP.cxx:261
int Clusterize(EdbFrame *frame, TTree *tree)
Definition: EdbIP.cxx:398
Definition: EdbImage.h:23
Base scanning data object: entry into Run tree.
Definition: EdbView.h:134