Home CMS Production Clean room MedAustron HEPHY testbeams old
testbeam-RD50-DESY-Apr2024 testbeam-RD50-DESY-Jul2023 testbeam-RD50-CERN-Oct2022 testbeam-DESY-Oct2017 testbeam-DESY-April2017 testbeam-SPS2015 testbeam-SPS2014 testbeam-DESY14 testbeam-SPS12 testbeam-SPS11 testbeam-SPS10 testbeam-SPS09 testbeam-SPS08 LP-TPC
  HEPHY logbook for testbeam at SPS June 2008, Page 1 of 4  Not logged in ELOG logo
New entries since:Thu Jan 1 01:00:00 1970
ID Date Author Projectup Subject Run Number Events StartTime EndTime
  15   Sat May 31 13:34:28 2008 Thomas Bergauer how to copy data from lab2pc to eudetmac    
rsync -rltvz --exclude "data_vie" --exclude "hitfit_cern08" --exclude "output_vie" --exclude "run2719*" --rsh="ssh -C -p222" friedl@routerhephy.cern.ch:/cygdrive/f/testbeam/cern_jun08/ /Volumes/Data/eudet/APVDAQ/

but replace run2719 with the name of the run file currently active (data taking)

and use Markus' password
  57   Tue Jun 3 11:03:27 2008 Thomas Bergauer telescope alignment runrun283038972008-06-03 10:52:16.7832008-06-03 10:58:52.790
telescope run with reduced beam intensity (BEND4=-600A instead of -620A and BEND7=-605A instead of -615A)
  59   Tue Jun 3 12:41:22 2008 Eudet Telescope useful eudaq software commands(work in progress)   
to show information about a run (number of events, start and end timestamp,....:
./TestReader.exe -b -e 2828
  67   Wed Jun 4 15:41:04 2008 Thomas Bergauer end.    
testbeam is over. DUTs and APVDAQ have been dismounted and will be shipped back to Vienna. EUDET telescope is still in H6B and taking data for alignment and pedestal during the night.
  68   Tue Jun 17 09:43:07 2008 Thomas Bergauer Data analysis progressoverview (in progress)   
run numberWhat?APVDAQ modeTelescope mode#eventshit data processedhitfit processed
0001first attemptrawn.a.51803yesyes
0002LEFT poszsn.a.100kyesyes
0003MID poszsn.a.100kyesyes
0004RIGHT poszsn.a.100kyesyes
2716all sc onrawzs 20000 yesyes
2717wrong posrawzs 6490 nono
2718RIGHT posrawzs100kyesyes
2719MID posrawzs100kyesyes
2720LEFT posrawzs100kyesyes
2721LEFT posrawraw (-2737)22kyesyes
2738telescope pedestal
2739crap
2741MID posrawraw (-2757)22kyesyes
2758RIGHT posrawraw (-2783)34873yesyes
2784-2786telescope something
2787HV=100rawzs30kyesyes
2788HV=10rawzs10kyesyes
2789HV=20rawzs10kyesyes
2790HV=30rawzs10kyesyes
2791HV=40rawzs10kyesyes
2792HV=50rawzs4536yesyes
2821HV=50rawzs10kyesyes
2822HV=60rawzs10kyesyes
2823HV=70rawzs10kyesyes
2824HV=80rawzs10kyesyes
2825HV=90rawzs10kyesyes
2826HV=120rawzs10kyesyes
2827HV=150rawzs10kyesyes
2828HV=200rawzs10kyesyes
2831angle=10degrawzs10kyes yes
2832angle=20degrawzs10kyes yes
2833angle=30degrawzs10kyes yes
2834angle=40degrawzs10kyes yes
2835angle=50degrawzs10kyes yes
2836angle=60degrawzs10kyes yes
2837angle=0degrawzs20kyes yes
28382-dimensional DUTsrawzs478159yes in progress
  7   Wed May 14 16:15:30 2008 Markus FriedlBELLEMicron DDD5 Photos    
This is the new Micron DDD5 double-sided module with 3+3 APV25 readout chips on each side.

The p-side flex hybrid sits at the edge of the sensor, while the n-side flex hybrid is located on top of about
1/3 of the sensor, separated by 1mm of Rohacell.

Sensor data (copied from the Micron catalogue):

DESIGN DDD5 - AC COUPLED ION IMPLANTED TOTALLY DEPLETED DOUBLE SIDED DOUBLE METAL MICROSTRIP DETECTOR

SILICON DETECTOR TYPE: AC coupled ion implanted totally depleted silicon microstrip detector.
DESIGN: Double sided, two metal layers on NN+ 6 inch wafer technology.

JUNCTION SIDE
No STRIPS: 384
STRIP PITCH: 50 µm

OHMIC SIDE
First Metal
No STRIPS: 768
STRIP PITCH: 153.5 µm
Second Metal
No STRIPS: 384
STRIP PITCH: 49.5 µm

POLYSILICON RESISTOR: 2.5 ± 0.5 M
COUPLING CAPACITOR: 100 pF
SILICON THICKNESS: 300 ± 10 µm
CHIP DIMENSIONS: 120.125 x 21.2 mm2
FULL DEPLETION VOLTAGE (FD): 50 V maximum
OPERATING VOLTAGE: FD to 2FD

EXPERIMENTS: D2, FNAL
  52   Tue Jun 3 02:38:21 2008 Markus FriedlBELLEAPVDAQ + telescope (0-sup)run282910500003.06.2008 02:29:5103.06.2008 09:08:58
SiLC beam test - CERN SPS June 2008
4 Belle modules, 40MHz, HV=80V, 6 samples
trigger: 9 mm opening, TLUControl.exe -d 10 -a 12
telescope: 0sup., new firmware


Flex_Module has only 1 working APV - control bonds suffered during transportation

Position is approximately similar to KEK Nov 2007, however it appears like JP_module is flipped (up-down) w.r.t.
to other modules
  53   Tue Jun 3 09:12:42 2008 Markus FriedlBELLEAPVDAQ onlyrun00054502003.06.2008 09:11:3003.06.2008 09:24:42
SiLC beam test - CERN SPS June 2008 - HIT MODE
4 Belle modules, 40MHz, HV=80V, 6 samples
trigger: 9 mm opening, TLUControl.exe -d 10 -a 12
telescope: 0sup., new firmware


Flex_Module has only 1 working APV - control bonds suffered during transportation

Position is approximately similar to KEK Nov 2007, however it appears like JP_module is flipped (up-down) w.r.t.
to other modules

SAME AS PREVIOUS, BUT 0-SUP WITHOUT TELESCOPE


stuck after 45020 events with the repeated message  
 ***WARNING*** FIFO3 empty, FADC 0. Event discarded, reset sent.
to be investigated.
  54   Tue Jun 3 09:27:27 2008 Markus FriedlBELLEAPVDAQ onlyrun00062392903.06.2008 09:26:1603.06.2008 09:34:22
SiLC beam test - CERN SPS June 2008 - HIT MODE
4 Belle modules, 40MHz, HV=80V, 6 samples
trigger: 9 mm opening, TLUControl.exe -d 10 -a 12
telescope: 0sup., new firmware


Flex_Module has only 1 working APV - control bonds suffered during transportation

Position is approximately similar to KEK Nov 2007, however it appears like JP_module is flipped (up-down) w.r.t.
to other modules

RETRY

STUCK again after some time - now adding veto clear in error handling routine
  55   Tue Jun 3 09:57:17 2008 Markus FriedlBELLEAPVDAQ onlyrun000710500003.06.2008 09:40:1803.06.2008 10:12:48
SiLC beam test - CERN SPS June 2008 - HIT MODE
4 Belle modules, 40MHz, HV=80V, 6 samples
trigger: 9 mm opening, TLUControl.exe -d 2 -a 12
no telescope


Flex_Module has only 1 working APV - control bonds suffered during transportation

Position is approximately similar to KEK Nov 2007, however it appears like JP_module is flipped (up-down) w.r.t.
to other modules

RETRY after software bugfix - apparently works
  56   Tue Jun 3 10:58:54 2008 Markus FriedlBELLEAPVDAQ onlyped0071000003.06.2008 10:53:0403.06.2008 10:58:47
SiLC beam test - CERN SPS June 2008
4 Belle modules, 40MHz, HV=80V, 6 samples
beam on (lower intensity)
  2   Wed May 7 10:43:09 2008 Thomas BergauerSiLCDocumentation: twiki, Stephans Hardware Drawings,....    

DUT, APVDAQ Documentation

CERN TWiki: https://twiki.cern.ch/twiki/bin/view/Main/SiLCTestbeam

Stephan's Documentation: http://wwwhephy.oeaw.ac.at/u3w/s/shaensel/www/HEPHY-Testbeam08/

Telescope:

EUDAQ @ hepforge
LCIO homepage at DESY
JRA1 Meeting with Software tutorial (siehe "Software Session" -> "EUtelescope Tutorial")
  3   Wed May 7 16:28:23 2008 stephan hänselSiLCPhotos    
Module Photos

topview of module (without cover)

bottomview of module (without cover)

8 modules on table
  4   Fri May 9 11:46:36 2008 Markus FriedlSiLCData file format(work in progress)   
APVDAQ Data Analysis
====================

The Vienna APVDAQ system has its origin in the late 1990s, and has grown and been improved since then.
Along with the hardware, also the software has grown and hence now consists of several steps rather
than a single piece of software.


DAQ and Analysis Chain
----------------------

Step 0: APVDAQ Software (=online) - CVI/LabWindows under Windows
        * controls and reads hardware, provides quick online analysis for online data quality check
        * can record software (pedestal), hardware (normal) or calibration runs
        * saves raw data (default) or hardware-zero-suppressed data

Step 1: APVDAQ_Analysis - CVI/Labwindows under Windows
        * essentially an improved version of step 0, reads step 0 data from file and performs pedestal 
          subtraction, common-mode correction, hit finding and clump finding (=2D-clustering; we record
          typically 6 samples along the shaped waveform for each event for later peak time reconstruction;
          thus clustering is not only done along strip axis, but also in time -> we search for contiguous
          hit clouds within the two-dimensional x-t-domain and sum up the cluster for each time point)
        * saves clustered waveform hit data (typically 6 sampled values per hit)

Step 2: hitfitgui - ROOT under Linux
        * reads the clustered waveform hit data from step 1 and performs a waveform fit for each hit with the
          reference waveform created from calibration data, resulting in peak amplitude and peak time for each
          hit which is compared to a reference time obtained with a TDC (included in the APVDAQ hardware)
        * saves peak amplitude and time information per hit

Step 3: anarun.C - ROOT under Linux
        * reads the hit properties file from the previous step and fills the data into several histograms like
          Signal, SNR, Noise, Cluster Width, Eta distribution etc. for subsequent graphical display, including
          Landau*Gauss fits and p-n side correlations
        * saves several plot canvasses as PS files


What we don't have
------------------

Tracking, alignment and such things. I think that the best starting point for these functions is the step 2
output data, as this is the most compact form of data and almost directly represents spatial hit points.


General things to consider
--------------------------

* All counting starts from zero
* Strip numbers are counted by hybrids and can span over up to 4 APV chips (=strip numbers 0..511)
* The first 600 events are always software-triggered and used for pedestal and noise evaluation. Thus, event
  numbers 0..599 will never appear in the zero-suppressed data
* The TLU event number is stored separately and does not correspond to the APVDAQ internal event number
* Zones were introduced to label detector regions of different properties, such as the 16 (!) geometrically
  different regions of the SiLC test structures, each comprising only 16 strips
         

Step 1 (APVDAQ_Analysis) output data format
-------------------------------------------

The first step of offline analysis produces a zero-suppressed data file stream out
of the raw data file, thus reducing the file size considerably. 
The zero-suppressed file (file name ends with "_cluster.hit") uses the following structure.


#define MAX_SUBEVENTS       6             // maximum number of samples in one readout buffer
#define MAX_HITS_PER_EVENT  200           // maximum number of hits per event
#define MAX_CLUSTERWIDTH 20               // maximum cluster width

#define P_SIDE	0                         // p-side of the sensor
#define N_SIDE	1                         // n-side of the sensor 

typedef struct {
   unsigned long event;                   // APVDAQ event number
   unsigned char numberofsubevents;	  // number of samples in this event
   unsigned short numberhits;		  // total number of hits (clumps) in this event

   unsigned char hitbegin;  	          // sample number of the begin of the hit
   unsigned char hitlength;     	  // number of samples of this hit
   unsigned short first_strip;		  // first strip of the cluster
   unsigned char clwidth;		  // cluster width
   double center_strip;  		  // center-of-gravity of the cluster (counted in strip units)
   double center_coord;  		  // coordinate of the center strip
   unsigned char side;           	  // sensor side, P_SIDE = 0, N_SIDE = 1
   unsigned char module;                  // module number (internal=0,1,...)
   unsigned char zone;			  // zone number (internal=0,1,...)
   unsigned short tlueventnumber;	  // TLU event number (was previously reserved2)

   double eta;				  // eta of cluster peak
   double clnoise;			  // calibrated cluster noise
   double reserved;			  // used for calibration constant

   double clsigcal[MAX_SUBEVENTS];	  // calibrated cluster signal of all subevents

   double tdc;                            // time of digital conversion
   
   double strsigcal[MAX_CLUSTERWIDTH][MAX_SUBEVENTS];	// calibrated strip signal of all samples
   double strnoise [MAX_CLUSTERWIDTH];			// calibrated strip noise

} Clusterhit_t;

Clusterhit_t clhits[MAX_HITS_PER_EVENT];  // cluster hits of the current event


Each structure array element describes a single clump (2D cluster) found in one sensor plane
in one particular event.
The APV25 chips read out 6 consecutive samples for each strip, spaced by 25ns (MAX_SUBEVENTS).
Hence, the term "cluster" is extended into 2D, with strip number and time sample as coordinates,
leading to a "clump".
A clump is a cluster built from one or more strips and spanning over several time samples.
The total number of clumps per event is stored in the "numberofhits" field, so the procedure
to read the complete event data is to read one element first, then numberofhits-1 more elements.


Step 2 (hitfitgui) output data format
-------------------------------------

The data structure looks very similar to the previous one, except that the (typically) 6 samples values along
the shaped waveform are replaced by a single value pair: peak amplitude and time. Well, actually, there are 3
pairs obtained in different ways, where the last one (i.e. sigcal[2] and tpeak[2]) are most accurate.
The output file (file name ends with "_cluster.hit.fit") uses the following structure.


typedef struct {
   unsigned long event;                 // master event number
   unsigned char numberofsubevents;     // number of subevents in this master event
   unsigned short numberhits;           // total number of hits (clumps) in this event
   unsigned short numfithits;           // total number of fitted hits (clumps) in this event

   unsigned char hitbegin;              // subevent number of the begin of the hit
   unsigned char hitlength;             // number of subevents of this hit
   unsigned short first_strip;          // first strip of the cluster
   unsigned char clwidth;               // cluster width
   double center_strip;                 // center strip of the cluster
   double center_coord;                 // u or v coordinate of the center strip

   unsigned char side;                  // sensor side, N_SIDE, P_SIDE
   unsigned char module;                // module number (internal=0,1,...)
   unsigned char zone;                  // zone number (internal=0,1,...)

   double tdc;                          // time of digital conversion

   double eta;                          // eta of cluster peak
   double clnoise;                      // calibrated cluster noise

// OLD:
//   double reserved;                     // reserved for future use
//
// NEW:
   unsigned short tlueventnumber;	  // TLU event number
   unsigned short reserved2;
   unsigned long reserved3;

   double sigcal[3];                    // fitted hit amplitude {raw data max / expfit / calfit}
   double tpeak[3];                     // fitted peak time {raw data max / expfit / calfit}
   
   double strsigcal[MAX_CLUSTERWIDTH][MAX_SUBEVENTS];	// calibrated strip signal of all samples
   double strnoise [MAX_CLUSTERWIDTH];			// calibrated strip noise

} FittedHit_t;

FittedHit_t fithits[MAX_HITS_PER_EVENT];


Each structure array element describes a single clump (2D cluster) found in one sensor plane
in one particular event.
The total number of clumps per event is stored in the "numberofhits" field, so the procedure
to read the complete event data is to read one element first, then numberofhits-1 more elements.





To be continued...
  5   Fri May 9 15:29:28 2008 Thomas BergauerSiLCSensor Layout    
  pplus strip number of
  width intermediate
strips [µm] strips
16 6 no
16 10 no
16 12.5 no
16 15 no
16 20 no
16 25 no
16 6 single
16 7.5 single
16 10 single
16 12.5 single
16 15 single
16 17.5 single
16 6 double
16 7.5 double
16 10 double
16 12.5 double

Stephan: weil ichs immer hier suche hab ich das Wafer Layout file geadded ;-)

  6   Wed May 14 09:21:39 2008 stephan hänselSiLCcapacity measurements - HPK-ILC-TS-6687-24    
