我正在使用CERN的ROOT框架(必需),並且我想從TNtuple中獲取數據並繪製它。我可以在創建TNtuple時繪製數據,也可以在將其寫入.root文件後繪製數據。一些支持文檔建議我創建一個TTree,但是似乎它可能是過度殺傷/迂迴,因爲我不會將它用於其他任何事情(並且TNtuple滿足我的所有其他要求)。有沒有人有更好的建議如何從TNtuple中提取數據並繪製它?CERN ROOT從TNtuple中提取數據
1
A
回答
5
由於TNtuple繼承自TTree,因此您可以直接在TNtuple上使用支持文檔中提供的所有TTrees方法。 這尤其意味着您可以使用TTree :: Draw(),這通常足以快速繪製數據。該功能記錄在here。
如需更詳細的繪圖,您將不得不通過事件讀取TNtuple事件中的數據,並將其送入ROOT中您最喜愛的繪圖工具。這再次遵循樹中的基本原則。我在ROOT主頁上找到的最好例子是的「閱讀樹」一節。
1
用於創建TNtuples的直方圖和圖的方法與TTrees基本相同。的代碼:
ntuple->Draw("var");
將創建存儲在所述n元組可變var
的直方圖。如果你想在n元組繪製一個變量的另一個功能,使用
ntuple->Draw("xVar:yVar");
你可以做票友的東西,如只有當一個邏輯條件滿足創建地塊。例如,假設你想要的var1
直方圖僅當var2
是大於2且var3
小於0
ntuple->Draw("var","var2 > 2 && var3 < 0");
通過以這種方式繪製,ROOT自動設置裝倉和範圍的x軸。如果你想自己控制這些功能,使用
ntuple->Draw("var >> hist(Nbins,xmin,xmax)");
這將創建對象hist
,你當作根通常柱狀圖對象。如前一篇文章所述,這在ROOT手冊中有記錄,以及其他一些功能和工具。不幸的是,手冊並不總是給出明確的解釋。
0
{
ntuple->Draw("py:px","px>py","goff");
TGraph *gr = new TGraph(ntuple->GetSelectedRows(),ntuple->GetV2(), ntuple->GetV1());
gr->Draw("AP");
}
相關問題
- 1. 來自TNTuple的CERN提取陣列
- 2. ROOT(cern):gClient,gApplication
- 3. 用Cern繪製根ROOT
- 4. 使用ROOT(cern)和mingw32
- 5. CERN ROOT圖表風格問題
- 6. Cern ROOT XCode IDE無法編譯
- 7. Root Cern導出數據:導出一個特定的數據類型
- 8. 提取同一數據中的第一組數據<root>
- 9. 在XCode中從Cern中設置ROOT,正確地鏈接這些庫
- 10. CERN ROOT製作帶有事件標題的樹
- 11. CERN ROOT庫中的多種集成方法
- 12. 如何在ROOT(CERN)中禁用屏幕輸出
- 13. 在CERN ROOT程序中向TGraph添加第二個x軸
- 14. 從twitter中提取數據
- 15. 從fullcalendar中提取數據
- 16. 從NSArray中提取數據
- 17. 從Redshift中提取數據
- 18. 從pdf中提取數據
- 19. 從plist中提取數據
- 20. 從Chatfuel中提取數據
- 21. 從NamingEnumeration中提取數據
- 22. 從PDF中提取數據
- 23. 從response.Content.ReadStringASync中提取數據
- 24. 從json中提取數據
- 25. 從NSDictionary中提取數據
- 26. 從Excel數據庫中提取數據
- 27. 從Amazon SNS數據中提取數據
- 28. 從數據包中提取XML數據
- 29. 從數據對象中提取數據
- 30. 從Pandas數據框中提取數據