PolCalib

Description

PolCalib is a software package which provides all measurement programs used for the measurements performed in thesis DESY-THESIS-2014-006 (B. Vormwald). It relies on the software package PolDAQ which contains the measurement device drivers and interfaces. PolCalib is a cmake package. The measurement parameters are handed over to the program via a config file.

The package can be checked out by the command:

git clone /afs/desy.de/group/flc/pool/polarimeter/git/PolCalib PolCalib

Existing measurement programs

darkcurrent

This program measures the darkcurrent via the QDC. The trigger signal for the LED is completely switched off during the measurements. The measurement is configured by the following config file:

measurement {
 outdir  /data/measurements/desyLEDdriver/dnlstability_20121114_8 # output folder
 n       1e5   # number of event per run
 series  5     # number of repetitions
 warmup  15    # number of repetitions without storing the measured data
 sleep   0     # waiting between two runs in seconds
 comment "..." # comment which goes to the log file
}

AFG3102 { # configuration of function generator AFG3102
 addr 131.169.184.169 # IP address
 triggerchannel 2     # channel used for the trigger
 gatechannel 1        # channel used for the gate
 gate 25.0            # gate length in nanoseconds
 frequency 30e3       # trigerrate in Herz
}

HV { # configuration of VME high voltage source
 channel 0            # used output channel
 voltage -700.0       # output voltage
}

EM6514 { # configuration of electrometer EM6514
 addr /dev/ttyUSB0    # address of the connected serial port
}

SM2410 { # configuration of sourcemeter SM2410
 addr /dev/ttyUSB1    # address of the connected serial port
}

PS2200 { # configuration of power supply PS2200
 addr /dev/usbtmc1    # address of the connected serial port
}

This produces

dnlmeasurement

This program is used for measuring the differential nonlinearity (DNL) of a photomultiplier. Per run the response to the base LED only and the base+differential LED is measured. The difference of the detector responses is a measure of the DNL.

measurement {
 outdir  /data/measurements/desyLEDdriver/dnlstability_20121114_8 # output folder
 n       1e5   # number of event per run
 series  5     # number of repetitions
 warmup  15    # number of repetitions without storing the measured data
 pedestal true # pedestal measurement between each signal measurement
 comment "..." # comment which goes to the log file
}

AFG3102 { # configuration of function generator AFG3102
 addr 131.169.184.169 # IP address
 triggerchannel 2     # channel used for the trigger
 gatechannel 1        # channel used for the gate
 gate 25.0            # gate length in nanoseconds
 gatedelay 13.0       # delay between trigger and gate
 frequency 30e3       # trigerrate in Herz
}

HV { # configuration of VME high voltage source
 channel 0            # used output channel
 voltage -700.0       # output voltage
}

EM6514 { # configuration of electrometer EM6514
 addr /dev/ttyUSB0    # address of the connected serial port
}

SM2410 { # configuration of sourcemeter SM2410
 addr /dev/ttyUSB1    # address of the connected serial port
 ledbStart 6.0        # basis LED voltage (start value)
 ledbStop  7.5        # basis LED voltage (end value)
 ledbStep  0.1        # basis LED voltage (step size)
}

PS2200 { # configuration of power supply PS2200
 addr /dev/usbtmc1    # address of the connected serial port
 ledd 5.7             # differential LED voltage (fixed value)
}

This program produces

dnlmeasurementFastRun

findSignalInGate

Changes the gate delay and gate length in order to find the optimal gate settings for the full signal pulse.

measurement {
 outdir  /data/measurements/desyLEDdriver/dnlstability_20121114_8 # output folder
 n       1e5   # number of event per run
 series  5     # number of repetitions
 warmup  15    # number of repetitions without storing the measured data
 pedestal true # pedestal measurement between each signal measurement
 dnl      true # measure both: base and base+differential pulse
 comment "..." # comment which goes to the log file
}

AFG3102 { # configuration of function generator AFG3102
 addr 131.169.184.169 # IP address
 triggerchannel 2     # channel used for the trigger
 gatechannel 1        # channel used for the gate
 gateStart 25.0       # gate length in nanoseconds (start value)
 gateStop 45.0        # gate length in nanoseconds (stop value)
 gateStep 1.0         # gate length in nanoseconds (step size)
 gatedelayStart 13.0  # delay between trigger and gate (start value)
 gatedelayStop 100.0  # delay between trigger and gate (stop value)
 gatedelayStep 1.0    # delay between trigger and gate (step size)
 frequency 30e3       # trigerrate in Herz
}

HV { # configuration of VME high voltage source
 channel 0            # used output channel
 voltage -700.0       # output voltage
}

EM6514 { # configuration of electrometer EM6514
 addr /dev/ttyUSB0    # address of the connected serial port
}

SM2410 { # configuration of sourcemeter SM2410
 addr /dev/ttyUSB1    # address of the connected serial port
 ledb  7.0            # basis LED voltage (fixed value)
}