ich hab mal die Kapazitäts-Messungen vom Thomas in ein Diagram gegeben

interessant ist, dass die Kapazität mit 2 intermediate strips (int. strips) kleiner ist als mit einem int. strip -> das bedeutet, dass der eine int. strip breiter ist als die 2 int. strips zusammen - oder?
weiters dürfte die breite des einen int. strips mit der stripwith leicht variieren

(zur Erinnerung: Plattenkondensator - C = e eo A / d )
  10   Fri May 23 15:17:49 2008 Markus FriedlSiLCModule/chip/strip/zone numbering scheme(work in progress)   
The SILC DUT is a stack of 8 silicon sensors surrounded by the telescope.
The spacing between each of the 8 layers is 20mm. Seen with the beam, the fourth layer is exactly centered
between the telescope legs. This means that the stack as a whole is not exactly centered, as there is no
'center' module with an even number of layers. Please refer to drawings "telecope_single_dut.gif" and
"telescope_8_dut.gif" below.

Each sensor has 256 strips, which are read out by 2 APV25 chips. The numbering order of the modules follows the
beam direction (see drawing "silc_dut_stack_beam.jpg"). Modules will have the connector (and thus APV25 hybrid)
at the top as shown in the photos. The numbering scheme within one module is shown in drawing
"silc_dut_beam.jpg": Looking with the beam, strips are numbered from right to left. The strip pitch is 50um
everywhere.

