FEDRA emulsion software from the OPERA Collaboration
EdbMosaicAl Class Reference

#include <EdbMosaic.h>

Inheritance diagram for EdbMosaicAl:
Collaboration diagram for EdbMosaicAl:

Public Member Functions

void AlignFragment (EdbPattern &pf, TObjArray &a)
 
void AlignFragments ()
 
void AlignFragments_new ()
 
void AlignSpot (TObjArray &parr, EdbMosaicPath &mp)
 
 EdbMosaicAl ()
 
void FillHXY (const EdbPattern &pf, TH2F &h)
 
void FormFragments (float fx, float fy, TObjArray &harr)
 
void InitH2 (const TEnv &env)
 
void ProcRun (EdbID id, const TEnv &cenv)
 
void ReadPatterns (EdbFragmentAlignment &fa)
 
void SetAlPar (const TEnv &env, AlPar &ap)
 
int ViewSideAl0 (EdbPattern &p1, EdbPattern &p2)
 
virtual ~EdbMosaicAl ()
 

Private Attributes

AlPar eAP
 
EdbCell2 eCF [3]
 
EdbLayereCorrMap [3]
 
bool eDoSaveAlignments
 
TH2F * eH_XY [3]
 
EdbID eID
 
int eMinPeak
 
EdbMosaicIO eMIO
 
bool eNoAlign
 
float eR0
 
EdbRunAccess eRAW
 

Constructor & Destructor Documentation

◆ EdbMosaicAl()

EdbMosaicAl::EdbMosaicAl ( )
23 {
24  eCorrMap[0]=eCorrMap[1]=eCorrMap[2]=0;
25  eH_XY[0] = 0;
26  eH_XY[1] = 0;
27  eH_XY[2] = 0;
28 }
EdbLayer * eCorrMap[3]
Definition: EdbMosaic.h:32
TH2F * eH_XY[3]
Definition: EdbMosaic.h:37

◆ ~EdbMosaicAl()

EdbMosaicAl::~EdbMosaicAl ( )
virtual
32 {
33  for(int i=0; i<3; i++)
34  {
35  if(eCorrMap[i]) delete eCorrMap[i];
36  if(eH_XY[i]) delete eH_XY[i];
37  }
38 }

Member Function Documentation

◆ AlignFragment()

void EdbMosaicAl::AlignFragment ( EdbPattern pf,
TObjArray &  a 
)
207 {
208  // do not join view patterns
209  int nh = harr.GetEntries();
210  EdbMosaicPath mp(nh);
211  mp.eR0=eR0;
212  mp.InitArea(harr, pf.X(), pf.Y(), eMinPeak );
213 
214  Log(1,"EdbMosaicAl::AlignFragment","with %d views at x0,y0: %f %f",nh,mp.eX0,mp.eY0);
215 
216  TObjArray parr(nh); // read views as a patterns to this array
217  for(int i=0; i<nh; i++)
218  {
219  EdbViewHeader *h=(EdbViewHeader *)(harr.At(i));
220  EdbPattern *p = new EdbPattern( h->GetXview(), h->GetYview(), 0, 2000 );
221  int nrej=0;
222  int nseg = eRAW.GetPatternView( *p, pf.Side(), h->GetStatus(), nrej );
223  p->SetID(h->GetStatus());
224  parr.Add(p);
225  }
226  parr.SetOwner();
227 
228  AlignSpot(parr, mp);
229  AlignSpot(parr, mp);
230 
231  for(int i=0; i<nh; i++)
232  {
233  EdbPattern *p = (EdbPattern *)(parr.At(i));
234  if( mp.OK(i) )
235  {
236  pf.AddPattern(*p);
237  }
238  }
239 
240  parr.Delete();
241 }
bool Log(int level, const char *location, const char *fmt,...)
Definition: EdbLog.cxx:75
float eR0
Definition: EdbMosaic.h:34
void AlignSpot(TObjArray &parr, EdbMosaicPath &mp)
Definition: EdbMosaic.cxx:245
EdbRunAccess eRAW
Definition: EdbMosaic.h:28
int eMinPeak
Definition: EdbMosaic.h:35
Definition: EdbMosaicPath.h:20
Definition: EdbPattern.h:280
Int_t AddPattern(EdbPattern &p)
Definition: EdbPattern.cxx:1563
Int_t Side() const
Definition: EdbPattern.h:342
int GetPatternView(EdbPattern &pat, int side, int entry, int &nrej)
Definition: EdbRunAccess.cxx:545
Float_t Y() const
Definition: EdbPattern.h:86
Float_t X() const
Definition: EdbPattern.h:85
Definition: EdbView.h:26
Float_t GetXview() const
Definition: EdbView.h:93
Float_t GetYview() const
Definition: EdbView.h:94
Int_t GetStatus() const
Definition: EdbView.h:125
p
Definition: testBGReduction_AllMethods.C:8

