Status of Analysis Status of Analysis SoftwareSoftware
Kanglin HeKanglin He
[email protected]@ihep.ac.cn
OutlineOutline Physics Tools Project
Compose Tools Particle ID
Analysis Event Data Model (BParticle Project) Dst Event Data Model Global Link and Event Assembly Analysis Event Data Model Physics Event Data Model
Event Tag Project Physics Performance Check Next Plan
Compose ToolsCompose Tools Telesis (TKinematicFit)
Part of BESII telesis package, by SDU Klams(BKlamsVTX)
BESII klams0 program, by B.J. Liu VertexFit:
new stuff, by K.L He VertexFit SecondVertexFit KinematicFit
TKinematicFitTKinematicFit#include "Telesis/TKinematicFit.h"
TKinematicFit* kmfit = TKinematicFit::instance();DstMdcTrack *pipTrk=xxx;DstMdcTrack *pimTrk = xxx;DstEmcTrack *g1Trk = xxx;DstEmcTrack *g2Trk = xxx; kmfit->init(ecms);kmfit->AddTrack(1, pipTrk, mpi, 0); kmfit->AddTrack(2, pimTrk, mpi, 0); kmfit->AddTrack(3, g1Trk, 0.0, 0);kmfit->AddTrack(4, g2Trk, 0.0, 0);kmfit->AddResonance(1, 0.135, 3, 4); If(kmfit->fit()) { HepLorentzVector ppip = kmfit->pfit(1); HepLorentzVector ppim = kmfit->pfit(2); HepLorentzVector ppi0 = kmfit->pfit(3) + kmfit->pfit(4); // user code, fill histogram/ntuple}
// see Analysis/Physics/RhopiAlg/RhopiAlg-00-00-02 for detail
BKlamsVTXBKlamsVTX
See
Liu Beijiang’s talk
and
Analysis/Physics/KlamsTestAlg
for detail
VertexFit and KinematicFitVertexFit and KinematicFit Formulas(adopt from Paul Avery’s
Lessons) WTrackParameter VertexParameter KinematicConstraints VertexConstraints BuildVirtualParticle SecondVertexFit
Formulas for Kinematic FittingFormulas for Kinematic Fitting
n
2
1
α
α
α
α
n
r
2
r
1
r
n
2
2
2
1
2
n
1
2
1
1
1
α
H
α
H
α
H
α
H
α
H
α
Hα
H
α
H
α
H
D
r
2
1
H
H
H
d
0dD
0λD)α(αV
d)(Dδ2λ)α(αV)α(αχT
01
α
T0
1α
T0
2
0
0
Formulas for Kinematic Fitting Formulas for Kinematic Fitting (continue)(continue)
d)(DδλλVλχ
DVVDVVV
)D(DVV
d)(DδVλ
λDVαα
T1D
T2αD
Tααα
1TαD
D
T1α0
000
0
0
Formulas for Vertex FittingFormulas for Vertex Fitting
DT
xDDD
0D0
D000D
0T
x01
xxT
x0
Tα0
VEEVVVV
d)(DδVλ
xEVλd)xE(DδVλ
λEVδxVVλEVδxδx
λDVδαδα
00
0
d)xE(Dδλχ
EVVDVx),cov(
DVVEEVVDVDVVDVVV
E)VE(VV
00T2
xDT
α
αDT
xDT
ααDT
ααα
1D
T1xx
0
00000
0
WTrackParameter and WTrackParameter and VertexParameterVertexParameter
W
zyx
V
z)y,x,E,,p,p,(pW
charge
HepLorentzVector (px, py, pz, E)HepPoint3D (x, y, z)HepSymMatrix Ew
HepPoint3D (vx, vy, vz)HepSymMatrix Ex
AddTrack UtilityAddTrack Utility
// event data model dependentvoid AddTrack(const int number, const double
mass, const DstMdcTrack *trk); void AddTrack(const int number, const double
mass, const DstMdcKalTrack *trk); void AddTrack(const int number, const double
mass, const DstEmcTrack *trk);// event data model independent void AddTrack(const int number, const
WTrackParameter wtrk);
Kinematic ConstraintsKinematic Constraints Invariant mass constraints
AddResonance(number, mass, n1, n2, ...) Total energy constraints
AddTotalEnergy(number, energy, n1, n2, …) Total Momentum constraints
AddTotalMomentum(number, ptot, n1, n2, …) Total 3-momentum constraints
AddThreeMomentum(number, Hep3Vector p3, n1, n2, …) Total 4-momentum constraints
AddFourMomentum(number, HepLorentzVector p4, n1, n2, …) AddFourMomentum(number, etot, n1, n2, …)
Equal mass constraints Not well designed
Vertex ConstraintsVertex Constraints Vertex constraint to a fixed position
Beam Fit Vertex constraint to an unknown position
SecondVertex Find Beam position
General Vertex fit
2
1
22
hp
)hx)(h(pΔxpasin
a
hphΔx0
)hx(Δx2
ahΔx)(p0
Swimming after VertexFitSwimming after VertexFit
xx
BxAαp
)xa(xpp
V
V
00
V
V
VxVV
VVp
α V)p,cov(x
)x,cov(pVV
xx
xVV
Tx
TTTαp
VV
BVx),Acov()x,cov(p
BBV)ABcov(x,x)B,Acov(AAVV
V
V
Build Virtual ParticleBuild Virtual Particle
Virtual Particle from KinematicFit Pi0, eta, …
Virtual Particle from VertexFit Ks, Λ, …
Can be treated as a normal particle in further kinematic/Vertex fit
BuildVirtualParticle(number) in KinematicFit / VertexFit
SecondVertexFit SecondVertexFit
0cτm
pzz
0cτm
pyy
0cτm
pxx
)z,y,x,z,y,xE,,p,p,(pα
zdp
ydp
xdp
pppdddzyx
SecondVertexFitSecondVertexFit
1D
Tcτ
0T
cτ
T
T0
1α
E)V(EV
λEVδcτ
0dcτEαD
0λE
0λD)δαα(V0
d)cE(Dδ2λ)α(α)Vα(αχ T0
1α0
2
0
d)(Dδλχ
cEVλλ
λDVαα
)D(DVV
d)(DδVλ
0T2
D0
Tα0
1TαD
0D0
0
0
00000 αDT
cτDT
ααDT
ααα DVVEEVVDVDVVDVVV
How to use compose toolsHow to use compose tools
TKinematicFit *kmfit=TKinematicFit::instance();
VertexFit *vtxfit=VertexFit::instance();
SecondVertexFit *vtxfit = SecondVertexFit::instance();
KinematicFit *kmfit=KinematicFit::instance();
kmfit->init();
// Track and constraints
if(kmfit->Fit()) {//extract kinematic fit information;}
vtxfit->init();
// Track and constraints
if(vtxfit->Fit()) {// extract (Second)VertexFit information;}
Particle IDParticle ID DedxPID: dE/dx info
Ready now, correction was made Tof1PID: inner barrel TOF
Ready now, correction was made Tof2PID: outer barrel TOF
Ready now, correction was made TofEPID: Endcap TOF
Not readdy now, due to reconstruction TofQPID: Q of Barrel TOF
Not ready now, need detail study EmcPID: energy deposit in EMC
Not ready now, Wang Liangliang is working at ParticleID
Combine the above info MuonID
Develop by PKU ParticleIDBase
For developer only
ParticleIDBase class (I)ParticleIDBase class (I) common interfacecommon interface
public: virtual bool IsPidInfoValid() = 0; virtual double chi(int n) const = 0; virtual double prob(int n) const = 0; virtual int ndof() const = 0; DstTrkList* PidTrk() const {return m_trk;} protected:// PID calculation routines(include PID correction)
virtual int particleIDCalculation() = 0;
Sub-PidSys class designSub-PidSys class designclass Tof1PID : public ParticleIDBase {
public: // constructor & desconstructor Tof1PID(DstTrkList *dstTrk, double chi=4); ~Tof1PID(){;} bool IsPidInfoValid() {return (m_ndof > 0); } double chi(int n) const {return m_chi[n];} double prob(int n) const {return m_prob[n];} int ndof() const {return m_ndof;}protected: int particleIDCalculation(); double offsetTof1(int n, int cntr, double ptrk, double ztof, double ph); double sigmaTof1(int n, int cntr, double ptrk, double ztof, double ph); private: xxxxx;}
How to use ParticleIDHow to use ParticleID// Be careful to avoid memory leakageParticleID *pid = 0; for (int i = 0; i < ncharg; i++) { DstTrkList *dstTrk = *(dstTrkListCol->begin() + i); if(pid) delete pid; pid = new ParticleID(dstTrk); pid->usePidSys(pid->useDedx() | pid->useTof1() | pid->useTof2() )|; // pid->usePidSys(pid->useDedx()); // pid->usePidSys(pid->useTof1()); // pid->usePidSys(pid->useTof2()); pid->identify(pid->onlyPion() | pid->onlyKaon()); // pid->identify(pid->onlyPion()); // pid->identify(pid->onlyKaon()); pid->calculate(); if(!(pid->IsPidInfoValid())) continue; // user's selections } if(pid) delete pid;
Analysis Event Data ModelAnalysis Event Data Model Dst Event Data Model
From Reconstruction Dst Track List
Global Link and Dst Event Assembly Analysis Event Data ModelBParticle Project
Physics Event Data Model Physics Group
TrackList(sub-detector level)TrackList(sub-detector level) DstMdcTrack DstMdcKalTrack DstDedx DstTofTrack DstEmcTrack DstMucTrack DstExtTrack Event/DstEvent subdirctory
TrackList (track level)TrackList (track level)int trackID() const {return m_trackID;}
bool IsMdcTrkValid() {return (m_originMdcTrack != 0);} bool IsMdcKalTrkValid() {return (m_originMdcKalTrack != 0);} bool IsDedxValid() {return (m_originDedx != 0);} bool IsTofTrkValid() {return (m_originTofTrack != 0);}bool IsEmcTrkValid() {return (m_originEmcTrack != 0);} bool IsMucTrkValid() {return (m_originMucTrack != 0);} bool IsExtTrkValid() {return (m_originExtTrack != 0);}
DstMdcTrack* MdcTrk() {return m_originMdcTrack;} DstMdcKalTrack* MdcKalTrk() {return m_originMdcKalTrack;} DstDedx* DedxTrk() {return m_originDedx;} DstTofTrack* TofTrk() {return m_originTofTrack;} DstEmcTrack* EmcTrk() {return m_originEmcTrack;} DstMucTrack* MucTrk() {return m_originMucTrack;}
DstExtTrack* ExtTrk() {return m_originExtTrack;}
How to access Dst Event DataHow to access Dst Event DataIn analysis source code:
#include “Event/DstTrkList.h”SmartDataPtr<DstTrkListCol> dstCol ( eventSvc(),
EventModel::Dst::DstTrackListCol)// To get Energy deposit in EmcDstTrkListCol::iterater itTrk = dstCol->begin() For(; itTrk < dstCol->end(); itTrk++) { if((*itTrk)->IsEmcTrkValid()) { DstEmcTrack *emcTrk = (*itTrk)->EmcTrk();
double energy = emcTrk->energy(); // piece of analysis code, fill histogram/ntuple
} }
In analysis job option file: #include “$DSTEVENTASSEMBLYALGROOT/jobOptions_DstEventAssembly.txt”
BParticleBParticle Project Project Write Particle (Charged tracks, neutrals,
Vertice and composed particle) information into TDS. Analysis Algorithm can access these info.
May develop to a common standard platform, make Analysis job easily and friendly
Allow Physics groups to design Physics Data model easily
ContentsContentsBParticle
Event Analysis Event Data Model BParticleID
Particle identification data BVertex
(2nd)Vertex Reconstruction data BStableParticle
Photon, Electron, Muon, Pion, Kaon, Proton BComposeParticle
Pi0, Eta, K*, phi, Charm Meson, new Particle,……
Analysis Event Data ModelAnalysis Event Data Model
BParticleBParticle// track List IDint m_trackID;// PDG ID int m_particleID;// reference point(0, 0, 0)HepPoint3D m_refpoint; // WTrackparameters(charge, px, py, pz, e, x, y, z)WTrackParameter m_wtrk; SmartRef<DstTrkList> m_dstTrk; // Dst TrackList SmartRef<BParticleID> m_pid; // ParticleID infoSmartRef<BVertex> m_vertex; // Vertex infoSmartRef<BComposeParticle> m_bcompart; // ComposeParticleSmartRef<BParticle> m_mother; // motherSmartRefVector<BParticle> m_daughters; //decay daughters
BParticleIDBParticleIDint m_trackID; // TrackList IDint m_type; // 1: electron 2: muon 3: pi/K/pint m_ndof;double m_chiDedx[5];double m_chiTof1[5];double m_chiTof2[5];double m_chiTofE[5];double m_chiTofQ[5];double m_chiEmc[5];double m_prob[5];double m_chisq[5];
BVertexBVertexint m_vertexID;VertexType m_vertexType;VertexParameter m_vpar;double m_chisq;int m_ndof;WTrackParameter m_wtrk;double m_lxyz;double m_lxyz_err;SmartRefVector<BParticle> m_outgo;
BComposedPartiBComposedParticleclePi0, Eta
Ks, Lambda
D, Ds, …
K*, phi, omega, …
Any “new” Particle
BParticleBParticle Frame work Frame work Tracklist duplication VeeVtxReconstruction
KShortReconstruction, by B.J. Liu LambdaReconstruction, by K.L. He
GoodTrackSelection GoodPhotonSelection, by M.Yang & M.S. Chen GoodElectronSelection GoodMuonSelection GoodHadronSelection, by K.L. He
Pi0,Eta Reconstruction by M.S. Chen and M.Yang CharmMesonList, J.Y. Zhang, Y.Z. Sun & S.S.Sun Analysis Cuts are controlled through job option file
BParticleBParticle in Analysis in Analysis #include “BParticle/BParticle.h”#include “BParticle/BParticleID.h”#include “BParticle/BVertex.h”#include “BParticle/StableParticle.h”#include “BParticle/BComposedParticle.h”// get pion ListsSmartDataPtr<BPionCol> pionCol(eventSvc(), EventModel::Analysis::BPionCol);// get Kaon ListsSmartDataPtr<BKaonCol> kaonCol(eventSvc(), EventModel::Analysis::BKaonCol);// get Photon ListsSmartDataPtr<BPhotonCol> photonCol(eventSvc(),
EventModel::Analysis::BPhotonCol);//get KShort ListsSmartDataPtr<BKShortCol> ksCol(eventSvc(),EventModel::Analysis::BKShortCol);//get pi0 ListsSmartDataPtr<BPi0Col> pi0Col(eventSvc(), EventModel::Analysis::BPi0Col);
//DO not forget to add following line in your job option file#include “$PARTICLESELECTIONALGROOT/share/jobOPtions_ParticleSelection.txt”
Physics Event Data ModelPhysics Event Data Model
Designed and developed by Physics Group D0, D+, Ds tags Psi’pi pi J/psi
Physics PerformancePhysics Performance Neutrals
Spatial resolution of photons (Yang Ming) Photon detection efficiencies (Yang Ming) Pi0 mass resolution (K.L. He, H.B. Li)
Particle ID performance TOF (Wang Liangliang et.al) dE/dx(Wang Liangliang et.al) Muon (Wang Zheng)
Charged Tracks Ks, Lambda mass resolution (Liu Beijiang) Phi, K*, Omega in Inclusive Production (K.L. He, H.B. Li) Tracking efficiencies (not ready)
Physics Analysis D (J.Y Zhang, Y.Z Sun) J/psi -> gamma X, X->pi0 pi0 (Chen Mingshui) Psip -> pi pi (eta) J/psi (Li Gang)
(())关于关于 EE 的分布的分布
From Yang. M
(())关于关于 EE 分布分布
From Yang. M
Del_phi Del_Theta
Angle
From Yang M.
7o
Angle between gamma gamma
From Yang M
J/psi->rho piM_gg, 4C fit
J/psi->rho piM_gg, raw
From Li H.B
E>20MeV
E>30MeV
Yang MChen M S
E>40MeV
E>50MeV Yang MChen M S
E>60MeV
E>70MeV
E>80MeVYang MChen M S
Pi0 Reconstruction Efficiencies
J/psi->gamma X, X(1270)->pi0 + pi0
12.8MeV
From Chen M S
Sigma_chi, dE/dx
Mean_chi, dE/dx
From Wang LL etal
TOF 1, From Wang LL etal
TOF 2, From WangLL etal
M_gg, ~5.1MeV From Li H B
M_ppi
M_pi+pi-~3MeV
~1.2MeV
From Liu B J
M_phi
M_omega~10MeV
From Li H B
K*0
K*+/-
From Li H B
D0K pi
D0K pi pi0
From Sun YZ, Zhang J Y
D+K pi pi
D0 K pi pi pi
From Sun YZ, Zhang J Y
Psi’pi+ pi- J/Psi, J/Psi mu+ mu-, raw
From Li G
Psi’pi+ pi- J/Psi, J/Psi mu+ mu-, 4C Fit
From Li. G
Next PlanNext Plan Finish EmcPID More Manpower in ParticleID Tracking and PID efficiencies check Applying Kalman filter in KinematicFit and VertexFit Start 1st Vertex Reconstruction Continue the BParticle project Design and develop the EVENT TAG project Some Physics Analysis Tools (BWFIT, ROOFit,… etc) Applying more generator in future
Top Related