Some notes about rare events searches (anti-xx, )

Software version

  • The following tools are available for AMS software B1060 (as of Feb./2 2016) or later

Outline

Ladder support aluminum blocks at Z=0 NEW

  • There are some dense material hot spots in the center of Inner Tracker (Z=0). Most of them are aluminum support jig blocks of ladders.
  • The positions of these blocks are located by using ISS data by selecting He events interacting into p at Z=0
  • Please refer for more details in AMSEventR class reference
// For each event
  // The variable you can play with on cuts (typical cut is hsv<0.26)
  float hsv = event->GetHeSurvProbAtL56();  // The accuracy of this variable is limited due to the He statistics and pointing resolution

  // The new variable now is more recommended (typical cut is tkf56 < 0.5~6)
  float tkf56 = std::min(event->GetTkFeetDist(5), event->GetTkFeetDist(6));

  // You can get the same variable with your own Ntuple without AMSEventR object (typical cut is tkf56 < 0.5~6)
  // p0 = track->GetP0(), d0 = track->GetDir(), rig = track->Rigidity()
  float tkf56 = std::min(AMSEventR::GetTkFeetDist(5, p0, d0, rig), AMSEventR::GetTkFeetDist(6, p0, d0, rig)); 

  • X-ray map of 1-(He survival probability) at Z=0.
    hesv56.png
  • Typical distribution of tkf56 for R>0 and R<0 sample with Z=2.
    tf.pdf
  • Schematic drawing of ladder fixing jig.
    planfixech.jpg

Tracker signal strip fraction NEW

  • It is observed that significant amount of charge confusing events have a hit in the Inner Tracker which has wide strip width (see an example below).
  • In order to check this kind of events a new method is implemented.
  • Please refer for more details in AMSEventR class reference
// For each event
float sr[7], smin = 0;
// Loop on inner Layers (2-8)
for (int j = 0; j < 7; j++) {
  // Get a ratio of raw ADC used for the hit over the sum of n=10 strips around.
  sr[j] = event->GetTrackerRawSignalRatio(j+2, 10);
  if (sr[j] > 0 && (smin == 0 || sr[j] < smin)) smin = sr[j];
}
// smin and sr[j] are the variables you can play with on cuts
  • Example of |Z|=2 ISS event: Tracker raw ADC signal around hit. Layer 2 has noisy strips.
    stripsig.png
  • Typical distribution of smin for R>0 (red/purple) and R<0 (blue/green) sample with Z=2 ISS data(points) and MC(lines) .
    stripsigcut.pdf

Tracker fiducial volume

  • It is observed that significant amount of charge confusing events concentrate in the edge of the tracker.
  • The reason is not yet understood
  • It seems that MC doesn't reproduce this
  • In order to have reasonable quality TrTrack it is recommended to apply a fiducial volume cut of TrTrack
  • The typical population of charge confused events
    ahekill1.pdf

AMSPoint p0 = track->GetP0();  // TrTrack position at Z=0
if (p0.norm() > 47) continue;  // Skip this event

Sensor grid sequence ID

  • If you find a possible rare event it is recommended to examine the distributions of nominal events (e.g. p and He) passing through the same Tracker sensor combination
  • A sequence number is now assigned to sensor positions on Layer2, 8 and Z=0.
  • There are 316, 250 and 220 in Layer 2, 8 and Z=0, respectively.
  • Offset of 1000 and 2000 are added for Layer2 and 8 ID, respectively
  • For the physical location of each sensor ID please see the figure
  • Please refer for more details in AMSEventR class reference
  • There are two ways to get this number:

(1) From AMSEventR

TrTrackR *track;  // TrTrack pointer, or put 0 if you want to use event->pParticle(0)->pTrTrack()
int s0, s2, s8;
event->GetTrSensorGridID(track, s0, s2, s8);

(2) From your own DST

AMSPoint pntIn // = TrTrack position (e.g. track->GetP0())
AMSDir dirIn // = TrTrack direction at pntIn (e.g. track->GetDir())
int s0, s2, s8;
AMSEventR::GetTrSensorGridID(pntIn, dirIn, rigidity, s0, s2, s8);  // This is a static method

