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();
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);
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)
void AddMassConstraint(double mass)
Bool_t FillList(RhoCandList &l, TString listkey="All", TString pidTcaNames="", int trackHypothesis=-1)
PndPidCandidate * GetRecoCandidate() const
RhoCandidate * Daughter(Int_t n)
void Add4MomConstraint(TLorentzVector lv)
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)
void tut_ana_ntp(int nevts=0, TString prefix="signal")
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)