◆ AlignFragments()

void EdbMosaicAl::AlignFragments ( )
133 {
134  EdbCouplesTree vdt;
135  //vdt.InitCouplesTree("couples", Form("p%3.3d/%d.%d.%d.%d.vdt.root",
136 // eID.ePlate, eID.eBrick, eID.ePlate, eID.eMajor, eID.eMinor),"RECREATE");
137  vdt.InitCouplesTree("couples",0,"NEW"); // by default create tree in .mos.root file already opened
138 
139  int nc=eCF[1].Ncell();
140  for( int side=1; side<=2; side++ ) {
141  for( int i=0; i<nc; i++ ) {
142  TObjArray *a = (TObjArray *)(eCF[side].GetObject(i,0));
143  EdbLayer *l = eCorrMap[side]->Map().GetLayer(i);
144  if(a)
145  {
146  EdbPattern pf( eCF[side].Xj(i), eCF[side].Yj(i), 0, 2000 );
147  pf.SetSide(side);
148  pf.SetX(eCF[side].Xj(i));
149  pf.SetY(eCF[side].Yj(i));
150  pf.SetID(i);
151  pf.SetScanID(eID);
152 
153  if(l)
154  {
155  l->SetXY(pf.X(), pf.Y());
156  l->SetID(pf.ID());
157  }
158 
160  fa.SetID(i);
161  fa.SetSide(side);
162  fa.SetHarr(*a);
163  fa.SetMinPeak( eMinPeak );
164  fa.eR0 = eR0;
166  ReadPatterns( fa );
167  fa.eAP=eAP;
168  if(eNoAlign) fa.AlignFragment_dummy(pf);
169  else fa.AlignFragment(pf);
170  fa.FillVDT(vdt);
171  FillHXY( pf, *(eH_XY[side]) );
172  eMIO.SaveFragment( pf );
173  }
174  }
175  }
176  vdt.SaveTree();
177 }
void a()
Definition: check_aligned.C:59
EdbLayer * GetLayer(float x, float y)
Definition: EdbLayer.h:24
Definition: EdbCouplesTree.h:17
bool InitCouplesTree(const char *name="couples", const char *fname=0, Option_t *mode="READ")
Definition: EdbCouplesTree.cxx:87
void SaveTree()
Definition: EdbCouplesTree.cxx:60
Definition: EdbFragmentAlignment.h:35
void SetSide(int s)
Definition: EdbFragmentAlignment.h:60
void AlignFragment_dummy(EdbPattern &pf)
Definition: EdbFragmentAlignment.cxx:86
void FillVDT(EdbCouplesTree &vdt)
Definition: EdbFragmentAlignment.cxx:120
void SetMinPeak(int mp)
Definition: EdbFragmentAlignment.h:62
void SetHarr(TObjArray &ha)
Definition: EdbFragmentAlignment.cxx:21
bool eDoSaveAlignments
Definition: EdbFragmentAlignment.h:53
float eR0
Definition: EdbFragmentAlignment.h:52
void AlignFragment(EdbPattern &pf)
Definition: EdbFragmentAlignment.cxx:52
void SetID(int id)
Definition: EdbFragmentAlignment.h:59
AlPar eAP
Definition: EdbFragmentAlignment.h:51
int Ncell() const
Definition: EdbCell2.h:49
Definition: EdbLayer.h:40
void SetXY(float x, float y)
Definition: EdbLayer.h:97
EdbCorrectionMap & Map()
Definition: EdbLayer.h:73
void SetID(int id)
Definition: EdbLayer.h:95
void FillHXY(const EdbPattern &pf, TH2F &h)
Definition: EdbMosaic.cxx:180
bool eNoAlign
Definition: EdbMosaic.h:39
EdbCell2 eCF[3]
Definition: EdbMosaic.h:29
AlPar eAP
Definition: EdbMosaic.h:36
bool eDoSaveAlignments
Definition: EdbMosaic.h:38
EdbID eID
Definition: EdbMosaic.h:27
void ReadPatterns(EdbFragmentAlignment &fa)
Definition: EdbMosaic.cxx:191
EdbMosaicIO eMIO
Definition: EdbMosaic.h:30
void SaveFragment(EdbPattern &p)
Definition: EdbMosaicIO.cxx:31

