--- DarthVader/RunInfo/src/RunInfo.cpp 2006/10/24 07:31:50 1.12 +++ DarthVader/RunInfo/src/RunInfo.cpp 2007/01/16 14:24:14 1.16 @@ -22,14 +22,7 @@ // SoftInfo::SoftInfo() { - TRIG_ver = ""; - TOF_ver = ""; - AC_ver = ""; - TRK_ver = ""; - ORB_ver = ""; - CAL_ver = ""; - ND_ver = ""; - S4_ver = ""; + Clear(); } void SoftInfo::Clear(){ @@ -41,8 +34,44 @@ CAL_ver = ""; ND_ver = ""; S4_ver = ""; + DV_ver = ""; } +UInt_t SoftInfo::GetSWinfo(TString Detector){ + TString sver; + UInt_t version = 0; + if ( !strcmp(Detector.Data(),"TRIG") ){ + sver = TRIG_ver; + }; + if ( !strcmp(Detector.Data(),"TOF") ){ + sver = TOF_ver; + }; + if ( !strcmp(Detector.Data(),"AC") ){ + sver = AC_ver; + }; + if ( !strcmp(Detector.Data(),"TRK") ){ + sver = TRK_ver; + }; + if ( !strcmp(Detector.Data(),"CALO") ){ + sver = CAL_ver; + }; + if ( !strcmp(Detector.Data(),"S4") ){ + sver = S4_ver; + }; + if ( !strcmp(Detector.Data(),"DV") ){ + sver = DV_ver; + }; + if ( !strcmp(Detector.Data(),"ND") ){ + sver = ND_ver; + }; + if ( !strcmp(Detector.Data(),"ORB") ){ + sver = ORB_ver; + }; + sver.ReplaceAll("v",1," ",1); + sver.ReplaceAll("r",1," ",1); + version = (UInt_t)sver.Atoi(); + return(version); +}; /** * Fills a struct cSoftInfo with values from a SoftInfo object (to put data into a F77 common). @@ -89,6 +118,7 @@ last_file_entry = 0; file_entries = 0; version = new SoftInfo(); + // glrun = new GL_RUN(); norun = 0; totnorun = 0; runlist = new TArrayI(500); @@ -97,23 +127,21 @@ -TChain *ItoRunInfo::LoadRunInfoTree(TList *fl){ - // - TChain *Tout=0; +TChain *ItoRunInfo::GetRunTree(TList *fl){ // - TChain *RI = 0; - RI = new TChain("Run"); + TChain *Tout = new TChain("Run"); // loop over files and create chains TIter next(fl); TSystemFile *questo = 0; while ( (questo = (TSystemFile*) next()) ) { TString name = questo->GetName(); - RI->Add(name); + Tout->Add(name); }; // - RI->SetBranchAddress("RunInfo", GetPointerToRI()); - RI->SetBranchAddress("SoftInfo", GetPointerToSI()); - Tout = RI; + Tout->SetBranchAddress("RunInfo", GetPointerToRI()); + printf("Run : set branch address RunInfo\n"); + Tout->SetBranchAddress("SoftInfo", GetPointerToSI()); + printf("Software : set branch address SoftInfo\n"); // return Tout; // @@ -186,6 +214,7 @@ newver->ORB_ver = sinfo->ORB_ver; newver->CAL_ver = sinfo->CAL_ver; newver->S4_ver = sinfo->S4_ver; + newver->DV_ver = sinfo->DV_ver; newver->ND_ver = sinfo->ND_ver; // }; @@ -235,6 +264,7 @@ version->ORB_ver = Version; version->CAL_ver = Version; version->S4_ver = Version; + version->DV_ver = Version; version->ND_ver = Version; } else { if ( !strcmp(Detector.Data(),"TRIG") ) version->TRIG_ver = Version; @@ -243,9 +273,10 @@ if ( !strcmp(Detector.Data(),"TRK") ) version->TRK_ver = Version; if ( !strcmp(Detector.Data(),"CALO") ) version->CAL_ver = Version; if ( !strcmp(Detector.Data(),"S4") ) version->S4_ver = Version; + if ( !strcmp(Detector.Data(),"DV") ) version->DV_ver = Version; if ( !strcmp(Detector.Data(),"ND") ) version->ND_ver = Version; if ( !strcmp(Detector.Data(),"ORB") ) version->ORB_ver = Version; - if ( strcmp(Detector.Data(),"TRIG") && strcmp(Detector.Data(),"TOF") && strcmp(Detector.Data(),"AC") && strcmp(Detector.Data(),"TRK") && strcmp(Detector.Data(),"CALO") && strcmp(Detector.Data(),"S4") && strcmp(Detector.Data(),"ND") && strcmp(Detector.Data(),"ORB") ) return(-804); + if ( strcmp(Detector.Data(),"TRIG") && strcmp(Detector.Data(),"TOF") && strcmp(Detector.Data(),"AC") && strcmp(Detector.Data(),"TRK") && strcmp(Detector.Data(),"CALO") && strcmp(Detector.Data(),"S4") && strcmp(Detector.Data(),"ND") && strcmp(Detector.Data(),"ORB") && strcmp(Detector.Data(),"DV") ) return(-804); }; // if ( !oldtree ) { @@ -297,7 +328,7 @@ totnorun = 1; reprocessing = false; first_file_entry = 0; - last_file_entry = (UInt_t)(EV_TO - EV_FROM); + if ( EV_TO >= EV_FROM ) last_file_entry = (UInt_t)(EV_TO - EV_FROM); norun = 1; runlist->AddAt((Int_t)ID,0); // @@ -369,6 +400,7 @@ newver->ORB_ver = oldver->ORB_ver; newver->CAL_ver = oldver->CAL_ver; newver->S4_ver = oldver->S4_ver; + newver->DV_ver = oldver->DV_ver; newver->ND_ver = oldver->ND_ver; if ( strcmp(oldver->TRIG_ver.Data(),"") ) reprocessing = true; }; @@ -379,6 +411,7 @@ newver->TRK_ver = oldver->TRK_ver; newver->ORB_ver = oldver->ORB_ver; newver->CAL_ver = oldver->CAL_ver; + newver->DV_ver = oldver->DV_ver; newver->S4_ver = oldver->S4_ver; newver->ND_ver = oldver->ND_ver; if ( strcmp(oldver->TOF_ver.Data(),"") ) reprocessing = true; @@ -389,6 +422,7 @@ newver->TRK_ver = oldver->TRK_ver; newver->ORB_ver = oldver->ORB_ver; newver->CAL_ver = oldver->CAL_ver; + newver->DV_ver = oldver->DV_ver; newver->S4_ver = oldver->S4_ver; newver->ND_ver = oldver->ND_ver; newver->AC_ver = version->AC_ver; @@ -399,6 +433,7 @@ newver->TOF_ver = oldver->TOF_ver; newver->CAL_ver = oldver->CAL_ver; newver->ORB_ver = oldver->ORB_ver; + newver->DV_ver = oldver->DV_ver; newver->S4_ver = oldver->S4_ver; newver->ND_ver = oldver->ND_ver; newver->AC_ver = oldver->AC_ver; @@ -410,6 +445,7 @@ newver->TOF_ver = oldver->TOF_ver; newver->CAL_ver = oldver->CAL_ver; newver->TRK_ver = oldver->TRK_ver; + newver->DV_ver = oldver->DV_ver; newver->S4_ver = oldver->S4_ver; newver->ND_ver = oldver->ND_ver; newver->AC_ver = oldver->AC_ver; @@ -419,6 +455,7 @@ if ( !strcmp(Detector.Data(),"CALO") ){ newver->TRIG_ver = oldver->TRIG_ver; newver->TOF_ver = oldver->TOF_ver; + newver->DV_ver = oldver->DV_ver; newver->S4_ver = oldver->S4_ver; newver->ORB_ver = oldver->ORB_ver; newver->ND_ver = oldver->ND_ver; @@ -435,12 +472,26 @@ newver->TRK_ver = oldver->TRK_ver; newver->ORB_ver = oldver->ORB_ver; newver->CAL_ver = oldver->CAL_ver; + newver->DV_ver = oldver->DV_ver; newver->S4_ver = version->S4_ver; if ( strcmp(oldver->S4_ver.Data(),"") ) reprocessing = true; }; + if ( !strcmp(Detector.Data(),"DV") ){ + newver->TRIG_ver = oldver->TRIG_ver; + newver->TOF_ver = oldver->TOF_ver; + newver->ND_ver = oldver->ND_ver; + newver->AC_ver = oldver->AC_ver; + newver->TRK_ver = oldver->TRK_ver; + newver->ORB_ver = oldver->ORB_ver; + newver->CAL_ver = oldver->CAL_ver; + newver->S4_ver = oldver->S4_ver; + newver->DV_ver = version->DV_ver; + if ( strcmp(oldver->DV_ver.Data(),"") ) reprocessing = true; + }; if ( !strcmp(Detector.Data(),"ND") ){ newver->TRIG_ver = oldver->TRIG_ver; newver->TOF_ver = oldver->TOF_ver; + newver->DV_ver = oldver->DV_ver; newver->S4_ver = oldver->S4_ver; newver->AC_ver = oldver->AC_ver; newver->ORB_ver = oldver->ORB_ver; @@ -451,7 +502,7 @@ }; }; // - last_file_entry = first_file_entry + (oldrun->EV_TO - oldrun->EV_FROM + 1); + if ( oldrun->EV_TO >= oldrun->EV_FROM ) last_file_entry = first_file_entry + (oldrun->EV_TO - oldrun->EV_FROM + 1); // } else { if ( !found ) first_file_entry += (oldrun->EV_TO - oldrun->EV_FROM + 1); @@ -528,7 +579,7 @@ runlist->AddAt(newrun->ID,norun); norun++; }; - last_file_entry = first_file_entry + (newrun->EV_TO - newrun->EV_FROM + 1); + if ( newrun->EV_TO >= newrun->EV_FROM ) last_file_entry = first_file_entry + (newrun->EV_TO - newrun->EV_FROM + 1); }; }; if ( debug ) printf("norun %i \n",(int)norun); @@ -548,7 +599,8 @@ file_entries = 0; norun = 0; delete runlist; - file = new TFile(); + // file = new TFile(); + file = 0; if ( isreadonly ) newtree->Delete(); } @@ -610,7 +662,7 @@ if ( nwrun->ID == run || run == 0 ){ CopyFromTo(nwrun,(GL_RUN*)this,nwver,version); found = true; - last_file_entry = first_file_entry + (nwrun->EV_TO - nwrun->EV_FROM + 1); + if ( nwrun->EV_TO >= nwrun->EV_FROM ) last_file_entry = first_file_entry + (nwrun->EV_TO - nwrun->EV_FROM + 1); }; if ( !found ) first_file_entry += (nwrun->EV_TO - nwrun->EV_FROM + 1); };