Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

Introduction

This refers to updating geometry for the following detectors:

  • HPSTestRunTracker2014
  • HPSTestRun2014-vX

Detector Description

See this page for general information.

The geometry is built in the detector converter as specified by input from the compact.xml file. Depending on the detector there is more of less information in the compact.xml. If you want to change some aspects of the geometry that is not available in the compact description please contact the experts.

Alignment constants

The compact contains a set of <millepede_constant name=XXXXX value=Y> which is read in and applied to the nominal setting of the geometry. These constants can be updated by hand or created from a Millepede output file. 

The name of an alignment constant "ABCDE" is described below for the Test Run geometry

LetterAllowed valuesMeaning
A1-21: TOP, 2:BOTTOM
B1-31: sensor translation, 2: sensor rotation, 3: support plate rotation
C1-3if B=0 or 1 => 1: sensor measurement ("u") direction, 2: sensor unmeasurement ("v") direction, 3: normal to sensor plane direction ("w")
if B==2 only 1 is allowed => 1:
DE01-10Sensor id.

For the 2014 SVT detector geometry the following scheme is used:

 

Code Block
MilleParameter                              Sensor          half   trans./rot.     Direction   MP layer ID

         21102         module_L1b_halfmodule_axial             2             1             1             2
         21202         module_L1b_halfmodule_axial             2             1             2             2
         21302         module_L1b_halfmodule_axial             2             1             3             2
         22102         module_L1b_halfmodule_axial             2             2             1             2
         22202         module_L1b_halfmodule_axial             2             2             2             2
         22302         module_L1b_halfmodule_axial             2             2             3             2
         21101        module_L1b_halfmodule_stereo             2             1             1             1
         21201        module_L1b_halfmodule_stereo             2             1             2             1
         21301        module_L1b_halfmodule_stereo             2             1             3             1
         22101        module_L1b_halfmodule_stereo             2             2             1             1
         22201        module_L1b_halfmodule_stereo             2             2             2             1
         22301        module_L1b_halfmodule_stereo             2             2             3             1
         11101         module_L1t_halfmodule_axial             1             1             1             1
         11201         module_L1t_halfmodule_axial             1             1             2             1
         11301         module_L1t_halfmodule_axial             1             1             3             1
         12101         module_L1t_halfmodule_axial             1             2             1             1
         12201         module_L1t_halfmodule_axial             1             2             2             1
         12301         module_L1t_halfmodule_axial             1             2             3             1
         11102        module_L1t_halfmodule_stereo             1             1             1             2
         11202        module_L1t_halfmodule_stereo             1             1             2             2
         11302        module_L1t_halfmodule_stereo             1             1             3             2
         12102        module_L1t_halfmodule_stereo             1             2             1             2
         12202        module_L1t_halfmodule_stereo             1             2             2             2
         12302        module_L1t_halfmodule_stereo             1             2             3             2
         21104         module_L2b_halfmodule_axial             2             1             1             4
         21204         module_L2b_halfmodule_axial             2             1             2             4
         21304         module_L2b_halfmodule_axial             2             1             3             4
         22104         module_L2b_halfmodule_axial             2             2             1             4
         22204         module_L2b_halfmodule_axial             2             2             2             4
         22304         module_L2b_halfmodule_axial             2             2             3             4
         21103        module_L2b_halfmodule_stereo             2             1             1             3
         21203        module_L2b_halfmodule_stereo             2             1             2             3
         21303        module_L2b_halfmodule_stereo             2             1             3             3
         22103        module_L2b_halfmodule_stereo             2             2             1             3
         22203        module_L2b_halfmodule_stereo             2             2             2             3
         22303        module_L2b_halfmodule_stereo             2             2             3             3
         11103         module_L2t_halfmodule_axial             1             1             1             3
         11203         module_L2t_halfmodule_axial             1             1             2             3
         11303         module_L2t_halfmodule_axial             1             1             3             3
         12103         module_L2t_halfmodule_axial             1             2             1             3
         12203         module_L2t_halfmodule_axial             1             2             2             3
         12303         module_L2t_halfmodule_axial             1             2             3             3
         11104        module_L2t_halfmodule_stereo             1             1             1             4
         11204        module_L2t_halfmodule_stereo             1             1             2             4
         11304        module_L2t_halfmodule_stereo             1             1             3             4
         12104        module_L2t_halfmodule_stereo             1             2             1             4
         12204        module_L2t_halfmodule_stereo             1             2             2             4
         12304        module_L2t_halfmodule_stereo             1             2             3             4
         21106         module_L3b_halfmodule_axial             2             1             1             6
         21206         module_L3b_halfmodule_axial             2             1             2             6
         21306         module_L3b_halfmodule_axial             2             1             3             6
         22106         module_L3b_halfmodule_axial             2             2             1             6
         22206         module_L3b_halfmodule_axial             2             2             2             6
         22306         module_L3b_halfmodule_axial             2             2             3             6
         21105        module_L3b_halfmodule_stereo             2             1             1             5
         21205        module_L3b_halfmodule_stereo             2             1             2             5
         21305        module_L3b_halfmodule_stereo             2             1             3             5
         22105        module_L3b_halfmodule_stereo             2             2             1             5
         22205        module_L3b_halfmodule_stereo             2             2             2             5
         22305        module_L3b_halfmodule_stereo             2             2             3             5
         11105         module_L3t_halfmodule_axial             1             1             1             5
         11205         module_L3t_halfmodule_axial             1             1             2             5
         11305         module_L3t_halfmodule_axial             1             1             3             5
         12105         module_L3t_halfmodule_axial             1             2             1             5
         12205         module_L3t_halfmodule_axial             1             2             2             5
         12305         module_L3t_halfmodule_axial             1             2             3             5
         11106        module_L3t_halfmodule_stereo             1             1             1             6
         11206        module_L3t_halfmodule_stereo             1             1             2             6
         11306        module_L3t_halfmodule_stereo             1             1             3             6
         12106        module_L3t_halfmodule_stereo             1             2             1             6
         12206        module_L3t_halfmodule_stereo             1             2             2             6
         12306        module_L3t_halfmodule_stereo             1             2             3             6
         21108    module_L4b_halfmodule_axial_hole             2             1             1             8
         21208    module_L4b_halfmodule_axial_hole             2             1             2             8
         21308    module_L4b_halfmodule_axial_hole             2             1             3             8
         22108    module_L4b_halfmodule_axial_hole             2             2             1             8
         22208    module_L4b_halfmodule_axial_hole             2             2             2             8
         22308    module_L4b_halfmodule_axial_hole             2             2             3             8
         21110    module_L4b_halfmodule_axial_slot             2             1             1            10
         21210    module_L4b_halfmodule_axial_slot             2             1             2            10
         21310    module_L4b_halfmodule_axial_slot             2             1             3            10
         22110    module_L4b_halfmodule_axial_slot             2             2             1            10
         22210    module_L4b_halfmodule_axial_slot             2             2             2            10
         22310    module_L4b_halfmodule_axial_slot             2             2             3            10
         21107   module_L4b_halfmodule_stereo_hole             2             1             1             7
         21207   module_L4b_halfmodule_stereo_hole             2             1             2             7
         21307   module_L4b_halfmodule_stereo_hole             2             1             3             7
         22107   module_L4b_halfmodule_stereo_hole             2             2             1             7
         22207   module_L4b_halfmodule_stereo_hole             2             2             2             7
         22307   module_L4b_halfmodule_stereo_hole             2             2             3             7
         21109   module_L4b_halfmodule_stereo_slot             2             1             1             9
         21209   module_L4b_halfmodule_stereo_slot             2             1             2             9
         21309   module_L4b_halfmodule_stereo_slot             2             1             3             9
         22109   module_L4b_halfmodule_stereo_slot             2             2             1             9
         22209   module_L4b_halfmodule_stereo_slot             2             2             2             9
         22309   module_L4b_halfmodule_stereo_slot             2             2             3             9
         11107    module_L4t_halfmodule_axial_hole             1             1             1             7
         11207    module_L4t_halfmodule_axial_hole             1             1             2             7
         11307    module_L4t_halfmodule_axial_hole             1             1             3             7
         12107    module_L4t_halfmodule_axial_hole             1             2             1             7
         12207    module_L4t_halfmodule_axial_hole             1             2             2             7
         12307    module_L4t_halfmodule_axial_hole             1             2             3             7
         11109    module_L4t_halfmodule_axial_slot             1             1             1             9
         11209    module_L4t_halfmodule_axial_slot             1             1             2             9
         11309    module_L4t_halfmodule_axial_slot             1             1             3             9
         12109    module_L4t_halfmodule_axial_slot             1             2             1             9
         12209    module_L4t_halfmodule_axial_slot             1             2             2             9
         12309    module_L4t_halfmodule_axial_slot             1             2             3             9
         11108   module_L4t_halfmodule_stereo_hole             1             1             1             8
         11208   module_L4t_halfmodule_stereo_hole             1             1             2             8
         11308   module_L4t_halfmodule_stereo_hole             1             1             3             8
         12108   module_L4t_halfmodule_stereo_hole             1             2             1             8
         12208   module_L4t_halfmodule_stereo_hole             1             2             2             8
         12308   module_L4t_halfmodule_stereo_hole             1             2             3             8
         11110   module_L4t_halfmodule_stereo_slot             1             1             1            10
         11210   module_L4t_halfmodule_stereo_slot             1             1             2            10
         11310   module_L4t_halfmodule_stereo_slot             1             1             3            10
         12110   module_L4t_halfmodule_stereo_slot             1             2             1            10
         12210   module_L4t_halfmodule_stereo_slot             1             2             2            10
         12310   module_L4t_halfmodule_stereo_slot             1             2             3            10
         21112    module_L5b_halfmodule_axial_hole             2             1             1            12
         21212    module_L5b_halfmodule_axial_hole             2             1             2            12
         21312    module_L5b_halfmodule_axial_hole             2             1             3            12
         22112    module_L5b_halfmodule_axial_hole             2             2             1            12
         22212    module_L5b_halfmodule_axial_hole             2             2             2            12
         22312    module_L5b_halfmodule_axial_hole             2             2             3            12
         21114    module_L5b_halfmodule_axial_slot             2             1             1            14
         21214    module_L5b_halfmodule_axial_slot             2             1             2            14
         21314    module_L5b_halfmodule_axial_slot             2             1             3            14
         22114    module_L5b_halfmodule_axial_slot             2             2             1            14
         22214    module_L5b_halfmodule_axial_slot             2             2             2            14
         22314    module_L5b_halfmodule_axial_slot             2             2             3            14
         21111   module_L5b_halfmodule_stereo_hole             2             1             1            11
         21211   module_L5b_halfmodule_stereo_hole             2             1             2            11
         21311   module_L5b_halfmodule_stereo_hole             2             1             3            11
         22111   module_L5b_halfmodule_stereo_hole             2             2             1            11
         22211   module_L5b_halfmodule_stereo_hole             2             2             2            11
         22311   module_L5b_halfmodule_stereo_hole             2             2             3            11
         21113   module_L5b_halfmodule_stereo_slot             2             1             1            13
         21213   module_L5b_halfmodule_stereo_slot             2             1             2            13
         21313   module_L5b_halfmodule_stereo_slot             2             1             3            13
         22113   module_L5b_halfmodule_stereo_slot             2             2             1            13
         22213   module_L5b_halfmodule_stereo_slot             2             2             2            13
         22313   module_L5b_halfmodule_stereo_slot             2             2             3            13
         11111    module_L5t_halfmodule_axial_hole             1             1             1            11
         11211    module_L5t_halfmodule_axial_hole             1             1             2            11
         11311    module_L5t_halfmodule_axial_hole             1             1             3            11
         12111    module_L5t_halfmodule_axial_hole             1             2             1            11
         12211    module_L5t_halfmodule_axial_hole             1             2             2            11
         12311    module_L5t_halfmodule_axial_hole             1             2             3            11
         11113    module_L5t_halfmodule_axial_slot             1             1             1            13
         11213    module_L5t_halfmodule_axial_slot             1             1             2            13
         11313    module_L5t_halfmodule_axial_slot             1             1             3            13
         12113    module_L5t_halfmodule_axial_slot             1             2             1            13
         12213    module_L5t_halfmodule_axial_slot             1             2             2            13
         12313    module_L5t_halfmodule_axial_slot             1             2             3            13
         11112   module_L5t_halfmodule_stereo_hole             1             1             1            12
         11212   module_L5t_halfmodule_stereo_hole             1             1             2            12
         11312   module_L5t_halfmodule_stereo_hole             1             1             3            12
         12112   module_L5t_halfmodule_stereo_hole             1             2             1            12
         12212   module_L5t_halfmodule_stereo_hole             1             2             2            12
         12312   module_L5t_halfmodule_stereo_hole             1             2             3            12
         11114   module_L5t_halfmodule_stereo_slot             1             1             1            14
         11214   module_L5t_halfmodule_stereo_slot             1             1             2            14
         11314   module_L5t_halfmodule_stereo_slot             1             1             3            14
         12114   module_L5t_halfmodule_stereo_slot             1             2             1            14
         12214   module_L5t_halfmodule_stereo_slot             1             2             2            14
         12314   module_L5t_halfmodule_stereo_slot             1             2             3            14
         21116    module_L6b_halfmodule_axial_hole             2             1             1            16
         21216    module_L6b_halfmodule_axial_hole             2             1             2            16
         21316    module_L6b_halfmodule_axial_hole             2             1             3            16
         22116    module_L6b_halfmodule_axial_hole             2             2             1            16
         22216    module_L6b_halfmodule_axial_hole             2             2             2            16
         22316    module_L6b_halfmodule_axial_hole             2             2             3            16
         21118    module_L6b_halfmodule_axial_slot             2             1             1            18
         21218    module_L6b_halfmodule_axial_slot             2             1             2            18
         21318    module_L6b_halfmodule_axial_slot             2             1             3            18
         22118    module_L6b_halfmodule_axial_slot             2             2             1            18
         22218    module_L6b_halfmodule_axial_slot             2             2             2            18
         22318    module_L6b_halfmodule_axial_slot             2             2             3            18
         21115   module_L6b_halfmodule_stereo_hole             2             1             1            15
         21215   module_L6b_halfmodule_stereo_hole             2             1             2            15
         21315   module_L6b_halfmodule_stereo_hole             2             1             3            15
         22115   module_L6b_halfmodule_stereo_hole             2             2             1            15
         22215   module_L6b_halfmodule_stereo_hole             2             2             2            15
         22315   module_L6b_halfmodule_stereo_hole             2             2             3            15
         21117   module_L6b_halfmodule_stereo_slot             2             1             1            17
         21217   module_L6b_halfmodule_stereo_slot             2             1             2            17
         21317   module_L6b_halfmodule_stereo_slot             2             1             3            17
         22117   module_L6b_halfmodule_stereo_slot             2             2             1            17
         22217   module_L6b_halfmodule_stereo_slot             2             2             2            17
         22317   module_L6b_halfmodule_stereo_slot             2             2             3            17
         11115    module_L6t_halfmodule_axial_hole             1             1             1            15
         11215    module_L6t_halfmodule_axial_hole             1             1             2            15
         11315    module_L6t_halfmodule_axial_hole             1             1             3            15
         12115    module_L6t_halfmodule_axial_hole             1             2             1            15
         12215    module_L6t_halfmodule_axial_hole             1             2             2            15
         12315    module_L6t_halfmodule_axial_hole             1             2             3            15
         11117    module_L6t_halfmodule_axial_slot             1             1             1            17
         11217    module_L6t_halfmodule_axial_slot             1             1             2            17
         11317    module_L6t_halfmodule_axial_slot             1             1             3            17
         12117    module_L6t_halfmodule_axial_slot             1             2             1            17
         12217    module_L6t_halfmodule_axial_slot             1             2             2            17
         12317    module_L6t_halfmodule_axial_slot             1             2             3            17
         11116   module_L6t_halfmodule_stereo_hole             1             1             1            16
         11216   module_L6t_halfmodule_stereo_hole             1             1             2            16
         11316   module_L6t_halfmodule_stereo_hole             1             1             3            16
         12116   module_L6t_halfmodule_stereo_hole             1             2             1            16
         12216   module_L6t_halfmodule_stereo_hole             1             2             2            16
         12316   module_L6t_halfmodule_stereo_hole             1             2             3            16
         11118   module_L6t_halfmodule_stereo_slot             1             1             1            18
         11218   module_L6t_halfmodule_stereo_slot             1             1             2            18
         11318   module_L6t_halfmodule_stereo_slot             1             1             3            18
         12118   module_L6t_halfmodule_stereo_slot             1             2             1            18
         12218   module_L6t_halfmodule_stereo_slot             1             2             2            18
         12318   module_L6t_halfmodule_stereo_slot             1             2             3            18

 

 

 

