Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
{
  gROOT->ProcessLine(".L PlotFromMillepedeRes.C+");
  gStyle->SetPalette(1);
  gStyle->SetCanvasColor(kWhite); 

  //enum {PXB,PXF,TIB,TID,TOB,TEC};
  //enum {PULLS, NHITS, PARS, PARSwithERRvsLABEL};

  TString strVars;

  // uncomment two lines you need (check below)
    // one starts with strVars
    // the other starts with PlotFromMillepedeRes
  // pass appropriate unzipped millepede.res file
    // as the first argument to PlotFromMillepedeRes()
  // don't change strVars
  // set strOutdir where you want to save plots
    // by default, it's here, where you run this script
  // they will be saved in .png and .pdf formats
  // there will be also empty root file
  // run with
  // root -l runPlotMillepedeRes.C

  TString strOutdir="./"; 

  //###########################################################

  // plots par+-err as function of (label%700000) 
  // quoted in millepede.res 
  // to be used to plot from millepede.res with high level alignables 
  // ran in inversion mode (has to have errors, see strVars defined above)

  // uncomment two lines below if this is what you want to plot

//  strVars="label/I:smth2/F:smth1/F:parVal/F:parErr/F:Nhits/I";
//  PlotFromMillepedeRes("mp1720_millepede.res", strOutdir, strVars, PARSwithERRvsLABEL);

  //###########################################################

  // plots distributions of number of derivatives
  // associated with given module (last column in millepede.res)
  // for certain modules it's equal to number of tracks passed 
  // through the module
  // and for the others it's 2(x)tracks
  // the script takes this number from "u" coordinate
  // it introduces cut label<700000 to reject high level structures 
  // if they were allowed for IOV 
  // (if they were not then they also will contribute to distributions)
  // to be used to plot from millepede.res with module level alignables 
  // assumes that you didn't run in inversion mode and millepede.res doesn't have errors
  // if it does, please, add appropriate variable to strVars

  // uncomment two lines below if this is what you want to plot

//  strVars="label/I:smth2/F:smth1/F:parVal/F:Nhits/I";
//  PlotFromMillepedeRes("mp1700_millepede.res", strOutdir, strVars, NHITS);

  //###########################################################

  // plots distributions of pulls 
  // defined as parVal/(1.41 x parErr)
  // 1.41 factor appears because for pull distributions 
  // we run alignment in 2 iterations on independent same-size
  // sets of data and the error of the 1st iteration is ignored
  // has cut label<700000 to reject large structures if they were allowed for IOV
  // needs unzipped millepede.res ran in inversion mode 

  // uncomment two lines below if this is what you want to plot

//  strVars="label/I:smth2/F:smth1/F:parVal/F:parErr/F:Nhits/I";
//  PlotFromMillepedeRes("mp1587_mpInversion_TPBandTPE_jobData_jobm_millepede.res", strOutdir, strVars, PULLS);

  //###########################################################

  // plots distributions of parVal separately for each subdetector
  // it saved 6 different canvases, 9 plots on each (u,v,w,alpha,beta,gamma,def1,def2,def3)
  // has cut label<700000 to reject large structures if they were allowed for IOV
  // needs unzipped millepede.res
  // assumes that you didn't run in inversion mode and millepede.res doesn't have errors
  // if it does, please, add appropriate variable to strVars

  // uncomment two lines below if this is what you want to plot

//  strVars="label/I:smth2/F:smth1/F:parVal/F:Nhits/I";
//  PlotFromMillepedeRes("mp1700_millepede.res", strOutdir, strVars, PARS);

}