Info About Nuclei Analysis

Update at the latest analysis library (as of April/26/2017 or later, Build >= 1107)
  • This page includes the information about nuclei, as well as the latest development of Proton/Helium MC/Data.

Pass6 data reduction
  • Need for refitting to apply latest coordinate calculation. To have it, you need to specify mass and charge. NEW

// Fits
if (event->nMCEventG() == 0) { //ISS data
//TrLinearEtaDB::UnSetLinearCluster(); // Disable new Eta uniformity
  TrLinearEtaDB::SetLinearCluster(); // Enable new Eta uniformity(Z=1-26 and above)  [NEW]
  TRFITFFKEY.Zshift = 2; // Enable the dZ correction   [NEW]
}
else { //MC
  TRCLFFKEY.ClusterCofGOpt=1;
  TRFITFFKEY.Zshift = -1; // Disable the dZ correction  [NEW]      
}
float mass = TrFit::Mproton;
int charge = Z;  // e.g. floor(q_inn+0.5);
if(charge>=2)mass = TrFit::Mhelium*Z/2;   
track->iTrTrackPar(1, 0, 23, mass, charge);  // Recalculate coordinates (to speed up you can do this just once)
track->iTrTrackPar(1, 0, 22, mass, charge);  // Max Span
track->iTrTrackPar(1, 3, 22, mass, charge);  // Inner Only
track->iTrTrackPar(1, 5, 22, mass, charge);  // Inner+L1
track->iTrTrackPar(1, 6, 22, mass, charge);  // Inner+L9
track->iTrTrackPar(1, 7, 22, mass, charge);  // Full Span

latest MC NEW
  • proton: B1082_201
    • /eos/ams/MC/AMS02/2014/Pr.B1082/pr.pl1.05100.2_01
    • /eos/ams/MC/AMS02/2014/Pr.B1082/pr.pl1.l1.054000.2_01
  • helium: B1114_300
    • /eos/ams/MC/AMS02/2014/He.B1114/he4.pl1.l1.24000.3_00
    • /eos/ams/MC/AMS02/2014/He.B1114/he4.pl1.l19.216000.3_00
  • lithium: B1115_300 (Li6/Li7)
    • isotope composition: 50%Li6+50%Li7 (flux measurement)
    • /eos/ams/MC/AMS02/2014/Li.B1115/li6.pl1.l1.36000.3_00
    • /eos/ams/MC/AMS02/2014/Li.B1115/li6.pl1.l19.624000.3_00
    • /eos/ams/MC/AMS02/2014/Li.B1115/li7.pl1.l1.36000.3_00
    • /eos/ams/MC/AMS02/2014/Li.B1115/li7.pl1.l19.624000.3_00
  • beryllium: B1115_300 (Be7/Be9/Be10)
    • isotope composition: 50%Be7+50%Be9 (flux measurement)
    • /eos/ams/MC/AMS02/2014/Be.B1115/be7.pl1.l1.48000.3_00
    • /eos/ams/MC/AMS02/2014/Be.B1115/be7.pl1.l19.832000.3_00
    • /eos/ams/MC/AMS02/2014/Be.B1115/be9.pl1.l1.48000.3_00
    • /eos/ams/MC/AMS02/2014/Be.B1115/be9.pl1.l19.832000.3_00
  • boron: B1115_300 (B10/B11)
    • isotope composition: 30%B10+70%B11 (flux measurement)
    • /eos/ams/MC/AMS02/2014/B.B1115/b10.pl1.l1.510000.3_00
    • /eos/ams/MC/AMS02/2014/B.B1115/b10.pl1.l19.1040000.3_00
    • /eos/ams/MC/AMS02/2014/B.B1115/b11.pl1.l1.510000.3_00
    • /eos/ams/MC/AMS02/2014/B.B1115/b11.pl1.l19.1040000.3_00
  • carbon: B1113_300 (C12)
    • /eos/ams/MC/AMS02/2014/C.B1113/c12.pl1.l1.612000.3_00
    • /eos/ams/MC/AMS02/2014/C.B1113/c12.pl1.l19.1248000.3_00
  • nitrogen: B1115_300 (N14/N15)
    • isotope composition: 50%N14+50%N15 (flux measurement)
    • /eos/ams/MC/AMS02/2014/N.B1115/n14.pl1.l1.714000.3_00
    • /eos/ams/MC/AMS02/2014/N.B1115/n14.pl1.l19.1456000.3_00
    • /eos/ams/MC/AMS02/2014/N.B1115/n15.pl1.l1.714000.3_00
    • /eos/ams/MC/AMS02/2014/N.B1115/n15.pl1.l19.1456000.3_00
  • oxygen: B1114_300 (O16)
    • /eos/ams/MC/AMS02/2014/O.B1114/o16.pl1.l1.816000.3_00
    • /eos/ams/MC/AMS02/2014/O.B1114/o16.pl1.l19.1664000.3_00

