00001 #include "TH2.h"
00002 #include "TCanvas.h"
00003 #include "TPDF.h"
00004 #include "TFile.h"
00005 #include "TApplication.h"
00006 #include "TTree.h"
00007 #include "TDatime.h"
00008 #include "TLegend.h"
00009 #include "TStyle.h"
00010
00011 #include "TFndGenInfo.h"
00012 #include "TFndHdt.h"
00013 #include "Gui.h"
00014
00015 #include "TFile.h"
00016 #include "TTree.h"
00017
00018 #include "AccessHDT_MultiRun.C"
00019
00020 class HdtAcc_MultiRunFill: public THdtAccess{
00021
00022 private:
00023 TFndRun *fRun;
00024
00025
00026
00027 public:
00028 HdtAcc_MultiRunFill();
00029 ~HdtAcc_MultiRunFill();
00030
00031 void InitProcess();
00032 void FinishProcess();
00033
00034 void Pre_Run_Operation();
00035 void Post_Run_Operation();
00036
00037 void UseHdtEvent();
00038
00039
00040
00041
00042
00043
00044 ClassDef(HdtAcc_MultiRunFill,1)
00045 };
00046
00047 ClassImp(HdtAcc_MultiRunFill)
00048
00049
00050 HdtAcc_MultiRunFill::HdtAcc_MultiRunFill()
00051 {
00052
00053
00054
00055 }
00056
00057
00058 HdtAcc_MultiRunFill::~HdtAcc_MultiRunFill(){
00059
00060 FinishRun();
00061 }
00062
00063
00064 void HdtAcc_MultiRunFill::InitProcess(){
00065
00066 fRun = new TFndRun("FromHdtProcessor","From Hdt Processor");
00067 fRun->ReadConfigFile();
00068
00069 TString filenam;
00070 filenam.Form("%s_%d_%d",fRunType.Data(),fFirstRun,fLastRun);
00071 fRun->SetfRunFileName(filenam.Data());
00072 fRun->SetfOnlineFlag(0);
00073 fRun->StartMonitors();
00074
00075
00076 }
00077
00078
00079 void HdtAcc_MultiRunFill::FinishProcess(){
00080
00081 fRun->WriteMonitors(kTRUE);
00082 fRun->SetHdt(NULL);
00083 delete fRun;
00084
00085 }
00086
00087
00088 void HdtAcc_MultiRunFill::Pre_Run_Operation(){
00089
00090 cout << "Performing pre-run operation for run " << fCurrentRun << endl;
00091
00092 }
00093
00094
00095 void HdtAcc_MultiRunFill::Post_Run_Operation(){
00096
00097 cout << "Performing post-run operation for run " << fCurrentRun << endl;
00098
00099 }
00100
00101
00102 void HdtAcc_MultiRunFill::UseHdtEvent(){
00103
00104
00105
00106 fRun->SetHdt(fCurHdtEv);
00107 fRun->FillMonitors();
00108 }
00109
00110
00111
00112
00113
00114
00115
00116 void FillMonFromHdt_MultiRun(TString run_type="FINU",Int_t first_run = -1,Int_t last_run = -1,Int_t n_evs_run=-1,Int_t n_evs_tot=-1){
00117
00118
00119
00120
00121 HdtAcc_MultiRunFill *hdt_appl = new HdtAcc_MultiRunFill();
00122 Int_t debug_lev = 0;
00123
00124 hdt_appl->SetVerboseLevel(0);
00125 hdt_appl->SetUpdateEvGap(3000);
00126
00127 hdt_appl->Init("$MSQL_DB_HOST","$RDT",run_type,first_run,last_run,n_evs_run,n_evs_tot,debug_lev);
00128
00129 hdt_appl->InitProcess();
00130
00131 Int_t res_loop = hdt_appl->RunLoop();
00132
00133
00134 hdt_appl->FinishProcess();
00135
00136 delete hdt_appl;
00137
00138 }