◆ AlignFragments_new()

void EdbMosaicAl::AlignFragments_new ( )

◆ AlignSpot()

void EdbMosaicAl::AlignSpot ( TObjArray &  parr,
EdbMosaicPath mp 
)
246 {
247  int nh = parr.GetEntries();
248  mp.SetOK( mp.I(0) );
249  for(int i=1; i<nh; i++)
250  {
251  EdbPattern *p = (EdbPattern *)(parr.At(mp.I(i)));
252  if(p->N() >= eMinPeak) {
253  TArrayI narr(10);
254  int nb = mp.GetAlignedNeighbours( mp.I(i), narr );
255  if(nb>10) { Log(1,"EdbMosaicAl::AlignSpot","too many neigbours! %d ", nb ); nb=10;}
256  else { Log(3,"EdbMosaicAl::AlignSpot","%d neighbours found", nb );}
257  EdbPattern alp;
258  for(int ii=0; ii<nb; ii++) {
259  alp.AddPattern(*(EdbPattern *)(parr.At(narr[ii])) );
260  }
261  printf("align %d -> %d at dist %.1f \n",p->N(), alp.N(), mp.Dist(mp.I(i)) );
262  if( ViewSideAl0(*p, alp) > eMinPeak ) mp.SetOK( mp.I(i) );
263  } else Log(2,"EdbMosaicAl::AlignSpot","skip view with %d segments", p->N() );
264  }
265 }
int ViewSideAl0(EdbPattern &p1, EdbPattern &p2)
Definition: EdbMosaic.cxx:268
int I(const int i) const
Definition: EdbMosaicPath.h:43
void SetOK(const int i)
Definition: EdbMosaicPath.h:41
int GetAlignedNeighbours(const int i0, TArrayI &list) const
Definition: EdbMosaicPath.cxx:21
Float_t Dist(const int i) const
Definition: EdbMosaicPath.h:47
Int_t N() const
Definition: EdbPattern.h:89

◆ FillHXY()

void EdbMosaicAl::FillHXY ( const EdbPattern pf,
TH2F &  h 
)
181 {
182  int n=pf.N();
183  for(int i=0; i<n; i++)
184  {
185  EdbSegP *s = pf.GetSegment(i);
186  h.Fill(s->eX,s->eY);
187  }
188 }
Definition: EdbSegP.h:18
Float_t eX
Definition: EdbSegP.h:28
Float_t eY
Definition: EdbSegP.h:28
EdbSegP * GetSegment(int i) const
Definition: EdbPattern.h:66
EdbSegP * s
Definition: tlg2pattern.C:32

◆ FormFragments()