MC reduction
  • Use MC versions >= 1008.
  • Need of refitting due to misalignment of external layers.
  • Ion MC point by point track resolution tuning has been released (Q. Yan) NEW
pev->SetDefaultMCTuningParameters();
TRMCFFKEY.OuterSmearing[0][1] = -11.4e-4;//L1Y  [NEW]
TRMCFFKEY.OuterSmearing[1][1] = -12.6e-4;//L9Y  [NEW]

Pass6 ISS/MC reduction
  • Before the event loop (settings):

// Latest RTI database(pass6) 
AMSSetupR::RTI::UseLatest(6); 
// Latest alignment  
TkDBc::UseFinal();
// Disabling reading settings from file  
TRMCFFKEY.ReadFromFile = 0; 
TRFITFFKEY.ReadFromFile = 0; 

  • Should use new Rigidity-Scale for 5 years pass6 data (Q. Yan): NEW
    • AMSEventR(TrTrackR)::GetCorrectedRigidity(int version=1)
    • apply additionally correction for L1Inner Rigidity-Scale(large L1Inner acceptance): AMSEventR::GetCorrectedGeomRigidity(1/10TV-1 scale shift)

  • In the event loop (track refits): NEW

//  for He and >He, mass for refit
float beta=betah->GetBeta();
float q_inn=trk->GetInnerQ_all(beta,0).Mean;
int z_inn = floor(q_inn+0.5);
if(z_inn<1)z_inn=1;
float mass=TrFit::Mproton;//Proton
if(z_inn>=2)mass=TrFit::Mhelium/2*z_inn;//Helium+Ion Z>=3
int refit=3;
bool isiss=(pev->nMCEventg()==0);//ISS or MC
// ISS Enable Linearity(charge Z>=1) and dZ correction
if(isiss){ 
   TrLinearEtaDB::SetLinearCluster();//new Eta uniformity(Z=1-26 and above) (Q. Yan) [NEW]
   TRFITFFKEY.Zshift=2; //Apply dZ correction [NEW]  
   refit=3;//force refit
}
// MC Smearing and ReFit
else { 
   TrExtAlignDB::SmearExtAlign();//MC Smear Ext-Layer
   TRCLFFKEY.UseSensorAlign = 0;
   TRCLFFKEY.ClusterCofGOpt=1;
   TRFITFFKEY.Zshift=-1; //Disable dZ correction [NEW]
   refit=3;//force refit
}
TRFITFFKEY.ErcHeY=0; //New resolution fitting weight [NEW]
int algo=1;//Choutko
int patt=7;//Full-Span
int mfit=trk->iTrTrackPar(algo,patt,20+refit,mass,z_inn);
float rigidity=0;
if(mfit>=0){
//  if(isiss)rigidity=trk->GetCorrectedRigidity(mfit);//old rigidity scale correction
  if(isiss)rigidity=trk->GetCorrectedRigidity(mfit,1);//new rigidity scale correction (Q. Yan) [New]
  else     rigidity=trk->GetRigidity(mfit);
  float bcor=trk->GetBcorr(mfit);
  if(isiss&&bcor==1){//If not applied for ISS, add Magnet temperature correction
     float bcor1=1,bcor2=1;
     int bret1= MagnetVarp::btempcor(bcor1, 0, 1);
     int bret2= MagnetVarp::btempcor(bcor2, 0, 2);
     if      (bret1==0 && bret2==0)bcor=(bcor1+bcor2)/2;
     else if (bret1!=0 && bret2==0)bcor=bcor2;
     rigidity*=bcor;
  }
}

  • List of few full-span refitting events of pass6 for crosscheck : NEW