The APVDAQ software works on APV25 level for the data acquisition, where raw data is saved. In that case, the
APVs are consecutively numbered 0,1 (=module 0), 2,3 (=module 1), 4,5 (=module 2), ... ,14,15 (=module 7).
In later steps of the analysis, data are presented on a module [0..7] / strip [0..511] base.
Zone numbers were removed, now everything is zone=1.
(Zone 0 is a reserved value and hence the actual zone counting starts with 1.)

The 256 strips are divided into 16 groups of 16 strips each with different strip width and intermediate strips,
according to the table below:
	 	pplus strip  	number of
		width 	intermediate
group#	strips 	[µm] 	strips
 0	16 	6 	none
 1	16 	10 	none
 2	16 	12.5 	none
 3	16 	15 	none
 4	16 	20 	none
 5	16 	25 	none
 6	16 	6 	single
 7	16 	7.5 	single
 8	16 	10 	single
 9	16 	12.5 	single
10	16 	15 	single
11	16 	17.5 	single
12	16 	6 	double
13	16 	7.5 	double
14	16 	10 	double
15	16 	12.5 	double

Please note that the strip pitch is 50µm everywhere, but between each group there is a gap of a single missing
strip. Hence, when calculating the coordinate from the strip number, one must take those distinctive gaps into
account.

