Filtering a Tree::Draw using a TString branch

Hi, at the section 14.20.1 of ROOT documentation it is clearly stated how to do a Draw using a aTString as filtering condition.

Just as follows

root[] MyTree->Draw("Cost:Age","Nation == "FR"")

I have a tree with few branches, and I am interested to filter by subEventTag.

output from GetListOfBranches()
Collection name='TObjArray', class='TObjArray', size=66
 *Br    0 :runOrigin : runOrigin/I                                            *
*Entries :    10007 : Total  Size=      40701 bytes  File Size  =        437 *
*Baskets :        2 : Basket Size=      32000 bytes  Compression=  91.98     *
*............................................................................*
 *Br    1 :subRunOrigin : subRunOrigin/I                                      *
*Entries :    10007 : Total  Size=      40719 bytes  File Size  =        414 *
*Baskets :        2 : Basket Size=      32000 bytes  Compression=  97.11     *
*............................................................................*
 *Br    2 :eventID   : eventID/I                                              *
*Entries :    10007 : Total  Size=      40689 bytes  File Size  =       9578 *
*Baskets :        2 : Basket Size=      32000 bytes  Compression=   4.20     *
*............................................................................*
 *Br    3 :subEventID : subEventID/I                                          *
*Entries :    10007 : Total  Size=      40707 bytes  File Size  =       7775 *
*Baskets :        2 : Basket Size=      32000 bytes  Compression=   5.17     *
*............................................................................*
 *Br    4 :timeStamp : timeStamp/D                                            *
*Entries :    10007 : Total  Size=      80821 bytes  File Size  =      47944 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.68     *
*............................................................................*
 *Br    5 :subEventTag : TString                                              *
*Entries :    10007 : Total  Size=     101057 bytes  File Size  =      28860 *
*Baskets :        5 : Basket Size=      32000 bytes  Compression=   3.48     *
*............................................................................*
 *Br    6 :g4Ana_gasVolumeEDep : Double_t (double)                            *
*Entries :    10007 : Total  Size=      80879 bytes  File Size  =      72455 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.11     *
*............................................................................*
 *Br    7 :g4Ana_gasMeanPosX : Double_t (double)                              *
*Entries :    10007 : Total  Size=      80867 bytes  File Size  =      77178 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.04     *
*............................................................................*
 *Br    8 :g4Ana_gasMeanPosY : Double_t (double)                              *
*Entries :    10007 : Total  Size=      80867 bytes  File Size  =      77167 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.04     *
*............................................................................*
 *Br    9 :g4Ana_gasMeanPosZ : Double_t (double)                              *
*Entries :    10007 : Total  Size=      80867 bytes  File Size  =      77057 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.04     *
*............................................................................*
 *Br   10 :g4Ana_photoelectric : Int_t (int)                                  *
*Entries :    10007 : Total  Size=      40746 bytes  File Size  =       3871 *
*Baskets :        2 : Basket Size=      32000 bytes  Compression=  10.39     *
*............................................................................*
 *Br   11 :g4Ana_compton : Int_t (int)                                        *
*Entries :    10007 : Total  Size=      40716 bytes  File Size  =        441 *
*Baskets :        2 : Basket Size=      32000 bytes  Compression=  91.17     *
*............................................................................*
 *Br   12 :g4Ana_bremstralung : Int_t (int)                                   *
*Entries :    10007 : Total  Size=      40741 bytes  File Size  =        631 *
*Baskets :        2 : Basket Size=      32000 bytes  Compression=  63.73     *
*............................................................................*
 *Br   13 :g4Ana_hadElastic : Int_t (int)                                     *
*Entries :    10007 : Total  Size=      40731 bytes  File Size  =        422 *
*Baskets :        2 : Basket Size=      32000 bytes  Compression=  95.28     *
*............................................................................*
 *Br   14 :g4Ana_neutronInelastic : Int_t (int)                               *
*Entries :    10007 : Total  Size=      40761 bytes  File Size  =        434 *
*Baskets :        2 : Basket Size=      32000 bytes  Compression=  92.68     *
*............................................................................*
 *Br   15 :g4Ana_PerProcessPhotoelectric : Double_t (double)                  *