Run Event InnerZ Rigidity-Inner ChisY-Inner Rigidity-L1I ChisY-L1I Rigidity-FS ChisY-FS
1417194135 2007 1 55.6636 0.13774 61.2996 0.168296 43.2654 1.23607
1417194135 2606 2 66.8633 2.36461 66.5287 1.89265 67.8272 1.59134
1417194135 63504 3 21.8933 0.76988 21.5641 0.886513 21.004 1.22778
1417194135 249187 6 28.8427 1.21082 28.3239 1.46182 28.3249 1.21962
1417194135 341207 8 127.514 1.30509 138.332 1.02453 127.048 0.87068

Guidelines for Ion selection (2<Z<9)

  • SAA cut (by geographic coordinates)
    • bool AMSEventR::IsInSAA(int time = 0); // 0 : use current event time
    • bool AMSSetupR::RTI::IsInSAA();

  • RTI cut: NEW
    • Good RTI, (RTI.good&0x3F)==0, Life time > 0.5, Zenith < 40 deg,
    • R_FS(R_L1Inner) > 1.2 *IGRF (30 deg+)
    • |PG-MD| < 35e-4 (L1), 45e-4 (L9),

AMSPoint pn1, pn9, pd1, pd9;
event->GetRTIdL1L9(0, pn1, pd1, event->UTime(), 60);
event->GetRTIdL1L9(1, pn9, pd9, event->UTime(), 60);
if (pd1.y() > 35 || pd9.y() > 45) continue; // Skip current second 

  • Remove bad runs (Trigger study)
    • 1306219312, 1306219522, 1306233745, 1307125541<= RUN<=1307218054, 1321198167 (Ecal)
    • bad runs reason, AMSSetupR::RTI::IsBadRun (string &reason)

  • Restrict within 5 years pass6 data (Synchronize with new 5 years Rigidity-Scale) NEW
    • 1305853512<=RUN<=1464298202

  • Beta cuts

  • Charge selection (Q. Yan):
    • Z-0.45 < q_inn < Z+0.45
    • q_inn_rms < 0.55
    • Z-0.46-(Z-3)*0.16 < q_l1 < (Z<=5)?Z+0.65:Z+0.65+(Z-5)*0.03 && (qstatus_l1&0x10013D)==0
    • Z-0.5 < q_l9 < Z+1.5+(Z-3)*0.06 (also a good cut for the study of inelastic XS)
    • Z-0.6 < q_utof < Z+1.5
    • q_ltof>Z-0.6(for FS analysis)

  • Tracker fiducial volume cut: NEW
    • L1&L2&(L3|L4)&(L5|L6)&(L7|L8)&L9 (>=5 InnerLays) for FS analysis
    • L1&L2&(L3|L4)&(L5|L6)&(L7|L8) (>=5 InnerLays) for L1Inner analysis
    • L1: |R|<62cm, |Y|<47cm
    • L2: |R|<62cm, |Y|<40cm
    • L3: |R|<46cm, |Y|<44cm
    • L4: |R|<46cm, |Y|<44cm
    • L5: |R|<46cm, |Y|<36cm
    • L6: |R|<46cm, |Y|<36cm
    • L7: |R|<46cm, |Y|<44cm
    • L8: |R|<46cm, |Y|<44cm
    • L9: |X|<43cm, |Y|<29cm

// charge definition
float q_l1 = track->GetLayerJQ(1,beta,fit_id); 
float q_utof = betah->GetQ(n,rms,2,TofClusterHR::DefaultQOptIonW,1100,0,rigidity); 
float q_inn = track->GetInnerQ(beta,fit_id); 
float q_ltof = betah->GetQ(n,rms,2,TofClusterHR::DefaultQOptIonW,11,0,rigidity);
float q_l9 = track->GetLayerJQ(9,beta,fit_id); 
// good status for external Tracker hits (A. Oliva)
int qstatus_l1 = track->GetHitLJ(1)->GetQStatus();
int qstatus_l9 = track->GetHitLJ(9)->GetQStatus();
(qstatus&0x10013D)==0 for pass6 and MC comparison with pass6 (all Z)
//avoid bad TOF layer charge in scintillator overlap region(Q. Yan) 
bool status_toflq= betah->IsGoodQPathL(ilay);

