101{
103
107
113
116 hpat1->Write("hpat1");
117 hpat2->Write("hpat2");
118
120 spectr1->Write("spectrum1");
122 spectr2->Write("spectrum2");
123
124
125
129
131
137 hpat1 = pat1sel->
DrawH2(
"hpat1sel"); hpat1->Write(
"hpat1sel");
138 hpat2 = pat2sel->
DrawH2(
"hpat2sel"); hpat2->Write(
"hpat2sel");
139 }
140
144 local.
eNZ1step =
eEnv->GetValue(
"comptonmap.NZ1step" , 100);
145 local.
eZ1from =
eEnv->GetValue(
"comptonmap.Z1from" , -150);
146 local.
eZ1to =
eEnv->GetValue(
"comptonmap.Z1to" , 50);
147 local.
eNZ2step =
eEnv->GetValue(
"comptonmap.NZ2step" , 100);
148 local.
eZ2from =
eEnv->GetValue(
"comptonmap.Z2from" , -50);
149 local.
eZ2to =
eEnv->GetValue(
"comptonmap.Z2to" , 150);
150
151 local.
eBinY = local.
eBinX =
eEnv->GetValue(
"comptonmap.BinXY" , 10);
152 local.
eRpeak =
eEnv->GetValue(
"comptonmap.Rpeak" , 4.);
153 float testzone =
eEnv->GetValue(
"comptonmap.TestZone" , 30000);
154
155
161 Log(1,
"Global alignment",
"select area in limits: X(%f %f), Y(%f %f) with max dens: %f ",
min[0],
max[0],
min[1],
max[1],
eDensityMax);
162
163 TObjArray arr1(50000), arr2(50000);
166
167 printf("******* Global alignment: n1 = %d n2 = %d *******\n",arr1.GetEntriesFast(), arr2.GetEntriesFast() );
171 float normKernel = 25;
173
175 TH2F *hdz12 = local.
eHDZ.
DrawH2(
"global_hdz12");
176 hdxy->Write("global_hdxy");
177 hdz12->Write("global_hdz12");
178
183 p2d.ProbPeaks(2);
184 float peakVolume = p2d.EstimatePeakVolumeSafe(0) / normKernel;
185 printf("******* End of Global alignment *******\n\n");
186
187
193
194
195 float requestPeakVolume =
eEnv->GetValue(
"comptonmap.PeakVolume" , 150.);
196 float zonesize = Sqrt( areaGlobal * requestPeakVolume/peakVolume );
197 Log(1,
"EdbAlignmentMap::AlignMap",
198 "zonesize selected as %10.2f considering global peakVolume = %10.2f and requested zonePeakVolume as %10.2f",
199 zonesize, peakVolume, requestPeakVolume);
200
201
204
205 int n[2] = { (int)((
max[0]-
min[0])/zonesize+1), (
int)((
max[1]-
min[1])/zonesize+1) };
208 eEnv->SetValue(
"comptonmap.eNx",
eNx);
209 eEnv->SetValue(
"comptonmap.eNy",
eNy);
212
219
220
222
223 int izone = 0;
224 for(
int iy=0; iy<
eMap.
NY(); iy++)
225 for(
int ix=0; ix<
eMap.
NX(); ix++) {
232 printf("\n(%d:%d)\n", ix,iy);
233 arr1.Clear();
234 arr2.Clear();
238 printf("align with n1 = %d n2 = %d\n",arr1.GetEntriesFast(), arr2.GetEntriesFast());
241
245 izone++;
246 }
247}
bool Log(int level, const char *location, const char *fmt,...)
Definition: EdbLog.cxx:75
float min(TClonesArray *t)
Definition: bitview.cxx:275
float eDensityMax
the max segments density for patterns selection (in N/100/100 microns)
Definition: EdbAlignmentMap.h:21
TVector3 eGV1
Definition: EdbAlignmentMap.h:27
TVector3 eGV2
global offsets found by the test alignment (dx:dy:dz)
Definition: EdbAlignmentMap.h:27
int FillMapTree(EdbPositionAlignment &pol, int izone)
Definition: EdbAlignmentMap.cxx:250
float eYcell
approximate zones size (for example 10000 microns)
Definition: EdbAlignmentMap.h:29
float eXcell
Definition: EdbAlignmentMap.h:29
EdbPositionAlignment eGlobal
service object for the zones selection
Definition: EdbAlignmentMap.h:25
EdbCell2 eMap
in each cell TArratF with (x,y, dx,dy,dz1,dz2, n)
Definition: EdbAlignmentMap.h:32
int InitCell(EdbCell2 &c)
Definition: EdbCell2.h:167
void PrintStat()
Definition: EdbCell2.cpp:674
fast 2-dim histogram class (used as a basis for EdbCell2)
Definition: EdbCell2.h:19
float X(int ix) const
Definition: EdbCell2.h:60
float Xmax() const
Definition: EdbCell2.h:65
int NX() const
Definition: EdbCell2.h:50
float Ymin() const
Definition: EdbCell2.h:66
float Ybin() const
Definition: EdbCell2.h:78
float Y(int iy) const
Definition: EdbCell2.h:61
float Xbin() const
Definition: EdbCell2.h:77
TH1I * DrawSpectrum(const char *name="plot1d", const char *title="EdbH2 DrawSpectrun")
Definition: EdbCell2.cpp:178
int NY() const
Definition: EdbCell2.h:51
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
EdbH2 * FillSelectedH2()
Definition: EdbPatCell2.cxx:171
peak analyser for EdbH2
Definition: EdbCell2.h:105
virtual void Transform(const EdbAffine2D *a)
Definition: EdbVirtual.cxx:155
new alignment class developed mainly for compton search
Definition: EdbPositionAlignment.h:14
Float_t eRpeak
coordinate peak acceptance
Definition: EdbPositionAlignment.h:32
Float_t eDTXmin
Definition: EdbPositionAlignment.h:31
Float_t eZ1to
limits in Z for the peak search (ePat1)
Definition: EdbPositionAlignment.h:35
Float_t eDTYmin
min angular difference for the dublets cutout
Definition: EdbPositionAlignment.h:31
Float_t eZ2to
limits in Z for the peak search (ePat2)
Definition: EdbPositionAlignment.h:36
int SelectZone(float min[2], float max[2], TObjArray &arr1, TObjArray &arr2, float maxDens)
Definition: EdbPositionAlignment.cxx:483
Float_t eDTYmax
max angular acceptance (ex: 0.15) for the coinsidences
Definition: EdbPositionAlignment.h:27
void PrintSummary()
Definition: EdbPositionAlignment.cxx:76
Float_t eZ1from
Definition: EdbPositionAlignment.h:35
Float_t eXpeak
Definition: EdbPositionAlignment.h:41
bool ActivatePosTree(const char *name="postree")
Definition: EdbPositionAlignment.cxx:105
int DoubletsFilterOut(bool checkview=true)
Definition: EdbPositionAlignment.cxx:765
Float_t eYpeak
peak position in X,Y
Definition: EdbPositionAlignment.h:41
EdbH2 eHDZ
histogram used for Z-selection
Definition: EdbPositionAlignment.h:45
int Align()
Definition: EdbPositionAlignment.cxx:695
Float_t eDXmin
Definition: EdbPositionAlignment.h:30
Float_t eZ2from
Definition: EdbPositionAlignment.h:36
float eY0
coordinates of the center of the zone (for the ePeakNT only)
Definition: EdbPositionAlignment.h:24
int FillArrays(EdbPattern &p1, EdbPattern &p2)
Definition: EdbPositionAlignment.cxx:416
TString eSmoothKernel
used to smooth histograms
Definition: EdbPositionAlignment.h:47
Float_t eDTXmax
Definition: EdbPositionAlignment.h:27
Float_t eZ1peak
Definition: EdbPositionAlignment.h:40
float eX0
Definition: EdbPositionAlignment.h:24
Float_t eXcell
Definition: EdbPositionAlignment.h:26
Float_t eBinY
bin size for the differential hist (for example 5 microns)
Definition: EdbPositionAlignment.h:28
Float_t eBinX
Definition: EdbPositionAlignment.h:28
void ResetPeak()
Definition: EdbPositionAlignment.h:123
Float_t eYcell
cell size (for example 50 microns)
Definition: EdbPositionAlignment.h:26
int WritePosTree()
Definition: EdbPositionAlignment.cxx:134
int SpotsFilterOut(int nmax)
Definition: EdbPositionAlignment.cxx:796
Int_t eNZ2step
number of steps for the z-selection
Definition: EdbPositionAlignment.h:37
EdbAffine2D * eAff
the found affine transformation (when applied to pattern1 gives pattern2 )
Definition: EdbPositionAlignment.h:43
EdbPatCell2 ePC2
cells with the pointers to segments
Definition: EdbPositionAlignment.h:17
Float_t eDYmin
min position difference for the dublets cutout
Definition: EdbPositionAlignment.h:30
EdbH2 eHpeak
histogram used for peak selection
Definition: EdbPositionAlignment.h:44
Int_t eNZ1step
Definition: EdbPositionAlignment.h:37
Float_t eZ2peak
peak position in Z
Definition: EdbPositionAlignment.h:40
EdbPatCell2 ePC1
Definition: EdbPositionAlignment.h:17
int FillCombinations()
Definition: EdbPositionAlignment.cxx:534
void SetFlag(int flag)
Definition: EdbSegP.h:130
void SetZ(float z)
Definition: EdbPattern.h:41
Int_t N() const
Definition: EdbPattern.h:86
EdbSegP * GetSegment(int i) const
Definition: EdbPattern.h:66
void ProjectTo(const float dz)
Definition: EdbPattern.cxx:268
void SetSegmentsZ()
Definition: EdbPattern.cxx:250
int max
Definition: check_shower.C:41
gEDBDEBUGLEVEL
Definition: energy.C:7