Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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 both 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 in a while -see following pointsstep 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)
  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] GBLFILEout.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 really soand 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.
    Note: root must be compiled including the python support, otherwise python stops with an error complaining about root libraries missing.

 

Running Millepede
Create a new compact based on Millepede corrections
Create a new detector based on a new compact.xml file
  1. 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.