Ion Inner Track efficiency denominator unbiased sample (Q. Yan) NEW
  • TOF standalone reconstruction sample for Ion Inner Track efficiency estimation:
    • unbiased L1(L9) Hit was found by searching for the largest amplitude YCluster matched with XCluster
    • TOF standalone was built by requiring TRDTrack matched TOF. And the BetaH with the maximal TOFQ was selected
    • The information of beta, 4 layers' TOF charge, interpolation position in Tracker, unbiased L1(L9) HitQ with beta+angular+multiplicity correction, and matched ECAL energy was recorded
float ubeta=1,urig=0,umass=0,udxdz=0,udydz=0; int umul=0;
//---L1 && L9 unbiased Hit (largest amplitude)
int l1i=-1,l9i=-1; float l1prob=0,l9prob=0,tk_l1q=0,tk_l9q=0;
for(int itkh=0;itkh<pev->nTrRecHit();itkh++){
  TrRecHitR* tkhit=pev->pTrRecHit(itkh);
  if(tkhit->GetLayerJ()==1){
    float nlq=tkhit->GetQ(1,ubeta,urig,umass,umul,udxdz,udydz);//MaxY MaxQY
    float nlp=tkhit->GetProb();
    if(nlq>tk_l1q)                  {l1i=itkh;tk_l1q=nlq;l1prob=nlp;}
    else if(nlq==tk_l1q&&nlp>l1prob){l1i=itkh;tk_l1q=nlq;l1prob=nlp;}
  }
  else if(tkhit->GetLayerJ()==9){
    float nlq=tkhit->GetQ(1,ubeta,urig,umass,umul,udxdz,udydz);//MaxY MaxQY
    float nlp=tkhit->GetProb();
    if(nlq>tk_l9q)                  {l9i=itkh;tk_l9q=nlq;l9prob=nlp;}
    else if(nlq==tk_l9q&&nlp>l9prob){l9i=itkh;tk_l9q=nlq;l9prob=nlp;}
  }
}

//---Build TrdTOFParticle
TofRecH::BuildOpt=1000;//TrdTOFParticle
TofRecH::ReBuild();
int ibetahs=-1; float tofsqs=0;
for(int ibh=0;ibh<pev->nBetaH();ibh++){
  BetaHR *betah=pev->pBetaH(ibh);
  if(betah->iTrdTrack()<0)continue;
  float ntofsq=0;
  for(int ilay=0;ilay<4;ilay++){ 
     float tofql=betah->GetQL(ilay);
     if(tofql>0)ntofsq+=tofql;
  }
  if(ntofsq>tofsqs){ //Max Sum TOFQ
    ibetahs=ibh; tofsqs=ntofsq;
  }
 }
BetaHR *betah=pev->pBetaH(ibetahs);
if(!betah)return false;
//--TOF Beta + Charge + position(direction) in 9 Tracker Layers
tof_hsumhus=betah->GetUseHit();
TofBetaPar normbetapar=betah->GetNormTofBetaPar();
tof_chists=normbetapar.Chi2T;
tof_chiscs=normbetapar.Chi2C;
betahs=betah->GetBeta();
for(int ilay=0;ilay<4;ilay++){
  tof_qls[ilay]=betah->GetQL(ilay);//TOF Layer Charge
} 
const float tk_pz[9]={159.04,53.05,29.22,25.24,1.706,-2.292,-25.26,-29.25,-136.03}; // 9 Layers Tracker rough z position
AMSPoint postr; AMSDir dirtr; double utm; 
for(int ilay=0;ilay<9;ilay++){
  betah->TInterpolate(tk_pz[ilay],postr,dirtr,utm);
  for(int ic=0;ic<3;ic++){tk_pos1s[ilay][ic]=postr[ic]; tk_dir1s[ilay][ic]=dirtr[ic];}
}