We assume that we have a fractional strip position, where the fraction denotes (e.g.) the center of gravity of
the cluster. In order to convert this into a coordinate, we can use the following approach (where s is the
(fractional) strip number and x ist the fractional coordinate [µm]):

 /* *** tested and works *** */

double strip2x(double strip)
{
 unsigned short ints;

 // this is the integral part of the strip number
 ints = (unsigned short) strip;
 
 return ( 50.0 * ( strip + ( ints >> 4 ) ) + ( ( (ints+1) & 15 ) ? 0.0 : ( strip - ints ) * 50.0 ) );
 //       pitch    strip 
 //                          gaps between zones
 //                                                outside gap ? do nothing
 //                                                                      account for double pitch within gap 
    
}
  11   Mon May 26 15:38:53 2008 Markus FriedlSiLCHow to run APVDAQ    
Power-on Procedure
==================

PC logon: user "testbeam", pwd "sensor"

Order for switching on the hardware (not strict):
* VME 9U crate
* keithley instruments
* +-5V (fat) 2 lab power supplies (left stack)
* other 3 lab power supplies (right stack)
    BE CAREFUL NOT TO CHANGE DIALS AT ALL DURING SWITCHING!!!

Run ResMan.exe (shortcut on desktop) and click OK to close
Start longterm-R31.vi (shortcut on desktop) and start HV bias
Start APVDAQ.exe 

