diff --git a/CHANGELOG.md b/CHANGELOG.md index 35564649f..f7e7cfaa7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,11 +16,14 @@ it in future. ### Fixed +* Use ConstructedAt instead of remove pythonization for TClonesArray + ### Changed ### Removed * Remove Millepede +* Remove outdated example shipEvent_ex.py ## 24.11 diff --git a/muonShieldOptimization/makeMuonDIS.py b/muonShieldOptimization/makeMuonDIS.py index 7a2580c60..7ecde9c63 100644 --- a/muonShieldOptimization/makeMuonDIS.py +++ b/muonShieldOptimization/makeMuonDIS.py @@ -85,7 +85,7 @@ def rotate(ctheta,stheta,cphi,sphi,px,py,pz): for n in range(nMult): dPart.Clear() iMuon.Clear() - iMuon[0] = muPart + iMuon.ConstructedAt(0).Use(muPart) myPythia.GenerateEvent() # remove all unnecessary stuff myPythia.Pyedit(2) @@ -99,7 +99,7 @@ def rotate(ctheta,stheta,cphi,sphi,px,py,pz): # copy to branch nPart = dPart.GetEntries() if dPart.GetSize() == nPart: dPart.Expand(nPart+10) - dPart[nPart] = part + dPart.ConstructedAt(nPart).Use(part) nMade+=1 if nMade%10000==0: print('made so far ',nMade) dTree.Fill() diff --git a/muonShieldOptimization/muDIS_mergeFiles.py b/muonShieldOptimization/muDIS_mergeFiles.py index 3678981ca..abedbb4c9 100644 --- a/muonShieldOptimization/muDIS_mergeFiles.py +++ b/muonShieldOptimization/muDIS_mergeFiles.py @@ -16,11 +16,11 @@ def merge(): sTree.GetEvent(n) dPart.Clear() iMuon.Clear() - iMuon[0] = sTree.InMuon[0] + iMuon.ConstructedAt(0).Use(sTree.InMuon[0]) for part in sTree.Particles: nPart = dPart.GetEntries() if dPart.GetSize() == nPart: dPart.Expand(nPart+10) - dPart[nPart] = part + dPart.ConstructedAt(nPart).Use(part) dPartBranch.Fill() iMuonBranch.Fill() nTree.Fill() diff --git a/python/shipEvent_ex.py b/python/shipEvent_ex.py deleted file mode 100644 index 08645d8ca..000000000 --- a/python/shipEvent_ex.py +++ /dev/null @@ -1,63 +0,0 @@ -import ROOT -import rootUtils as ut -import shipunit as u - -fn = 'ship.Pythia8-TGeant4.root' -# fn = 'ship.Genie-TGeant4.root' - -f = ROOT.TFile(fn) -sTree = f.FindObjectAny('cbmsim') -nEvents = sTree.GetEntries() -sFol = f.FindObjectAny('cbmroot') -MCTracks = ROOT.TClonesArray("FairMCTrack") -TrackingHits = ROOT.TClonesArray("vetoPoint") - -h={} - -def exMCTracks(): - ut.bookHist(h,'pz','pz',100,0.,100.) - ut.bookHist(h,'oz','oz',100,-10000.,10000.) - ut.bookHist(h,'ex','ex to det',100,-2.5,2.5,100,-2.5,2.5) - ut.bookHist(h,'N','N tracks',300,0.5,299.5) -# - sTree.SetBranchAddress("MCTrack", MCTracks) - detPos = (3.5*u.m+70*u.m+40*u.m-100*u.m) - for n in range(nEvents): - rc = sTree.GetEvent(n) - nMCTracks = MCTracks.GetEntriesFast() - rc = h['N'].Fill( nMCTracks ) - for i in range(nMCTracks): - atrack = MCTracks.At(i) - pdgCode = atrack.GetPdgCode() - mom = ROOT.TLorentzVector() - atrack.Get4Momentum(mom) - if abs(pdgCode)==13 or abs(pdgCode)==211: - rc = h['pz'].Fill( mom.Pz() ) - rc = h['oz'].Fill( atrack.GetStartZ() ) - lam = ( detPos-atrack.GetStartZ() )/mom.Pz() - xdet = (atrack.GetStartX()+lam*mom.Px() )/u.m - ydet = (atrack.GetStartY()+lam*mom.Py() )/u.m - rc = h['ex'].Fill(xdet,ydet ) - h['N'].Draw('box') - -def exMCHits(dump=False): - ut.bookHist(h,'tz','tracking hits z',100,-100.,100.) - ut.bookHist(h,'tztx','tracking hits x vs z',1000,-40.,40.,100,-2.5,2.5) - ut.bookHist(h,'txty','tracking hits y vs x',100,-2.5,2.5,100,-2.5,2.5) - sTree.SetBranchAddress("vetoPoint", TrackingHits) - for n in range(nEvents): - rc = sTree.GetEvent(n) - nHits = TrackingHits.GetEntriesFast() - for i in range(nHits): - ahit = TrackingHits.At(i) - rc = h['tz'].Fill( ahit.GetZ()/u.m ) - rc = h['txty'].Fill( ahit.GetX()/u.m,ahit.GetY()/u.m ) - rc = h['tztx'].Fill( ahit.GetZ()/u.m,ahit.GetX()/u.m ) - h['tztx'].Draw('box') - if dump: - for n in range( min(10,nEvents) ): - rc = sTree.GetEvent(n) - nHits = TrackingHits.GetEntriesFast() - for i in range(nHits): - ahit = TrackingHits.At(i) - print(ahit.GetZ()/u.m, ahit.GetDetectorID(),ahit.GetLength(),ahit.GetEnergyLoss())