FEDRA emulsion software from the OPERA Collaboration
EdbViewMatch Class Reference

#include <EdbViewMatch.h>

Inheritance diagram for EdbViewMatch:
Collaboration diagram for EdbViewMatch:

Public Member Functions

void AddCluster (float x, float y, float z, float xv, float yv, int view, int frame)
 
void CalculateCorr ()
 
void CalculateGrRef ()
 
void CutGrRef ()
 
void DrawCorrMap ()
 
TNtuple * DumpGr (const char *name)
 
 EdbViewMatch ()
 
void GenerateCorrectionMatrix (const char *addfile)
 
void InitCorrMap ()
 
void InitGMap ()
 
void MakeDistortionMap (const char *fname, TEnv &env, const char *addfile=0)
 
void Print ()
 
void SetPar (TEnv &env)
 
void SetPixelSize (float xpix, float ypix)
 
virtual ~EdbViewMatch ()
 

Public Attributes

float eAreaMax
 
float eAreaMin
 
bool eDumpGr
 
TFile * eOutputFile
 
float eVolumeMax
 
float eVolumeMin
 

Private Attributes

TClonesArray eCl
 
float eCorrectionMatrixStepX
 
float eCorrectionMatrixStepY
 
EdbCell2 eCorrMap
 
EdbCell2 eGMap
 
TClonesArray eGr
 
int eNClMin
 
int eNXpix
 
int eNYpix
 
float eR2CenterMax
 
float eRmax
 
float eXpix
 
float eYpix
 

Constructor & Destructor Documentation

◆ EdbViewMatch()

EdbViewMatch::EdbViewMatch ( )

◆ ~EdbViewMatch()

virtual EdbViewMatch::~EdbViewMatch ( )
inlinevirtual
59{}

Member Function Documentation

◆ AddCluster()

void EdbViewMatch::AddCluster ( float  x,
float  y,
float  z,
float  xv,
float  yv,
int  view,
int  frame 
)
115{
116 int ind = eCl.GetEntriesFast();
117 EdbClMatch *c = new(eCl[ind]) EdbClMatch(x,y,z, xv,yv, view,frame );
118
119 float v[2]={ x+xv, y+yv };
120 int ir[2]={1,1};
121 TObjArray arr;
122 EdbSegment *s0 = 0;
123 int n = eGMap.SelectObjectsC( v, ir, arr);
124 if(n) {
125 float r, rmin=2.*eRmax;
126 for(int i=0; i<n; i++) {
127 EdbSegment *s = (EdbSegment *)arr.At(i);
128 r = Sqrt( (s->GetX0()-v[0])*(s->GetX0()-v[0]) + (s->GetY0()-v[1])*(s->GetY0()-v[1]) );
129 if(r<eRmax) if(r<rmin) { rmin=r; s0 = s; }
130 }
131 }
132 if(s0) { s0->AddElement(c); s0->SetX0(v[0]); s0->SetY0(v[1]); s0->SetZ0(z); }
133 else {
134 int inds = eGr.GetEntriesFast();
135 EdbSegment *s = new(eGr[inds]) EdbSegment(v[0],v[1],z,0,0);
136 s->AddElement(c);
137 eGMap.AddObject(v, s);
138 }
139}
int SelectObjectsC(int iv[2], int ir[2], TObjArray &arr)
Definition: EdbCell2.cpp:707
bool AddObject(float v[2], TObject *obj)
Definition: EdbCell2.h:173
Definition: EdbViewMatch.h:18
virtual void SetX0(float x)
Definition: EdbSegment.h:45
virtual void SetZ0(float z)
Definition: EdbSegment.h:47
virtual void SetY0(float y)
Definition: EdbSegment.h:46
segment of the track
Definition: EdbSegment.h:63
void AddElement(TObject *element)
Definition: EdbSegment.cxx:150
TClonesArray eGr
Definition: EdbViewMatch.h:41
TClonesArray eCl
Definition: EdbViewMatch.h:40
float eRmax
Definition: EdbViewMatch.h:38
EdbCell2 eGMap
Definition: EdbViewMatch.h:42
s
Definition: check_shower.C:55
void r(int rid=2)
Definition: test.C:201

