SND@LHC Software
Loading...
Searching...
No Matches
decorators.py
Go to the documentation of this file.
1from __future__ import print_function
2from __future__ import division
3from ctypes import c_double
4import ROOT
5import shipunit as u
6
8 p = ROOT.TDatabasePDG.Instance().GetParticle(x.PdgCode())
9 n=''
10 if p: n = p.GetName()
11 txt = '("%s") X:%6.3Fcm Y:%6.3Fcm Z:%6.3Fcm dE/dx:%6.2FMeV %s'%(\
12 x.Class_Name(),x.GetX(),x.GetY(),x.GetZ(),x.GetEnergyLoss()/u.MeV,n)
13 return txt
15 c = x.GetPdgCode()
16 p = ROOT.TDatabasePDG.Instance().GetParticle(c)
17 n=''
18 if p: n = p.GetName()
19 m = x.GetMotherId()
20 txt = '("ShipMCTrack") pdgCode: %7i(%10s) Z=%6.1F m P=%6.3F GeV/c mother=%i %s'%(c,n,x.GetStartZ()/u.m,x.GetP(),m,x.GetProcName())
21 return txt
23 txt = '("vetoHit") detID:%7i ADC:%5.2F TDC:%5.2F'%(x.GetDetectorID(),x.GetADC(),x.GetTDC())
24 return txt
26 txt = '("muonHit") detID:%7i TDC:%5.2F isValid:%r'%(x.GetDetectorID(),x.GetDigi(),x.isValid())
27 return txt
29 t = x.GetMeasurements()
30 txt = '("TimeDetHit") detID:%7i TDC1:%5.2F TDC2:%5.2F isValid:%r'%(x.GetDetectorID(),t[0],t[1],x.isValid())
31 return txt
33 st = x.getFitStatus()
34 if st.isFitConverged():
35 chi2DoF = st.getChi2()/st.getNdf()
36 sta = x.getFittedState()
37 P = sta.getMomMag()
38 txt = '("FitTrack") chi2/dof:%3.1F P:%5.2FGeV/c pdg:%i'%(chi2DoF,P,sta.getPDG())
39 else:
40 txt = '("FitTrack") fit not converged'
41 return txt
43 txt = '("TParticle") %s P:%5.2FGeV/c VxZ:%5.2Fm'%(x.GetName(),x.P(),x.Vz()/u.m)
44 return txt
46 txt = '("ShipParticle") %s M:%5.2FGeV/c2 P:%5.2FGeV/c VxZ:%5.2Fm'%(x.GetName(),x.GetMass(),x.P(),x.Vz()/u.m)
47 return txt
49 txt = '("EcalCluster") E:%5.2FGeV/c X:%5.2Fm Y:%5.2Fm'%(cl.RecoE(),cl.X()/u.m,cl.Y()/u.m)
50 return txt
52 txt = '("EcalCluster") E:%5.2FGeV/c X:%5.2Fm Y:%5.2Fm'%(cl.Energy(),cl.X()/u.m,cl.Y()/u.m)
53 return txt
54def Dump(x):
55 k=0
56 for obj in x:
57 print(k,obj.__repr__())
58 k+=1
59
61 txt = '%9.5F,%9.5F,%9.5F'%(x.X(),x.Y(),x.Z())
62 return txt
63
65 txt = '%9.5F,%9.5F,%9.5F,%9.5F,%9.5F'%(x.Px(),x.Py(),x.Pz(),x.E(),x.Mag())
66 return txt
67
69 x, y, z = c_double(), c_double(), c_double()
70 txt = ''
71 if P.GetN()==0: txt = '<ROOT.TEvePointSet object>'
72 for n in range(P.GetN()):
73 rc = P.GetPoint(n,x,y,z)
74 txt += '%6i %7.1F,%7.1F,%9.1F x,y,z cm\n'%(n,x.value,y.value,z.value)
75 return txt
76
78 txt = "sndScifiHit: Scifi hit in station %i"%(x.GetStation())
79 if x.isVertical(): txt+= " vertical plane "
80 else: txt+= " horizontal plane "
81 txt+="SiPM nr %3i SiPM channel %3i "%(x.GetSiPM(),x.GetSiPMChan())
82 return txt
84 txt ="MuFilterHit: MuFilter hit in detector %i"%(x.GetDetectorID())
85 if x.GetDetectorID()//10000==3 and x.GetDetectorID()%1000>59:
86 txt+= " with vertical bars top digis: "
87 for j in range(x.GetnSiPMs()):
88 txt += " %7.4F "%(x.GetSignal(j))
89 else:
90 txt+= " with horizontal bars"
91 for s in range(x.GetnSides()):
92 if s==0: txt+= " left digis:"
93 else: txt+= " right digis:"
94 for j in range(x.GetnSiPMs()):
95 txt += " %7.4F "%(x.GetSignal(j))
96 return txt
97
98ROOT.FairMCPoint.__repr__ = MCPointPrintOut
99ROOT.ShipMCTrack.__repr__ = MCTrackPrintOut
100ROOT.genfit.Track.__repr__ = FitTrackPrintOut
101ROOT.TClonesArray.Dump = Dump
102ROOT.TVector3.__repr__ = TVector3PrintOut
103ROOT.TParticle.__repr__ = TParticlePrintOut
104ROOT.ShipParticle.__repr__ = ShipParticlePrintOut
105ROOT.TEvePointSet.__repr__ = TEvePointSetPrintOut
106ROOT.vetoHit.__repr__ = vetoHitPrintOut
107ROOT.TLorentzVector.__repr__ = TLorentzVectorPrintOut
108ROOT.sndScifiHit.__repr__ = sndScifiHitPrintOut
109ROOT.MuFilterHit.__repr__ = MuFilterHitPrintOut
MCPointPrintOut(x)
Definition decorators.py:7
TParticlePrintOut(x)
Definition decorators.py:42
MCTrackPrintOut(x)
Definition decorators.py:14
TEvePointSetPrintOut(P)
Definition decorators.py:68
ecalClusterPrintOut(cl)
Definition decorators.py:51
ecalReconstructedPrintOut(cl)
Definition decorators.py:48
vetoHitPrintOut(x)
Definition decorators.py:22
TLorentzVectorPrintOut(x)
Definition decorators.py:64
muonHitPrintOut(x)
Definition decorators.py:25
ShipParticlePrintOut(x)
Definition decorators.py:45
TimeDetHitPrintOut(x)
Definition decorators.py:28
TVector3PrintOut(x)
Definition decorators.py:60
FitTrackPrintOut(x)
Definition decorators.py:32
sndScifiHitPrintOut(x)
Definition decorators.py:77
MuFilterHitPrintOut(x)
Definition decorators.py:83