//--L1 && L9 unbiased Hit X+Y Match + Charge
tk_l1mds=tk_l9mds=1000; tk_l1qvs=tk_l9qvs=0;
for(int uexl=0;uexl<2;uexl++){
  int ilay=(uexl==0)?0:8;
  int iexl=(uexl==0)?l1i:l9i;
  if(iexl<0)continue;
  TrRecHitR* tkhit=pev->pTrRecHit(iexl);
  if(!tkhit->GetXCluster() || !tkhit->GetYCluster())continue;
  float ml1dis=1000; int resmul=-1; 
  betah->TInterpolate(tk_pz[ilay],postr,dirtr,utm);
  TkSens sens(tkhit->GetTkId(),postr,dirtr,0);
  AMSDir sdir = sens.GetSensDir();
  float resdxdz = (sdir.z() != 0) ? sdir.x()/sdir.z() : 0;
  float resdydz = (sdir.z() != 0) ? sdir.y()/sdir.z() : 0;
  for(int imul=0;imul<tkhit->GetMultiplicity();imul++){
    AMSPoint ml1p=tkhit->GetCoord(imul);
    double disl1=(ml1p[0]-postr[0])*(ml1p[0]-postr[0])+(ml1p[1]-postr[1])*(ml1p[1]-postr[1]);
    disl1=sqrt(disl1);
    if(disl1<ml1dis){ml1dis=disl1;resmul=imul;}
  }
  if(resmul<0)resmul=0;
  if(uexl==0){tk_l1mds=ml1dis;tk_l1qvs=tkhit->GetQ(2,betahs,urig,umass,resmul,resdxdz,resdydz);} //unbiased L1Q all correction included
  else       {tk_l9mds=ml1dis;tk_l9qvs=tkhit->GetQ(2,betahs,urig,umass,resmul,resdxdz,resdydz);} //unbiased L9Q all correction included
}

//---Ecal Match + Edep
double ecalz=-143; 
betah->TInterpolate(ecalz,postr,dirtr,utm);
for(int ic=0;ic<3;ic++){ecal_pos[ic]=postr[ic];}
ecal_dis=1000; ecal_ens=0; 
for(int ish=0;ish<pev->nEcalShower();ish++){
  EcalShowerR *show=pev->pEcalShower(ish);
  betah->TInterpolate(show->Entry[2],postr,dirtr,utm);
  double necal_dis=pow(show->Entry[0]-postr[0],2)+pow(show->Entry[1]-postr[1],2);
  necal_dis=sqrt(necal_dis);
  if(necal_dis<ecal_dis){ecal_dis=necal_dis; ecal_ens=show->EnergyD;}
}

  • Normal TOF build would clear up above TOF standalone build to have the standard analysis sample
TofRecH::BuildOpt=0; //Normal TOF build
TofRecH::ReBuild();

unbiased L1(L9) Hit for Ion picking-up efficiency study NEW
  • unbiased L1(L9) Hit was found by searching for the largest amplitude YCluster matched with XCluster
  • unbiased L1(L9) HitQ with beta+rigidity+angular+multiplicity correction
float ubeta=1,urig=0,umass=0,udxdz=0,udydz=0; int umul=0;
//---L1 && L9 unbiased Hit (largest amplitude)
int l1i=-1,l9i=-1; float l1prob=0,l9prob=0,tk_l1q=0,tk_l9q=0;
for(int itkh=0;itkh<pev->nTrRecHit();itkh++){
  TrRecHitR* tkhit=pev->pTrRecHit(itkh);
  if(tkhit->GetLayerJ()==1){
    float nlq=tkhit->GetQ(1,ubeta,urig,umass,umul,udxdz,udydz);//MaxY MaxQY
    float nlp=tkhit->GetProb();
    if(nlq>tk_l1q)                  {l1i=itkh;tk_l1q=nlq;l1prob=nlp;}
    else if(nlq==tk_l1q&&nlp>l1prob){l1i=itkh;tk_l1q=nlq;l1prob=nlp;}
  }
  else if(tkhit->GetLayerJ()==9){
    float nlq=tkhit->GetQ(1,ubeta,urig,umass,umul,udxdz,udydz);//MaxY MaxQY
    float nlp=tkhit->GetProb();
    if(nlq>tk_l9q)                  {l9i=itkh;tk_l9q=nlq;l9prob=nlp;}
    else if(nlq==tk_l9q&&nlp>l9prob){l9i=itkh;tk_l9q=nlq;l9prob=nlp;}
  }
}

