Plots and Tools for Bowed Sensor Alignment with Millepede

The page introduces plots and tools I have done for the bowed sensor alignment with Millepede and its offline validation.

Mean of Bowed Parameters vs Labels

The jobData/jobm/treeFile_merge.root and Alignment/MillePedeAlignmentAlgorithm/macros/PlotMillePede.C are used. I have checked out the Alignment/MillePedeAlignmentAlgorithm/macros and added PlotMillePede::DrawPedeParam_sagittas, PlotMillePede::DrawPedeParam_sagittasHist and PlotMillePede::DrawPedeParam_sagittas2 based on PlotMillePede::DrawPedeParam to get bowed parameters' histograms conveniently. The new PlotMillePede.C is under directory /afs/cern.ch/cms/CAF/CMSALCA/ALCA_TRACKERALIGN/MP/MPproduction/mp0621/PlotMillePede

We ploted the bow paramters according to the module groups, which are

BPIX L1, L2, L3
TIB L1 stereo, L1 rphi, L2 stereo, L2 rphi, L3, L4
TID R1 stereo, R1 rphi, R2 stereo, R2 rphi, R3
TEC R1 stereo, R1 rphi, R2 stereo, R2 rphi, R3, R4  

for single sensor module and

TOB L1 stereo, L1 rphi, L2 stereo, L2 rphi, L3, L4, L5, L6
TEC R5 stereo, R5 rphi, R6, R7 

for double sensor module.

I have added

  void SetPXBLayer(UInt_t iLayer);  // PXB Layer 1,2,3
  void SetTIBLayer(UInt_t iLayer);  // TIB Layer 1,2,3,4
  void SetTIDRing(UInt_t iRing);  // TID Ring 1,2,3
  void SetTECRing(UInt_t iRing);  // TEC Ring 1,2,3,4,5,6,7
  void SetTOBLayer(UInt_t iLayer);  // TOB Layer 1-10

in class PlotMillePede to choose the module groups.

The

  void DrawSagittasMeanVSLabel(unsigned int iPar=6);  // iPar=6,7,8
  void DrawSagittasMeanVSLabel_Double(unsigned int iPar=6); // iPar=6,7,8, 15,16,17, 
  TH1F* DrawSagittasMeanVSLabel_Hist(unsigned int iPar=6);  // iPar=6,7,8
  TH1F* DrawSagittasMeanVSLabel_Double_Hist(unsigned int iPar=6); // iPar=6,7,8, 15,16,17, 

are used to get Mean of Bowed Parameters vs Label plots. That is,

root# .x allMillePede.C
root# PlotMillePede p1("/afs/cern.ch/cms/CAF/CMSALCA/ALCA_TRACKERALIGN/MP/MPproduction/mp0621/mp0026/jobData/jobm/treeFile_merge.root");
root# TH1 *h1= p1.DrawSagittasMeanVSLabel_Hist(6);
root# h1->Draw(); 

The plot looks like, plot_mean_Par6.gif

The plot_all_ps.C is used to get all histograms and check whether the mean value is correct.

DMR

The distribution of median of the residuals is ploted as following,

gSystem->Load("libFWCoreFWLite");
  AutoLibraryLoader::enable();
  gROOT->ProcessLine(".L /afs/cern.ch/cms/CAF/CMSALCA/ALCA_TRACKERALIGN/data/commonValidation/CMSSW_4_1_2/src/Alignment/OfflineValidation/macros/PlotAlignmentValidation.C++"); 
  PlotAlignmentValidation p("/afs/cern.ch/cms/CAF/CMSALCA/ALCA_TRACKERALIGN/data/commonValidation/results/wanx/craft10_all18/AlignmentValidation_bowed0018_save.root", "bowed0018", 1, 1);
 p.loadFileList("/afs/cern.ch/cms/CAF/CMSALCA/ALCA_TRACKERALIGN/data/commonValidation/results/wanx/craft10_OriginalGEO_4/AlignmentValidation_OriginalGEO_save.root", "OriginalGEO", 2, 2);
  p.plotDMR("medianX",30);

Module bowed parameters ($\Delta W$ vs position)

The AlignmentValidation_*.root and Alignment/OfflineValidation/macros/PlotAlignmentValidation.C are used for this plot. As following is a example to plot &Delta W vs u ("ResXvsXProfile") for PXB subdetector. In root interface,

gSystem->Load("libFWCoreFWLite");
AutoLibraryLoader::enable();
gROOT->ProcessLine(".L /afs/cern.ch/cms/CAF/CMSALCA/ALCA_TRACKERALIGN/data/commonValidation/CMSSW_4_1_2/src/Alignment/OfflineValidation/macros/PlotAlignmentValidation.C++");
PlotAlignmentValidation p1("/afs/cern.ch/user/w/wanx/afs_validation/results/wanx/craft10_OriginalGEO_4/AlignmentValidation_OriginalGEO_save.root","OriginalGEO", 2, 2);
TH1* h1 = p1.addHists("subDetId==5&&layer==1&&entries>0","ResXvsXProfile");
h1->Draw();

Caveat: When producing the AlignmentValidation_*.root file in offline validation,

process.TrackerOfflineValidationStandalone.moduleLevelHistsTransient = cms.bool(False)
process.TrackerOfflineValidationStandalone.moduleLevelProfiles    = cms.bool(True)  
should be set in the TkAlOfflineValidation.*_cfg.py file to store the "ResXvsXProfile" information.

Prob($\chi^2$,ndf) vs d_0

The TProfile "p_chi2Prob_vs_d0" is stored in AlignmentValidation_*root, I do following to fetch it,

TFile f1("/afs/cern.ch/cms/CAF/CMSALCA/ALCA_TRACKERALIGN/data/commonValidation/results/wanx/craft10_all18/AlignmentValidation_bowed0018_save.root");
TProfile *h1 = (TProfile*) f1.FindKeyAny("p_chi2Prob_vs_d0")->ReadObj();
h1->Draw();

-- XiaWan - 21-Jun-2011

Topic attachments
I Attachment History Action Size Date Who Comment
GIFgif plot_mean_Par6.gif r1 manage 7.2 K 2011-06-21 - 17:03 UnknownUser  
Edit | Attach | Watch | Print version | History: r5 < r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r5 - 2011-07-08 - unknown
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback