Hi Lars, I suggest the following conservative solution: int runlist[3] = {1,2,3}; char cut[20]; for (i = 0; i < 3 ; i++) { sprintf(cut,"run == %d",runlist[i]); ntuple.Draw("run",cut); } Note the "==" instead of "=" ! Rene Brun On Mon, 17 Sep 2001, lars ewell wrote: > To Whom it May Concern, > > I have been attempting to use the "Draw" command within a > macro that references a variable I have defined in the macro. > Although this seems like it should be straightforward, I have > had little success. > > For example, I have a list of runs that I want to > loop over. In my ROOT ntuple, there is defined a 'run' > variable. In my macro then, I want to check that 'run' > variable matches a number on my run list. > > The code looks something like this; > > . > . > int runlist[3] = {1,2,3}; > for (i = 0; i < 3 ; i++) { > ntuple.Draw("run", "run = runlist[i]"; > } > . > . > . > > > If I use the number '1' in place of 'runlist[i]', of > course it works fine. However, I want to use a *variable* and not > a number. I have attempted to use variation of the 'TCut' command > in place of the selection and different placements of the double > quotes but have not been able to succeed. In addition, I have looked > over the TTree page (http://root.cern.ch/root/html/TTree.html) but > was not able to see this problem addressed. > > Any advice? > > Thanks in advance. > > regards, > > Lars > > -- > ______________________________________ > Lars Ewell > Brookhaven National Laboratory > PHENIX Group > Physics Dept. 510C > Upton, NY 11973 > > ewell@bnl.gov > Phone (631)344-7070 > FAX (631)344-3253 > www http://www.phenix.bnl.gov/~ewell > _____________________________________ > >
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:00 MET