◆ CalculateCorr()

void EdbViewMatch::CalculateCorr ( )
192{
193 int ngr = eGr.GetEntries();
194 Log(2,"EdbViewMatch::CalculateCorr","%d grains used",ngr);
195 for(int i=0; i<ngr; i++) {
196 EdbSegment *s = ((EdbSegment*)eGr.UncheckedAt(i));
197 int nc = s->GetNelements(); if(!nc) continue;
198 float x0 = s->GetX0(), y0= s->GetY0();
199 for( int ic=0; ic<nc; ic++ ) {
200 EdbClMatch *c = (EdbClMatch *)(s->GetElements()->UncheckedAt(ic));
201 float dx = c->eX+c->eXv - x0;
202 float dy = c->eY+c->eYv - y0;
203 TArrayD *dxy = (TArrayD*)(eCorrMap.GetObject(c->eX, c->eY, 0));
204 if(!dxy) { Log(1,"EdbViewMatch::CalculateCorr","WARNING: null dxy: ic=%d i=%d cx,cy: %f %f",ic,i, c->eX, c->eY); continue; }
205 (*dxy)[0] += dx;
206 (*dxy)[1] += dy;
207 eCorrMap.Fill(c->eX, c->eY);
208 }
209 }
210
211 int nc=eCorrMap.Ncell();
212 Log(2,"EdbViewMatch::CalculateCorr","%d cells in the map",nc);
213 for( int i=0; i<nc; i++ ) {
214 TArrayD *dxy = (TArrayD*)( eCorrMap.GetObject(i, 0 ) ); if(!dxy) continue;
215 int w = eCorrMap.Bin(i); if(!w) continue;
216 (*dxy)[0] /= w;
217 (*dxy)[1] /= w;
218 }
219
220}
bool Log(int level, const char *location, const char *fmt,...)
Definition: EdbLog.cxx:75
TObject * GetObject(float x, float y, int ientr) const
Definition: EdbCell2.h:195
Float_t eX
Definition: EdbViewMatch.h:20
Float_t eXv
Definition: EdbViewMatch.h:21
Float_t eYv
Definition: EdbViewMatch.h:21
Float_t eY
Definition: EdbViewMatch.h:20
int Ncell() const
Definition: EdbCell2.h:49
int Fill(float x, float y)
Definition: EdbCell2.h:88
int Bin(float x, float y) const
Definition: EdbCell2.h:80
EdbCell2 eCorrMap
Definition: EdbViewMatch.h:43
void w(int rid=2, int nviews=2)
Definition: test.C:27

◆ CalculateGrRef()

void EdbViewMatch::CalculateGrRef ( )
143{
144 // take as grain reference position of the most central cluster
145
146 int ngr = eGr.GetEntries();
147 for(int i=0; i<ngr; i++) {
148 EdbSegment *s = ((EdbSegment*)eGr.UncheckedAt(i));
149 int nc = s->GetNelements();
150 //if(nc<eNClMin) { s->GetElements()->Clear(); continue; }
151 float rmin=10000., r;
152 for( int ic=0; ic<nc; ic++ ) {
153 EdbClMatch *c = (EdbClMatch *)(s->GetElements()->UncheckedAt(ic));
154 r = Sqrt( c->eX*c->eX + c->eY*c->eY ); // distance to view center
155 if(r<rmin) { rmin=r; s->SetX0(c->eXv+c->eX); s->SetY0(c->eYv+c->eY); s->SetDz(r); }
156 }
157 //if(rmin>eR2CenterMax) s->GetElements()->Clear();
158 }
159}

◆ CutGrRef()