*Entries :    10007 : Total  Size=      80939 bytes  File Size  =       8137 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   9.88     *
*............................................................................*
 *Br   16 :g4Ana_PerProcessCompton : Double_t (double)                        *
*Entries :    10007 : Total  Size=      80903 bytes  File Size  =        788 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression= 101.97     *
*............................................................................*
 *Br   17 :g4Ana_PerProcessElectronicIoni : Double_t (double)                 *
*Entries :    10007 : Total  Size=      80945 bytes  File Size  =      66738 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.20     *
*............................................................................*
 *Br   18 :g4Ana_PerProcessHadronicIoni : Double_t (double)                   *
*Entries :    10007 : Total  Size=      80933 bytes  File Size  =        756 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression= 106.30     *
*............................................................................*
 *Br   19 :g4Ana_PerProcessIonIoni : Double_t (double)                        *
*Entries :    10007 : Total  Size=      80903 bytes  File Size  =      35149 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   2.29     *
*............................................................................*
 *Br   20 :g4Ana_PerProcessAlphaIoni : Double_t (double)                      *
*Entries :    10007 : Total  Size=      80915 bytes  File Size  =      35155 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   2.29     *
*............................................................................*
 *Br   21 :g4Ana_PerProcessMsc : Double_t (double)                            *
*Entries :    10007 : Total  Size=      80879 bytes  File Size  =      66552 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.21     *
*............................................................................*
 *Br   22 :hitsAna_energy : Double_t (double)                                 *
*Entries :    10007 : Total  Size=      80857 bytes  File Size  =      68698 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.17     *
*............................................................................*
 *Br   23 :hitsAna_energyX : Double_t (double)                                *
*Entries :    10007 : Total  Size=      80855 bytes  File Size  =      66686 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.20     *
*............................................................................*
 *Br   24 :hitsAna_energyY : Double_t (double)                                *
*Entries :    10007 : Total  Size=      80855 bytes  File Size  =      66775 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.20     *
*............................................................................*
 *Br   25 :hitsAna_balanceXYenergy : Double_t (double)                        *
*Entries :    10007 : Total  Size=      80903 bytes  File Size  =      77180 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.04     *
*............................................................................*
 *Br   26 :hitsAna_nHits : Int_t (int)                                        *
*Entries :    10007 : Total  Size=      40716 bytes  File Size  =      22868 *
*Baskets :        2 : Basket Size=      32000 bytes  Compression=   1.76     *
*............................................................................*
 *Br   27 :hitsAna_nHitsX : Int_t (int)                                       *
*Entries :    10007 : Total  Size=      40721 bytes  File Size  =      21701 *
*Baskets :        2 : Basket Size=      32000 bytes  Compression=   1.85     *
*............................................................................*
 *Br   28 :hitsAna_nHitsY : Int_t (int)                                       *
*Entries :    10007 : Total  Size=      40721 bytes  File Size  =      21711 *
*Baskets :        2 : Basket Size=      32000 bytes  Compression=   1.85     *
*............................................................................*
 *Br   29 :hitsAna_nHitsSizeXY : Double_t (double)                            *
*Entries :    10007 : Total  Size=      80879 bytes  File Size  =      73613 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.09     *
*............................................................................*
 *Br   30 :hitsAna_maxHitEnergy : Double_t (double)                           *
*Entries :    10007 : Total  Size=      80885 bytes  File Size  =      48422 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.66     *
*............................................................................*
 *Br   31 :hitsAna_minHitEnergy : Double_t (double)                           *
*Entries :    10007 : Total  Size=      80885 bytes  File Size  =      47414 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.69     *
*............................................................................*
 *Br   32 :hitsAna_meanHitEnergy : Double_t (double)                          *
*Entries :    10007 : Total  Size=      80891 bytes  File Size  =      76444 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.05     *
*............................................................................*
 *Br   33 :hitsAna_xMean : Double_t (double)                                  *
*Entries :    10007 : Total  Size=      80843 bytes  File Size  =      77100 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.04     *
*............................................................................*
 *Br   34 :hitsAna_yMean : Double_t (double)                                  *
