Problem accessing root variables in array form

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
  // ...