PXL Alignment with Low Luminosity Zero Field Data

 This describes the procedure and results of the HFT/PXL sector alignment using the low luminosity data taken on day 100 (April 10th).

The general idea is to reconstruct the vertices using the tracks with HFT hits from each individual sectors. The relative differences between vertices from different sectors are related to the relative offsets and rotation angles. The general procedure and some early test with the Run13 and simulation data are described in the following document.
http://www.star.bnl.gov/protected/heavy/dongx/hft/doc/align_vtx.pdf

Data used here are run 15100093, 15100094, 1510095, 15100096, and 15100099 with total about 600K VPDMB events with 10cm online vertex cut. There is another run 15100097 with ~600K statistics which is not processed yet.

1) Data production

- Working directory:   /star/u/dongx/lbl/hft/Run14/LowLumi_ZeroField
- PXL status tables from Michael (generated online automatically)
   Backup here: http://portal.nersc.gov/project/star/sss/PXL_QA_2014/
- No local reference geometry tables used (meaning latest tables from DB)
- Chain production options:
  "P2014a,mtd,btof,BEmcChkStat,Corr4,OSpaceZ2,OGridLeak3D,-hitfilt,pxlRaw,pxlDb,pxlCluster,pxlHit,istRaw,istDb,istCluster,istHit,HftMatTree,-tags,-CMuDST”
- Output
   /star/u/dongx/lbl/hft/Run14/LowLumi_ZeroField/output/[YYDDDRRR]
   *.event.root (only run 15100093) and Event_*.root (my own HftMatTree output) stored

2) QA and rate estimation
    The following plots show the correlation between number of hits in each HFT layer and TPC tracks 


Although this is a low luminosity store, one can see the number PXL hits doesn't start from zero at zero TPC tracks due to the UPC electrons and possible pileup events too.
Based on Daniel's zero field simulation with STARlight
https://drupal.star.bnl.gov/STAR/system/files/UpcEle_ZeroMagField_2013-12-30.pdf
With 500Hz collision rate, PXL1, <UPC-e> = 0.22 / cm^2 -> 0.88 hit / sensor                    PXL2, <UPC-e> = 0.04 / cm^2 -> 0.16 hit / sensor

While in data: run 15100093, ZDCx = 5.7kHz, so we would expecte, PXL1: <UPC-e> = 10.2 hit / sensor and PXL2: <UPC-e> = 1.9 hit / sensor
                     <pileup event> ~ 1 at 5.7kHz


The observed number of hits per sensor in PXL and IST are in the ballpark

3) Straighline tracking: projeciton residuals
    TPC tracks, although the resolutions are not so great, are used for clean up. Here are the residual cuts to select the candidate tracks

const Double_t mDCATrackMax = 1.0;   // dca to TPC track
const Double_t mDcaZMax_IST = 1.0;
const Double_t mDcaXYMax_IST = 1.0;
const Double_t mDcaZMax_PXL2 = 0.5;
const Double_t mDcaXYMax_PXL2 = 0.2;
const Double_t mDcaZMax_PXL1 = 0.5;
const Double_t mDcaXYMax_PXL1 = 0.2;

The residual distributions on each HFT layer are shown below. Centrality is simply defined by the total TPC charged tracks divided into 10 bins. 0 means most peripheral and 9 means most central. 


For the distributions in two PXL layers, the upper row shows the raw distributions, while the bottom row shows the expected signal after the combinatorial background subtraction (assuming gaussian too.) There can be a question whether the peaks shown are indeed from the real tracks since they sit on top of a peaked background distribution too. I have evidences that these are good.
   - the signal gaussian widths are as expected from the MCS and the hit resolution.

with the straightline from two hits on PXL1 and PXL2, projecting to IST layer
MCS material, one layer of PXL2 material, ~0.5%X0 (0 deg incident angle)
Pathlength = 14-8 = 6cm
MCS resolution, assuming 300 MeV particles
13.6/pβc sqrt(x/X0) x L = 192 μm
IST hit resolution (X,Y) including alignment precision 240-340 μm
Total expected resolution: 300-400 μm

    - the other one is from the vertex finding (see in the next section)

4) Vertex reconstruction
    In step 3), I selected all three layers of HFT should have at least one hit that can be associated to the TPC and also three hits should align into one straightline within the dca cuts. Then use the hits from PXL1 and PXL2 to do straightline projection to reconstruct the vertex.

    The vertex seeding is done in two steps
       - calculate vertex positions of any two-track combinations, then find the beam line seeds (vx, vy) - first row in the following figures
       - calculate the dca positions of all tracks w.r.t. to the seeded beam line, find the vertex seed (vx, vy, vz) - second row in the following figures
 

 run#15100093 event#406, cen=4    run#15100093 event#266, cen=9
 

Histograms are binned with 500-micron width. In the end, all tracks in the highest bin in Dca_z distributions are used for vertex fitting.

Vertex fitting is using the same 3D Minuit minimization method. The chi2 is defined as the sum of the 3D dca divided by the expected error^2. The pointing error is assumed to be 150 microns in the 2D plane perpendicular to the track direction, while no constrain along the track direction. The full error matrix is then considered when calculating the chi2.

Vertices are reconstructed for the whole event (requireto have at least 5 candidate tracks) and also for every individual sector (require to have at least 3 candidate tracks). Then the position differences are calculated on the event-by-event basis between the vertices found in any sector.

5) Extracting the alignment parameters

dVx vs. Vz

    

dVy vs. Vz

dVz vs. Vz

The plots on the diagonal are the differences between the vertices reconstructed from each sector w.r.t. the full event vertex.
All residuals generally look very good, centered at zero with very small slopes. Some sectors seem to have a bit large offsets (~20 microns). All parameters are summarized in the following:
The plots shows the offsets (intercepts) and slopes from the fits to the above 2D distributions ploted for each sector w.r.t. the others.
In every of the following plots, there are 10 panels showing the fit results for sector #1 (top)-#10 (bottom) w.r.t. to all other 9 sectors (solid dots) and the full event (open dots). The top right triangle in the above 2D plot matrices are filled with the oppisite values from the bottom left triangle. Red lines are a constant fit to all the solid dots to obtain the misalignment parameters for each sector w.r.t the rest.

  dVx vs. Vz dVy vs. Vz dVz vs. Vz
offset
(um)
slope
(mrad)

The misalignment parameters obtained here are summarized below. Black:  X0 and dVx/Vz (-beta);  Red:  Y0 and dVy/Vz (alpha);  Blue:   Z0 and dVz/Vz.


All the misalignment offsets for all sectors are well within 20 microns (there is probably a global offset for first half detector - sector 1-5), all rotation angles are within 0.2-0.3 mrad. 

Then I apply these misalignment parameters (only when the offset is more than one sigma considering the statistical error) and re-calculate all. After two iterations, the plot looks like