void EdbMosaicAl::FormFragments ( float  fx,
float  fy,
TObjArray &  harr 
)
297 {
298  float xmin,xmax,ymin,ymax;
299  int nh = harr.GetEntries();
300  EdbViewHeader *h=0;
301  for(int i=0; i<nh; i++)
302  {
303  h=(EdbViewHeader *)(harr.At(i));
304  //h->SetStatus(i); // keep tree entry number here
305  if(i==0)
306  {
307  xmin=xmax = h->GetXview();
308  ymin=ymax = h->GetYview();
309  }
310  else
311  {
312  if(xmin>h->GetXview() ) xmin = h->GetXview();
313  if(xmax<h->GetXview() ) xmax = h->GetXview();
314  if(ymin>h->GetYview() ) ymin = h->GetYview();
315  if(ymax<h->GetYview() ) ymax = h->GetYview();
316  }
317  }
318 
319  float xstep = 800;
320  float ystep = 600;
321 
322  int nx = Max(1,int((xmax-xmin+xstep)/fx)); //TODO: optimize or fix bin size?
323  int ny = Max(1,int((ymax-ymin+ystep)/fy));
324 
325  for( int iside=1; iside<=2; iside++)
326  {
327  eCF[iside].InitCell(nx, xmin-xstep*2./3., xmax+xstep*1./3., ny, ymin-ystep*2./3., ymax+ystep*1./3., 1);
328  eCorrMap[iside] = new EdbLayer();
329  eCorrMap[iside]->Map().Init(eCF[iside]);
330  int nc=eCF[iside].Ncell();
331  for( int i=0; i<nc; i++ ) {
332  TObjArray *a = new TObjArray();
333  eCF[iside].AddObject(i, (TObject*)a );
334  eCF[iside].SetBin(i,0);
335  }
336  }
337 
338  for(int i=0; i<nh; i++)
339  {
340  h=(EdbViewHeader *)(harr.At(i));
341  int iside=0;
342  if( h->GetNframesTop()==0) iside=2; // 2- bottom
343  else if(h->GetNframesBot()==0) iside=1; // 1- top
344  if(iside)
345  {
346  TObjArray *a = (TObjArray *)(eCF[iside].GetObject( h->GetXview(), h->GetYview(),0));
347  a->Add(h);
348  eCF[iside].Fill(h->GetXview(), h->GetYview());
349  }
350  //eCF[iside].PrintStat();
351  }
352 
353 }
int InitCell(EdbCell2 &c)
Definition: EdbCell2.h:170
bool AddObject(float v[2], TObject *obj)
Definition: EdbCell2.h:176
void Init(EdbCell2 &c)
Definition: EdbLayer.cxx:168
void SetBin(int ix, int iy, int n)
Definition: EdbCell2.h:91
int Fill(float x, float y)
Definition: EdbCell2.h:88
Int_t GetNframesTop() const
Definition: EdbView.h:120
Int_t GetNframesBot() const
Definition: EdbView.h:121
int nx
Definition: emthickness.cpp:60
float xmin
Definition: emthickness.cpp:61
float ymin
Definition: emthickness.cpp:63
float xmax
Definition: emthickness.cpp:61
int ny
Definition: emthickness.cpp:62
float ymax
Definition: emthickness.cpp:63

◆ InitH2()

void EdbMosaicAl::InitH2 ( const TEnv &  env)
42 {
43  int nbinsx, nbinsy;
44  float xlow, xup, ylow, yup;
45  const char *str = env.GetValue( "fedra.vsa.hxy", "2000 0. 200000. 2000 0. 200000." );
46  if(6 != sscanf(str,"%d %f %f %d %f %f",
47  &nbinsx, &xlow, &xup, &nbinsy, &ylow, &yup)) {
48  Log(1,"EdbMosaicAl::InitH2","Error parsing hxy parameters: %s");
49  return;
50  }
51  for(int i=1; i<=2; i++) {
52  if(eH_XY[i]) delete eH_XY[i];
53  eH_XY[i] = new TH2F( Form("hxy%d",i), Form("xy side %d",i), nbinsx,xlow,xup, nbinsy,ylow,yup);
54  }
55 }

◆ ProcRun()

void EdbMosaicAl::ProcRun ( EdbID  id,
const TEnv &  cenv 
)
59 {
60  InitH2(env);
61  EdbID idset =id; idset.ePlate =0;
63  sproc.eProcDirClient="..";
64  TString fin;
65  sproc.MakeFileName(fin,id,"raw.root");
66  TCut cut("cut", env.GetValue("fedra.vsa.HeaderCut" , "1") );
67  eRAW.eAFID = 1;
68  eRAW.eHeaderCut = cut.GetTitle();
69  eRAW.AddSegmentCut(1,env.GetValue("fedra.vsa.ICUT" , "-1") );
70  eRAW.AddSegmentCut(0,env.GetValue("fedra.vsa.XCUT" , "-1") );
71  eRAW.SetScoreCut( env.GetValue("fedra.vsa.ScoreCUT" , "-1.5 1.5") );
72 
73  if(!sproc.InitRunAccessNew(eRAW,idset,id.ePlate)) return;
74  eRAW.eDoImageMatrixCorr = env.GetValue("fedra.vsa.DoImageMatrixCorr", 0 );
76  eRAW.ReadImageMatrixCorrection( 1, env.GetValue("fedra.vsa.ImageMatrixCorrSide1" , "") );
77  eRAW.ReadImageMatrixCorrection( 2, env.GetValue("fedra.vsa.ImageMatrixCorrSide2" , "") );
78  }
79 
80  eRAW.eDoImageCorr = env.GetValue("fedra.vsa.DoImageCorr", 0 );
81  if(eRAW.eDoImageCorr) {
82  eRAW.SetImageCorrectionAff( 1, env.GetValue("fedra.vsa.ImageCorrSide1" , "1 0 0 1 0 0") );
83  eRAW.SetImageCorrectionAff( 2, env.GetValue("fedra.vsa.ImageCorrSide2" , "1 0 0 1 0 0") );
84  }
85 
86  float fx = env.GetValue("fedra.vsa.Xfrag" , 10000);
87  float fy = env.GetValue("fedra.vsa.Yfrag" , 5000);
88  eMinPeak = env.GetValue("fedra.vsa.MinPeak" , 20);
89  eR0 = env.GetValue("fedra.vsa.R0" , 1200);
90  eDoSaveAlignments = env.GetValue("fedra.vsa.DoSaveAlignments", 0);
91  eNoAlign = env.GetValue("fedra.vsa.NoAlign", 0);
92  SetAlPar( env, eAP );
93 
94  EdbViewMap vm;
95  vm.ReadViewsHeaders(fin.Data(), cut); // read headers from runfile, fill eViewHeaders
96  int nh = vm.eViewHeaders.GetEntries();
97  Log(1,"EdbMosaicAl::ProcRun","%d headers selected by cut %s", nh, cut.GetTitle() );
98  if(nh>0) {
99  FormFragments( fx,fy, vm.eViewHeaders );
100 
101  eID=id;
102  eMIO.Init( Form("p%3.3d/%d.%d.%d.%d.mos.root",
103  id.ePlate, id.eBrick, id.ePlate, id.eMajor, id.eMinor),
104  "RECREATE");
105 
106  AlignFragments();
107 
108  if(eCorrMap[1]) eMIO.SaveCorrMap(id.ePlate, 1, *eCorrMap[1]);
109  if(eCorrMap[2]) eMIO.SaveCorrMap(id.ePlate, 2, *eCorrMap[2]);
110 
111  if(eH_XY[1]) eMIO.SaveSideObj( eH_XY[1], id.ePlate, 1, "hxy_" );
112  if(eH_XY[2]) eMIO.SaveSideObj( eH_XY[2], id.ePlate, 2, "hxy_" );
113  }
114 }
TCut cut
Definition: check_shower.C:6
Definition: EdbID.h:7
Int_t ePlate
Definition: EdbID.h:11
void InitH2(const TEnv &env)
Definition: EdbMosaic.cxx:41
void AlignFragments()
Definition: EdbMosaic.cxx:132
void FormFragments(float fx, float fy, TObjArray &harr)
Definition: EdbMosaic.cxx:296
void SetAlPar(const TEnv &env, AlPar &ap)
Definition: EdbMosaic.cxx:117
void SaveCorrMap(int plate, int side, EdbLayer &l, const char *file)
Definition: EdbMosaicIO.cxx:113
void Init(const char *file, Option_t *option="")
Definition: EdbMosaicIO.cxx:16
void SaveSideObj(TObject *ob, int plate, int side, const char *pref)
Definition: EdbMosaicIO.cxx:56
Int_t eDoImageMatrixCorr
Definition: EdbRunAccess.h:42
void SetImageCorrectionAff(int side, const char *str)
Definition: EdbRunAccess.cxx:1035
Int_t eDoImageCorr
Definition: EdbRunAccess.h:38
void SetScoreCut(const char *cut)
Definition: EdbRunAccess.h:118
void ReadImageMatrixCorrection(int side, const char *file)
Definition: EdbRunAccess.cxx:963
void AddSegmentCut(int xi, const char *cutline)
Definition: EdbRunAccess.cxx:1317
Int_t eAFID
Definition: EdbRunAccess.h:25
TCut eHeaderCut
Definition: EdbRunAccess.h:45
Definition: EdbScanProc.h:12
void MakeFileName(TString &s, int id[4], const char *suffix, bool inplate=true)
Definition: EdbScanProc.cxx:1885
bool InitRunAccessNew(EdbRunAccess &ra, EdbID id, EdbPlateP &plate, bool do_update=false)
Definition: EdbScanProc.cxx:3182
TString eProcDirClient
Definition: EdbScanProc.h:14
Definition: EdbViewMap.h:70
TObjArray eViewHeaders
Definition: EdbViewMap.h:77
void ReadViewsHeaders(const char *file, TCut &cut)
Definition: EdbViewMap.cxx:131
EdbScanProc * sproc
Definition: comptonmap.cpp:29
EdbID idset
Definition: emrec.cpp:35
UInt_t id
Definition: tlg2pattern.C:118