void EdbViewMatch::CutGrRef ( )
163{
164 // remove marginal grains from calculation
165 int ngr = eGr.GetEntries();
166 for(int i=0; i<ngr; i++) {
167 EdbSegment *s = ((EdbSegment*)eGr.UncheckedAt(i));
168 int nc = s->GetNelements();
169 if (nc<eNClMin) s->GetElements()->Clear();
170 else if(s->GetDz()>eR2CenterMax) s->GetElements()->Clear();
171 }
172}
int eNClMin
Definition: EdbViewMatch.h:36
float eR2CenterMax
Definition: EdbViewMatch.h:37

◆ DrawCorrMap()

void EdbViewMatch::DrawCorrMap ( )
224{
225 bool batch = gROOT->IsBatch();
226 if(eOutputFile) {
227 Log(2,"DrawCorrMap","Save to file %s", eOutputFile->GetName());
228 gROOT->SetBatch();
229 }
230
231 TCanvas *cc = new TCanvas("cc","Corrections map",1200,900);
232
233 gStyle->SetPalette(1);
234 gStyle->SetOptStat(0);
235 gPad->SetGridx(1);
236 gPad->SetGridy(1);
237
238 float margin=10;
239 double minXborder = eCorrMap.Xmin() - margin;
240 double maxXborder = eCorrMap.Xmax() + margin;
241 double minYborder = eCorrMap.Ymin() - margin;
242 double maxYborder = eCorrMap.Ymax() + margin;
243
244 TH2F *hh = new TH2F("hh","Corrections map",100,minXborder,maxXborder,100,minYborder,maxYborder);
245 hh->GetXaxis()->SetTitle("X (#mum)");
246 hh->GetYaxis()->SetTitle("Y (#mum)");
247 hh->Draw();
248
249 TBox *plate = new TBox(eCorrMap.Xmin(),eCorrMap.Ymin(),eCorrMap.Xmax(),eCorrMap.Ymax());
250 plate->SetFillColor(16);
251 plate->SetFillStyle(3001);
252 plate->Draw();
253
254 Double_t meanx=0, meany=0, wtot=0;
255 float scale = 15.;
256 int nc=eCorrMap.Ncell();
257 for( int i=0; i<nc; i++ ) {
258 int w = eCorrMap.Bin(i); if(!w) continue;
259 TArrayD *dxy = (TArrayD*)( eCorrMap.GetObject(i, 0 ) );
260 float x = eCorrMap.Xj(i);
261 float y = eCorrMap.Yj(i);
262 float dx = (*dxy)[0];
263 float dy = (*dxy)[1];
264
265 TArrow *arrow = new TArrow(x,y,x+scale*dx,y+scale*dy,0.01);
266 arrow->SetLineWidth(1);
267 arrow->Draw();
268
269 meanx += dx;
270 meany += dy;
271 wtot += w;
272 }
273
274 meanx /= wtot;
275 meany /= wtot;
276 printf("\nmeanx = %g meany = %g wtot = %f\n", meanx, meany, wtot);
277
278 eGMap.DrawH2("eGMap","entries/bin")->Write();
279 eCorrMap.DrawH2("eCorrMap","entries/bin")->Write();
280 cc->Write("corr_map");
281 gROOT->SetBatch(batch);
282}
float Xmax() const
Definition: EdbCell2.h:65
float Xj(int j) const
Definition: EdbCell2.h:62
float Ymin() const
Definition: EdbCell2.h:66
float Yj(int j) const
Definition: EdbCell2.h:63
TH2F * DrawH2(const char *name="plot2d", const char *title="EdbH2plot2D")
Definition: EdbCell2.cpp:187
float Xmin() const
Definition: EdbCell2.h:64
float Ymax() const
Definition: EdbCell2.h:67
TFile * eOutputFile
Definition: EdbViewMatch.h:52
Int_t plate
Definition: merge_Energy_SytematicSources_Electron.C:1
new TCanvas()

◆ DumpGr()

