Skip to content
This repository has been archived by the owner on May 18, 2023. It is now read-only.

Commit

Permalink
Read DMax from ccdb
Browse files Browse the repository at this point in the history
T= T_tdc-T0+detaT(beta) --> T= T_tdc-T0-detaT(beta)
  • Loading branch information
zieglerv committed May 11, 2017
1 parent 14417aa commit 72c7fb5
Show file tree
Hide file tree
Showing 2 changed files with 111 additions and 95 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ public static final synchronized void Load(int runNb, String var) {
double[][] DELT_BFIELD_COEFFICIENT = new double[6][6]; //coefficient of the bfield part of the increase in time

double[][] TMAXSUPERLAYER = new double[6][6];
double[] DMAXSUPERLAYER = new double[6];

double DELTATIME_BFIELD_PAR1[][] = new double[6][6];
double DELTATIME_BFIELD_PAR2[][] = new double[6][6];
Expand All @@ -93,98 +94,105 @@ public static final synchronized void Load(int runNb, String var) {


if(runNb!=10 || !var.equalsIgnoreCase("default"))
dbprovider = new DatabaseConstantProvider(runNb, var); // reset using the new variation
dbprovider = new DatabaseConstantProvider(runNb, var); // reset using the new variation
// load table reads entire table and makes an array of variables for each column in the table.
dbprovider.loadTable("/calibration/dc/signal_generation/dc_resolution");
dbprovider.loadTable("/calibration/dc/time_to_distance/tvsx_devel_v2");
dbprovider.loadTable("/calibration/dc/time_corrections/T0Corrections");
//disconncect from database. Important to do this after loading tables.
dbprovider.disconnect();
dbprovider.loadTable("/calibration/dc/signal_generation/dc_resolution");
dbprovider.loadTable("/calibration/dc/time_to_distance/tvsx_devel_v2");
dbprovider.loadTable("/calibration/dc/time_corrections/T0Corrections");
dbprovider.loadTable("/geometry/dc/superlayer");
//disconncect from database. Important to do this after loading tables.
dbprovider.disconnect();

//dbprovider.show();

// Getting the Constants
// 1) Time RMS
for(int i =0; i< dbprovider.length("/calibration/dc/signal_generation/dc_resolution/Sector"); i++) {

int iSec = dbprovider.getInteger("/calibration/dc/signal_generation/dc_resolution/Sector", i);
int iSly = dbprovider.getInteger("/calibration/dc/signal_generation/dc_resolution/Superlayer", i);
double iPAR1 = dbprovider.getDouble("/calibration/dc/signal_generation/dc_resolution/parameter1", i);
double iPAR2 = dbprovider.getDouble("/calibration/dc/signal_generation/dc_resolution/parameter2", i);
double iPAR3 = dbprovider.getDouble("/calibration/dc/signal_generation/dc_resolution/parameter3", i);
double iPAR4 = dbprovider.getDouble("/calibration/dc/signal_generation/dc_resolution/parameter4", i);
double iSCAL = dbprovider.getDouble("/calibration/dc/signal_generation/dc_resolution/scale", i);
//dbprovider.show();
// Getting DMAX
for(int i =0; i< dbprovider.length("/geometry/dc/superlayer/superlayer"); i++) {
int iSly = dbprovider.getInteger("/geometry/dc/superlayer/superlayer", i);

PAR1[iSec-1][iSly-1] = iPAR1;
PAR2[iSec-1][iSly-1] = iPAR2;
PAR3[iSec-1][iSly-1] = iPAR3;
PAR4[iSec-1][iSly-1] = iPAR4;
SCAL[iSec-1][iSly-1] = iSCAL;

System.out.println(" iSec "+iSec+" iSly "+iSly+" iPAR1 "+iPAR1+" iPAR2 "+iPAR2+" iPAR3 "+iPAR3+" iPAR4 "+iPAR4+" iSCAL "+iSCAL);

}

// 2) T2D
for(int i =0; i< dbprovider.length("/calibration/dc/time_to_distance/tvsx_devel_v2/Sector"); i++) {

int iSec = dbprovider.getInteger("/calibration/dc/time_to_distance/tvsx_devel_v2/Sector", i);
int iSly = dbprovider.getInteger("/calibration/dc/time_to_distance/tvsx_devel_v2/Superlayer", i);
double iv0 = dbprovider.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/v0", i);
double ideltanm = dbprovider.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/deltanm", i);
double itmax = dbprovider.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/tmax", i);
double idelta_bfield_coefficient = dbprovider.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v1/delta_bfield_coefficient", i);
double ib1 = dbprovider.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/b1", i);
double ib2 = dbprovider.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/b2", i);
double ib3 = dbprovider.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/b3", i);
double ib4 = dbprovider.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/b4", i);
double idistbeta = dbprovider.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/distbeta", i);

DELTANM[iSec-1][iSly-1] = ideltanm;
V0[iSec-1][iSly-1] = iv0;
DELT_BFIELD_COEFFICIENT[iSec-1][iSly-1] = idelta_bfield_coefficient;

TMAXSUPERLAYER[iSec-1][iSly-1] = itmax;
DMAXSUPERLAYER[iSly-1] = 2*dbprovider.getDouble("/geometry/dc/superlayer/wpdist", i);
}
// Getting the Constants
// 1) Time RMS
for(int i =0; i< dbprovider.length("/calibration/dc/signal_generation/dc_resolution/Sector"); i++) {

DELTATIME_BFIELD_PAR1[iSec-1][iSly-1] = ib1;
DELTATIME_BFIELD_PAR2[iSec-1][iSly-1] = ib2;
DELTATIME_BFIELD_PAR3[iSec-1][iSly-1] = ib3;
DELTATIME_BFIELD_PAR4[iSec-1][iSly-1] = ib4;

DISTBETA[iSec-1][iSly-1] = idistbeta;

//System.out.println(" T2D Constants : deltanm "+deltanm[iSec-1][iSly-1] +" v0 "+v0[iSec-1][iSly-1]+" delt_bfield_coefficient " +delt_bfield_coefficient[iSec-1][iSly-1]+
//" b1 "+deltatime_bfield_par1[iSec-1][iSly-1]+" b2 "+deltatime_bfield_par2[iSec-1][iSly-1]+" b3 "+deltatime_bfield_par3[iSec-1][iSly-1]+" b4 "+deltatime_bfield_par4[iSec-1][iSly-1]);
}
// T0-subtraction
for(int i =0; i< dbprovider.length("/calibration/dc/time_corrections/T0Corrections/Sector"); i++) {

int iSec = dbprovider.getInteger("/calibration/dc/time_corrections/T0Corrections/Sector", i);
int iSly = dbprovider.getInteger("/calibration/dc/time_corrections/T0Corrections/Superlayer", i);
int iSlot = dbprovider.getInteger("/calibration/dc/time_corrections/T0Corrections/Slot", i);
int iCab = dbprovider.getInteger("/calibration/dc/time_corrections/T0Corrections/Cable", i);
double t0 = dbprovider.getDouble("/calibration/dc/time_corrections/T0Corrections/T0Correction", i);
double t0Error = dbprovider.getDouble("/calibration/dc/time_corrections/T0Corrections/T0Error", i);

T0[iSec-1][iSly-1][iSlot-1][iCab-1] = t0;
T0ERR[iSec-1][iSly-1][iSlot-1][iCab-1] = t0Error;
}
CCDBConstants.setDELTANM(DELTANM);
CCDBConstants.setV0(V0) ;
CCDBConstants.setDELT_BFIELD_COEFFICIENT(DELT_BFIELD_COEFFICIENT) ;
CCDBConstants.setTMAXSUPERLAYER(TMAXSUPERLAYER);
CCDBConstants.setDELTATIME_BFIELD_PAR1(DELTATIME_BFIELD_PAR1) ;
CCDBConstants.setDELTATIME_BFIELD_PAR2(DELTATIME_BFIELD_PAR2) ;
CCDBConstants.setDELTATIME_BFIELD_PAR3(DELTATIME_BFIELD_PAR3) ;
CCDBConstants.setDELTATIME_BFIELD_PAR4(DELTATIME_BFIELD_PAR4) ;
CCDBConstants.setDISTBETA(DISTBETA) ;
CCDBConstants.setPAR1(PAR1) ;
CCDBConstants.setPAR2(PAR2) ;
CCDBConstants.setPAR3(PAR3) ;
CCDBConstants.setPAR4(PAR4) ;
CCDBConstants.setSCAL(SCAL) ;
CCDBConstants.setT0(T0) ;
CCDBConstants.setT0ERR(T0ERR) ;
int iSec = dbprovider.getInteger("/calibration/dc/signal_generation/dc_resolution/Sector", i);
int iSly = dbprovider.getInteger("/calibration/dc/signal_generation/dc_resolution/Superlayer", i);
double iPAR1 = dbprovider.getDouble("/calibration/dc/signal_generation/dc_resolution/parameter1", i);
double iPAR2 = dbprovider.getDouble("/calibration/dc/signal_generation/dc_resolution/parameter2", i);
double iPAR3 = dbprovider.getDouble("/calibration/dc/signal_generation/dc_resolution/parameter3", i);
double iPAR4 = dbprovider.getDouble("/calibration/dc/signal_generation/dc_resolution/parameter4", i);
double iSCAL = dbprovider.getDouble("/calibration/dc/signal_generation/dc_resolution/scale", i);

PAR1[iSec-1][iSly-1] = iPAR1;
PAR2[iSec-1][iSly-1] = iPAR2;
PAR3[iSec-1][iSly-1] = iPAR3;
PAR4[iSec-1][iSly-1] = iPAR4;
SCAL[iSec-1][iSly-1] = iSCAL;

System.out.println(" iSec "+iSec+" iSly "+iSly+" iPAR1 "+iPAR1+" iPAR2 "+iPAR2+" iPAR3 "+iPAR3+" iPAR4 "+iPAR4+" iSCAL "+iSCAL);

}

// 2) T2D
for(int i =0; i< dbprovider.length("/calibration/dc/time_to_distance/tvsx_devel_v2/Sector"); i++) {

int iSec = dbprovider.getInteger("/calibration/dc/time_to_distance/tvsx_devel_v2/Sector", i);
int iSly = dbprovider.getInteger("/calibration/dc/time_to_distance/tvsx_devel_v2/Superlayer", i);
double iv0 = dbprovider.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/v0", i);
double ideltanm = dbprovider.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/deltanm", i);
double itmax = dbprovider.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/tmax", i);
double idelta_bfield_coefficient = dbprovider.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/delta_bfield_coefficient", i);
double ib1 = dbprovider.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/b1", i);
double ib2 = dbprovider.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/b2", i);
double ib3 = dbprovider.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/b3", i);
double ib4 = dbprovider.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/b4", i);
double idistbeta = dbprovider.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/distbeta", i);

DELTANM[iSec-1][iSly-1] = ideltanm;
V0[iSec-1][iSly-1] = iv0;
DELT_BFIELD_COEFFICIENT[iSec-1][iSly-1] = idelta_bfield_coefficient;

TMAXSUPERLAYER[iSec-1][iSly-1] = itmax;

DELTATIME_BFIELD_PAR1[iSec-1][iSly-1] = ib1;
DELTATIME_BFIELD_PAR2[iSec-1][iSly-1] = ib2;
DELTATIME_BFIELD_PAR3[iSec-1][iSly-1] = ib3;
DELTATIME_BFIELD_PAR4[iSec-1][iSly-1] = ib4;

DISTBETA[iSec-1][iSly-1] = idistbeta;

//System.out.println(" T2D Constants : deltanm "+deltanm[iSec-1][iSly-1] +" v0 "+v0[iSec-1][iSly-1]+" delt_bfield_coefficient " +delt_bfield_coefficient[iSec-1][iSly-1]+
//" b1 "+deltatime_bfield_par1[iSec-1][iSly-1]+" b2 "+deltatime_bfield_par2[iSec-1][iSly-1]+" b3 "+deltatime_bfield_par3[iSec-1][iSly-1]+" b4 "+deltatime_bfield_par4[iSec-1][iSly-1]);
}
// T0-subtraction
for(int i =0; i< dbprovider.length("/calibration/dc/time_corrections/T0Corrections/Sector"); i++) {

int iSec = dbprovider.getInteger("/calibration/dc/time_corrections/T0Corrections/Sector", i);
int iSly = dbprovider.getInteger("/calibration/dc/time_corrections/T0Corrections/Superlayer", i);
int iSlot = dbprovider.getInteger("/calibration/dc/time_corrections/T0Corrections/Slot", i);
int iCab = dbprovider.getInteger("/calibration/dc/time_corrections/T0Corrections/Cable", i);
double t0 = dbprovider.getDouble("/calibration/dc/time_corrections/T0Corrections/T0Correction", i);
double t0Error = dbprovider.getDouble("/calibration/dc/time_corrections/T0Corrections/T0Error", i);

T0[iSec-1][iSly-1][iSlot-1][iCab-1] = t0;
T0ERR[iSec-1][iSly-1][iSlot-1][iCab-1] = t0Error;
}
CCDBConstants.setDELTANM(DELTANM);
CCDBConstants.setV0(V0) ;
CCDBConstants.setDELT_BFIELD_COEFFICIENT(DELT_BFIELD_COEFFICIENT) ;
CCDBConstants.setTMAXSUPERLAYER(TMAXSUPERLAYER);
CCDBConstants.setDMAXSUPERLAYER(DMAXSUPERLAYER);
CCDBConstants.setDELTATIME_BFIELD_PAR1(DELTATIME_BFIELD_PAR1) ;
CCDBConstants.setDELTATIME_BFIELD_PAR2(DELTATIME_BFIELD_PAR2) ;
CCDBConstants.setDELTATIME_BFIELD_PAR3(DELTATIME_BFIELD_PAR3) ;
CCDBConstants.setDELTATIME_BFIELD_PAR4(DELTATIME_BFIELD_PAR4) ;
CCDBConstants.setDISTBETA(DISTBETA) ;
CCDBConstants.setPAR1(PAR1) ;
CCDBConstants.setPAR2(PAR2) ;
CCDBConstants.setPAR3(PAR3) ;
CCDBConstants.setPAR4(PAR4) ;
CCDBConstants.setSCAL(SCAL) ;
CCDBConstants.setT0(T0) ;
CCDBConstants.setT0ERR(T0ERR) ;
}

public static final synchronized void LoadDevel(int runNb, String var, String var2) {
Expand All @@ -194,6 +202,7 @@ public static final synchronized void LoadDevel(int runNb, String var, String va
double[][] DELT_BFIELD_COEFFICIENT = new double[6][6]; //coefficient of the bfield part of the increase in time

double[][] TMAXSUPERLAYER = new double[6][6];
double[] DMAXSUPERLAYER = new double[6];

double DELTATIME_BFIELD_PAR1[][] = new double[6][6];
double DELTATIME_BFIELD_PAR2[][] = new double[6][6];
Expand All @@ -212,19 +221,25 @@ public static final synchronized void LoadDevel(int runNb, String var, String va

//T0s
double[][][][] T0 = new double[6][6][7][6]; //nSec*nSL*nSlots*nCables
double[][][][] T0ERR = new double[6][6][7][6]; //nSec*nSL*nSlots*nCables
double[][][][] T0ERR = new double[6][6][7][6]; //nSec*nSL*nSlots*nCables

dbprovider = new DatabaseConstantProvider(runNb, var); // reset using the new variation
dbprovider = new DatabaseConstantProvider(runNb, var); // reset using the new variation
dbprovider_Test = new DatabaseConstantProvider(runNb, var2); // reset using the new variation
// load table reads entire table and makes an array of variables for each column in the table.
dbprovider.loadTable("/calibration/dc/signal_generation/dc_resolution");
dbprovider_Test.loadTable("/calibration/dc/time_to_distance/tvsx_devel_v2");
dbprovider.loadTable("/calibration/dc/time_corrections/T0Corrections");
dbprovider.loadTable("/geometry/dc/superlayer");
//disconncect from database. Important to do this after loading tables.
dbprovider.disconnect();

//dbprovider.show();

// Getting DMAX
for(int i =0; i< dbprovider.length("/geometry/dc/superlayer/superlayer"); i++) {
int iSly = dbprovider.getInteger("/geometry/dc/superlayer/superlayer", i);

DMAXSUPERLAYER[iSly-1] = 2*dbprovider.getDouble("/geometry/dc/superlayer/wpdist", i);
}
// Getting the Constants
// 1) Time RMS
for(int i =0; i< dbprovider.length("/calibration/dc/signal_generation/dc_resolution/Sector"); i++) {
Expand Down Expand Up @@ -255,7 +270,7 @@ public static final synchronized void LoadDevel(int runNb, String var, String va
double iv0 = dbprovider_Test.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/v0", i);
double ideltanm = dbprovider_Test.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/deltanm", i);
double itmax = dbprovider_Test.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/tmax", i);
double idelta_bfield_coefficient = dbprovider_Test.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v1/delta_bfield_coefficient", i);
double idelta_bfield_coefficient = dbprovider_Test.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/delta_bfield_coefficient", i);
double ib1 = dbprovider_Test.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/b1", i);
double ib2 = dbprovider_Test.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/b2", i);
double ib3 = dbprovider_Test.getDouble("/calibration/dc/time_to_distance/tvsx_devel_v2/b3", i);
Expand Down Expand Up @@ -296,7 +311,8 @@ public static final synchronized void LoadDevel(int runNb, String var, String va
CCDBConstants.setV0(V0) ;
CCDBConstants.setDELT_BFIELD_COEFFICIENT(DELT_BFIELD_COEFFICIENT) ;
CCDBConstants.setTMAXSUPERLAYER(TMAXSUPERLAYER);
CCDBConstants.setDELTATIME_BFIELD_PAR1(DELTATIME_BFIELD_PAR1) ;
CCDBConstants.setDMAXSUPERLAYER(DMAXSUPERLAYER);
CCDBConstants.setDELTATIME_BFIELD_PAR1(DELTATIME_BFIELD_PAR1) ;
CCDBConstants.setDELTATIME_BFIELD_PAR2(DELTATIME_BFIELD_PAR2) ;
CCDBConstants.setDELTATIME_BFIELD_PAR3(DELTATIME_BFIELD_PAR3) ;
CCDBConstants.setDELTATIME_BFIELD_PAR4(DELTATIME_BFIELD_PAR4) ;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -249,8 +249,8 @@ public void set_TimeToDistance(double cosTrkAngle, double B) {
TimeToDistanceEstimator tde = new TimeToDistanceEstimator();
double deltatime_beta = 0;
if(x!=-1)
deltatime_beta = (Math.sqrt(x*x+(CCDBConstants.getDISTBETA()[this.get_Sector()-1][this.get_Superlayer()-1]*beta*beta)*(CCDBConstants.getDISTBETA()[this.get_Sector()-1][this.get_Superlayer()-1]*beta*beta))-x)/CCDBConstants.getV0()[this.get_Sector()-1][this.get_Superlayer()-1];
this.set_Time(this.get_Time()+deltatime_beta);
deltatime_beta = (Math.sqrt(x*x+(CCDBConstants.getDISTBETA()[this.get_Sector()-1][this.get_Superlayer()-1]*beta*beta)*(CCDBConstants.getDISTBETA()[this.get_Sector()-1][this.get_Superlayer()-1]*beta*beta))-x)/CCDBConstants.getV0()[this.get_Sector()-1][this.get_Superlayer()-1];
this.set_Time(this.get_Time()-deltatime_beta);

d = tde.interpolateOnGrid(B, Math.toDegrees(ralpha), this.get_Time(), secIdx, slIdx)/this.get_Time();

Expand Down

0 comments on commit 72c7fb5

Please sign in to comment.