#ifdef __CINT__ #else #include "myClass.h" #endif int TTree_TClonesArray () { if (!TClass::GetDict("myClass")) gROOT->ProcessLine (".L myClass.cxx+"); TFile f ("clonesarray.root", "recreate"); TClonesArray *myArrayPtr = new TClonesArray ("myClass"); myClass* myObjectPtr; TTree *t = new TTree ("tree", "My Tree"); t->Branch ("ObjClones", &myArrayPtr , 256000, 0); TRandom3 r; r.SetSeed(); for (int evt=0; evt<100; evt++) { myArrayPtr->Clear(); int Npart = rand() % 6; cout << "Event " << evt << " has " << Npart << " particles. \n"; for (int iPart = 0; iPart < Npart; iPart++) { myObjectPtr = (myClass*) myArrayPtr->ConstructedAt (iPart); myObjectPtr->det = r.Integer (24); myObjectPtr->ToF = r.Rndm(); myObjectPtr->Energy = r.Rndm(); } t->Fill(); } t->Print(); t->Write(); f.Close(); return 0; }