Saving TClonesArray/TRef from one tree to another

I am having a problem writing an object stored in one tree to a second tree (after heavily pruning). Root version ROOT 5.30/02.

The input tree contains an object of that can be thought of as an event summary holding reconstructed tracks and individual hits (IngridEventSummary). In this IngridEventSummary class are IngridBasicReconSummary objects stored in a TClonesArray (TClonesArray* fBasicRecon). The IngridBasicReconSummary objects then store tracks and hits using TRef (TRef fIngridHit[INGRIDHIT_MAXHITS] and TRef fTrack[INGRIDRECON_MAXTRACKS]).

I have no problem reading these objects in from the tree, but when writing the new pruned tree containing IngridEventSummary objects to the output file the objects stored as TRef (the tracks and hits) are not written though the IngridBasicRecon objects are written out.

Some minimal code follows:

TFile*        inputfile = new TFile(dataname,"read");
TTree*       tree = (TTree*)rfile -> Get("tree");
TBranch*   EvtBr = tree->GetBranch("fDefaultReco.");
EvtBr        ->SetAddress(&evt);
tree           ->SetBranchAddress("fDefaultReco.", &evt);
int             nevt = (int)tree -> GetEntries();
TFile *outputfile=new TFile(outputname,"RECREATE");
TTree *outputtree=new TTree("tree","a pruned tree");
IngridEventSummary *output_evt=new IngridEventSummary();
outputtree->Branch("fDefaultReco.", "IngridEventSummary", &output_evt,
                       64000,   99);

//loop over input file
for(int ievt = 0; ievt < nevt; ++ievt){
      //Clear() resets the IngridEventSummary objects
      evt  -> Clear();
      tree -> GetEntry(ievt);
      IngridBasicReconSummary *basicreconsummary;
      for(int ii=0;ii<evt->NIngridBasicRecons();ii++) {