Re:

From: Rene Brun (Rene.Brun@cern.ch)
Date: Fri Feb 25 2000 - 17:58:07 MET


Hi Stefan,
You will find below a simple example with a variable length array
indexed
on a variable part of the structure.
To execute, do:
Root > .x test.C
This will generate the file test.root. In a second Root session, do:
Root > TFile f("test.root");
Root > T.Draw("count");
Root > T.Draw("meas");
Root > T.Draw("meas","count<40");

Rene Brun

//--------------file struct.C-------------------
typedef struct{
  int eventnr;
  int count;
  float meas[100];
} event_struct;

void test()
{
   TFile f("test.root","recreate");
   TTree T("T","test struct");
   event_struct event;

   T.Branch("first",&event.eventnr,"eventnr/I:count/I:meas[count]/F");
   for (Int_t i=0;i<1000;i++) {
      event.eventnr = i;
      event.count = 100*gRandom->Rndm();
      for (Int_t j=0;j<event.count;j++) event.meas[j] = i+j;
      T.Fill();
   }
   T.Print();
   T.Write();
}






Stefan Stonjek wrote:
> 
> Hello,
> 
> I want to store some variables in a branch. One on this variables is a
> counter for an array which sould be stored too. This array can have
> different numbers of entries for differnet events. But of course I want
> to store run and event number only once. But when I draw the array I
> want all elements of the array taken into account. (like CWN in HBOOK)
> 
> What is the best way doing this? One idea was:
> 
> --------------------------------------------------------------------------
> typedef struct{
>   int eventnr;
>   int count
>   float meas[10;
> } event_struct
> 
> event_struct event;
> 
> Tree->Branch("first",&event.eventnr,"eventnr/I:count/I:meas[40]/I",bsize);
> -------------------------------------------------------------------------
> 
> This seems not to work. Only the first entry for every event is filled. So
> which is the coerrect syntax.
> 
> Or is this to simple and there is a better way?
> 
> Tschuess
>         Stefan
> 
> *********      Stefan  Stonjek     *********
> *****            DESY / ZEUS           *****
> *****      Stefan.Stonjek@desy.de      *****
> *********  Tel.: +49-40-8998-3159  *********



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:20 MET