Chikanian Fit

  • It has been developed by Dr. A.Chikanian of Yale University.
  • It is found that in very low rigidity below ~0.3 GV the energy loss correction doesn't work properly and the fit always fails
  • In order to use this fitting without energy loss correction, please use algo=13 instead of algo=3.
  • It can also give better agreement with the standard rigidity.

// It is recommended to provide beta (from TOF or RICH) instead of mass when you need a mass measurement
int itp = track->iTrTrackPar(13, pat, refit, 0, chrg, beta);

Additional TrTrack quality cut

  • This cut works most efficiently after you mitigate the L6/L8 lost hits as written below
  • This method counts number of possible noise pick-up within 1 cm for layers 2-8 on the following criteria: either
    1. 1 hit found in layer which no hit in TrTrack OR
    2. 2 hits found in layers with the hit in TrTrack
  • Note that the return value considers inner tracker only; It is needed to provide optional arguments to investigate for outer layers.
  • Please also refer more detailed options in AMSEventR class reference

if (event->IsTrackPickingUpNoise() != 0) continue;  // Skip this event

Known feature of the current track finding and new developments (works by Z.Qu)

  • Current track finding (TrRecon) has a known feature (i.e. bug) that L6 and L8 pickup efficiency is ~10% lower than the other inner layers
  • In order to mitigate this problem there are three ways;

(1) Use TrTrackR::AddLostHits

// By default all the TrTrack parameters are refitted
int itp = track->AddLostHits();

(2) Rebuild TrTracks with a new option (TRCLFFKEY::UseZQFix =1)

#include "TrRecon.h"
#include "tkdcards.h"  // For TRCLFFKEY

{ // Event loop
  TRCLFFKEY.UseZQFix =1;  // Activate the fix
  TrRecon rec;
   // By default, originally existing TrTracks are cleared and BetaHR and ParticleR association are rebuilt
  rec.Build(1111, 1, 0);
  TrTrackR *track = event->pParticle(0)->pTrTrack();
}

(3) Rebuild TrTracks with a completely new track finding by Z.Qu

#include "TrReconQ.h"

{ // Event loop
  TrReconQ rq;
  rq.BuildTrTracksQu();

  int ntrkq = rq.GetNTrTrack();   // Get number of tracks found in the new track finding
  TrTrackR *trkq = rq.pTrTrack(j);   // Access TrTrack at j

  // ** At this point AMSEventR contains the original TrTracks only **

  // In order to replace TrTracks in AMSEventR and rebuild BetaHR and ParticleR association you need to call:
  rq.AddTracks();

  // Then you can get TrTrack from the new track finding
  TrTrackR *track = event->pParticle(0)->pTrTrack();
}

-- SadakazuHaino - 2015-10-08

Topic attachments
I Attachment History Action Size Date Who Comment
PDFpdf ahekill1.pdf r1 manage 28.0 K 2016-02-01 - 00:55 SadakazuHaino Population of charge confused events
PNGpng hesv56.png r3 r2 r1 manage 246.4 K 2016-02-01 - 09:08 SadakazuHaino He survival probability at L56
JPEGjpg planfixech.jpg r1 manage 46.9 K 2016-02-02 - 16:53 SadakazuHaino Schematic drawing of ladder fixing jig
PDFpdf ss.pdf r1 manage 47.7 K 2015-12-04 - 19:05 SadakazuHaino Sensor positions of S0(Z=0), S2(Layer 2) and S8(Layer 8)
PNGpng stripsig.png r1 manage 113.9 K 2016-01-09 - 00:41 SadakazuHaino Tracker raw ADC signal around hit
PDFpdf stripsigcut.pdf r1 manage 19.9 K 2016-01-31 - 21:39 SadakazuHaino  
PDFpdf tf.pdf r1 manage 13.9 K 2016-02-02 - 16:48 SadakazuHaino Distribution of distance to the tracker fixing jig (aka TkFeet)
Topic revision: r12 - 2016-02-02 - SadakazuHaino
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    AMS All webs login

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