Running Track-based Alignment

Here is an overview of the steps needed. Each step is described in more detail below.

  1. Production a Millepede input binary
  2. Run millepede using mille.bin creating a resulting file with correction to the constants, e.g. millepede.res
  3. Create a new compact detector description with the new corrections, e.g. compact_new.xml
    1. java -cp hps-distribution-3.0.4-SNAPSHOT-bin.jar org/hps/svt/alignment/BuildMillepedeCompact -c compact.xml millepede.res -o compact_new.xml 
    2. Use option "-r" to replace instead of adding to existing constants in the compact.xml
  4. Create a new detector with this new compact_new.xml file.
Production a Millepede input binary

The Millepede input binary is obtained through the following steps:

  1. Reconstruct data with GBL (to this purpose, you need to include the GblDriver and GblOutputDriver in your steering file).

    1. For Montecarlo data:

      1. run the readoout with the steering file: HPS2014ReadoutNoPileup.lcsim
      2. run the recon with the steering file: HPS2014OfflineNoPileUp.lcsim
    2. For real data use as steering file: /org/hps/steering/recon/EngineeringRun2015FullReconGbl2.lcsim
  2. Check that at the end of reconstruction a out.gbl ascii file (or, named as you decided in the GblOutputDriver) is produced.
  3. Remember that by default the geometry is taken from the database. If you want to force the use of your own geometry, you must provide it in the compact.xml file in a given detector. For MonteCarlo data, set the run number to zero during readout and reconstruction. This is done adding the flag -Drun=0 when running the readout. For real data, use the -DdisableSvtAlignmentConstants flag.. IMPORTANT: remember to re-compile hps-java before running each time you change the compact.xml file! (this is the most common error).
  4. The out.gblfile is read by a python procedure. You must download with git the current version of the software from the github repository as descrived in the following. This will create a hps-gbl directory. After having configured your account and username for git usage, issue the following commands:(the second and third command need to be issued just upon installation, and they are needed since you will have to download something else from github -see step 1 of the next subsection- and some directories with needed utils are shared in the github repository).
  5. remember to install the GBL software, if you already haven't it. In a directory parallel to hps-gbl download the GBL software using svn:(or check the newest release, and get it). To compile it:
    • cd GeneralBrokenLines/cpp
    • mkdir build; cd build
    • cmake ../
    • make install
    • make doc (if you want it)
    Note: if you have installed the latest cmake version, it probably won't compile. You must prevent the compilation to search for C++11 support (the default for newest cmake). To do this, you have to set as compilation flag -std=c++0xadding it to the c++ compilation line. Either you do it in the cmake configuration files, or (quickest) you add by hand this flag at the end of the CXX_FLAGS line, in the two files:
    • GeneralBrokenLines/cpp/build/CMakeFiles/GBL.dir/flags.make
    • GeneralBrokenLines/cpp/build/examples/CMakeFiles/GBLpp.dir/flags.make
  6. the gbl python procedure reads the out.gbl file and prepares the binary read by Millepede. You mustrun python from the hps-gbl directory. This is the shortest syntax (-h shows all possible options):
    • cd hps-gbl
    • python gbltst-hps.py [-h] out.gbl
    A heap of pdf files are produced containing plots of several quantities for top/bottom halves, with long names that should be self-explaining (but at the moment they are not and they are too long, this must be improved). You will also file a .root file containing the single root histograms, and a .ps file containing a summary of the plots ready to be printed.
    The file gbltst-hps.py contains the instructions to extract the useful information on tracks and hits from the ascii file and write the input file for Millepede. If you want to add/modify some of the output plots/histograms, you have to modify both the gbl_plots.py file (in which they have to be booked) and the gbltst-hps.py file, in which they have to be filled.
    Note: root must be compiled including the python support, otherwise python stops with an error complaining about root libraries missing. A good idea is to put in your profile and instruction to run automatically $ROOTSYS/bin/thisroot.(c)sh, which provides the correct root-python environment and libraries for your system.
    At the end of python run, you should also find a MilleBinaryISN.dat file (the name could slightly change), which is the input file to be read by Millepede.

 

