#include "Validity/VldTimeStamp.h"Go to the source code of this file.
Functions | |
| void | LoadCalDetPIDDB (bool forreal=false) |
| void | Load2003NFTiming (bool forreal=false) |
| void | Load2003NN1mTiming (bool forreal=false) |
| void | Load2003NNT7Timing (bool forreal=false) |
| void | LoadBeamMomentum (bool forreal=false) |
| void | LoadTOFRange (bool forreal=false) |
| void | LoadCERRange (bool forreal=false) |
| void | LoadOverlapWin (bool forreal=false) |
| void | LoadCERTimeWin (bool forreal=false) |
| void | MakeTimeCal (const VldTimeStamp &vts, const VldTimeStamp &vte, Float_t addpos, Float_t addneg, bool forreal=false) |
| void | DetailedTimeCal (const VldTimeStamp &vts, const VldTimeStamp &vte, Float_t ne, Float_t no, Float_t pe, Float_t po, Float_t nzero, Float_t pzero, bool forreal=false) |
| void | PrintTimeCal (const VldTimeStamp &vts) |
|
||||||||||||||||||||||||||||||||||||||||
|
Definition at line 737 of file LoadCalDetPIDDB.cxx. References PlexStripEndId::BuildPlnStripEndKey(), DbiWriter< T >::CanOutput(), DbiWriter< T >::Close(), DbiCascader::CreateTemporaryTable(), DbiTableProxyRegistry::GetCascader(), and DbiTableProxyRegistry::Instance(). Referenced by Load2003NFTiming(), Load2003NN1mTiming(), and Load2003NNT7Timing(). 00740 {
00741 if(!forreal){
00742 // MsgService::Instance()->GetStream("Dbi")->SetLogLevel(Msg::kDebug);
00743
00744 // Ask the singleton DbiTableProxyRegistry for the DbiCascader.
00745 DbiCascader& cascader=DbiTableProxyRegistry::Instance().GetCascader();
00746
00747 // Define the table.
00748 string tableDescr = "(SEQNO int, SEIDKEY int, STRIPENDID int, SCALE float, OFFSET float, SLEWCONST1 float, SLEWCONST2 float, SLEWCONST3 float, SLEWCONST4 float)";
00749 // Ask the cascader to find a database that will accept it.
00750 Int_t dbNoTemp = cascader.CreateTemporaryTable("CALTIMECALIBRATION",tableDescr);
00751
00752 if (dbNoTemp<0){
00753 cout << "No database to will accept temporary tables. " << endl;
00754 return;
00755 }
00756 else{
00757 cout<<"Database number "<<dbNoTemp<<endl;
00758 }
00759 }
00760 VldRange vr(Detector::kCalDet,SimFlag::kData,vts,vte,"by hand");
00761 VldTimeStamp create;
00762 /*
00763 cout<<"Validity time stamp create: "<<endl;
00764 create.Print();
00765 cout<<endl;
00766 cout<<"Validity time stamp start: "<<endl;
00767 vts.Print();
00768 cout<<endl;
00769 cout<<"Validity time stamp end: "<<endl;
00770 vte.Print();
00771 cout<<endl;
00772 */
00773 cout<<"DetailedTimeCal: From "<<vts<<" to "<<vte<<endl;
00774 cout<<"Adding "<<ne<<" to kNegative Even strip ends"<<endl;
00775 cout<<"Adding "<<no<<" to kNegative Odd strip ends"<<endl;
00776
00777 cout<<"Adding "<<pe<<" to kPositive Even strip ends"<<endl;
00778 cout<<"Adding "<<po<<" to kPositive Odd strip ends"<<endl;
00779
00780 cout<<"Adding "<<nzero<<" to kNegative plane 0 strip ends"<<endl;
00781 cout<<"Adding "<<pzero<<" to kPositive plane 0 strip ends"<<endl;
00782
00783
00784 DbiWriter<CalTimeCalibration> tcal(vr, -1, 0, create);
00785
00786 // cout<<"Starting to loop over planes and strips"<<endl;
00787 for(int plane=0;plane<60;plane++){
00788 for(int strip=0;strip<24;strip++){
00789 PlexStripEndId seidn(Detector::kCalDet,plane,strip,
00790 StripEnd::kNegative);
00791 PlexStripEndId seidp(Detector::kCalDet,plane,strip,
00792 StripEnd::kPositive);
00793 Int_t seidkeyn = seidn.BuildPlnStripEndKey();
00794 Int_t seidkeyp = seidp.BuildPlnStripEndKey();
00795 if(plane==0){
00796 CalTimeCalibration tcn1(seidkeyn, StripEnd::kNegative,
00797 1.,nzero,1.,1.,1.,1.);
00798 tcal<<tcn1;
00799
00800 CalTimeCalibration tcn2(seidkeyp, StripEnd::kPositive,
00801 1.,pzero,1.,1.,1.,1.);
00802 tcal<<tcn2;
00803
00804 }
00805 else if(plane%2==0){
00806 CalTimeCalibration tcn1(seidkeyn, StripEnd::kNegative,
00807 1.,ne,1.,1.,1.,1.);
00808 tcal<<tcn1;
00809
00810 CalTimeCalibration tcn2(seidkeyp, StripEnd::kPositive,
00811 1.,pe,1.,1.,1.,1.);
00812 tcal<<tcn2;
00813
00814 }
00815 else{
00816 CalTimeCalibration tcn1(seidkeyn, StripEnd::kNegative,
00817 1.,no,1.,1.,1.,1.);
00818 tcal<<tcn1;
00819
00820 CalTimeCalibration tcn2(seidkeyp, StripEnd::kPositive,
00821 1.,po,1.,1.,1.,1.);
00822 tcal<<tcn2;
00823 }
00824
00825 }
00826 }
00827 if(!tcal.CanOutput()){
00828 cout<<"DetailedTimeCal: Writer can't output!"<<endl;
00829 }
00830
00831 cout<<"Done."<<endl;
00832 tcal.Close();
00833 }
|
|
|
Definition at line 835 of file LoadCalDetPIDDB.cxx. References DetailedTimeCal(). Referenced by LoadCalDetPIDDB(). 00836 {
00837 const VldTimeStamp start1(2003, 8, 1, 0, 0, 0);
00838 const VldTimeStamp end1(2003, 9, 26, 15, 0, 0);
00839
00840 // DetailedTimeCal(start1, end1, 0.0, 15.87*Munits::ns, -59.63*Munits::ns,
00841 // -75.63*Munits::ns, -75.63*Munits::ns, -64.63*Munits::ns);
00842
00843 DetailedTimeCal(start1, end1, 0.0, 15.87*Munits::ns,
00844 (-59.63-15.0)*Munits::ns,
00845 (-75.63-15.0)*Munits::ns,
00846 (-75.63-15.0)*Munits::ns,
00847 (-64.63-15.0)*Munits::ns, forreal);
00848
00849 }
|
|
|
Definition at line 851 of file LoadCalDetPIDDB.cxx. References DetailedTimeCal(). Referenced by LoadCalDetPIDDB(). 00852 {
00853 const VldTimeStamp start1(2003, 10, 1, 18, 0, 0);
00854 const VldTimeStamp end1(2003, 11, 1, 0, 0, 0);
00855
00856 // DetailedTimeCal(start1, end1, 0.0, 15.87*Munits::ns, -59.63*Munits::ns,
00857 // -75.63*Munits::ns, -75.63*Munits::ns, -64.63*Munits::ns);
00858
00859 DetailedTimeCal(start1, end1, 0.0, -79.94*Munits::ns, -80.21*Munits::ns, 0.0,
00860 -90.05*Munits::ns, -79.94*Munits::ns, forreal);
00861
00862 }
|
|
|
Definition at line 864 of file LoadCalDetPIDDB.cxx. References DetailedTimeCal(). Referenced by LoadCalDetPIDDB(). 00865 {
00866 const VldTimeStamp start1(2003, 9, 26, 15, 0, 0);
00867 const VldTimeStamp end1(2003, 10, 1, 18, 0, 0);
00868
00869 // DetailedTimeCal(start1, end1, 0.0, 15.87*Munits::ns, -59.63*Munits::ns,
00870 // -75.63*Munits::ns, -75.63*Munits::ns, -64.63*Munits::ns);
00871
00872 DetailedTimeCal(start1, end1, 0.0, -79.94*Munits::ns, -80.21*Munits::ns, 0.0,
00873 -90.05*Munits::ns, -79.94*Munits::ns, forreal);
00874
00875 }
|
|
|
Definition at line 81 of file LoadCalDetPIDDB.cxx. References DbiWriter< T >::Close(), DbiCascader::CreateTemporaryTable(), det, DbiTableProxyRegistry::GetCascader(), infile, DbiTableProxyRegistry::Instance(), and run(). Referenced by LoadCalDetPIDDB(). 00082 {
00083 if(!forreal){
00084 // Ask the singleton DbiTableProxyRegistry for the DbiCascader.
00085 DbiCascader& cascader
00086 = DbiTableProxyRegistry::Instance().GetCascader();
00087
00088 // Define the table.
00089 string tableDescr = "(SeqNo int, RUNNO int, BEAMMOMENTUM float)";
00090
00091 // Ask the cascader to find a database that will accept it.
00092 Int_t dbNoTemp = cascader.CreateTemporaryTable("CALDETBEAMMOMENTUM",
00093 tableDescr);
00094
00095 if ( dbNoTemp < 0 ) {
00096 std::cout << "No database to will accept temporary tables."
00097 << std::endl;
00098 return;
00099 }
00100 }
00101 // open input file
00102 string fname(getenv("SRT_PRIVATE_CONTEXT"));
00103 fname+="/CalDetPID/data/BeamMomentumTable.rawinput";
00104
00105 ifstream* ifptr = new ifstream(fname.c_str());
00106 if(!ifptr->is_open()){
00107 delete ifptr; ifptr=0;
00108 string fname_save=fname;
00109 fname=getenv("SRT_PUBLIC_CONTEXT");
00110 fname+="/CalDetPID/data/BeamMomentumTable.rawinput";
00111 ifptr = new ifstream(fname.c_str());
00112 if(!ifptr->is_open()){
00113 cout<<"LoadBeamMomentum: Could not open file "<<fname<<".!"<<endl;
00114 cout<<"Also tried "<<fname_save<<endl;
00115 delete ifptr; ifptr=0;
00116 return;
00117 }
00118 }
00119 // cout<<"LoadBeamMomentum reading from file: "<<fname<<endl;
00120
00121 ifstream& infile = *ifptr;
00122
00123 const Detector::Detector_t det=Detector::kCalDet;
00124 const SimFlag::SimFlag_t sim=SimFlag::kData;
00125
00126 int cntr=0;
00127 while(!infile.eof()){
00128 int run;
00129 float momentum;
00130 time_t lowtime;
00131 time_t hightime;
00132 infile>>run>>momentum>>lowtime>>hightime;
00133 infile.get();
00134 if(!infile.eof()){
00135 // use the file inputs
00136 const CalDetBeamMomentum row(run,momentum);
00137 const VldTimeStamp start(lowtime,0);
00138 const VldTimeStamp end(hightime,0);
00139 const VldRange range(det,sim,start,end,"LoadCalDetPIDDB");
00140
00141 // make a DbiWriter
00142 const VldTimeStamp now;
00143 Dbi::Task task=0;
00144 int aggno=-1;
00145 DbiWriter<CalDetBeamMomentum> writer(range,aggno,task,now);
00146
00147 // write
00148 writer<<row;
00149 cntr++;
00150 if(cntr%100==0){
00151 cout<<"CalDetPID LoadBeamMomentum() : "<<cntr<<"\r"<<flush;
00152
00153 // cout<<"CalDetPID LoadBeamMomentum() : "<<cntr<<endl;
00154 // cout<<"run: "<<run
00155 // <<", momentum: "<<momentum
00156 // <<", start: "<<start
00157 // <<", end: "<<end
00158 // <<endl;
00159 }
00160 if(!writer.Close()){
00161 cout<<"\nLoadBeamMomentum(): "
00162 <<"Output error writing data!"<<endl;
00163 }
00164 }
00165 }
00166 cout<<"CalDetPID LoadBeamMomentum() : "<<cntr<<" (done)."<<endl;
00167
00168 if(ifptr) { delete ifptr; ifptr=0;}
00169 }
|
|
|
Definition at line 42 of file LoadCalDetPIDDB.cxx. References Load2003NFTiming(), Load2003NN1mTiming(), Load2003NNT7Timing(), LoadBeamMomentum(), LoadCERRange(), LoadCERTimeWin(), LoadOverlapWin(), LoadTOFRange(), and MakeTimeCal(). 00043 {
00044 LoadBeamMomentum(forreal);
00045 LoadTOFRange(forreal);
00046 LoadCERRange(forreal);
00047 LoadOverlapWin(forreal);
00048 LoadCERTimeWin(forreal);
00049
00050 // load up a time calibrator table
00051 // Should be pretty consistent for entire 2002 run
00052 // I've checked 40616 and 50700 (very similar)
00053 // This is taking out the crate offset due to the timing cable
00054
00055 //some runs (lower energy runs) taken with US and MID tof have different
00056 //timing offsets
00057 const VldTimeStamp start1(2002, 9, 16, 0, 0, 0);
00058 const VldTimeStamp end1(2002, 9, 28, 13, 48, 0);
00059 const Double_t addneg1=0.0;
00060 const Double_t addpos1=57.0*Munits::ns;
00061 MakeTimeCal(start1, end1, addpos1, addneg1,forreal);
00062
00063 const VldTimeStamp start2(2002, 9, 28, 13, 49, 0);
00064 const VldTimeStamp end2(2002, 9, 28, 20, 49, 0);
00065 const Double_t addneg2=138.0*Munits::ns;
00066 const Double_t addpos2=194.0*Munits::ns;
00067 MakeTimeCal(start2, end2, addpos2, addneg2,true);
00068
00069 const VldTimeStamp start3(2002, 9, 28, 20, 50, 0);
00070 const VldTimeStamp end3(2002, 10, 17, 0, 0, 0);
00071 const Double_t addneg3=0.0;
00072 const Double_t addpos3=57.0*Munits::ns;
00073 MakeTimeCal(start3, end3, addpos3, addneg3,true);
00074
00075 Load2003NFTiming(true);
00076 Load2003NN1mTiming(true);
00077 Load2003NNT7Timing(true);
00078
00079 }
|
|
|
Definition at line 289 of file LoadCalDetPIDDB.cxx. References DbiWriter< T >::Close(), DbiCascader::CreateTemporaryTable(), det, DbiTableProxyRegistry::GetCascader(), infile, DbiTableProxyRegistry::Instance(), and run(). Referenced by LoadCalDetPIDDB(). 00290 {
00291 if(!forreal){
00292 // Ask the singleton DbiTableProxyRegistry for the DbiCascader.
00293 DbiCascader& cascader
00294 = DbiTableProxyRegistry::Instance().GetCascader();
00295
00296 // Define the table.
00297 string tableDescr = "(SeqNo int, PARTICLETYPE int,"
00298 " CER0LOW float, CER0HIGH float, "
00299 " CER1LOW float, CER1HIGH float, "
00300 " CER2LOW float, CER2HIGH float)";
00301
00302
00303 // Ask the cascader to find a database that will accept it.
00304 Int_t dbNoTemp = cascader.CreateTemporaryTable("CALDETCERRANGE",
00305 tableDescr);
00306
00307 if ( dbNoTemp < 0 ) {
00308 std::cout << "No database to will accept temporary tables."
00309 << std::endl;
00310 return;
00311 }
00312 }
00313 // open input file
00314 string fname(getenv("SRT_PRIVATE_CONTEXT"));
00315 fname+="/CalDetPID/data/CERRangeTable.rawinput";
00316
00317 ifstream* ifptr = new ifstream(fname.c_str());
00318 if(!ifptr->is_open()){
00319 delete ifptr; ifptr=0;
00320 string fname_save=fname;
00321 fname=getenv("SRT_PUBLIC_CONTEXT");
00322 fname+="/CalDetPID/data/CERRangeTable.rawinput";
00323 ifptr = new ifstream(fname.c_str());
00324 if(!ifptr->is_open()){
00325 cout<<"LoadCERRange: Could not open file "<<fname<<".!"<<endl;
00326 cout<<"Also tried "<<fname_save<<endl;
00327 delete ifptr; ifptr=0;
00328 return;
00329 }
00330 }
00331
00332 ifstream& infile = *ifptr;
00333
00334 const Detector::Detector_t det=Detector::kCalDet;
00335 const SimFlag::SimFlag_t sim=SimFlag::kData;
00336
00337 time_t save_lowtime=0;
00338 time_t save_hightime=0;
00339 DbiWriter<CalDetCERRange>* writer_ptr=0;
00340 int cntr=0;
00341 while(!infile.eof()){
00342 int run, pid;
00343 float low0,high0,low1,high1,low2,high2;
00344 time_t lowtime;
00345 time_t hightime;
00346 infile>>run>>pid
00347 >>low0>>high0>>low1>>high1>>low2>>high2
00348 >>lowtime>>hightime;
00349 infile.get();
00350 if(!infile.eof()){
00351 // use the file inputs
00352
00353 // do we need to recreate the writer?
00354 // do so if we have moved on to a new vld range
00355 // assumes all entries in a range come together
00356 if((writer_ptr==0)
00357 ||(lowtime!=save_lowtime)||(hightime!=save_hightime)){
00358 // do we need to close the writer?
00359 if(writer_ptr!=0){
00360 if(!writer_ptr->Close()){
00361 cout<<"\nLoadCERRange(): "
00362 <<"Output error writing data!"<<endl;
00363 }
00364 delete writer_ptr; writer_ptr=0;
00365 }
00366 // make a new writer_ptr
00367 const VldTimeStamp start(lowtime,0);
00368 const VldTimeStamp end(hightime,0);
00369 const VldRange range(det,sim,start,end,"LoadCalDetPIDDB");
00370 const VldTimeStamp now;
00371 Dbi::Task task=0;
00372 int aggno=-1;
00373 writer_ptr =
00374 new DbiWriter<CalDetCERRange>(range,aggno,task,now);
00375 save_lowtime=lowtime;
00376 save_hightime=hightime;
00377 }
00378
00379 const CalDetCERRange row(pid, low0, high0, low1, high1,
00380 low2, high2);
00381 // write
00382 DbiWriter<CalDetCERRange>& writer= *writer_ptr;
00383 writer<<row;
00384 cntr++;
00385 if(cntr%100==0)
00386 cout<<"CalDetPID LoadCERRange() : "<<cntr<<"\r"<<flush;
00387 }
00388 }
00389 // at the end... maybe have to write out one more time
00390 if(writer_ptr){
00391 if(!writer_ptr->Close()){
00392 cout<<"\nLoadCERRange(): Output error writing data!"<<endl;
00393 }
00394 delete writer_ptr; writer_ptr=0;
00395 }
00396 cout<<"CalDetPID LoadCERRange() : "<<cntr<<" (done)."<<endl;
00397
00398 if(ifptr) {delete ifptr; ifptr=0;}
00399 }
|
|
|
Definition at line 512 of file LoadCalDetPIDDB.cxx. References DbiWriter< T >::Close(), DbiCascader::CreateTemporaryTable(), det, DbiTableProxyRegistry::GetCascader(), infile, DbiTableProxyRegistry::Instance(), and run(). Referenced by LoadCalDetPIDDB(). 00513 {
00514 if(!forreal){
00515 // Ask the singleton DbiTableProxyRegistry for the DbiCascader.
00516 DbiCascader& cascader
00517 = DbiTableProxyRegistry::Instance().GetCascader();
00518
00519 // Define the table.
00520 string tableDescr = "(SeqNo int, PARTICLETYPE int,"
00521 " WIN0LOW float, WIN0HIGH float, "
00522 " WIN1LOW float, WIN1HIGH float, "
00523 " WIN2LOW float, WIN2HIGH float)";
00524
00525
00526 // Ask the cascader to find a database that will accept it.
00527 Int_t dbNoTemp = cascader.CreateTemporaryTable("CALDETCERTIMEWIN",
00528 tableDescr);
00529
00530 if ( dbNoTemp < 0 ) {
00531 std::cout << "No database to will accept temporary tables."
00532 << std::endl;
00533 return;
00534 }
00535 }
00536 // open input file
00537 string fname(getenv("SRT_PRIVATE_CONTEXT"));
00538 fname+="/CalDetPID/data/CERTimeWinTable.rawinput";
00539
00540 ifstream* ifptr = new ifstream(fname.c_str());
00541 if(!ifptr->is_open()){
00542 delete ifptr; ifptr=0;
00543 string fname_save=fname;
00544 fname=getenv("SRT_PUBLIC_CONTEXT");
00545 fname+="/CalDetPID/data/CERTimeWinTable.rawinput";
00546 ifptr = new ifstream(fname.c_str());
00547 if(!ifptr->is_open()){
00548 cout<<"LoadCERTimeWin: Could not open file "<<fname<<".!"<<endl;
00549 cout<<"Also tried "<<fname_save<<endl;
00550 delete ifptr; ifptr=0;
00551 return;
00552 }
00553 }
00554
00555 ifstream& infile = *ifptr;
00556
00557 const Detector::Detector_t det=Detector::kCalDet;
00558 const SimFlag::SimFlag_t sim=SimFlag::kData;
00559
00560 time_t save_lowtime=0;
00561 time_t save_hightime=0;
00562 DbiWriter<CalDetCERTimeWin>* writer_ptr=0;
00563 int cntr=0;
00564 while(!infile.eof()){
00565 int run, pid;
00566 float low0,high0,low1,high1,low2,high2;
00567 time_t lowtime;
00568 time_t hightime;
00569 infile>>run>>pid
00570 >>low0>>high0>>low1>>high1>>low2>>high2
00571 >>lowtime>>hightime;
00572 infile.get();
00573 if(!infile.eof()){
00574 // use the file inputs
00575
00576 // do we need to recreate the writer?
00577 // do so if we have moved on to a new vld range
00578 // assumes all entries in a range come together
00579 if((writer_ptr==0)
00580 ||(lowtime!=save_lowtime)||(hightime!=save_hightime)){
00581 // do we need to close the writer?
00582 if(writer_ptr!=0){
00583 if(!writer_ptr->Close()){
00584 cout<<"\nLoadCERTimeWin(): "
00585 <<"Output error writing data!"<<endl;
00586 }
00587 delete writer_ptr; writer_ptr=0;
00588 }
00589 // make a new writer_ptr
00590 const VldTimeStamp start(lowtime,0);
00591 const VldTimeStamp end(hightime,0);
00592 const VldRange range(det,sim,start,end,"LoadCalDetPIDDB");
00593 const VldTimeStamp now;
00594 Dbi::Task task=0;
00595 int aggno=-1;
00596 writer_ptr =
00597 new DbiWriter<CalDetCERTimeWin>(range,aggno,task,now);
00598 save_lowtime=lowtime;
00599 save_hightime=hightime;
00600 }
00601
00602 const CalDetCERTimeWin row(pid, low0, high0, low1, high1,
00603 low2, high2);
00604 // write
00605 DbiWriter<CalDetCERTimeWin>& writer= *writer_ptr;
00606 writer<<row;
00607 cntr++;
00608 if(cntr%100==0)
00609 cout<<"CalDetPID LoadCERTimeWin() : "<<cntr<<"\r"<<flush;
00610 }
00611 }
00612 // at the end... maybe have to write out one more time
00613 if(writer_ptr){
00614 if(!writer_ptr->Close()){
00615 cout<<"\nLoadCERTimeWin(): Output error writing data!"<<endl;
00616 }
00617 delete writer_ptr; writer_ptr=0;
00618 }
00619 cout<<"CalDetPID LoadCERTimeWin() : "<<cntr<<" (done)."<<endl;
00620
00621 if(ifptr) {delete ifptr; ifptr=0;}
00622 }
|
|
|
Definition at line 402 of file LoadCalDetPIDDB.cxx. References DbiWriter< T >::Close(), DbiCascader::CreateTemporaryTable(), det, DbiTableProxyRegistry::GetCascader(), infile, DbiTableProxyRegistry::Instance(), and run(). Referenced by LoadCalDetPIDDB(). 00403 {
00404 if(!forreal){
00405 // Ask the singleton DbiTableProxyRegistry for the DbiCascader.
00406 DbiCascader& cascader
00407 = DbiTableProxyRegistry::Instance().GetCascader();
00408
00409 // Define the table.
00410
00411 string tableDescr = "(SeqNo int, PARTICLETYPE int,"
00412 " WINLOW float, WINHIGH float)";
00413
00414 // Ask the cascader to find a database that will accept it.
00415 Int_t dbNoTemp = cascader.CreateTemporaryTable("CALDETOVERLAPWIN",
00416 tableDescr);
00417
00418 if ( dbNoTemp < 0 ) {
00419 std::cout << "No database to will accept temporary tables."
00420 << std::endl;
00421 return;
00422 }
00423 }
00424 // open input file
00425 string fname(getenv("SRT_PRIVATE_CONTEXT"));
00426 fname+="/CalDetPID/data/OverlapWinTable.rawinput";
00427
00428 ifstream* ifptr = new ifstream(fname.c_str());
00429 if(!ifptr->is_open()){
00430 delete ifptr; ifptr=0;
00431 string fname_save=fname;
00432 fname=getenv("SRT_PUBLIC_CONTEXT");
00433 fname+="/CalDetPID/data/OverlapWinTable.rawinput";
00434 ifptr = new ifstream(fname.c_str());
00435 if(!ifptr->is_open()){
00436 cout<<"LoadOverlapWin: Could not open file "<<fname<<".!"<<endl;
00437 cout<<"Also tried "<<fname_save<<endl;
00438 delete ifptr; ifptr=0;
00439 return;
00440 }
00441 }
00442
00443 ifstream& infile = *ifptr;
00444
00445 const Detector::Detector_t det=Detector::kCalDet;
00446 const SimFlag::SimFlag_t sim=SimFlag::kData;
00447
00448 time_t save_lowtime=0;
00449 time_t save_hightime=0;
00450 DbiWriter<CalDetOverlapWin>* writer_ptr=0;
00451 int cntr=0;
00452 while(!infile.eof()){
00453 int run, pid;
00454 float low,high;
00455 time_t lowtime;
00456 time_t hightime;
00457 infile>>run>>pid
00458 >>low>>high
00459 >>lowtime>>hightime;
00460 infile.get();
00461 if(!infile.eof()){
00462 // use the file inputs
00463
00464 // do we need to recreate the writer?
00465 // do so if we have moved on to a new vld range
00466 // assumes all entries in a range come together
00467 if((writer_ptr==0)
00468 ||(lowtime!=save_lowtime)||(hightime!=save_hightime)){
00469 // do we need to close the writer?
00470 if(writer_ptr!=0){
00471 if(!writer_ptr->Close()){
00472 cout<<"\nLoadCERRange(): "
00473 <<"Output error writing data!"<<endl;
00474 }
00475 delete writer_ptr; writer_ptr=0;
00476 }
00477 // make a new writer_ptr
00478 const VldTimeStamp start(lowtime,0);
00479 const VldTimeStamp end(hightime,0);
00480 const VldRange range(det,sim,start,end,"LoadCalDetPIDDB");
00481 const VldTimeStamp now;
00482 Dbi::Task task=0;
00483 int aggno=-1;
00484 writer_ptr =
00485 new DbiWriter<CalDetOverlapWin>(range,aggno,task,now);
00486 save_lowtime=lowtime;
00487 save_hightime=hightime;
00488 }
00489
00490 const CalDetOverlapWin row(pid, low, high);
00491
00492 // write
00493 DbiWriter<CalDetOverlapWin>& writer= *writer_ptr;
00494 writer<<row;
00495 cntr++;
00496 if(cntr%100==0)
00497 cout<<"CalDetPID LoadOverlapWin() : "<<cntr<<"\r"<<flush;
00498 }
00499 }
00500 // at the end... maybe have to write out one more time
00501 if(writer_ptr){
00502 if(!writer_ptr->Close()){
00503 cout<<"\nLoadOverlapWin(): Output error writing data!"<<endl;
00504 }
00505 delete writer_ptr; writer_ptr=0;
00506 }
00507 cout<<"CalDetPID LoadOverlapWin() : "<<cntr<<" (done)."<<endl;
00508
00509 if(ifptr) {delete ifptr; ifptr=0;}
00510 }
|
|
|
Definition at line 171 of file LoadCalDetPIDDB.cxx. References DbiWriter< T >::Close(), DbiCascader::CreateTemporaryTable(), det, DbiTableProxyRegistry::GetCascader(), infile, DbiTableProxyRegistry::Instance(), and run(). Referenced by LoadCalDetPIDDB(). 00172 {
00173 if(!forreal){
00174 // Ask the singleton DbiTableProxyRegistry for the DbiCascader.
00175 DbiCascader& cascader
00176 = DbiTableProxyRegistry::Instance().GetCascader();
00177
00178 // Define the table.
00179 string tableDescr = "(SeqNo int, PARTICLETYPE int,"
00180 " TDC0LOW float, TDC0HIGH float, "
00181 " TDC1LOW float, TDC1HIGH float, "
00182 " TDC2LOW float, TDC2HIGH float, "
00183 " TDC2MINUSTDC0LOW float, TDC2MINUSTDC0HIGH float, "
00184 " TDC2MINUSTDC1LOW float, TDC2MINUSTDC1HIGH float )";
00185
00186
00187 // Ask the cascader to find a database that will accept it.
00188 Int_t dbNoTemp = cascader.CreateTemporaryTable("CALDETTOFRANGE",
00189 tableDescr);
00190
00191 if ( dbNoTemp < 0 ) {
00192 std::cout << "No database to will accept temporary tables."
00193 << std::endl;
00194 return;
00195 }
00196 }
00197
00198 // open input file
00199 string fname(getenv("SRT_PRIVATE_CONTEXT"));
00200 fname+="/CalDetPID/data/TOFRangeTable.rawinput";
00201
00202 ifstream* ifptr = new ifstream(fname.c_str());
00203 if(!ifptr->is_open()){
00204 delete ifptr; ifptr=0;
00205 string fname_save=fname;
00206 fname=getenv("SRT_PUBLIC_CONTEXT");
00207 fname+="/CalDetPID/data/TOFRangeTable.rawinput";
00208 ifptr = new ifstream(fname.c_str());
00209 if(!ifptr->is_open()){
00210 cout<<"LoadTOFRange: Could not open file "<<fname<<".!"<<endl;
00211 cout<<"Also tried "<<fname_save<<endl;
00212 delete ifptr; ifptr=0;
00213 return;
00214 }
00215 }
00216 ifstream& infile= *ifptr;
00217 // cout<<"LoadTOFRange reading from: "<<fname<<endl;
00218
00219 const Detector::Detector_t det=Detector::kCalDet;
00220 const SimFlag::SimFlag_t sim=SimFlag::kData;
00221
00222 time_t save_lowtime=0;
00223 time_t save_hightime=0;
00224 DbiWriter<CalDetTOFRange>* writer_ptr=0;
00225 int cntr=0;
00226 while(!infile.eof()){
00227 int run, pid;
00228 float low0,high0,low1,high1,low2,high2,tmzlow,tmzhigh,tmolow,tmohigh;
00229 time_t lowtime;
00230 time_t hightime;
00231 infile>>run>>pid
00232 >>low0>>high0>>low1>>high1>>low2>>high2
00233 >>tmzlow>>tmzhigh>>tmolow>>tmohigh
00234 >>lowtime>>hightime;
00235 infile.get();
00236 if(!infile.eof()){
00237 // use the file inputs
00238
00239 // do we need to recreate the writer?
00240 // do so if we have moved on to a new vld range
00241 // assumes all entries in a range come together
00242 if((writer_ptr==0)
00243 ||(lowtime!=save_lowtime)||(hightime!=save_hightime)){
00244 // do we need to close the writer?
00245 if(writer_ptr!=0){
00246 if(!writer_ptr->Close()){
00247 cout<<"\nLoadTOFRange(): "
00248 <<"Output error writing data!"<<endl;
00249 }
00250 delete writer_ptr; writer_ptr=0;
00251 }
00252 // make a new writer_ptr
00253 const VldTimeStamp start(lowtime,0);
00254 const VldTimeStamp end(hightime,0);
00255 const VldRange range(det,sim,start,end,"LoadCalDetPIDDB");
00256 const VldTimeStamp now;
00257 Dbi::Task task=0;
00258 int aggno=-1;
00259 writer_ptr =
00260 new DbiWriter<CalDetTOFRange>(range,aggno,task,now);
00261 save_lowtime=lowtime;
00262 save_hightime=hightime;
00263 }
00264
00265 const CalDetTOFRange row(pid, low0, high0, low1, high1,
00266 low2, high2, tmzlow, tmzhigh,
00267 tmolow,tmohigh);
00268 // write
00269 DbiWriter<CalDetTOFRange>& writer= *writer_ptr;
00270 writer<<row;
00271 cntr++;
00272 if(cntr%100==0)
00273 cout<<"CalDetPID LoadTOFRange() : "<<cntr<<"\r"<<flush;
00274 }
00275 }
00276 // at the end... maybe have to write out one more time
00277 if(writer_ptr){
00278 if(!writer_ptr->Close()){
00279 cout<<"\nLoadTOFRange(): Output error writing data!"<<endl;
00280 }
00281 delete writer_ptr; writer_ptr=0;
00282 }
00283 cout<<"CalDetPID LoadTOFRange() : "<<cntr<<" (done)."<<endl;
00284
00285 if(ifptr) {delete ifptr; ifptr=0;}
00286 }
|
|
||||||||||||||||||||||||
|
Definition at line 624 of file LoadCalDetPIDDB.cxx. References PlexStripEndId::BuildPlnStripEndKey(), DbiWriter< T >::CanOutput(), DbiWriter< T >::Close(), DbiCascader::CreateTemporaryTable(), DbiTableProxyRegistry::GetCascader(), and DbiTableProxyRegistry::Instance(). Referenced by LoadCalDetPIDDB(). 00626 {
00627 if(!forreal){
00628 // MsgService::Instance()->GetStream("Dbi")->SetLogLevel(Msg::kDebug);
00629
00630 // Ask the singleton DbiTableProxyRegistry for the DbiCascader.
00631 DbiCascader& cascader=DbiTableProxyRegistry::Instance().GetCascader();
00632
00633 // Define the table.
00634 string tableDescr = "(SEQNO int, SEIDKEY int, STRIPENDID int, SCALE float, OFFSET float, SLEWCONST1 float, SLEWCONST2 float, SLEWCONST3 float, SLEWCONST4 float)";
00635 // Ask the cascader to find a database that will accept it.
00636 Int_t dbNoTemp = cascader.CreateTemporaryTable("CALTIMECALIBRATION",tableDescr);
00637
00638 if (dbNoTemp<0){
00639 cout << "No database to will accept temporary tables. " << endl;
00640 return;
00641 }
00642 else{
00643 cout<<"Database number "<<dbNoTemp<<endl;
00644 }
00645 }
00646
00647 VldRange vr(Detector::kCalDet,SimFlag::kData,vts,vte,"by hand");
00648 VldTimeStamp create;
00649 /*
00650 cout<<"Validity time stamp create: "<<endl;
00651 create.Print();
00652 cout<<endl;
00653 cout<<"Validity time stamp start: "<<endl;
00654 vts.Print();
00655 cout<<endl;
00656 cout<<"Validity time stamp end: "<<endl;
00657 vte.Print();
00658 cout<<endl;
00659 */
00660 cout<<"MakeTimeCal: From "<<vts<<" to "<<vte<<endl;
00661 cout<<"Adding "<<addpos<<" to kPositive strip ends."<<endl;
00662 cout<<"Adding "<<addneg<<" to kNegative strip ends (except plane 0)."<<endl;
00663 cout<<"Adding "<<addpos<<" to plane 0 kNegative strip ends."<<endl;
00664
00665 DbiWriter<CalTimeCalibration> tcal(vr, -1, 0, create);
00666
00667 // cout<<"Starting to loop over planes and strips"<<endl;
00668 for(int plane=0;plane<60;plane++){
00669 for(int strip=0;strip<24;strip++){
00670 PlexStripEndId seidn(Detector::kCalDet,plane,strip,
00671 StripEnd::kNegative);
00672 PlexStripEndId seidp(Detector::kCalDet,plane,strip,
00673 StripEnd::kPositive);
00674 Int_t seidkeyn = seidn.BuildPlnStripEndKey();
00675 Int_t seidkeyp = seidp.BuildPlnStripEndKey();
00676 if(plane==0){
00677 CalTimeCalibration tcn(seidkeyn, StripEnd::kNegative,
00678 1.,addpos,1.,1.,1.,1.);
00679 tcal<<tcn;
00680 }
00681 else{
00682 CalTimeCalibration tcn(seidkeyn, StripEnd::kNegative,
00683 1.,addneg,1.,1.,1.,1.);
00684 tcal<<tcn;
00685 }
00686 CalTimeCalibration tcp(seidkeyp, StripEnd::kPositive,
00687 1.,addpos,1.,1.,1.,1.);
00688 tcal<<(tcp);
00689 }
00690 }
00691 if(!tcal.CanOutput()){
00692 cout<<"MakeTimeCal: Writer can't output!"<<endl;
00693 }
00694
00695 cout<<"Done."<<endl;
00696 tcal.Close();
00697 }
|
|
|
Definition at line 700 of file LoadCalDetPIDDB.cxx. References DbiValidityRec::GetAggregateNo(), DbiValidityRec::GetCreationDate(), DbiValidityRec::GetDbNo(), DbiValidityRec::GetInsertDate(), DbiResultPtr< T >::GetNumRows(), CalTimeCalibration::GetOffset(), DbiResultPtr< T >::GetRow(), CalTimeCalibration::GetScale(), CalTimeCalibration::GetSEIDkey(), DbiValidityRec::GetSeqNo(), CalTimeCalibration::GetSlewC1(), CalTimeCalibration::GetSlewC2(), CalTimeCalibration::GetSlewC3(), CalTimeCalibration::GetSlewC4(), CalTimeCalibration::GetStripEndId(), DbiValidityRec::GetTask(), DbiResultPtr< T >::GetValidityRec(), and DbiValidityRec::GetVldRange(). 00700 {
00701 //now read the data back and print
00702
00703 cout<<"Trying to get a dbiresultptr"<<endl;
00704 VldContext vc(Detector::kCalDet,SimFlag::kData,vts);
00705 DbiResultPtr<CalTimeCalibration> timecal(vc,0);
00706
00707 // timecal.NewQuery(vc,0);
00708 const DbiValidityRec *dvr = timecal.GetValidityRec();
00709 if(dvr!=0){
00710 std::cout<<"Printing the DbiValidityRec()"<<std::endl;
00711
00712 std::cout<<"AggNo: "<<dvr->GetAggregateNo()<<"\n"
00713 <<"Creation Date: "<<dvr->GetCreationDate()<<"\n"
00714 <<"Db No.: "<<dvr->GetDbNo()<<"\n"
00715 <<"Insert Date: "<<dvr->GetInsertDate()<<"\n"
00716 <<"Task: "<<dvr->GetTask()<<"\n"
00717 <<"SeqNo: "<<dvr->GetSeqNo()<<"\n"
00718 <<"VldRange: "<<dvr->GetVldRange()<<"\n"
00719 <<std::endl;
00720 }
00721
00722 for(unsigned int i=0;i<timecal.GetNumRows();i++){
00723 const CalTimeCalibration *readrow = timecal.GetRow(i);
00724 // readrow->Print();
00725 cout<<"Seidkey "<<readrow->GetSEIDkey()
00726 <<" stripendid "<<readrow->GetStripEndId()
00727 <<" scale "<<readrow->GetScale()
00728 <<" offset "<<readrow->GetOffset()
00729 <<" slew1 "<<readrow->GetSlewC1()
00730 <<" slew2 "<<readrow->GetSlewC2()
00731 <<" slew3 "<<readrow->GetSlewC3()
00732 <<" slew4 "<<readrow->GetSlewC4()<<endl;
00733 }
00734 }
|
1.3.9.1