I was trying to create a tree from different root files (test_*.root) having the same branches (numDetected, xPosition, in my case). I have uploaded the script that I used to print the required values after the necessary cuts. Every time I change the number of files to loop (lines 10 and 11) , the output is different. Can anyone please help?
My script to print the output is attached below:
looper.C (1.6 KB)
The files I need to loop is in the given link:
https://drive.google.com/open?id=1_PGSBW8izwz2C3vSwLS2_b_JcxkciaIt
Thanks
Hi @pnakarmi,
Every time I change the number of files to loop (lines 10 and 11) , the output is different.
What do you mean? every time I run it with a different range of files I see the same output per file:
From file 5 to 6:
Analyzing test_5.root
i= 0 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 1 ; xPos = -26.324654
...
i= 74 ; n_colli = 0; n_ref = 14; n_det = 42; n_diff = 19 ; xPos = -8.957570
i= 75 ; n_colli = 0; n_ref = 14; n_det = 43; n_diff = 19 ; xPos = -9.274748
i= 76 ; n_colli = 0; n_ref = 14; n_det = 44; n_diff = 19 ; xPos = -7.386509
File: 5 ; n: 77 ; n_coll: 0; n_ref: 14; n_det: 44; n_diff: 19
From file 5 to 7, I see the same numbers regarding file 5:
Analyzing test_5.root
i= 0 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 1 ; xPos = -26.324654
...
i= 74 ; n_colli = 0; n_ref = 14; n_det = 42; n_diff = 19 ; xPos = -8.957570
i= 75 ; n_colli = 0; n_ref = 14; n_det = 43; n_diff = 19 ; xPos = -9.274748
i= 76 ; n_colli = 0; n_ref = 14; n_det = 44; n_diff = 19 ; xPos = -7.386509
File: 5 ; n: 77 ; n_coll: 0; n_ref: 14; n_det: 44; n_diff: 19
Analyzing test_6.root
i= 0 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 1 ; xPos = -26.324654
...
i= 12 ; n_colli = 0; n_ref = 0; n_det = 7; n_diff = 6 ; xPos = -9.957247
i= 13 ; n_colli = 0; n_ref = 0; n_det = 8; n_diff = 6 ; xPos = -10.689065
File: 6 ; n: 14 ; n_coll: 0; n_ref: 0; n_det: 8; n_diff: 6
Can you explain a bit more what do you need to do?
Hi @jcervant,
Thanks a lot for the reply.
I tried with different numbers in line 10 and 11. Here I posted the results.
For files 5 to 12, the output I got is as below:
Analyzing test_5.root
i= 0 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 1 ; xPos = -26.324654
i= 1 ; n_colli = 0; n_ref = 1; n_det = 0; n_diff = 1 ; xPos = 2.587836
i= 2 ; n_colli = 0; n_ref = 2; n_det = 0; n_diff = 1 ; xPos = 0.531233
i= 3 ; n_colli = 0; n_ref = 2; n_det = 1; n_diff = 1 ; xPos = -7.519018
i= 4 ; n_colli = 0; n_ref = 3; n_det = 1; n_diff = 1 ; xPos = 2.108057
i= 5 ; n_colli = 0; n_ref = 4; n_det = 1; n_diff = 1 ; xPos = -1.460861
i= 6 ; n_colli = 0; n_ref = 4; n_det = 2; n_diff = 1 ; xPos = -7.343030
i= 7 ; n_colli = 0; n_ref = 4; n_det = 2; n_diff = 2 ; xPos = -28.057655
i= 8 ; n_colli = 0; n_ref = 4; n_det = 3; n_diff = 2 ; xPos = -10.096564
i= 9 ; n_colli = 0; n_ref = 4; n_det = 3; n_diff = 3 ; xPos = -25.228651
i= 10 ; n_colli = 0; n_ref = 4; n_det = 4; n_diff = 3 ; xPos = -10.783238
i= 11 ; n_colli = 0; n_ref = 4; n_det = 4; n_diff = 4 ; xPos = -27.747322
i= 12 ; n_colli = 0; n_ref = 4; n_det = 5; n_diff = 4 ; xPos = -7.859663
i= 13 ; n_colli = 0; n_ref = 4; n_det = 5; n_diff = 5 ; xPos = -25.114548
i= 14 ; n_colli = 0; n_ref = 4; n_det = 6; n_diff = 5 ; xPos = -10.804075
i= 15 ; n_colli = 0; n_ref = 4; n_det = 7; n_diff = 5 ; xPos = -6.940875
i= 16 ; n_colli = 0; n_ref = 4; n_det = 7; n_diff = 6 ; xPos = -25.014103
i= 17 ; n_colli = 0; n_ref = 4; n_det = 8; n_diff = 6 ; xPos = -10.505770
i= 18 ; n_colli = 0; n_ref = 4; n_det = 8; n_diff = 7 ; xPos = -25.169016
i= 19 ; n_colli = 0; n_ref = 4; n_det = 8; n_diff = 8 ; xPos = -27.630449
i= 20 ; n_colli = 0; n_ref = 5; n_det = 8; n_diff = 8 ; xPos = -0.867133
i= 21 ; n_colli = 0; n_ref = 5; n_det = 9; n_diff = 8 ; xPos = -9.581573
i= 22 ; n_colli = 0; n_ref = 5; n_det = 9; n_diff = 9 ; xPos = -26.538916
i= 23 ; n_colli = 0; n_ref = 6; n_det = 9; n_diff = 9 ; xPos = -2.819157
i= 24 ; n_colli = 0; n_ref = 6; n_det = 9; n_diff = 10 ; xPos = -26.917309
i= 25 ; n_colli = 0; n_ref = 7; n_det = 9; n_diff = 10 ; xPos = -2.391137
i= 26 ; n_colli = 0; n_ref = 8; n_det = 9; n_diff = 10 ; xPos = -0.384976
i= 27 ; n_colli = 0; n_ref = 8; n_det = 10; n_diff = 10 ; xPos = -8.248969
i= 28 ; n_colli = 0; n_ref = 8; n_det = 10; n_diff = 11 ; xPos = -26.469021
i= 29 ; n_colli = 0; n_ref = 8; n_det = 11; n_diff = 11 ; xPos = -8.160357
i= 30 ; n_colli = 0; n_ref = 8; n_det = 12; n_diff = 11 ; xPos = -11.145161
i= 31 ; n_colli = 0; n_ref = 8; n_det = 13; n_diff = 11 ; xPos = -9.837854
i= 32 ; n_colli = 0; n_ref = 8; n_det = 14; n_diff = 11 ; xPos = -9.459699
i= 33 ; n_colli = 0; n_ref = 8; n_det = 15; n_diff = 11 ; xPos = -12.273666
i= 34 ; n_colli = 0; n_ref = 8; n_det = 16; n_diff = 11 ; xPos = -11.311751
i= 35 ; n_colli = 0; n_ref = 8; n_det = 17; n_diff = 11 ; xPos = -11.242536
i= 36 ; n_colli = 0; n_ref = 8; n_det = 18; n_diff = 11 ; xPos = -9.196675
i= 37 ; n_colli = 0; n_ref = 8; n_det = 19; n_diff = 11 ; xPos = -12.301087
i= 38 ; n_colli = 0; n_ref = 9; n_det = 19; n_diff = 11 ; xPos = -1.234471
i= 39 ; n_colli = 0; n_ref = 9; n_det = 20; n_diff = 11 ; xPos = -8.166305
i= 40 ; n_colli = 0; n_ref = 10; n_det = 20; n_diff = 11 ; xPos = -0.056518
i= 41 ; n_colli = 0; n_ref = 10; n_det = 21; n_diff = 11 ; xPos = -12.089997
i= 42 ; n_colli = 0; n_ref = 10; n_det = 22; n_diff = 11 ; xPos = -10.665868
i= 43 ; n_colli = 0; n_ref = 10; n_det = 23; n_diff = 11 ; xPos = -10.983049
i= 44 ; n_colli = 0; n_ref = 11; n_det = 23; n_diff = 11 ; xPos = 0.292681
i= 45 ; n_colli = 0; n_ref = 11; n_det = 24; n_diff = 11 ; xPos = -9.585382
i= 46 ; n_colli = 0; n_ref = 11; n_det = 25; n_diff = 11 ; xPos = -9.203364
i= 47 ; n_colli = 0; n_ref = 11; n_det = 26; n_diff = 11 ; xPos = -7.926291
i= 48 ; n_colli = 0; n_ref = 11; n_det = 27; n_diff = 11 ; xPos = -9.294455
i= 49 ; n_colli = 0; n_ref = 11; n_det = 28; n_diff = 11 ; xPos = -10.469789
i= 50 ; n_colli = 0; n_ref = 11; n_det = 28; n_diff = 12 ; xPos = -25.594578
i= 51 ; n_colli = 0; n_ref = 11; n_det = 28; n_diff = 13 ; xPos = -24.300035
i= 52 ; n_colli = 0; n_ref = 11; n_det = 29; n_diff = 13 ; xPos = -9.359419
i= 53 ; n_colli = 0; n_ref = 11; n_det = 30; n_diff = 13 ; xPos = -8.049956
i= 54 ; n_colli = 0; n_ref = 11; n_det = 31; n_diff = 13 ; xPos = -9.192614
i= 55 ; n_colli = 0; n_ref = 12; n_det = 31; n_diff = 13 ; xPos = -0.114341
i= 56 ; n_colli = 0; n_ref = 12; n_det = 31; n_diff = 14 ; xPos = -24.754450
i= 57 ; n_colli = 0; n_ref = 12; n_det = 32; n_diff = 14 ; xPos = -8.001653
i= 58 ; n_colli = 0; n_ref = 12; n_det = 33; n_diff = 14 ; xPos = -8.686813
i= 59 ; n_colli = 0; n_ref = 12; n_det = 33; n_diff = 15 ; xPos = -25.534990
i= 60 ; n_colli = 0; n_ref = 12; n_det = 34; n_diff = 15 ; xPos = -12.129188
i= 61 ; n_colli = 0; n_ref = 13; n_det = 34; n_diff = 15 ; xPos = 0.177304
i= 62 ; n_colli = 0; n_ref = 13; n_det = 35; n_diff = 15 ; xPos = -11.670432
i= 63 ; n_colli = 0; n_ref = 13; n_det = 36; n_diff = 15 ; xPos = -8.196923
i= 64 ; n_colli = 0; n_ref = 13; n_det = 37; n_diff = 15 ; xPos = -12.247988
i= 65 ; n_colli = 0; n_ref = 13; n_det = 38; n_diff = 15 ; xPos = -11.680380
i= 66 ; n_colli = 0; n_ref = 13; n_det = 38; n_diff = 16 ; xPos = -25.082928
i= 67 ; n_colli = 0; n_ref = 13; n_det = 38; n_diff = 17 ; xPos = -24.018749
i= 68 ; n_colli = 0; n_ref = 13; n_det = 39; n_diff = 17 ; xPos = -10.658717
i= 69 ; n_colli = 0; n_ref = 13; n_det = 39; n_diff = 18 ; xPos = -27.466782
i= 70 ; n_colli = 0; n_ref = 14; n_det = 39; n_diff = 18 ; xPos = -1.963309
i= 71 ; n_colli = 0; n_ref = 14; n_det = 40; n_diff = 18 ; xPos = -7.442409
i= 72 ; n_colli = 0; n_ref = 14; n_det = 40; n_diff = 19 ; xPos = -24.043947
i= 73 ; n_colli = 0; n_ref = 14; n_det = 41; n_diff = 19 ; xPos = -8.819995
i= 74 ; n_colli = 0; n_ref = 14; n_det = 42; n_diff = 19 ; xPos = -8.957570
i= 75 ; n_colli = 0; n_ref = 14; n_det = 43; n_diff = 19 ; xPos = -9.274748
i= 76 ; n_colli = 0; n_ref = 14; n_det = 44; n_diff = 19 ; xPos = -7.386509
File: 5 ; n: 77 ; n_coll: 0; n_ref: 14; n_det: 44; n_diff: 19
Analyzing test_6.root
i= 0 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 1 ; xPos = -26.324654
i= 1 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 2 ; xPos = -28.227003
i= 2 ; n_colli = 0; n_ref = 0; n_det = 1; n_diff = 2 ; xPos = -8.928069
i= 3 ; n_colli = 0; n_ref = 0; n_det = 2; n_diff = 2 ; xPos = -11.846270
i= 4 ; n_colli = 0; n_ref = 0; n_det = 2; n_diff = 3 ; xPos = -27.824860
i= 5 ; n_colli = 0; n_ref = 0; n_det = 3; n_diff = 3 ; xPos = -6.813766
i= 6 ; n_colli = 0; n_ref = 0; n_det = 3; n_diff = 4 ; xPos = -28.082512
i= 7 ; n_colli = 0; n_ref = 0; n_det = 4; n_diff = 4 ; xPos = -8.313614
i= 8 ; n_colli = 0; n_ref = 0; n_det = 4; n_diff = 5 ; xPos = -27.960135
i= 9 ; n_colli = 0; n_ref = 0; n_det = 4; n_diff = 6 ; xPos = -24.510914
i= 10 ; n_colli = 0; n_ref = 0; n_det = 5; n_diff = 6 ; xPos = -11.171926
i= 11 ; n_colli = 0; n_ref = 0; n_det = 6; n_diff = 6 ; xPos = -9.748607
i= 12 ; n_colli = 0; n_ref = 0; n_det = 7; n_diff = 6 ; xPos = -9.957247
i= 13 ; n_colli = 0; n_ref = 0; n_det = 8; n_diff = 6 ; xPos = -10.689065
File: 6 ; n: 14 ; n_coll: 0; n_ref: 0; n_det: 8; n_diff: 6
Analyzing test_7.root
i= 0 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 1 ; xPos = -26.324654
i= 1 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 2 ; xPos = -28.227003
i= 2 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 3 ; xPos = -27.221176
i= 3 ; n_colli = 0; n_ref = 1; n_det = 0; n_diff = 3 ; xPos = 1.744153
i= 4 ; n_colli = 0; n_ref = 1; n_det = 0; n_diff = 4 ; xPos = -27.686390
i= 5 ; n_colli = 0; n_ref = 2; n_det = 0; n_diff = 4 ; xPos = -2.784052
File: 7 ; n: 6 ; n_coll: 0; n_ref: 2; n_det: 0; n_diff: 4
Analyzing test_8.root
i= 0 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 1 ; xPos = -26.324654
i= 1 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 2 ; xPos = -28.227003
i= 2 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 3 ; xPos = -27.221176
File: 8 ; n: 3 ; n_coll: 0; n_ref: 0; n_det: 0; n_diff: 3
Analyzing test_9.root
i= 0 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 1 ; xPos = -26.324654
i= 1 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 2 ; xPos = -28.227003
i= 2 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 3 ; xPos = -27.221176
i= 3 ; n_colli = 0; n_ref = 1; n_det = 0; n_diff = 3 ; xPos = 1.744153
i= 4 ; n_colli = 0; n_ref = 1; n_det = 1; n_diff = 3 ; xPos = -7.450417
i= 5 ; n_colli = 0; n_ref = 1; n_det = 1; n_diff = 4 ; xPos = -24.353779
i= 6 ; n_colli = 0; n_ref = 2; n_det = 1; n_diff = 4 ; xPos = -2.865674
i= 7 ; n_colli = 0; n_ref = 3; n_det = 1; n_diff = 4 ; xPos = -2.210877
i= 8 ; n_colli = 0; n_ref = 3; n_det = 1; n_diff = 5 ; xPos = -24.824183
i= 9 ; n_colli = 0; n_ref = 3; n_det = 2; n_diff = 5 ; xPos = -10.255744
i= 10 ; n_colli = 0; n_ref = 3; n_det = 2; n_diff = 6 ; xPos = -24.719187
i= 11 ; n_colli = 0; n_ref = 3; n_det = 2; n_diff = 7 ; xPos = -26.782740
i= 12 ; n_colli = 1; n_ref = 3; n_det = 2; n_diff = 7 ; xPos = 17.014883
i= 13 ; n_colli = 2; n_ref = 3; n_det = 2; n_diff = 7 ; xPos = 16.645113
i= 14 ; n_colli = 3; n_ref = 3; n_det = 2; n_diff = 7 ; xPos = 17.215027
i= 15 ; n_colli = 4; n_ref = 3; n_det = 2; n_diff = 7 ; xPos = 16.949549
i= 16 ; n_colli = 5; n_ref = 3; n_det = 2; n_diff = 7 ; xPos = 17.027176
File: 9 ; n: 17 ; n_coll: 5; n_ref: 3; n_det: 2; n_diff: 7
Analyzing test_10.root
i= 0 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 1 ; xPos = -26.324654
File: 10 ; n: 1 ; n_coll: 0; n_ref: 0; n_det: 0; n_diff: 1
Analyzing test_11.root
i= 0 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 1 ; xPos = -26.324654
i= 1 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 2 ; xPos = -28.227003
i= 2 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 3 ; xPos = -27.221176
i= 3 ; n_colli = 0; n_ref = 1; n_det = 0; n_diff = 3 ; xPos = 1.744153
i= 4 ; n_colli = 0; n_ref = 1; n_det = 1; n_diff = 3 ; xPos = -7.450417
i= 5 ; n_colli = 0; n_ref = 1; n_det = 1; n_diff = 4 ; xPos = -24.353779
i= 6 ; n_colli = 0; n_ref = 1; n_det = 1; n_diff = 5 ; xPos = -24.777046
i= 7 ; n_colli = 0; n_ref = 2; n_det = 1; n_diff = 5 ; xPos = -0.750207
i= 8 ; n_colli = 0; n_ref = 3; n_det = 1; n_diff = 5 ; xPos = -0.345998
i= 9 ; n_colli = 0; n_ref = 4; n_det = 1; n_diff = 5 ; xPos = -2.892226
i= 10 ; n_colli = 0; n_ref = 4; n_det = 2; n_diff = 5 ; xPos = -11.978461
i= 11 ; n_colli = 0; n_ref = 5; n_det = 2; n_diff = 5 ; xPos = -2.948935
i= 12 ; n_colli = 0; n_ref = 5; n_det = 3; n_diff = 5 ; xPos = -11.461285
i= 13 ; n_colli = 0; n_ref = 6; n_det = 3; n_diff = 5 ; xPos = -0.825607
i= 14 ; n_colli = 0; n_ref = 7; n_det = 3; n_diff = 5 ; xPos = -0.997171
i= 15 ; n_colli = 0; n_ref = 8; n_det = 3; n_diff = 5 ; xPos = 1.940014
i= 16 ; n_colli = 0; n_ref = 9; n_det = 3; n_diff = 5 ; xPos = 1.503374
i= 17 ; n_colli = 0; n_ref = 10; n_det = 3; n_diff = 5 ; xPos = 1.235632
i= 18 ; n_colli = 0; n_ref = 11; n_det = 3; n_diff = 5 ; xPos = 1.684909
i= 19 ; n_colli = 0; n_ref = 12; n_det = 3; n_diff = 5 ; xPos = -1.444892
File: 11 ; n: 20 ; n_coll: 0; n_ref: 12; n_det: 3; n_diff: 5
And for files from 8 to 12, the output is as below:
Analyzing test_8.root
i= 0 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 1 ; xPos = -24.129593
i= 1 ; n_colli = 0; n_ref = 0; n_det = 1; n_diff = 1 ; xPos = -10.444209
i= 2 ; n_colli = 0; n_ref = 0; n_det = 2; n_diff = 1 ; xPos = -8.483139
File: 8 ; n: 3 ; n_coll: 0; n_ref: 0; n_det: 2; n_diff: 1
Analyzing test_9.root
i= 0 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 1 ; xPos = -24.129593
i= 1 ; n_colli = 0; n_ref = 0; n_det = 1; n_diff = 1 ; xPos = -10.971806
i= 2 ; n_colli = 0; n_ref = 0; n_det = 2; n_diff = 1 ; xPos = -10.510320
i= 3 ; n_colli = 0; n_ref = 0; n_det = 2; n_diff = 2 ; xPos = -26.135008
i= 4 ; n_colli = 0; n_ref = 0; n_det = 3; n_diff = 2 ; xPos = -7.450417
i= 5 ; n_colli = 0; n_ref = 0; n_det = 3; n_diff = 3 ; xPos = -24.353779
i= 6 ; n_colli = 0; n_ref = 1; n_det = 3; n_diff = 3 ; xPos = -2.865674
i= 7 ; n_colli = 0; n_ref = 2; n_det = 3; n_diff = 3 ; xPos = -2.210877
i= 8 ; n_colli = 0; n_ref = 2; n_det = 3; n_diff = 4 ; xPos = -24.824183
i= 9 ; n_colli = 0; n_ref = 2; n_det = 4; n_diff = 4 ; xPos = -10.255744
i= 10 ; n_colli = 0; n_ref = 2; n_det = 4; n_diff = 5 ; xPos = -24.719187
i= 11 ; n_colli = 0; n_ref = 2; n_det = 4; n_diff = 6 ; xPos = -26.782740
i= 12 ; n_colli = 1; n_ref = 2; n_det = 4; n_diff = 6 ; xPos = 17.014883
i= 13 ; n_colli = 2; n_ref = 2; n_det = 4; n_diff = 6 ; xPos = 16.645113
i= 14 ; n_colli = 3; n_ref = 2; n_det = 4; n_diff = 6 ; xPos = 17.215027
i= 15 ; n_colli = 4; n_ref = 2; n_det = 4; n_diff = 6 ; xPos = 16.949549
i= 16 ; n_colli = 5; n_ref = 2; n_det = 4; n_diff = 6 ; xPos = 17.027176
File: 9 ; n: 17 ; n_coll: 5; n_ref: 2; n_det: 4; n_diff: 6
Analyzing test_10.root
i= 0 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 1 ; xPos = -24.129593
File: 10 ; n: 1 ; n_coll: 0; n_ref: 0; n_det: 0; n_diff: 1
Analyzing test_11.root
i= 0 ; n_colli = 0; n_ref = 0; n_det = 0; n_diff = 1 ; xPos = -24.129593
i= 1 ; n_colli = 0; n_ref = 0; n_det = 1; n_diff = 1 ; xPos = -10.971806
i= 2 ; n_colli = 0; n_ref = 0; n_det = 2; n_diff = 1 ; xPos = -10.510320
i= 3 ; n_colli = 0; n_ref = 1; n_det = 2; n_diff = 1 ; xPos = 2.353142
i= 4 ; n_colli = 0; n_ref = 1; n_det = 2; n_diff = 2 ; xPos = -25.352160
i= 5 ; n_colli = 0; n_ref = 2; n_det = 2; n_diff = 2 ; xPos = 1.067115
i= 6 ; n_colli = 0; n_ref = 2; n_det = 2; n_diff = 3 ; xPos = -24.777046
i= 7 ; n_colli = 0; n_ref = 3; n_det = 2; n_diff = 3 ; xPos = -0.750207
i= 8 ; n_colli = 0; n_ref = 4; n_det = 2; n_diff = 3 ; xPos = -0.345998
i= 9 ; n_colli = 0; n_ref = 5; n_det = 2; n_diff = 3 ; xPos = -2.892226
i= 10 ; n_colli = 0; n_ref = 5; n_det = 3; n_diff = 3 ; xPos = -11.978461
i= 11 ; n_colli = 0; n_ref = 6; n_det = 3; n_diff = 3 ; xPos = -2.948935
i= 12 ; n_colli = 0; n_ref = 6; n_det = 4; n_diff = 3 ; xPos = -11.461285
i= 13 ; n_colli = 0; n_ref = 7; n_det = 4; n_diff = 3 ; xPos = -0.825607
i= 14 ; n_colli = 0; n_ref = 8; n_det = 4; n_diff = 3 ; xPos = -0.997171
i= 15 ; n_colli = 0; n_ref = 9; n_det = 4; n_diff = 3 ; xPos = 1.940014
i= 16 ; n_colli = 0; n_ref = 10; n_det = 4; n_diff = 3 ; xPos = 1.503374
i= 17 ; n_colli = 0; n_ref = 11; n_det = 4; n_diff = 3 ; xPos = 1.235632
i= 18 ; n_colli = 0; n_ref = 12; n_det = 4; n_diff = 3 ; xPos = 1.684909
i= 19 ; n_colli = 0; n_ref = 13; n_det = 4; n_diff = 3 ; xPos = -1.444892
File: 11 ; n: 20 ; n_coll: 0; n_ref: 13; n_det: 4; n_diff: 3
Now, if we look at the output, for example, test_8.root and test_9.root, they are different.
Could you please help where am I doing wrong?
Thanks,
Pra
Looks like you want to go through each file separately, but you are doing a TChain, so try removing these lines:
TChain t("tree");
...
t.Add(Form("muon/test_%d.root", run));
And also, to access events, use GetEvent(i).
Try this instead:
void looper() {
TFile *f;
TTree *t;
const Int_t nmax = 50000; // Some number > num;
Int_t run_0 = 8; //8; // Start 0 so it reads file 1 even if file 0 does not exist
Int_t run_total = 10; //10;
// Loop over files/runs
for (int run=run_0; run<run_total; run++) {
printf("Analyzing test_%d.root \n", run);
f = new TFile(Form("muon/test_%d.root", run));
t = (TTree*)f->Get("tree");
// Define Branches and var
Int_t entries = t->GetEntries();
Int_t num;
Int_t n;
Int_t n_colli = 0; Int_t n_ref = 0 ; Int_t n_det = 0; Int_t n_diff = 0;
t->SetBranchAddress("num", &num);
for (int i=0; i<entries; i++) {
t->GetEvent(i);
n = num;
}
Float_t xPosition[nmax];
t->SetBranchAddress("xPosition", &xPosition);
for (int j=0; j<n; j++) {
t->GetEvent(j);
if(xPosition[j] >=10.0) n_colli = n_colli + 1;
else if(xPosition[j] >=-5.0 && xPosition[j] <5.0 ) n_ref = n_ref + 1;
else if(xPosition[j] >=-15.0 && xPosition[j] <-5.0 ) n_det = n_det + 1;
else if(xPosition[j] <=-20.0) n_diff = n_diff + 1;
printf("i= %d ; n_colli = %d; n_ref = %d; n_det = %d; n_diff = %d ; xPos = %f \n",j ,n_colli, n_ref, n_det, n_diff, xPosition[j]);
}
printf("File: %d ; n: %d ; n_coll: %d; n_ref: %d; n_det: %d; n_diff: %d \n", run, n, n_colli, n_ref, n_det, n_diff);
} // end file loop
}
Hi,
Thanks for your reply. After the correction suggested by you, it worked.
Now, I am trying to create a root tree and save the output in the branches. Here is the code that I edited. For few files, it ran correctly but when I tried to run for all files (100 files), the program stopped at file test_54.root. I don’t understand why. Can you please help?
My code now looks like:
void looper_v2() {
TFile *f;
TTree *t;
TFile *file = new TFile("muon_tree.root","RECREATE");
TTree *tree = new TTree("tree","A Root tree");
Int_t evt,n_tot,colli,ref,d_15,d_45;
tree->Branch("evt",&evt,"evt/I");
tree->Branch("n_tot",&n_tot,"n_tot/I");
tree->Branch("colli",&colli,"colli/I");
tree->Branch("ref",&ref,"ref/I");
tree->Branch("d_15",&d_15,"d_15/I");
tree->Branch("d_45",&d_45,"d_45/I");
const Int_t nmax = 500000; // Some number > num;
Int_t run_0 = 1; //8; // Start 0 so it reads file 1 even if file 0 does not exist
Int_t run_total = 50; //10;
// Loop over files/runs
for (int run=run_0; run<run_total; run++) {
printf("Analyzing test_%d.root \n", run);
f = new TFile(Form("muon/test_%d.root", run));
t = (TTree*)f->Get("tree");
// Define Branches and var
Int_t entries = t->GetEntries();
Int_t num;
Int_t n;
Int_t n_colli = 0; Int_t n_ref = 0 ; Int_t n_det = 0; Int_t n_diff = 0;
t->SetBranchAddress("num", &num);
for (int i=0; i<entries; i++) {
t->GetEvent(i);
n = num;
}
Float_t xPosition[nmax];
t->SetBranchAddress("xPosition", &xPosition);
for (int j=0; j<n; j++) {
t->GetEvent(j);
if(xPosition[j] >=10.0) n_colli = n_colli + 1;
else if(xPosition[j] >=-5.0 && xPosition[j] <5.0 ) n_ref = n_ref + 1;
else if(xPosition[j] >=-15.0 && xPosition[j] <-5.0 ) n_det = n_det + 1;
else if(xPosition[j] <=-20.0) n_diff = n_diff + 1;
//printf("i= %d ; n_colli = %d; n_ref = %d; n_det = %d; n_diff = %d ; xPos = %f \n",j ,n_colli, n_ref, n_det, n_diff, xPosition[j]);
}
evt = run;
n_tot = n;
colli = n_colli;
ref = n_ref;
d_15 = n_det;
d_45 = n_diff;
tree->Fill();
printf("File: %d ; n: %d ; n_coll: %d; n_ref: %d; n_det: %d; n_diff: %d \n", run, n, n_colli, n_ref, n_det, n_diff);
} // end file loop
//tree->Print();
file->Write();
}
Please read this, particularly point 5, to format code here:
https://root-forum.cern.ch/t/tips-for-efficient-and-successful-posting/28292
As for your code, these lines were missing an ‘*’ :
TTree *tree = new TTree("tree","A Root tree");
t = (TTree*)f->Get("tree");
and also, you need to do tree->Write(), not file->Write(). This should work:
void loop() {
...
TTree *tree = new TTree("tree","A Root tree");
...
for (int run=run_0; run<run_total; run++) {
...
t = (TTree*)f->Get("tree");
...
} // end file loop
//tree->Print();
file->cd(); // so that 'tree' is written to 'file', not to 'f'
tree->Write();
file->Close();
delete file;
}
Hi,
I tried running code as per your suggestions.
When I run for files from 1 to 53 , it runs well.
Int_t run_0 = 1;
Int_t run_total = 53;
But when I change the above numbers from 1 to 100, it stops at file test_54.root. Can you please help?
The new code looks like below:
void looper_v2() {
TFile *f;
TTree *t;
TFile *file = new TFile("muon_tree.root","RECREATE");
TTree *tree = new TTree("tree","A Root tree");
........
const Int_t nmax = 500000; // Some number > num;
Int_t run_0 = 1; //8; // Start 0 so it reads file 1 even if file 0 does not exist
Int_t run_total = 100; //10;
// Loop over files/runs
for (int run=run_0; run<run_total; run++) {
...
t = (TTree*)f->Get("tree");
...
for (int i=0; i<entries; i++) {
...
}
evt = run;
n_tot = n;
colli = n_colli;
ref = n_ref;
d_15 = n_det;
d_45 = n_diff;
tree->Fill();
printf("File: %d ; n: %d ; n_coll: %d; n_ref: %d; n_det: %d; n_diff: %d \n", run, n, n_colli, n_ref, n_det, n_diff);
} // end file loop
//tree->Print();
file->cd();
tree->Write();
file->Close();
delete file;
}
Try:
// ...
for (int run = run_0; run < run_total; run++) {
f = TFile::Open(TString::Format("muon/test_%d.root", run));
if ((!f) || f->IsZombie()) { delete f; continue; } // just a precaution
f->GetObject("tree", t);
if (!t) { delete f; continue; } // just a precaution
// ...
delete f; // automatically deletes "t", too
} // end file loop
// ...