Running Millepede
  1. Once you have the binary file, millepede is run from the hps-mille directory. This directory is setup downloading the Millepede software by github using the following commandRemember to compile the fortran sources of the MillepedeII software. It comes with the git bundle (or you can download it from https://www.wiki.terascale.de/index.php/Millepede_II) but you have to compile it in your system (note: for gfortran you might have to slightly modify the Makefile, because it could be not aligned anymore to more modern gfortran versions/libraries).
  2. To run millepede use the following commands:
    • cd hps-mille
    • ./runMP.py -i../hps-gbl/milleBinaryISN.dat -M NAMES
    where NAMES is a list of parameters coded via the following regexp: L(1-6)[AS]?[hs]?[tb]_([tr])([uvw]) having the following meaning:
    1. 1-6: layer number
    2. A: axial, S: stereo
    3. h: hole, s: slot
    4. t: top, b:bottom
    5. _t: translation, _r: rotation
    6. u, v, w: coordinates on the sensor reference system
    if some of the parameters preceded by "?" are omitted, both the choices are selected
  3. Millepede produces as output, among several files, the millepede.res file which contains the corrections found by Millepede for the floated parameters.

Create a new compact based on Millepede corrections

The new geometry file is produced in the hps-mille directory. Use the following python wrapper that reads the millepede.res file and writes the compact_new.xml file (it replaces the procedure describes in point 3a of the introductory notes in this section):

  • ./buildCompact.py [-h] -j JARFILE -c compact_new.xml -r millepede.res

JARFILE is the name of the hps-java jarfile you used/will be using to reconstruct your data files with the aligned (new) geometry.

 

Create a new detector based on a new compact.xml file

The instruction on how to create a new detector given your new .xml geometry file can be found here: Detector Geometry Overview, section: Adding A New Detector. Remember to rename the compact_new.xml file into compact.xml, write a few lines of clever comment in the .xml file to remember which kind of geometry this is, and recompile hps-java before running with the new geometry.

You are ready now to restart the full procedure restarting from point 1 of the list at the beginning of this section.