0

イベント ヘッダーを含むツリーを作成する必要があります。ROOT ファイルから 2 つの ntuple に読み込みました。これらの各 ntuple の形式は次のとおりです。

Index  Event     SubEvent      Characteristic1          Characteristic2 .... 
  1      1            1                 322                      234
  2      1            2                 453                      324
  3      1            3                 ...                      ...
  .      .            .                 ...                      ...
  .      .            .                 ...                      ...
 100     1           100                ...                      ...
 101     2            1                 ...                      ...
 102     2            2                 ...                      ...
  .      .            .                 ...                      ...
  .      .            .                 ...                      ...   
  .      .            .                 ...                      ... 
 207     2           107                ...                      ...
 208     3            1                 ...                      ...
 209     3            2                 ...                      ...

など、インデックスは約 200 万まで実行されます。

ntuples の作成に使用した形式:

TNtuple *tp = new TNtuple("tp","tp","x:y:z");
TNtuple *tn = new TNtuple("tn","tn","x:y:z");

for(Int_t n = 0; n < nEvents; n++) {
    inTree->GetEntry(n);
    Int_t nTracks = trackArray->GetEntries();
    for(Int_t i = 0; i < nTracks; i++) {
    Track* trackData = (Track*)trackArray->At(i);
        if(trackData->fCharge == 1)
        tp->Fill(trackData->x,trackData->y,trackData->z);
        if(trackData->fCharge == -1)
            tn->Fill(trackData->x,trackData->y,trackData->z);
        }
    }

ただし、ntuples を使用すると、実行したい分析に非常に時間がかかるという問題があります。私が読んでいるデータと同じ方法でデータを構造化したいと思います。つまり、2 つの分岐 (2 つの「ファイル」用) があり、それぞれに偶数ヘッダーが含まれているツリーで、1 つのイベントをループできるようにしたいと考えています。ファイルに続いて、同じイベントに対してのみ 2 番目のファイルにループをネストします。前の質問に関連します。

元のファイルがどのように構築されたかについてのコードを持っていないため、上記の方法でデータを書き込むことができました。

4

1 に答える 1

0

200万はそんなに多くない。

  1. 必要のないブランチをオフにしてみてください。
  2. if秒を次のように変更しますelse if
  3. さらに、証明を使用できます
于 2011-10-10T21:48:52.737 に答える