*Entries :    10007 : Total  Size=      80843 bytes  File Size  =      77111 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.04     *
*............................................................................*
 *Br   35 :hitsAna_zMean : Double_t (double)                                  *
*Entries :    10007 : Total  Size=      80843 bytes  File Size  =      77058 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.04     *
*............................................................................*
 *Br   36 :hitsAna_xy2Sigma : Double_t (double)                               *
*Entries :    10007 : Total  Size=      80861 bytes  File Size  =      76299 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.05     *
*............................................................................*
 *Br   37 :hitsAna_xySigmaBalance : Double_t (double)                         *
*Entries :    10007 : Total  Size=      80897 bytes  File Size  =      77119 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.04     *
*............................................................................*
 *Br   38 :hitsAna_z2Sigma : Double_t (double)                                *
*Entries :    10007 : Total  Size=      80855 bytes  File Size  =      76467 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.05     *
*............................................................................*
 *Br   39 :hitsAna_xySkew : Double_t (double)                                 *
*Entries :    10007 : Total  Size=      80849 bytes  File Size  =      77206 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.04     *
*............................................................................*
 *Br   40 :hitsAna_zSkew : Double_t (double)                                  *
*Entries :    10007 : Total  Size=      80843 bytes  File Size  =      77088 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.04     *
*............................................................................*
 *Br   41 :hitsAna_isInsidePrismVolume : Double_t (double)                    *
*Entries :    10007 : Total  Size=      80927 bytes  File Size  =        753 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression= 106.72     *
*............................................................................*
 *Br   42 :hitsAna_nInsidePrismVolume : Double_t (double)                     *
*Entries :    10007 : Total  Size=      80921 bytes  File Size  =        750 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression= 107.15     *
*............................................................................*
 *Br   43 :hitsAna_energyInsidePrismVolume : Double_t (double)                *
*Entries :    10007 : Total  Size=      80951 bytes  File Size  =        766 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression= 104.93     *
*............................................................................*
 *Br   44 :hitsAna_xMeanInPrism : Double_t (double)                           *
*Entries :    10007 : Total  Size=      80885 bytes  File Size  =        731 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression= 109.91     *
*............................................................................*
 *Br   45 :hitsAna_yMeanInPrism : Double_t (double)                           *
*Entries :    10007 : Total  Size=      80885 bytes  File Size  =        731 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression= 109.91     *
*............................................................................*
 *Br   46 :hitsAna_zMeanInPrism : Double_t (double)                           *
*Entries :    10007 : Total  Size=      80885 bytes  File Size  =        731 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression= 109.91     *
*............................................................................*
 *Br   47 :hitsAna_distanceToPrismWall : Double_t (double)                    *
*Entries :    10007 : Total  Size=      80927 bytes  File Size  =        753 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression= 106.72     *
*............................................................................*
 *Br   48 :hitsAna_distanceToPrismTop : Double_t (double)                     *
*Entries :    10007 : Total  Size=      80921 bytes  File Size  =        750 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression= 107.15     *
*............................................................................*
 *Br   49 :hitsAna_distanceToPrismBottom : Double_t (double)                  *
*Entries :    10007 : Total  Size=      80939 bytes  File Size  =        760 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression= 105.75     *
*............................................................................*
 *Br   50 :tckAna_nTracks_X : Int_t (int)                                     *
*Entries :    10007 : Total  Size=      40731 bytes  File Size  =       4631 *
*Baskets :        2 : Basket Size=      32000 bytes  Compression=   8.68     *
*............................................................................*
 *Br   51 :tckAna_nTracks_Y : Int_t (int)                                     *
*Entries :    10007 : Total  Size=      40731 bytes  File Size  =       4638 *
*Baskets :        2 : Basket Size=      32000 bytes  Compression=   8.67     *
*............................................................................*
 *Br   52 :tckAna_trackEnergy : Double_t (double)                             *
*Entries :    10007 : Total  Size=      80873 bytes  File Size  =      68710 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.17     *
*............................................................................*
 *Br   53 :tckAna_maxTrack_X_Energy : Double_t (double)                       *
