Fork me on GitHub

Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • modules/TreeWriter.cc

    rc614dd7 rfd4b326  
    123123    fBranchMap.insert(make_pair(branch, make_pair(itClassMap->second, array)));
    124124  }
     125
     126  param = GetParam("Info");
     127  TString infoName;
     128  Double_t infoValue;
     129
     130  size = param.GetSize();
     131  for(i = 0; i < size / 2; ++i)
     132  {
     133    infoName = param[i * 2].GetString();
     134    infoValue = param[i * 2 + 1].GetDouble();
     135
     136    AddInfo(infoName, infoValue);
     137  }
    125138}
    126139
     
    138151  it1.Reset();
    139152  array->Clear();
    140  
     153
    141154  while((candidate = static_cast<Candidate *>(it1.Next())))
    142155  {
     
    215228    entry->Pz = momentum.Pz();
    216229
    217     entry->D0 = candidate->D0;
    218     entry->DZ = candidate->DZ;
    219     entry->P = candidate->P;
    220     entry->PT = candidate->PT;
    221     entry->CtgTheta = candidate->CtgTheta;
    222     entry->Phi = candidate->Phi;
    223 
    224230    entry->Eta = eta;
    225231    entry->Phi = momentum.Phi();
     
    314320  Candidate *particle = 0;
    315321  Track *entry = 0;
    316   Double_t pt, signz, cosTheta, eta, rapidity, p, ctgTheta, phi;
     322  Double_t pt, signz, cosTheta, eta, rapidity, p, ctgTheta, phi, m;
    317323  const Double_t c_light = 2.99792458E8;
    318324
     
    348354
    349355    entry->D0 = candidate->D0;
    350     entry->ErrorD0 = candidate->ErrorD0;
    351356    entry->DZ = candidate->DZ;
    352     entry->ErrorDZ = candidate->ErrorDZ;
    353357
    354358    entry->ErrorP = candidate->ErrorP;
    355359    entry->ErrorPT = candidate->ErrorPT;
     360
     361    // diagonal covariance matrix terms
     362    entry->ErrorD0 = candidate->ErrorD0;
     363    entry->ErrorC = candidate->ErrorC;
     364    entry->ErrorPhi = candidate->ErrorPhi;
     365    entry->ErrorDZ = candidate->ErrorDZ;
    356366    entry->ErrorCtgTheta = candidate->ErrorCtgTheta;
    357     entry->ErrorPhi = candidate->ErrorPhi;
     367
     368    // add some offdiagonal covariance matrix elements
     369    entry->ErrorD0Phi          = candidate->TrackCovariance(0,1);
     370    entry->ErrorD0C            = candidate->TrackCovariance(0,2);
     371    entry->ErrorD0DZ           = candidate->TrackCovariance(0,3);
     372    entry->ErrorD0CtgTheta     = candidate->TrackCovariance(0,4);
     373    entry->ErrorPhiC           = candidate->TrackCovariance(1,2);
     374    entry->ErrorPhiDZ          = candidate->TrackCovariance(1,3);
     375    entry->ErrorPhiCtgTheta    = candidate->TrackCovariance(1,4);
     376    entry->ErrorCDZ            = candidate->TrackCovariance(2,3);
     377    entry->ErrorCCtgTheta      = candidate->TrackCovariance(2,4);
     378    entry->ErrorDZCtgTheta     = candidate->TrackCovariance(3,4);
    358379
    359380    entry->Xd = candidate->Xd;
     
    366387    p = momentum.P();
    367388    phi = momentum.Phi();
     389    m = momentum.M();
    368390    ctgTheta = (TMath::Tan(momentum.Theta()) != 0) ? 1 / TMath::Tan(momentum.Theta()) : 1e10;
    369391
     
    378400    entry->Phi = phi;
    379401    entry->CtgTheta = ctgTheta;
     402    entry->C = candidate->C;
     403    entry->Mass = m;
    380404
    381405    particle = static_cast<Candidate *>(candidate->GetCandidates()->At(0));
     
    448472  Candidate *particle = 0;
    449473  ParticleFlowCandidate *entry = 0;
    450   Double_t e, pt, signz, cosTheta, eta, rapidity, p, ctgTheta, phi;
     474  Double_t e, pt, signz, cosTheta, eta, rapidity, p, ctgTheta, phi, m;
    451475  const Double_t c_light = 2.99792458E8;
    452476
     
    482506
    483507    entry->D0 = candidate->D0;
    484     entry->ErrorD0 = candidate->ErrorD0;
    485508    entry->DZ = candidate->DZ;
    486     entry->ErrorDZ = candidate->ErrorDZ;
    487509
    488510    entry->ErrorP = candidate->ErrorP;
    489511    entry->ErrorPT = candidate->ErrorPT;
    490512    entry->ErrorCtgTheta = candidate->ErrorCtgTheta;
     513
     514
     515    // diagonal covariance matrix terms
     516
     517    entry->ErrorD0 = candidate->ErrorD0;
     518    entry->ErrorC = candidate->ErrorC;
    491519    entry->ErrorPhi = candidate->ErrorPhi;
     520    entry->ErrorDZ = candidate->ErrorDZ;
     521    entry->ErrorCtgTheta = candidate->ErrorCtgTheta;
     522
     523    // add some offdiagonal covariance matrix elements
     524    entry->ErrorD0Phi          = candidate->TrackCovariance(0,1);
     525    entry->ErrorD0C            = candidate->TrackCovariance(0,2);
     526    entry->ErrorD0DZ           = candidate->TrackCovariance(0,3);
     527    entry->ErrorD0CtgTheta     = candidate->TrackCovariance(0,4);
     528    entry->ErrorPhiC           = candidate->TrackCovariance(1,2);
     529    entry->ErrorPhiDZ          = candidate->TrackCovariance(1,3);
     530    entry->ErrorPhiCtgTheta    = candidate->TrackCovariance(1,4);
     531    entry->ErrorCDZ            = candidate->TrackCovariance(2,3);
     532    entry->ErrorCCtgTheta      = candidate->TrackCovariance(2,4);
     533    entry->ErrorDZCtgTheta     = candidate->TrackCovariance(3,4);
    492534
    493535    entry->Xd = candidate->Xd;
     
    501543    p = momentum.P();
    502544    phi = momentum.Phi();
     545    m = momentum.M();
    503546    ctgTheta = (TMath::Tan(momentum.Theta()) != 0) ? 1 / TMath::Tan(momentum.Theta()) : 1e10;
    504547
     
    509552    entry->Phi = phi;
    510553    entry->CtgTheta = ctgTheta;
     554    entry->C = candidate->C;
     555    entry->Mass = m;
    511556
    512557    particle = static_cast<Candidate *>(candidate->GetCandidates()->At(0));
Note: See TracChangeset for help on using the changeset viewer.