diff --git a/dc/java/dc-alignment/pom.xml b/dc/java/dc-alignment/pom.xml index 5766279..ec522da 100644 --- a/dc/java/dc-alignment/pom.xml +++ b/dc/java/dc-alignment/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.clas.detector dc-alignment - 2.3 + 2.4 jar diff --git a/dc/java/dc-alignment/src/main/java/org/clas/dc/alignment/Alignment.java b/dc/java/dc-alignment/src/main/java/org/clas/dc/alignment/Alignment.java index b5d5a00..b27b2d5 100644 --- a/dc/java/dc-alignment/src/main/java/org/clas/dc/alignment/Alignment.java +++ b/dc/java/dc-alignment/src/main/java/org/clas/dc/alignment/Alignment.java @@ -421,6 +421,12 @@ public EmbeddedCanvasTabbed analyzeFits() { for(EmbeddedPad pad : canvas.getCanvas("LR residuals vs. theta").getCanvasPads()) pad.getAxisX().setRange(-2000, 2000); + canvas.addCanvas("vertex"); + canvas.getCanvas("vertex").draw(this.getVertexGraph("fit",null)); + canvas.getCanvas().setFont(fontName); + for(EmbeddedPad pad : canvas.getCanvas("vertex").getCanvasPads()) + pad.getAxisY().setRange(-2, 2); + canvas.addCanvas("residual mean and sigma"); canvas.getCanvas("residual mean and sigma").draw(this.getSectorHistograms("fit",null, 1)); canvas.getCanvas("residual mean and sigma").draw(this.getSectorHistograms("time",null, 4)); @@ -770,6 +776,49 @@ private DataGroup getAngularGraph(String parameter, Table alignment) { return residuals; } + private DataGroup getVertexGraph(String parameter, Table alignment) { + + Map> graphs = new LinkedHashMap<>(); + for (int i = 0; i < Constants.NTARGET; i++) { + int il = i==0 ? i : Constants.NLAYER+i; + for(int it=1; it0 || parameter.equals("time") || parameter.equals("LR")) + gr_fit.addPoint(phi, shiftRes/Constants.SCALE, 0.0, errorRes/Constants.SCALE); + } + } + gr_fit.setTitle("Layer " + (il+1)); + gr_fit.setTitleX("#phi (deg)"); + gr_fit.setTitleY("#Deltaz (cm)"); + gr_fit.setMarkerColor(this.markerColor[it-1]); + gr_fit.setMarkerSize(this.markerSize); + if(gr_fit.getDataSize(0)>0) { + if(!graphs.containsKey(i)) + graphs.put(i, new ArrayList<>()); + graphs.get(i).add(gr_fit); + } + } + } + DataGroup dg = new DataGroup(1,graphs.size()); + for(int key : graphs.keySet()) { + for(GraphErrors gr : graphs.get(key)) + dg.addDataSet(gr, key); + } + return dg; + } + private DataGroup getSectorHistograms(String parameter, Table alignment, int icol) { DataGroup residuals = new DataGroup(6,2); diff --git a/dc/java/dc-alignment/src/main/java/org/clas/dc/alignment/Histo.java b/dc/java/dc-alignment/src/main/java/org/clas/dc/alignment/Histo.java index f6acc70..7516f33 100644 --- a/dc/java/dc-alignment/src/main/java/org/clas/dc/alignment/Histo.java +++ b/dc/java/dc-alignment/src/main/java/org/clas/dc/alignment/Histo.java @@ -940,6 +940,9 @@ private static boolean fitVertex(int mode, H1F histo) { case 10: Histo.fitRGEVertex(histo); break; + case 11: + Histo.fitRGLVertex(histo); + break; default: if(histo.getFunction()!=null) { if(histo.getFunction().getChiSquare()>0) @@ -1498,8 +1501,6 @@ public static void fitRGKVertex(H1F histo) { } /** -======= ->>>>>>> master * 4-peaks vertex fitting function * Peaks correspond to: target windows and scattering chamber exit window * Initialized according to: @@ -1624,6 +1625,58 @@ public static void fitRGEVertex(H1F histo) { // if(f1_vtx.getParameter(6)