--- DarthVader/RunInfo/src/RunInfo.cpp 2008/09/25 10:40:56 1.18 +++ DarthVader/RunInfo/src/RunInfo.cpp 2012/05/15 14:35:31 1.21 @@ -88,6 +88,10 @@ } /***********************/ +ItoRunInfo::~ItoRunInfo() { + this->GL_RUN::Clear(); +} + ItoRunInfo::ItoRunInfo() { reprocessing = false; updating = false; @@ -101,7 +105,7 @@ norun = 0; runlist = new TArrayI(500); file = NULL; - newtree = new TTree(); + newtree = NULL;//new TTree(); } ItoRunInfo::ItoRunInfo(TFile *processFl){ @@ -122,6 +126,7 @@ norun = 0; totnorun = 0; runlist = new TArrayI(500); + newtree = NULL; // } @@ -169,7 +174,7 @@ // if ( glrun && newrun ){ // - // printf("copy \n"); +// printf("copy \n"); // newrun->ID = glrun->ID ; newrun->ID_RUN_FRAG = glrun-> ID_RUN_FRAG ; @@ -229,11 +234,11 @@ // Bool_t debug = false; // - Bool_t ismydir = false; + // Bool_t ismydir = false; // if ( !strcmp(processFolder.Data(),"") ){ processFolder = "runinfoFolder"; - ismydir = true; + // ismydir = true; }; // GL_RUN *oldrun = new GL_RUN(); @@ -362,7 +367,7 @@ // for ( UInt_t run = 0; run < totnorun; run++){ // - oldtree->GetEntry(run); + if ( oldtree->GetEntry(run) <= 0 ) throw -36; // CopyFromTo(oldrun,newrun,oldver,newver); // @@ -372,7 +377,7 @@ // if ( idRun == 0 || idRun == newrun->ID ) { // - if ( debug ) printf(" Updating run number %u \n",idRun); + if ( debug ) printf(" Updating run number %u newrun->ID %i \n",idRun,(int)newrun->ID); // found = true; // @@ -511,6 +516,7 @@ }; // file->cd(); + if ( debug ) printf("filling: totnorun %i idRun %i newrun->ID %i \n",(int)totnorun,(int)idRun,(int)newrun->ID); newtree->Fill(); // }; @@ -529,11 +535,22 @@ return(-5); }; // + this->Write(); // newtree->Write(); }; +// if ( oldtree ) oldtree->Delete(); // crasha qua in queste righe e se non le metti... +// if ( newver ) delete newver; +// if ( newrun ) delete newrun; +// if ( oldver ) delete oldver; +// if ( oldrun ) delete oldrun; return(0); } +void ItoRunInfo::Write(){ + file->cd(); + newtree->Write("Run",TObject::kOverwrite); +} + Int_t ItoRunInfo::Read(UInt_t idRun){ // isreadonly = true; @@ -570,7 +587,7 @@ // for ( UInt_t run = 0; run < totnorun; run++){ // - newtree->GetEntry(run); + if ( newtree->GetEntry(run) <= 0 ) throw -36; // file_entries += (newrun->EV_TO - newrun->EV_FROM + 1); // @@ -603,7 +620,7 @@ delete runlist; // file = new TFile(); file = 0; - if ( isreadonly ) newtree->Delete(); + // if ( isreadonly ) newtree->Delete(); } void ItoRunInfo::Clear(Option_t *t){ @@ -659,7 +676,7 @@ totnorun = newtree->GetEntries(); // for ( UInt_t nrun = 0; nrun < totnorun; nrun++){ - newtree->GetEntry(nrun); + if ( newtree->GetEntry(nrun) <= 0 ) throw -36; // if ( nwrun->ID == run || run == 0 ){ CopyFromTo(nwrun,(GL_RUN*)this,nwver,version);