*Entries :    10007 : Total  Size=      80909 bytes  File Size  =      66432 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.21     *
*............................................................................*
 *Br   54 :tckAna_maxTrack_Y_Energy : Double_t (double)                       *
*Entries :    10007 : Total  Size=      80909 bytes  File Size  =      66560 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.21     *
*............................................................................*
 *Br   55 :tckAna_maxTrackEnergyRatio : Double_t (double)                     *
*Entries :    10007 : Total  Size=      80921 bytes  File Size  =      31188 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   2.58     *
*............................................................................*
 *Br   56 :tckAna_secondTrackMaxEnergy_X : Double_t (double)                  *
*Entries :    10007 : Total  Size=      80939 bytes  File Size  =      19857 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   4.05     *
*............................................................................*
 *Br   57 :tckAna_secondTrackMaxEnergy_Y : Double_t (double)                  *
*Entries :    10007 : Total  Size=      80939 bytes  File Size  =      19947 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   4.03     *
*............................................................................*
 *Br   58 :tckAna_MaxTrackLength_X : Double_t (double)                        *
*Entries :    10007 : Total  Size=      80903 bytes  File Size  =      76288 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.05     *
*............................................................................*
 *Br   59 :tckAna_MaxTrackLength_Y : Double_t (double)                        *
*Entries :    10007 : Total  Size=      80903 bytes  File Size  =      76247 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.05     *
*............................................................................*
 *Br   60 :tckAna_MaxTrackVolume_X : Double_t (double)                        *
*Entries :    10007 : Total  Size=      80903 bytes  File Size  =      75901 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.06     *
*............................................................................*
 *Br   61 :tckAna_MaxTrackVolume_Y : Double_t (double)                        *
*Entries :    10007 : Total  Size=      80903 bytes  File Size  =      75964 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.06     *
*............................................................................*
 *Br   62 :tckAna_MaxTrack_Xmean_X : Double_t (double)                        *
*Entries :    10007 : Total  Size=      80903 bytes  File Size  =      77134 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.04     *
*............................................................................*
 *Br   63 :tckAna_MaxTrack_Zmean_X : Double_t (double)                        *
*Entries :    10007 : Total  Size=      80903 bytes  File Size  =      77099 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.04     *
*............................................................................*
 *Br   64 :tckAna_MaxTrack_Ymean_Y : Double_t (double)                        *
*Entries :    10007 : Total  Size=      80903 bytes  File Size  =      77131 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.04     *
*............................................................................*
 *Br   65 :tckAna_MaxTrack_Zmean_Y : Double_t (double)                        *
*Entries :    10007 : Total  Size=      80903 bytes  File Size  =      77078 *
*Baskets :        3 : Basket Size=      32000 bytes  Compression=   1.04     *
*............................................................................*

If I do the following

->Draw("hitsAna_energy>>hitsEnergy1_0(100 , 0 , 100)", "subEventTag == "Bi210"");

I get the following output error

ROOT_prompt_11:1:96: error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal]
run0->GetAnalysisTree()->Draw("hitsAna_energy>>hitsEnergy1_0(100 , 0 , 100)", "subEventTag == "Bi210"")
                                                                                               ^
                                                                                                
ROOT_prompt_11:1:96: error: expected ')'
ROOT_prompt_11:1:30: note: to match this '('
run0->GetAnalysisTree()->Draw("hitsAna_energy>>hitsEnergy1_0(100 , 0 , 100)", "subEventTag == "Bi210"")
                             ^

For me the problem is that the C interpreter believes "subEventTag == " is an argument, and gets puzzled when it sees that it is not followed by comma “,”.

I tried changing double quotes " by single quotes, there is any idea of how this should be properly done?

Thanks!!

Hi Javier,
I have actually no idea on how this should be properly done.
Have you tried

TString mystr("subEventTag=="+to_string("Bi210")) ;
Draw("....",mystr);

Ok, thanks. I got some issues with the construction you proposed, but then I found that escaping the quotes solves the problem.

->Draw("hitsAna_energy>>hitsEnergy2_0(100 , 0 , 100)", "subEventTag==\"Bi210\"")
1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.