Don't use typedefs, like in your original example, plain structs like
this should work too (struct is an all public class in c++):
struct SmdPeak {
Float_t peakPos;
Float_t peakEnerg;
Float_t sigmaPeak;
Int_t corSimuPeak;
bool used;
SmdPeak() {}
ClassDef (SmdPeak,1)
};
-- Fons
On Thu, 2002-11-21 at 16:25, Rene Brun wrote:
> Hi,
>
> Create classes instead of struct as shown below
>
> Rene Brun
>
>
> #include "TTree.h"
> #include "TFile.h"
> #include "TRandom.h"
>
> class SmdPeak {
>
> public:
> Float_t peakPos;
> Float_t peakEnerg;
> Float_t sigmaPeak;
> Int_t corSimuPeak;
> bool used;
>
> SmdPeak() {}
>
> ClassDef (SmdPeak,1)
> };
>
> class FitEvent {
>
> public:
> UInt_t runnumber;
> Int_t event;
> Int_t numbXPeaks;
> Int_t numbYPeaks;
> Float_t tower[4][3];
> Float_t smdX[61];
> Float_t smdY[101];
> SmdPeak xPeak[4];
>
> ClassDef(FitEvent,1)
> };
>
> void struct2()
> {
> TFile f("struct.root","recreate");
> TTree T("T","test struct");
> FitEvent *event = new FitEvent;
>
> T.Branch("first","FitEvent",&event);
> for (Int_t i=0;i<1000;i++) {
> event->event = i;
> event->runnumber = (UInt_t)(100*gRandom->Rndm());
> //for (Int_t j=0;j<event.count;j++) event.meas[j] = i+j;
> T.Fill();
> }
> T.Print();
> T.Show(45);
> T.Write();
> }
>
>
> On Wed, 20 Nov 2002, Yiqun Wang wrote:
>
> > Hi,
> >
> > Is there a way to create a branch that is an array of C structure? The
> > online reference on
> >
> > TBranch(const char *name, void *address, const char *leaflist, Int_t
> > basketsize, Int_t compress) :TNamed(name,leaflist)
> >
> > only talked about a C structure branch.
> >
> > My header file is like this:
> >
> >
> > typedef struct{
> > Float_t peakPos;
> > Float_t peakEnerg;
> > Float_t sigmaPeak;
> > Int_t corSimuPeak;
> > bool used;
> > } SmdPeak;
> >
> > typedef struct{
> >
> > UInt_t runnumber;
> > Int_t event;
> > Int_t numbXPeaks;
> > Int_t numbYPeaks;
> > Float_t tower[4][3];
> > Float_t smdX[61];
> > Float_t smdY[101];
> > SmdPeak xPeak[4];
> > SmdPeak xPeak[4];
> > } FitEvent;
> >
> >
> >
--
Org: CERN, European Laboratory for Particle Physics.
Mail: 1211 Geneve 23, Switzerland
E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248
WWW: http://root.cern.ch/~rdm/ Fax: +41 22 7679480
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:20 MET