//--L1 && L9 unbiased Hit Charge
float beta=betah->GetBeta();  float frig=trk->GetRigidity(0);
for(int ilay=0;ilay<9;ilay++){
  AMSPoint postr;AMSDir dirtr;
  trk->InterpolateLayerJ(ilay+1,postr,dirtr);
  for(int ic=0;ic<3;ic++){tk_pos[ilay][ic]=postr[ic];tk_dir[ilay][ic]=dirtr[ic];}
  if(ilay!=0&&ilay!=8)continue;
  int uexl=(ilay==0)?0:1;  
  tk_exql[uexl][0]=tk_exql[uexl][1]=tk_exql[uexl][2]=tk_exqls[uexl]=0;
  tk_exdis[uexl]=1000;
  int iexl=(ilay==0)?l1i:l9i;
  if(iexl<0)continue;
  TrRecHitR* tkhit=pev->pTrRecHit(iexl);
  int resmul=-1; float ml1dis=1000;
  for(int imul=0;imul<tkhit->GetMultiplicity();imul++){
    AMSPoint ml1p=tkhit->GetCoord(imul);
    double disl1=(ml1p[0]-postr[0])*(ml1p[0]-postr[0])+(ml1p[1]-postr[1])*(ml1p[1]-postr[1]);
    disl1=sqrt(disl1);
    if(disl1<ml1dis){ml1dis=disl1;resmul=imul;}
  }
  if(resmul<0)resmul=0;
  tk_exdis[uexl]=ml1dis;
  TkSens sens(tkhit->GetTkId(),postr,dirtr,0);
  AMSDir sdir = sens.GetSensDir();
  float resdxdz = (sdir.z() != 0) ? sdir.x()/sdir.z() : 0;
  float resdydz = (sdir.z() != 0) ? sdir.y()/sdir.z() : 0;
  tk_exql[uexl][0]=tkhit->GetQ(0,beta,frig,umass,resmul,resdxdz,resdydz);//XQ all correction included
  tk_exql[uexl][1]=tkhit->GetQ(1,beta,frig,umass,resmul,resdxdz,resdydz);//YQ all correction included
  tk_exql[uexl][2]=tkhit->GetQ(2,beta,frig,umass,resmul,resdxdz,resdydz);//Q all correction included
  tk_exqls[uexl]=tkhit->GetQStatus();
}

MIT latest DST NEW
  • /afs/cern.ch/user/q/qyan/public/DSTvdev/analysis_amsd47n.C
  • /eos/ams/group/mit/analysis_amsd47n_TMTFNTotHB_B950P6

Binning(74 bins GV) He, C, O bins NEW
0.8,1.00,1.16,1.33,1.51,1.71,1.92,2.15,2.40,2.67,2.97,3.29,3.64,4.02,4.43,4.88,5.37,5.90,6.47,7.09,7.76,8.48,9.26, 10.1,11.0,12.0,13.0,14.1,15.3,16.6,18.0,19.5,21.1,22.8,24.7,26.7,28.8,31.1,33.5,36.1,38.9,41.9,45.1,48.5,52.2,56.1,60.3,64.8,69.7,74.9,80.5,86.5,93.0, 100.,108.,116.,125.,135.,147.,160.,175.,192.,211.,233.,259.,291.,330.,379.,441.,525.,643.,822.,1130.,1800.,3000.

Binning(73 bins GV) Li, Be, B bins NEW
0.8,1.00,1.16,1.33,1.51,1.71,1.92,2.15,2.40,2.67,2.97,3.29,3.64,4.02,4.43,4.88,5.37,5.90,6.47,7.09,7.76,8.48,9.26, 10.1,11.0,12.0,13.0,14.1,15.3,16.6,18.0,19.5,21.1,22.8,24.7,26.7,28.8,31.1,33.5,36.1,38.9,41.9,45.1,48.5,52.2,56.1,60.3,64.8,69.7,74.9,80.5,86.5,93.0, 100.,108.,116.,125.,135.,147.,160.,175.,192.,211.,233.,259.,291.,330.,379.,441.,525.,660.,880.,1300.,3300.

Partial Inelastic Interaction probability Ion->X MC/Data
  • MC DMJET model underestimate few fragment branching channels (Ion->X)
    • These channels are important for above L1 background estimation (TOI)
    • The measured Inelastic Interaction probability MC/Data ratios together with errors are listed in following table
  Be B C N O
Li 0.600.30 0.850.30 1.000.30 1.000.30 1.250.20
Be   0.800.20 0.800.20 0.900.20 1.100.25
B     0.600.15 0.500.20 0.850.15
C       0.700.20 0.550.15
N         0.800.20
Edit | Attach | Watch | Print version | History: r62 < r61 < r60 < r59 < r58 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r62 - 2017-11-28 - QiYan
 
    • 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