◆ ReadPatterns()

void EdbMosaicAl::ReadPatterns ( EdbFragmentAlignment fa)
192 {
193  for(int i=0; i<fa.N(); i++)
194  {
195  EdbViewHeader *h= fa.GetHeader(i);
196  EdbPattern *p = new EdbPattern( h->GetXview(), h->GetYview(), 0, 2000 );
197  int nrej=0;
198  int nseg = eRAW.GetPatternView( *p, fa.Side(), h->GetStatus(), nrej );
199  p->SetID(h->GetStatus());
200  fa.AddPatternAt(p,i);
201  }
202  fa.SetPatternsOwner();
203 }
EdbViewHeader * GetHeader(int i) const
Definition: EdbFragmentAlignment.h:68
int N() const
Definition: EdbFragmentAlignment.h:65
int Side() const
Definition: EdbFragmentAlignment.h:66
void AddPatternAt(EdbPattern *p, int i)
Definition: EdbFragmentAlignment.cxx:278
void SetPatternsOwner()
Definition: EdbFragmentAlignment.h:74

◆ SetAlPar()

void EdbMosaicAl::SetAlPar ( const TEnv &  env,
AlPar ap 
)
118 {
119  ap.NoScaleRot = 1; // calculate shift only
120  ap.OffsetMax = env.GetValue("fedra.vsa.offsetMax",15);
121  ap.DZ = env.GetValue("fedra.vsa.DZ",0);
122  ap.DPHI = env.GetValue("fedra.vsa.DPHI",0);
123  ap.DoFine = env.GetValue("fedra.vsa.DoFine",1);
124  ap.DoSaveCouples = env.GetValue("fedra.vsa.SaveCouples",1);
125  ap.SigmaR = env.GetValue("fedra.vsa.SigmaR",0.5);
126  ap.SigmaT = env.GetValue("fedra.vsa.SigmaT",0.005);
127  ap.Doublets[0] = ap.Doublets[1] = 0.25;
128  ap.Doublets[2] = ap.Doublets[3] = 0.0025;
129 }
float Doublets[4]
Definition: EdbFragmentAlignment.h:29
float DZ
Definition: EdbFragmentAlignment.h:27
float OffsetMax
Definition: EdbFragmentAlignment.h:26
float DPHI
Definition: EdbFragmentAlignment.h:28
int NoScaleRot
Definition: EdbFragmentAlignment.h:23
int DoSaveCouples
Definition: EdbFragmentAlignment.h:31
float SigmaR
Definition: EdbFragmentAlignment.h:24
int DoFine
Definition: EdbFragmentAlignment.h:30
float SigmaT
Definition: EdbFragmentAlignment.h:25

◆ ViewSideAl0()

int EdbMosaicAl::ViewSideAl0 ( EdbPattern p1,
EdbPattern p2 
)
269 {
270  // align AND TRANSFORM p1 to p2 RS
271 
272 // gEDBDEBUGLEVEL = 1;
274  av.eNoScaleRot=1; // calculate shift only
276  av.eOffsetMax = eAP.OffsetMax;
277  av.eDZ = eAP.DZ;
278  av.eDPHI = eAP.DPHI;
279  av.eDoFine = eAP.DoFine;
281  for(int i=0; i<4; i++) av.eDoublets[i]=eAP.Doublets[i];
282 
283  //av.InitOutputFile( Form( "p%.3d/%d_%d.al.vsa.root", p2.Plate(), p1.ID(), p2.ID() ) );
284  av.Align( p1, p2, 0);
285  EdbAffine2D *affXY = av.eCorrL[0].GetAffineXY();
286  EdbAffine2D *affTXTY = av.eCorrL[0].GetAffineTXTY();
287  if(av.eNcoins > eMinPeak )
288  {
289  p1.Transform( affXY );
290  }
291  //av.CloseOutputFile();
292  return av.eNcoins;
293 }
Definition: EdbAffine.h:17
EdbLayer eCorrL[2]
Definition: EdbAlignmentV.h:25
EdbAffine2D * GetAffineXY()
Definition: EdbLayer.h:120
EdbAffine2D * GetAffineTXTY()
Definition: EdbLayer.h:121
Definition: EdbPlateAlignment.h:8
Float_t eOffsetMax
Definition: EdbPlateAlignment.h:12
Bool_t eSaveCouples
Definition: EdbPlateAlignment.h:24
void SetSigma(float spos, float sang)
Definition: EdbPlateAlignment.h:56
Bool_t eDoFine
Definition: EdbPlateAlignment.h:22
Float_t eDZ
Definition: EdbPlateAlignment.h:14
Bool_t eNoScaleRot
Definition: EdbPlateAlignment.h:18
Float_t eDoublets[4]
Definition: EdbPlateAlignment.h:16
Float_t eDPHI
Definition: EdbPlateAlignment.h:15
Int_t eNcoins
Definition: EdbPlateAlignment.h:26
void Align(EdbPattern &p1, EdbPattern &p2, float dz, int flag=0)
Definition: EdbPlateAlignment.cxx:62
virtual void Transform(const EdbAffine2D *a)
Definition: EdbVirtual.cxx:154

Member Data Documentation

◆ eAP

AlPar EdbMosaicAl::eAP
private

◆ eCF

EdbCell2 EdbMosaicAl::eCF[3]
private

◆ eCorrMap

EdbLayer* EdbMosaicAl::eCorrMap[3]
private

◆ eDoSaveAlignments

bool EdbMosaicAl::eDoSaveAlignments
private

◆ eH_XY

TH2F* EdbMosaicAl::eH_XY[3]
private

◆ eID

EdbID EdbMosaicAl::eID
private

◆ eMinPeak

int EdbMosaicAl::eMinPeak
private

◆ eMIO

EdbMosaicIO EdbMosaicAl::eMIO
private

◆ eNoAlign

bool EdbMosaicAl::eNoAlign
private

◆ eR0

float EdbMosaicAl::eR0
private

◆ eRAW

EdbRunAccess EdbMosaicAl::eRAW
private

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