TNtuple * EdbViewMatch::DumpGr ( const char *  name)
176{
177 TNtuple *nt = new TNtuple( name,"grains dump","ig:n:xg:yg:rmin:nc:ic:xc:yc:xcv:ycv");
178 int ngr = eGr.GetEntries();
179 for(int ig=0; ig<ngr; ig++) {
180 EdbSegment *s = ((EdbSegment*)eGr.UncheckedAt(ig));
181 int nc = s->GetNelements(); if(!nc) continue;
182 for( int ic=0; ic<nc; ic++ ) {
183 EdbClMatch *c = (EdbClMatch *)(s->GetElements()->UncheckedAt(ic));
184 nt->Fill( ig, s->GetNelements(), s->GetX0(), s->GetY0(), s->GetDz(), nc, ic, c->eX, c->eY, c->eXv, c->eYv );
185 }
186 }
187 return nt;
188}
const char * name
Definition: merge_Energy_SytematicSources_Electron.C:24

◆ GenerateCorrectionMatrix()

void EdbViewMatch::GenerateCorrectionMatrix ( const char *  addfile)
286{
287 int nentries = eCorrMap.Ncell();
288 Double_t *vx = new Double_t[nentries];
289 Double_t *vy = new Double_t[nentries];
290 Double_t *vdx = new Double_t[nentries];
291 Double_t *vdy = new Double_t[nentries];
292
293 for(int i=0; i<nentries; i++) {
294 int w = eCorrMap.Bin(i); if(!w) continue;
295 TArrayD *arr = (TArrayD*)eCorrMap.GetObject(i,0);
296 if(!arr) { Log(1,"EdbViewMatch::GenerateCorrectionMatrix","ERROR: missed bin"); break; }
297 vx[i] = eCorrMap.Xj(i);
298 vy[i] = eCorrMap.Yj(i);
299
300 vdx[i] = arr->At(0);
301 vdy[i] = arr->At(1);
302 }
303
304 TGraph2D *gdx = new TGraph2D("graphDX","graphDX",nentries,vx,vy,vdx);
305 TGraph2D *gdy = new TGraph2D("graphDY","graphDY",nentries,vx,vy,vdy);
306
307 TH2F hdx("hdx","CorrectionMatrix dX",eNXpix, -eXpix*eNXpix/2., eXpix*eNXpix/2., eNYpix, -eYpix*eNYpix/2., eYpix*eNYpix/2. );
308 TH2F hdy("hdy","CorrectionMatrix dY",eNXpix, -eXpix*eNXpix/2., eXpix*eNXpix/2., eNYpix, -eYpix*eNYpix/2., eYpix*eNYpix/2. );
309
310 FILE *fadd=0;
311 if(addfile) fadd = fopen(addfile,"r");
312 char str[256];
313
314 if(fadd) fgets(str, 256, fadd); //skip first line
315 int iadd, jadd;
316 float xadd, yadd, dxadd, dyadd;
317
318 FILE *fmatr = fopen("correction_matrix.txt","w");
319 fprintf(fmatr,"%d %d %f %f\n", eNXpix, eNYpix, eXpix, eYpix);
320
321 for(int i=0; i<eNXpix; i++) {
322 for(int j=0; j<eNYpix; j++) {
323 float x = (i - 0.5*(eNXpix-1))*eXpix;
324 float y = (j - 0.5*(eNYpix-1))*eYpix;
325 //float dx = gdx->Interpolate(x,y);
326 //float dy = gdy->Interpolate(x,y);
327 float dx = ((TArrayD *)eCorrMap.GetObject(x,y,0))->At(0);
328 float dy = ((TArrayD *)eCorrMap.GetObject(x,y,0))->At(1);
329
330 if(fadd) {
331 if(fgets(str, 256, fadd)==NULL) Log(1,"GenerateCorrectionMatrix","ERROR: addfile is not correct");
332 if( sscanf(str, "%d %d %f %f %f %f", &iadd, &jadd, &xadd, &yadd, &dxadd, &dyadd) != 6 ) {
333 Log(1,"GenerateCorrectionMatrix","ERROR: addfile is not correct");
334 break;
335 }
336 dx += dxadd;
337 dy += dyadd;
338 }
339 fprintf(fmatr,"%5d %5d %12.6f %12.6f %11.6f %11.6f\n", i, j, x,y,dx,dy);
340
341 hdx.Fill(x,y,dx);
342 hdy.Fill(x,y,dy);
343 }
344 }
345 fclose(fmatr);
346 if(fadd) fclose(fadd);
347
348 bool batch = gROOT->IsBatch();
349 if(eOutputFile) {
350 Log(2,"GenerateCorrectionMatrix","Save to file %s", eOutputFile->GetName());
351 gROOT->SetBatch();
352 }
353
354 //TCanvas c("c","CorrectionMatrix", 700, 1200 );
355 //c.Divide(1,2);
356 //c.cd(1); hdx.Draw("colz");
357 //c.cd(2); hdy.Draw("colz");
358 //c.Write();
359 hdx.Write("hdx");
360 hdy.Write("hdy");
361 gdx->Write("gdx");
362 gdy->Write("gdy");
363 gROOT->SetBatch(batch);
364
365}
float eYpix
Definition: EdbViewMatch.h:45
float eXpix
Definition: EdbViewMatch.h:45
int eNXpix
Definition: EdbViewMatch.h:46
int eNYpix
Definition: EdbViewMatch.h:46
int nentries
Definition: check_shower.C:40
fclose(pFile)
#define NULL
Definition: nidaqmx.h:84

