問題タブ [pyroot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
104 参照

python - Pythonで変更可能な要素を持つProcessに辞書を渡す

multiprocessing ライブラリの Process モジュールを使用して、パフォーマンスを向上させるためにコードをスレッド化しようとしています。

コードの骨組みは、作業対象のスレッドごとに辞書を作成することです。すべての処理が完了すると、辞書が合計されてファイルに保存されます。リソースは次のように作成されます。

次に、プロセス内で、各スレッドが独自の histos[thread_number] オブジェクトを使用して、含まれている ROOT.TH1Fs を処理します。ただし、私の問題は、どうやら次のように Process でスレッドを開始した場合です。

スレッドは histos[i] オブジェクトにアクセスできますが、それらに書き込むことはできません。正確には、TH1F ヒストグラムで Fill() を呼び出すと、オブジェクトは共有変数ではないため、オブジェクトに書き込むことができないため、データは入力されません。

だからここ:https://docs.python.org/3/library/multiprocessing.html 代わりに multiprocessing.Array() を使用して、スレッドによる読み取りと書き込みの両方が可能な配列を作成する必要があることがわかりました。このような:

ただし、辞書を型として受け入れません。それは動作しません、それは TypeError: unhashable type: 'dict' と言います

では、この問題を解決するための最良のアプローチは何でしょうか? 私が必要とするのは、辞書に格納されているすべての「すべての種類のキー」のインスタンスを各スレッドに渡すことです。これにより、それらは独自に機能します。そして、これらの受信したリソースを書き込むことができなければなりません。

助けてくれてありがとう、そして些細なことを見落としていたらごめんなさい、私は以前にスレッド化されたコードをしましたが、まだpythonではしていません。

0 投票する
1 に答える
131 参照

python - PyROOT で .root ファイルからデータをプロットする

私はPyROOTを使い始めているので、次の例をちりばめていました:

https://root.cern.ch/doc/master/pyroot_2fillrandom_8py.html

コードの最後で、データを py-fillrandom.root ファイルに保存します。それで、ルートファイルからデータをプロットしたかったのですが、ファイル内に複数のデータがあるため、私のアプローチは失敗しました(そして、私はどの解決策にもほど遠いと思うので、コードを投稿しませんでした)。このタスクに役立つチュートリアルや例は見つかりませんでした。だから私は助けをいただければ幸いです。

とにかく、.root ファイルの中身を確認する方法はありますか?

私はこれらすべてに慣れていないので、参考文献やヒントは私にとって非常に価値があります。

0 投票する
0 に答える
42 参照

python - PyROOT で GEANT4 ライブラリを読み込めません

TTree を開いてそこからデータを読み取る PyROOT マクロを作成しようとしていますが、ツリーにはコラボレーションのフレームワークに固有のクラスがいくつか含まれています。

ツリーをロードし、次のようにデータを読み取ろうとします。

依存関係を手動で含めないと、次のエラーが表示されます。

TPVetoMCEventそのため、が定義されているクラスと、このクラスが依存するクラス ( )を含めましたMCVRootIOが、最終的にエラーが発生します。

私はもう試した ROOT.gInterpreter.ProcessLine('#include "/cvmfs/geant4.cern.ch/geant4/10.3.ref01/x86_64-slc6-gcc49-opt/include/Geant4/globals.hh"')

それでも同じエラーが発生します。

完全なコードは次のとおりです。

そして、ツリーは次のように構成されています。 ツリー構造