20         int i=0,j=0, k=0, l=0;
 
   21         gStyle->SetOptFit(1011);
 
   24         TString OutFile=
"out_dummy.root";
 
   29         TFile *
out = TFile::Open(prefix+
"_ana_ntp.root",
"RECREATE");
 
   36         njpsi->
Column(
"tjpsim",         0.0
f, -999.9
f);
 
   37         njpsi->
Column(
"tjpsip",         0.0
f, -999.9
f);
 
   38         njpsi->
Column(
"tjpsitht",       0.0
f, -999.9
f);
 
   40         npsip->
Column(
"tpsim",          0.0
f, -999.9
f);
 
   41         npsip->
Column(
"tpsip",          0.0
f, -999.9
f);
 
   42         npsip->
Column(
"tpsitht",        0.0
f, -999.9
f);
 
   50         if (nevts==0) nevts= theAnalysis->
GetEntries();
 
   56         double m0_jpsi = TDatabasePDG::Instance()->GetParticle(
"J/psi")->Mass();   
 
   60         TString pidSelection = 
"PidAlgoEmcBayes;PidAlgoDrc;PidAlgoDisc;PidAlgoStt;PidAlgoMdtHardCuts";
 
   63         TLorentzVector ini(0, 0, 6.231552, 7.240065);
 
   72         while (theAnalysis->
GetEvent() && i++<nevts)
 
   74                 if ((i%100)==0) cout<<
"evt " << i << endl;
 
   77                 theAnalysis->
FillList(muplus,  
"MuonAllPlus",   pidSelection);
 
   78                 theAnalysis->
FillList(muminus, 
"MuonAllMinus",  pidSelection);
 
   79                 theAnalysis->
FillList(piplus,  
"PionAllPlus",   pidSelection);
 
   80                 theAnalysis->
FillList(piminus, 
"PionAllMinus",  pidSelection);
 
   83                 theAnalysis->
FillList(allpart, 
"All", pidSelection);
 
  113                         double chi2_vtx = vtxfitter.GetChi2();  
 
  114                         double prob_vtx = vtxfitter.GetProb();  
 
  115                         TVector3 vtxpos(-999.,-999.,-999.);
 
  116                         if (fitvtx_jpsi) vtxpos = fitvtx_jpsi->
Daughter(0)->
Pos();
 
  120                         mfitter.AddMassConstraint(m0_jpsi);     
 
  124                         double chi2_mass = mfitter.GetChi2();   
 
  125                         double prob_mass = mfitter.GetProb();   
 
  130                         njpsi->
Column(
"ev",             (Float_t) i,                            -999.9
f);
 
  131                         njpsi->
Column(
"cand",           (Float_t) j,                            -999.9
f);
 
  134                         njpsi->
Column(
"jpsim",          (Float_t) jpsi[j]->M(),                 -999.9
f);
 
  135                         njpsi->
Column(
"jpsip",          (Float_t) jpsi[j]->
P(),                 -999.9
f);
 
  136                         njpsi->
Column(
"jpsipt",         (Float_t) jpsi[j]->P3().Pt(),           -999.9
f);
 
  137                         njpsi->
Column(
"jpsitht",        (Float_t) jpsi[j]->P3().Theta(),        -999.9
f);
 
  138                         njpsi->
Column(
"jpsimissm",      (Float_t) (ini-(jpsi[j]->P4())).M(),    -999.9
f);
 
  141                         njpsi->
Column(
"mct",            (Float_t) mct,                           -999.9
f);
 
  144                                 njpsi->
Column(
"tjpsim", (Float_t) true_jpsi->
M(),                -999.9f);
 
  145                                 njpsi->
Column(
"tjpsip", (Float_t) true_jpsi->
M(),                -999.9f);
 
  146                                 njpsi->
Column(
"tjpsitht",(Float_t) true_jpsi->
P3().Theta(),      -999.9f);
 
  150                         njpsi->
Column(
"jpsimvtx",       (Float_t) fitvtx_jpsi->
M(),              -999.9f);
 
  151                         njpsi->
Column(
"chi2vtx",        (Float_t) chi2_vtx,                      -999.9
f);
 
  152                         njpsi->
Column(
"probvtx",        (Float_t) prob_vtx,                      -999.9
f);
 
  153                         njpsi->
Column(
"vtxx",           (Float_t) vtxpos.X(),                    -999.9f);
 
  154                         njpsi->
Column(
"vtxy",           (Float_t) vtxpos.Y(),                    -999.9f);
 
  155                         njpsi->
Column(
"vtxz",           (Float_t) vtxpos.Z(),                    -999.9f);
 
  157                         njpsi->
Column(
"jpsimmass",      (Float_t) fitmass_jpsi->
M(),             -999.9f);
 
  158                         njpsi->
Column(
"chi2mass",       (Float_t) chi2_mass,                     -999.9
f);
 
  159                         njpsi->
Column(
"probmass",       (Float_t) prob_mass,                     -999.9
f);
 
  162                         njpsi->
Column(
"mupp",           (Float_t) mup->
P(),                      -999.9f);
 
  163                         njpsi->
Column(
"muppt",          (Float_t) mup->
P3().Pt(),                -999.9f);
 
  164                         njpsi->
Column(
"muptht",         (Float_t) mup->
P3().Theta(),             -999.9f);
 
  166                         njpsi->
Column(
"mump",           (Float_t) mum->
P(),                      -999.9f);
 
  167                         njpsi->
Column(
"mumpt",          (Float_t) mum->
P3().Pt(),                -999.9f);
 
  168                         njpsi->
Column(
"mumtht",         (Float_t) mum->
P3().Theta(),             -999.9f);
 
  180                 psi2s.
Combine(jpsi, piplus, piminus);
 
  201                         fitter.Add4MomConstraint(ini);  
 
  203                         RhoCandidate *fit4c_jpsi = psi2s[j]->Daughter(0)->GetFit();     
 
  205                         double chi2_4c = fitter.GetChi2();      
 
  206                         double prob_4c = fitter.GetProb();      
 
  209                         npsip->
Column(
"ev",     (Float_t) i,                        -999.9
f);
 
  210                         npsip->
Column(
"cand",   (Float_t) j,                        -999.9
f);
 
  213                         qa.qaCand(
"psi", psi2s[j], npsip);
 
  216                         qa.qaCand(
"jpsi"     , jp        , npsip);
 
  217                         qa.qaCand(
"jpsi4cfit", fit4c_jpsi, npsip);
 
  220                         npsip->
Column(
"mct",    (Float_t) mct,                      -999.9
f);
 
  223                                 npsip->
Column(
"tpsim",  (Float_t) true_psi->
M(),          -999.9f);
 
  224                                 npsip->
Column(
"tpsip",  (Float_t) true_psi->
M(),          -999.9f);
 
  225                                 npsip->
Column(
"tpsitht",(Float_t) true_psi->
P3().Theta(), -999.9f);
 
  229                         qa.qaCand(
"pip",  pip,  npsip);
 
  230                         qa.qaCand(
"pim",  pip,  npsip);
 
  233                         qa.qaPid(
"pip",   pip,  npsip);
 
  234                         qa.qaPid(
"pim",   pip,  npsip);
 
  235                         qa.qaPid(
"mup",   mup,  npsip);
 
  236                         qa.qaPid(
"mum",   mum,  npsip);
 
  239                         qa.qaEventShapeShort(
"evtsh", &evtsh, npsip);
 
FairRunAna * initrun(TString prefix, TString outfile, int min=-1, int max=-1)
Bool_t FillList(RhoCandList &l, TString listkey="All", TString pidTcaNames="", int trackHypothesis=-1)
PndPidCandidate * GetRecoCandidate() const 
RhoCandidate * Daughter(Int_t n)
void Combine(RhoCandList &l1, RhoCandList &l2)
void Column(const char *label, Bool_t value, Bool_t defval=0, const char *block=0)
void SetType(const TParticlePDG *pdt, int start=0)
TTree * GetInternalTree()
Bool_t McTruthMatch(RhoCandidate *cand, Int_t level=2, bool verbose=false)
Int_t GetEvent(Int_t n=-1)
double GetPidInfo(int hypo)