PS2200 { # configuration of power supply PS2200
 addr /dev/usbtmc1    # address of the connected serial port
 ledd 5.7             # differential LED voltage (fixed value)
}

This program produces

gainmeasurement

hysteresis

In this program, one LED of the LED driver is set to a fixed voltage and n runs with N light pulses per run are taken. In a next step, the LED voltage is changed and again n runs with N light pulses are taken. This voltage jumping is repeated s times. The aim is to see the response after changing the LED voltage and to study the influence of the direction of the voltage change.

Outdated. no config file, parameters are hard coded such that a recompilation is necessary for each set of different parameters!

ledscan

This program scans the LED voltage from a start voltage to an end voltage in order to study the dynamic range of the LED driver.

measurement {
 outdir  /data/measurements/desyLEDdriver/dnlstability_20121114_8 # output folder
 n       1e5   # number of event per run
 series  5     # number of repetitions
 warmup  15    # number of repetitions without storing the measured data
 pedestal true # pedestal measurement between each signal measurement
 comment "..." # comment which goes to the log file
}

AFG3102 { # configuration of function generator AFG3102
 addr 131.169.184.169 # IP address
 triggerchannel 2     # channel used for the trigger
 gatechannel 1        # channel used for the gate
 gate 25.0            # gate length in nanoseconds
 gatedelay 13.0       # delay between trigger and gate
 frequency 30e3       # trigerrate in Herz
}

HV { # configuration of VME high voltage source
 channel 0            # used output channel
 voltage -700.0       # output voltage
}

EM6514 { # configuration of electrometer EM6514
 addr /dev/ttyUSB0    # address of the connected serial port
}

SM2410 { # configuration of sourcemeter SM2410
 addr /dev/ttyUSB1    # address of the connected serial port
 ledbStart  7.0       # basis LED voltage (start value)
 ledbStop  7.0        # basis LED voltage (stop value)
 ledbStep  7.0        # basis LED voltage (step size)
}

PS2200 { # configuration of power supply PS2200
 addr /dev/usbtmc1    # address of the connected serial port
 leddStart 5.7        # differential LED voltage (start value)
 leddStop 5.7         # differential LED voltage (stop value)
 leddStep 5.7         # differential LED voltage (step size)
}

This program produces

stability

This program measures the long-term stability of a fixed LED signal.

measurement {
 outdir  /data/measurements/desyLEDdriver/dnlstability_20121114_8 # output folder
 n       1e5   # number of event per run
 series  5     # number of repetitions
 warmup  15    # number of repetitions without storing the measured data
 sleep   0     # waiting between two runs in seconds
 pedestal true # pedestal measurement between each signal measurement
 dnl      true # measure both: base and base+differential pulse
 filter   8    # number of inserted filter
 LEDB     DRIVER2_LED1  # connected LED to LEDB voltage
 LEDD     DRIVER3_LED1  # connected LED to LEDD voltage
 comment "..." # comment which goes to the log file
}

AFG3102 { # configuration of function generator AFG3102
 addr 131.169.184.169 # IP address
 triggerchannel 2     # channel used for the trigger
 gatechannel 1        # channel used for the gate
 gate 25.0            # gate length in nanoseconds
 gatedelay 13.0       # delay between trigger and gate
 frequency 30e3       # trigerrate in Herz
 switchoff false      # decides if LED trigger is switched off in the end
}

HV { # configuration of VME high voltage source
 channel 0            # used output channel
 voltage -700.0       # output voltage
 switchoff false      # decides if HV is switched off in the end
}

EM6514 { # configuration of electrometer EM6514
 addr /dev/ttyUSB0    # address of the connected serial port
}

SM2410 { # configuration of sourcemeter SM2410
 addr /dev/ttyUSB1    # address of the connected serial port
 ledb  7.0            # basis LED voltage
}

PS2200 { # configuration of power supply PS2200
 addr /dev/usbtmc1    # address of the connected serial port
 ledd 5.7             # differential LED voltage
}

This program produces

stabilityDAQTree

Same as stability, but outputs a ROOT TTree instead of a histogram.

Outdated. no config file, parameters are hard coded such that a recompilation is necessary for each set of different parameters!

takedata

A simple program which only controls the VME devices: ramps up HV (ch0:-700V) and reads QDC output. During the run, the LED voltage needs to be set manually. The program asks on command line for the current LED voltage level. If a negative value is entered, the program quits. The program is run like:

path-to-the-package-dir/install/bin/takedata Nevents outputdir

For each entered voltage a ROOT file in the given output folder is created.

How do I add a new program?

Just add a new program to the src folder and make sure the file name ends on .C. This is needed because that is the way how cmake finds the build targets. Then change to the build directory and run

cmake path-to-the-package-dir/CMakeLists.txt
make
make install

This should have built all programs and copied it to the folder path-to-the-package-dir/install/bin.


CategoryPolarimetry

PolCalib (last edited 2015-02-20 18:22:41 by AnnikaVauth)