◆ InitCorrMap()

void EdbViewMatch::InitCorrMap ( )
82{
83 // matrix of the corrections in each entry is TArrayD with 2 entries:(dx,dy)
84 float mi[2] = { -eNXpix*Abs(eXpix)/2., -eNYpix*Abs(eYpix)/2. };
85 float ma[2] = { eNXpix*Abs(eXpix)/2., eNYpix*Abs(eYpix)/2. };
86 int n[2] = { int((ma[0]-mi[0])/eCorrectionMatrixStepX), int((ma[1]-mi[1])/eCorrectionMatrixStepY) };
87
88 eCorrectionMatrixStepX = (ma[0]-mi[0])/n[0];
89 eCorrectionMatrixStepY = (ma[1]-mi[1])/n[1];
90 n[0] = int((ma[0]-mi[0]+1.)/eCorrectionMatrixStepX);
91 n[1] = int((ma[1]-mi[1]+1.)/eCorrectionMatrixStepY);
92
93 eCorrMap.InitCell(20, n, mi, ma);
95 int nc=eCorrMap.Ncell();
96 for( int i=0; i<nc; i++ ) {
97 TArrayD *a = new TArrayD(2);
98 eCorrMap.AddObject(i, (TObject*)a );
99 eCorrMap.SetBin(i,0);
100 }
101
102}
void a()
Definition: check_aligned.C:59
int InitCell(EdbCell2 &c)
Definition: EdbCell2.h:167
void PrintStat()
Definition: EdbCell2.cpp:674
void SetBin(int ix, int iy, int n)
Definition: EdbCell2.h:90
float eCorrectionMatrixStepX
Definition: EdbViewMatch.h:48
float eCorrectionMatrixStepY
Definition: EdbViewMatch.h:49

◆ InitGMap()

void EdbViewMatch::InitGMap ( )
106{
108 float mi[2] = {-500,-400}, ma[2]={1500,1100};
109 int n[2] = { int((ma[0]-mi[0])/10), int((ma[1]-mi[1])/10) };
110 eGMap.InitCell(250, n, mi, ma);
111}

◆ MakeDistortionMap()

