25 #include "FairRootManager.h"
26 #include "FairRunAna.h"
27 #include "FairRuntimeDb.h"
29 #include "FairRuntimeDb.h"
32 #include "TClonesArray.h"
36 #include "TDatabasePDG.h"
65 FairTask(
"Panda Tripple Analysis Task"),
66 fEvtCount(0), fMode(mode),
fVerbose(0), fOutName(outname), fPidAlg(pidalg)
69 fIni.SetXYZT(0,0,pbarmom,
sqrt(pbarmom*pbarmom+mp*mp)+mp);
92 fPdg = TDatabasePDG::Instance();
100 fOnlineFilterInfo = ( TClonesArray* ) FairRootManager::Instance()->GetObject (
"OnlineFilterInfo" );
106 TDirectory *dir = gDirectory;
113 double m0_jpsi =
fPdg->GetParticle(
"J/psi")->Mass();
114 double m0_ds =
fPdg->GetParticle(
"D_s+")->Mass();
115 double m0_pi0 =
fPdg->GetParticle(
"pi0")->Mass();
185 FairRun*
run = FairRun::Instance();
186 if ( ! run ) Fatal(
"SetParContainers",
"No analysis run");
248 jpsi.
Combine(muplus, muminus, 443);
259 double chi2 = vtxfit.
GetChi2();
283 if (truth) lv = truth->
P4();
294 ppb.
Combine(jpsi, piplus, piminus, 88880);
304 double chi2 = kinfit.
GetChi2();
328 if (truth) lv = truth->
P4();
341 RhoCandList kp, km, pip, pim,
gam, dsp, dsm, ds, pi0, ds0p, ds0m, ds0, ppb;
355 dsm.
Combine(km, kp, pim, -431);
375 double chi2 = vtxfit.
GetChi2();
399 if (truth) lv = truth->
P4();
424 ds0m.
Combine(dsm, pi0, -10431);
444 double chi2 = kinfit.
GetChi2();
468 if (truth) lv = truth->
P4();
488 double chi2 = kinfit.
GetChi2();
512 if (truth) lv = truth->
P4();
548 ppb.
Combine(pip, pim, pi0, 88880);
559 double chi2 = kinfit.
GetChi2();
583 if (truth) lv = truth->
P4();
void qaPi0(TString pre, RhoCandidate *c, RhoTuple *n)
void qaCand(TString pre, RhoCandidate *cc, RhoTuple *n, bool skip=false)
void AddMassConstraint(double mass)
void Append(const RhoCandidate *c)
RhoMassParticleSelector * mSel3
friend F32vec4 sqrt(const F32vec4 &a)
RhoEnergyParticleSelector * gamSel
virtual void Exec(Option_t *opt)
Bool_t FillList(RhoCandList &l, TString listkey="All", TString pidTcaNames="", int trackHypothesis=-1)
void qaP4(TString pre, TLorentzVector c, RhoTuple *n, bool skip=false)
void Add4MomConstraint(TLorentzVector lv)
void qaMcList(TString pre, RhoCandList &l, RhoTuple *n, int max=10000)
void CombineAndAppend(RhoCandList &l1, RhoCandList &l2)
PndTripleAnaTask(double pbarmom, TString outname, int mode, TString pidalg)
void Combine(RhoCandList &l1, RhoCandList &l2)
void qaComp(TString pre, RhoCandidate *c, RhoTuple *n, bool covs=false, bool pulls=false)
virtual InitStatus Init()
void Select(RhoParticleSelectorBase *pidmgr)
TLorentzVector P4() const
void Column(const char *label, Bool_t value, Bool_t defval=0, const char *block=0)
TClonesArray * fOnlineFilterInfo
void qaEventShapeShort(TString pre, PndEventShape *evsh, RhoTuple *n)
RhoMassParticleSelector * mSel4
RhoMassParticleSelector * mSel2
virtual void SetParContainers()
TTree * GetInternalTree()
Bool_t McTruthMatch(RhoCandidate *cand, Int_t level=2, bool verbose=false)
RhoMassParticleSelector * mSel1
PndEventShape * fEventShape