Now everything is on and ready to operate.
This is also the condition after a run is finished.


Start Run (see screenshot below)
================================

1. select proper run type (if different from previous run), typically
 Hardware (beam) or
 Software (pedestal) or
 Internal Calibration

2. open proper config file (if different from previous run), one of
 cern08_silc_all_single.cfg   (8 DUTs, 1 sample)  - for software (pedestal) and intcal runs
 cern08_silc_all_multi6.cfg   (8 DUTs, 6 samples) - for hardware (beam) runs

 cern08_silc_mod03_single.cfg (1 DUT, module 03, 1 sample)  - for software (pedestal) and intcal runs
 cern08_silc_mod03_multi6.cfg (1 DUT, module 03, 6 samples) - for hardware (beam) runs
 

3. select file name (typically: increase run number)

4. switch Write File ON (if turned off)

5. write some useful comments (conditions, HV, etc)

6. enter number of events

7. hit "Start Run" and relax or cry for help :-)


Additional Info
===============

path to APVDAQ:   e:\cvi-projects\apvdaq_fadc
path to Longterm: e:\labview-projects\longterm R3.1
path to data:     f:\testbeam\cern_jun08\silc\data
  14   Fri May 30 19:42:13 2008 stephan hänselSiLCAPVDAQ onlyrun00015180330.05.2008 19:38:0430.05.2008 22:54:59
SiLC beam test - CERN SPS June 2008
8 modules, HV=100V, 40MHz, 6 samples
trigger: 9 mm opening, TLUControl.exe -d 2 -a 12
no telescope

terminated after 51803 events due to beam drop out @ 22.00h
  16   Sat May 31 17:29:40 2008 Markus FriedlSiLCAPVDAQ + telescope (0-sup)run27162000031.05.2008 14:59:2631.05.2008 15:56:23
SiLC beam test - CERN SPS June 2008
8 modules, HV=100V, 40MHz, 6 samples
trigger: 9 mm opening, TLUControl.exe -d 10 -a 12
telescope: zero supressed, new firmware

in fact, trigger was set to coincidence of ALL FOUR scintillators, hence only (less than) 4 x 4 mm2 window !!!
horizontal position ("target") = 0.0mm
ELOG V3.1.5-fc6679b