void EdbViewMatch::MakeDistortionMap ( const char *  fname,
TEnv &  env,
const char *  addfile = 0 
)
393{
395 SetPar(cenv);
396 InitGMap();
397 InitCorrMap();
398 int n = run.GetEntries();
399
400 EdbView *v = run.GetView();
401 run.GetEntry(0,1);
402 //float X0 = v->GetXview();
403 //float Y0 = v->GetYview();
404 float X0 = 0;
405 float Y0 = 0;
406
407 for(int i=0; i<n; i++) {
408 run.GetEntry(i,1,1);
409 int ncl = v->Nclusters();
410 printf("%6d ", ncl);
411
412 for(int ic=0; ic<ncl; ic++) {
413 EdbCluster *c = v->GetCluster(ic);
414 if(c->GetArea()>eAreaMin&&c->GetArea()<eAreaMax) {
415 AddCluster( c->eX, c->eY, c->eZ, v->GetXview()-X0, v->GetYview()-Y0, v->GetViewID(), c->GetFrame() );
416 }
417 }
418 }
419 printf("\n");
420
422
423 eOutputFile = new TFile("map.root","RECREATE");
424 if(eDumpGr) { TNtuple *ntgr = DumpGr("gr"); ntgr->Write(); }
425 CutGrRef();
427 DrawCorrMap();
429 if(eDumpGr) { TNtuple *ntgr = DumpGr("grcut"); ntgr->Write(); }
430 eOutputFile->Close();
431 Print();
432}
brick X0
Definition: RecDispMC.C:112
Definition: EdbCluster.h:19
Float_t eZ
cluster coordinates in pixels(?)
Definition: EdbCluster.h:25
Int_t GetFrame() const
Definition: EdbCluster.h:56
Float_t eY
cluster coordinates in pixels(?)
Definition: EdbCluster.h:24
Float_t eX
cluster coordinates in pixels(?)
Definition: EdbCluster.h:23
Float_t GetArea() const
Definition: EdbCluster.h:54
Definition: EdbRun.h:75
EdbView * GetView() const
Definition: EdbRun.h:110
int GetEntries() const
Definition: EdbRun.h:136
EdbView * GetEntry(int entry, int ih=1, int icl=0, int iseg=1, int itr=0, int ifr=0)
Definition: EdbRun.cxx:462
void CalculateCorr()
Definition: EdbViewMatch.cxx:191
float eAreaMin
Definition: EdbViewMatch.h:54
void Print()
Definition: EdbViewMatch.cxx:368
void CalculateGrRef()
Definition: EdbViewMatch.cxx:142
bool eDumpGr
Definition: EdbViewMatch.h:53
void AddCluster(float x, float y, float z, float xv, float yv, int view, int frame)
Definition: EdbViewMatch.cxx:114
float eAreaMax
Definition: EdbViewMatch.h:54
void GenerateCorrectionMatrix(const char *addfile)
Definition: EdbViewMatch.cxx:285
TNtuple * DumpGr(const char *name)
Definition: EdbViewMatch.cxx:175
void SetPar(TEnv &env)
Definition: EdbViewMatch.cxx:52
void DrawCorrMap()
Definition: EdbViewMatch.cxx:223
void InitCorrMap()
Definition: EdbViewMatch.cxx:81
void InitGMap()
Definition: EdbViewMatch.cxx:105
void CutGrRef()
Definition: EdbViewMatch.cxx:162
Base scanning data object: entry into Run tree.
Definition: EdbView.h:134
Float_t GetXview() const
Definition: EdbView.h:193
Int_t GetViewID() const
Definition: EdbView.h:190
Int_t Nclusters() const
Definition: EdbView.h:215
EdbCluster * GetCluster(int i) const
Definition: EdbView.h:218
Float_t GetYview() const
Definition: EdbView.h:194
TEnv cenv("emrec")
EdbRun * run
Definition: check_raw.C:38
const char * fname
Definition: mc2raw.cxx:41

◆ Print()

void EdbViewMatch::Print ( )
369{
370 printf("\n-----------------------------------------------------------------------------------------------------\n");
371 int ncl = eCl.GetEntries();
372 int ngr = eGr.GetEntries();
373 int icgr=0, iccl=0;
374 for(int i=0; i<ngr; i++) {
375 int nc = ((EdbSegment*)eGr.At(i))->GetNelements();
376 if(nc>=eNClMin) { icgr++; iccl+=nc; }
377
378 //if(nc>500) printf("grain %d with %d cl\n", i, nc);
379 }
380 printf("\n%d clusters processed\n",ncl);
381 printf("\n%d grains found\n",ngr);
382 printf("\n%d grains used (ncl > %d and closer then %f to center) \n",icgr, eNClMin, eR2CenterMax );
383 printf("\n%d clusters used in good grains\n",iccl);
384 printf("Matrix definition: %d %d %f %f view size: %f %f\n", eNXpix, eNYpix, eXpix, eYpix, eNXpix*eXpix, eNYpix*eYpix );
385
388 printf("-----------------------------------------------------------------------------------------------------\n");
389}

◆ SetPar()

void EdbViewMatch::SetPar ( TEnv &  env)
53{
54 eNClMin = env.GetValue("viewdist.NClMin" , 20);
55 eR2CenterMax = env.GetValue("viewdist.R2CenterMax" , 15.);
56 eRmax = env.GetValue("viewdist.Rmax" , 1.);
57
58 eXpix = env.GetValue("viewdist.Xpix" , 0.30625);
59 eYpix = env.GetValue("viewdist.Ypix" , 0.30714);
60 eNXpix = env.GetValue("viewdist.NXpix", 1280);
61 eNYpix = env.GetValue("viewdist.NYpix", 1024);
62
63 eDumpGr = env.GetValue("viewdist.DumpGr", 0);
64
65 sscanf( env.GetValue("viewdist.ClusterAreaLimits", "0 90000000"), "%f %f", &eAreaMin, &eAreaMax);
66 sscanf( env.GetValue("viewdist.ClusterVolumeLimits", "0 90000000"), "%f %f", &eVolumeMin, &eVolumeMax);
67
68 printf("\n----------------------- Processing Parameters ---------------------------\n");
69 printf("eNClMin\t %d\n",eNClMin);
70 printf("eR2CenterMax\t %6.2f\n",eR2CenterMax);
71 printf("eRmax\t %f6.2\n",eRmax);
72 printf("Pixel: %9.7f x %9.7f \n", eXpix, eYpix );
73 printf("Matrix: %d x %d pixels, \t %15.7f x %15.7f microns", eNXpix, eNYpix, eXpix*eNXpix, eYpix*eNYpix);
74 printf("Clusters Area limits: %7.0f %7.0f \n", eAreaMin, eAreaMax );
75 printf("Clusters Volume limits: %7.0f %7.0f \n", eVolumeMin, eVolumeMax );
76 printf("-------------------------------------------------------------------------\n\n");
77
78}
float eVolumeMax
Definition: EdbViewMatch.h:55
float eVolumeMin
Definition: EdbViewMatch.h:55

◆ SetPixelSize()

void EdbViewMatch::SetPixelSize ( float  xpix,
float  ypix 
)
inline
71{ eXpix=xpix; eYpix=ypix; }

Member Data Documentation

◆ eAreaMax

float EdbViewMatch::eAreaMax

◆ eAreaMin

float EdbViewMatch::eAreaMin

◆ eCl

TClonesArray EdbViewMatch::eCl
private

◆ eCorrectionMatrixStepX

float EdbViewMatch::eCorrectionMatrixStepX
private

◆ eCorrectionMatrixStepY

float EdbViewMatch::eCorrectionMatrixStepY
private

◆ eCorrMap

EdbCell2 EdbViewMatch::eCorrMap
private

◆ eDumpGr

bool EdbViewMatch::eDumpGr

◆ eGMap

EdbCell2 EdbViewMatch::eGMap
private

◆ eGr

TClonesArray EdbViewMatch::eGr
private

◆ eNClMin

int EdbViewMatch::eNClMin
private

◆ eNXpix

int EdbViewMatch::eNXpix
private

◆ eNYpix

int EdbViewMatch::eNYpix
private

◆ eOutputFile

TFile* EdbViewMatch::eOutputFile

◆ eR2CenterMax

float EdbViewMatch::eR2CenterMax
private

◆ eRmax

float EdbViewMatch::eRmax
private

◆ eVolumeMax

float EdbViewMatch::eVolumeMax

◆ eVolumeMin

float EdbViewMatch::eVolumeMin

◆ eXpix

float EdbViewMatch::eXpix
private

◆ eYpix

float EdbViewMatch::eYpix
private

The documentation for this class was generated from the following files: