Install fatal handler with default options.
This is meant to be easy to call from python via ctypes.
Install fatal handler with default options.
getRawOccupancy() Read RawOccupancy from Monitoring HIST and write out into local DB
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
374 int nTRThist=0, ndethist=0, nlayhist=0, nmodhist=0, nbrdhist=0, nchphist=0, nstwhist=0;
375 int nTRThistAr=0, ndethistAr=0, nlayhistAr=0, nmodhistAr=0, nbrdhistAr=0, nchphistAr=0, nstwhistAr=0;
378 std::string
infile=m_hittuple;
379 std::string
outfile=
"calibout";
381 std::string detname=
"Detector";
382 std::string layname=
"Layer";
383 if (!m_SplitBarrel) {
384 detname=
"WholeBarrel";
385 layname=
"WholeBarrelLayer";
389 Calibrator TRT(0,
"TRT",m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
391 Calibrator Layer(2,layname.data(),m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
392 Calibrator Module(3,
"Module",m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
393 Calibrator Board(4,
"Board",m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
394 Calibrator Chip(5,
"Chip",m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
395 Calibrator Straw(6,
"Straw",m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
399 std::map<std::string,Calibrator*> calibrators;
400 calibrators[
"TRT"]=&
TRT;
402 calibrators[
"Layer"]=&
Layer;
403 calibrators[
"Module"]=&Module;
404 calibrators[
"Board"]=&Board;
405 calibrators[
"Chip"]=&Chip;
406 calibrators[
"Straw"]=&
Straw;
409 if(m_calsub!=
"user"){
410 m_doRt=m_config[m_calsub].CalibrateRt;
411 m_doT0=m_config[m_calsub].CalibrateT0;
412 m_doRes=m_config[m_calsub].FitResidual;
413 m_beQuiet=m_config[m_calsub].NoHistograms;
414 m_doOutPrint=m_config[m_calsub].PrintT0Out;
415 m_doRtPrint=m_config[m_calsub].PrintRtOut;
416 m_doLogPrint=m_config[m_calsub].PrintLog;
420 for (
const std::string&
s : m_doRt) calibrators[
s]->dort=
true;
421 for (
const std::string&
s : m_doT0) calibrators[
s]->dot0=
true;
422 for (
const std::string&
s : m_doRes) calibrators[
s]->dores=
true;
423 for (
const std::string&
s : m_beQuiet) calibrators[
s]->bequiet=
true;
424 for (
const std::string&
s : m_doOutPrint) calibrators[
s]->printt0=
true;
425 for (
const std::string&
s : m_doRtPrint) calibrators[
s]->printrt=
true;
426 for (
const std::string&
s : m_doLogPrint) calibrators[
s]->printlog=
true;
427 for (
const std::string&
s : m_useBoardRef) calibrators[
s]->usebref=
true;
428 for (std::pair<const std::string, Calibrator*>&
p : calibrators) {
430 calib->usep0=m_useP0;
431 calib->floatp3=m_floatP3;
432 calib->useshortstraws=m_DoShortStrawCorrection;
434 if (m_doRt.size()==0)
calib->nort=
true;
435 if (m_doT0.size()==0)
calib->not0=
true;
437 std::set<int> selset;
438 GetSubLevels(m_selstring,
calib->level+1,&selset);
440 calib->selection = selset;
445 Calibrator TRT_Ar (0,
"TRT_Ar" ,m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
446 Calibrator Detector_Ar(1,
"Detector_Ar",m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
447 Calibrator Layer_Ar (2,
"Layer_Ar" ,m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
448 Calibrator Module_Ar (3,
"Module_Ar" ,m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
449 Calibrator Board_Ar (4,
"Board_Ar" ,m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
450 Calibrator Chip_Ar (5,
"Chip_Ar" ,m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
451 Calibrator Straw_Ar (6,
"Straw_Ar" ,m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
454 std::map<std::string,Calibrator*> calibratorsAr;
455 calibratorsAr[
"TRT"] =&TRT_Ar;
456 calibratorsAr[
"Detector"] =&Detector_Ar;
457 calibratorsAr[
"Layer"] =&Layer_Ar;
458 calibratorsAr[
"Module"] =&Module_Ar;
459 calibratorsAr[
"Board"] =&Board_Ar;
460 calibratorsAr[
"Chip"] =&Chip_Ar;
461 calibratorsAr[
"Straw"] =&Straw_Ar;
464 for (
const std::string&
s : m_doRt) calibratorsAr[
s]->dort=
true;
465 for (
const std::string&
s : m_doT0) calibratorsAr[
s]->dot0=
true;
466 for (
const std::string&
s : m_doRes) calibratorsAr[
s]->dores=
true;
467 for (
const std::string&
s : m_beQuiet) calibratorsAr[
s]->bequiet=
true;
468 for (
const std::string&
s : m_doOutPrint) calibratorsAr[
s]->printt0=
true;
469 for (
const std::string&
s : m_doRtPrint) calibratorsAr[
s]->printrt=
true;
470 for (
const std::string&
s : m_doLogPrint) calibratorsAr[
s]->printlog=
true;
471 for (
const std::string&
s : m_useBoardRef) calibratorsAr[
s]->usebref=
true;
472 for (std::pair<const std::string, Calibrator*>&
p : calibratorsAr) {
474 calib->usep0=m_useP0;
475 calib->floatp3=m_floatP3;
476 calib->useshortstraws=m_DoShortStrawCorrection;
478 if (m_doRt.size()==0)
calib->nort=
true;
479 if (m_doT0.size()==0)
calib->not0=
true;
481 std::set<int> selset;
482 GetSubLevels(m_selstring,
calib->level+1,&selset);
484 calib->selection = selset;
490 m_options =
'_' +
TRT.GetOptString() +
'_' +
Detector.GetOptString() +
'_' +
Layer.GetOptString() +
'_' + Module.GetOptString() +
'_' + Board.GetOptString() +
'_' + Chip.GetOptString() +
'_' +
Straw.GetOptString();
491 if(m_calsub!=
"user") m_selstring =
'_' +
TRT.GetSelString() +
'_' +
Detector.GetSelString() +
'_' +
Layer.GetSelString() +
'_' + Module.GetSelString() +
'_' + Board.GetSelString() +
'_' + Chip.GetSelString() +
'_' +
Straw.GetSelString();
500 ATH_MSG_INFO(
"MIN STATISTICS : RT=" << m_minrt <<
", T0=" << m_mint0 );
521 ATH_MSG_INFO(
"MIN STATISTICS : RT=" << m_minrt <<
", T0=" << m_mint0 );
534 int rbrd, rchp, rdet, dum;
536 std::map<std::string,float> reft0map;
537 std::ifstream t0ref(
"finedelays.txt",std::ios::in);
538 if(t0ref.is_open())
ATH_MSG_INFO(
" Opened finedelays.txt ");
539 for(
int iref=0;iref<208;iref++){
540 t0ref >> rbrd >> rchp >> rdet >> dum >> rt0;
541 reft0map[std::string(Form(
"_%i_%i_%i",rdet,rbrd,rchp))]=rt0;
548 bool isdines = m_rtrel.find(
"dines")!=std::string::npos;
549 bool isbinned = m_rtrel.find(
"binned")!=std::string::npos;
551 if (isdines) rtint=2;
552 else if (isbinned) rtint=1;
557 std::map<std::string,epdata> ephasemap;
560 std::unique_ptr<TFile>
histfile(TFile::Open(
"calibout.root",
"RECREATE"));
569 std::ifstream
myFile (
infile.data(), std::ios::in | std::ios::binary);
577 myFile.read ((
char*)&npop,
sizeof(
int));
579 int* chist=
new int[2*npop+2];
580 if (npop>0)
myFile.read ((
char*)(chist+2),
sizeof(
int)*2*npop);
581 myFile.read ((
char*)&isid,
sizeof(
int));
590 m_neighbourSvc->getChip(
ident,chip);
591 if(abs(m_TRTID->barrel_ec(
ident))<2){
592 board=m_neighbourSvc->chipToBoardBarrel(chip,m_TRTID->layer_or_wheel(
ident));
601 if (m_SplitBarrel) hitdata.
det=(
int)m_TRTID->barrel_ec(
ident);
602 else hitdata.
det=abs((
int)m_TRTID->barrel_ec(
ident));
603 if(hitdata.
det!=1 && hitdata.
det!=-1 && hitdata.
det!=2 && hitdata.
det!=-2) {
608 if( (hitdata.
det==1 || hitdata.
det==-1) && (hitdata.
lay<0 || hitdata.
lay>2) ) {
611 }
else if( (hitdata.
det==2 || hitdata.
det==-2) && (hitdata.
lay<0 || hitdata.
lay>13) ) {
616 if( hitdata.
mod < 0 || hitdata.
mod > 31 ) {
624 if( hitdata.
stl < 0 || hitdata.
stl > m_TRTID->straw_layer_max(
ident) ) {
630 if( hitdata.
stw < 0 || hitdata.
stw > m_TRTID->straw_max(
ident) ) {
639 std::vector<float> rvalues ;
640 const float defaultpcal[] = {0,0,0,0} ;
643 pcal = rtr ? rtr->
cal() : defaultpcal ;
648 pcal = rtr ? rtr->
cal() : defaultpcal ;
650 hitdata.
rtpar[0]=pcal[0];
651 hitdata.
rtpar[1]=pcal[1];
652 hitdata.
rtpar[2]=pcal[2];
653 hitdata.
rtpar[3]=pcal[3];
657 MakeBDKeys(hitdata.
det, hitdata.
lay, hitdata.
mod, hitdata.
brd, hitdata.
chp, hitdata.
sid);
660 m_trt.t[m_Tkey].d[m_Dkey].l[m_Lkey].m[m_Mkey].b[m_Bkey].c[m_Ckey].s[m_Skey].z=0;
661 m_trt_acc.t[m_Tkey].d[m_Dkey_acc].l[m_Lkey_acc].m[m_Mkey].b[m_Bkey].c[m_Ckey].s[m_Skey].z=0;
672 hitdata.
t0=m_trtcaldbTool->getT0(
ident);
674 strawelement = m_trtmanager->getElement(
ident);
675 if(hitdata.
det==1 || hitdata.
det==-1) {
688 if ( m_DoShortStrawCorrection && hitdata.
lay==0 && hitdata.
stl<9){
690 double t0test1=m_trtcaldbTool->getT0((
Identifier)301998432);
691 double t0test2=m_trtcaldbTool->getT0((
Identifier)302001504);
692 if (t0test1 != t0test2) hitdata.
t0+=0.75;
696 hitdata.
rt0=reft0map[std::string(Form(
"_%i_%i_%i",hitdata.
det,hitdata.
brd,hitdata.
chp))];
699 int isArgonStraw = 0;
708 nTRThist +=
TRT.AddHit(m_Tkey,hitdata,chist,
true);
710 if (m_SplitBarrel) ndethist +=
Detector.AddHit(m_Dkey,hitdata,chist,
true);
711 else ndethist +=
Detector.AddHit(m_Dkey_acc,hitdata,chist,
true);
712 if (
Layer.CheckSelection(hitdata.
lay)) {
713 if (m_SplitBarrel) nlayhist +=
Layer.AddHit(m_Lkey,hitdata,chist,
true);
714 else { nlayhist +=
Layer.AddHit(m_Lkey_acc,hitdata,chist,
true);
continue;}
715 if (Module.CheckSelection(hitdata.
mod)) {
716 nmodhist += Module.AddHit(m_Mkey,hitdata,chist,
true);
717 if (Board.CheckSelection(hitdata.
brd)) {
718 nbrdhist += Board.AddHit(m_Bkey,hitdata,chist,
true);
719 if (Chip.CheckSelection(hitdata.
chp)) {
720 nchphist += Chip.AddHit(m_Ckey,hitdata,chist,
true);
721 if (
Straw.CheckSelection(hitdata.
stw))
722 nstwhist +=
Straw.AddHit(m_Skey,hitdata,chist,
true);
731 nTRThist +=
TRT.AddHit(m_Tkey,hitdata,chist,
true);
733 if (m_SplitBarrel) ndethist +=
Detector.AddHit(m_Dkey,hitdata,chist,
true);
734 else ndethist +=
Detector.AddHit(m_Dkey_acc,hitdata,chist,
true);
735 if (
Layer.CheckSelection(hitdata.
lay)) {
736 if (m_SplitBarrel) nlayhist +=
Layer.AddHit(m_Lkey,hitdata,chist,
true);
737 else { nlayhist +=
Layer.AddHit(m_Lkey_acc,hitdata,chist,
true);
continue;}
738 if (Module.CheckSelection(hitdata.
mod)) {
739 nmodhist += Module.AddHit(m_Mkey,hitdata,chist,
true);
740 if (Board.CheckSelection(hitdata.
brd)) {
741 nbrdhist += Board.AddHit(m_Bkey,hitdata,chist,
true);
742 if (Chip.CheckSelection(hitdata.
chp)) {
743 nchphist += Chip.AddHit(m_Ckey,hitdata,chist,
true);
744 if (
Straw.CheckSelection(hitdata.
stw)) {
745 nstwhist +=
Straw.AddHit(m_Skey,hitdata,chist,
true);
754 nTRThistAr += TRT_Ar.AddHit(m_Tkey,hitdata,chist,
true);
755 if (Detector_Ar.CheckSelection(hitdata.
det)) {
756 if (m_SplitBarrel) ndethistAr += Detector_Ar.AddHit(m_Dkey,hitdata,chist,
true);
757 else ndethistAr += Detector_Ar.AddHit(m_Dkey_acc,hitdata,chist,
true);
758 if (Layer_Ar.CheckSelection(hitdata.
lay)) {
759 if (m_SplitBarrel) nlayhistAr += Layer_Ar.AddHit(m_Lkey,hitdata,chist,
true);
760 else { nlayhistAr += Layer_Ar.AddHit(m_Lkey_acc,hitdata,chist,
true);
continue;}
761 if (Module_Ar.CheckSelection(hitdata.
mod)) {
762 nmodhistAr += Module_Ar.AddHit(m_Mkey,hitdata,chist,
true);
763 if (Board_Ar.CheckSelection(hitdata.
brd)) {
764 nbrdhistAr += Board_Ar.AddHit(m_Bkey,hitdata,chist,
true);
765 if (Chip_Ar.CheckSelection(hitdata.
chp)) {
766 nchphistAr += Chip_Ar.AddHit(m_Ckey,hitdata,chist,
true);
767 if (Straw_Ar.CheckSelection(hitdata.
stw)) {
768 nstwhistAr += Straw_Ar.AddHit(m_Skey,hitdata,chist,
true);
779 if ((ihist%10000==9999) | (ihist==m_nevents-1)){
780 ATH_MSG_INFO( Form(
"%7i HISTOGRAMS READ, UNITS ADDED: %i %i %2i %3i %3i %4i %6i",ihist+1,nTRThist, ndethist, nlayhist, nmodhist, nbrdhist, nchphist, nstwhist) );
781 if(m_DoArXenonSep)
ATH_MSG_INFO( Form(
"%7i Ar HISTOGRAMS READ, UNITS ADDED: %i %i %2i %3i %3i %4i %6i",ihistAr+1,nTRThistAr, ndethistAr, nlayhistAr, nmodhistAr, nbrdhistAr, nchphistAr, nstwhistAr) );
788 ATH_MSG_INFO( Form(
"%7i HISTOGRAMS READ, UNITS ADDED: %i %i %2i %3i %3i %4i %6i",ihist+1,nTRThist, ndethist, nlayhist, nmodhist, nbrdhist, nchphist, nstwhist) );
789 if(m_DoArXenonSep)
ATH_MSG_INFO( Form(
"%7i Ar HISTOGRAMS READ, UNITS ADDED: %i %i %2i %3i %3i %4i %6i",ihistAr+1,nTRThistAr, ndethistAr, nlayhistAr, nmodhistAr, nbrdhistAr, nchphistAr, nstwhistAr) );
791 TRT.UpdateOldConstants();
793 Layer.UpdateOldConstants();
794 Module.UpdateOldConstants();
795 Board.UpdateOldConstants();
796 Chip.UpdateOldConstants();
799 TRT_Ar.UpdateOldConstants();
800 Detector_Ar.UpdateOldConstants();
801 Layer_Ar.UpdateOldConstants();
802 Module_Ar.UpdateOldConstants();
803 Board_Ar.UpdateOldConstants();
804 Chip_Ar.UpdateOldConstants();
836 caldata startdata(
true,55,100);
839 std::map<std::string,TDirectory*> dirmap;
854 for (std::pair<const std::string, BDdetector>&
pt : m_trt.t) {
856 if (
TRT.Skip())
break;
857 if (
TRT.HasKey(
pt.first)) {
858 trtdir =
TRT.Calibrate(
histfile.get(),
pt.first,SubLev(m_options,1),&startdata);
859 if (
TRT.printt0) t0calfile << Form(
"-3 -1 -1 -1 -1 : %e %e",
TRT.data[
pt.first].t0,
TRT.data[
pt.first].t0err) << std::endl;
860 if (
TRT.printrt) rtcalfile << Form(
"-3 -1 -1 -1 -1 : %i %e %e %e %e",rtint,
TRT.data[
pt.first].rtpar[0],
TRT.data[
pt.first].rtpar[1],
TRT.data[
pt.first].rtpar[2],
TRT.data[
pt.first].rtpar[3]) << std::endl;
862 for (std::pair<const std::string, BDlayer>& pd :
pt.second.d) {
866 detdir =
Detector.Calibrate(trtdir,pd.first,SubLev(m_options,2),&
TRT.data[
pt.first]);
868 for (std::pair<const std::string, BDmodule>& pl : pd.second.l) {
870 if(
Layer.Skip())
break;
871 if(
Layer.HasKey(pl.first)){
872 laydir =
Layer.Calibrate(detdir,pl.first,SubLev(m_options,3),&
Detector.data[pd.first]);
873 if (
Layer.printt0) t0calfile << Form(
"%i %i -1 -1 -1 : %e %e",
Layer.data[pl.first].det,
Layer.data[pl.first].lay,
Layer.data[pl.first].t0,
Layer.data[pl.first].t0err) << std::endl;
874 if (
Layer.printrt) rtcalfile << Form(
"%i %i -1 -1 -1 : %i %e %e %e %e",
Layer.data[pl.first].det,
Layer.data[pl.first].lay,rtint,
Layer.data[pl.first].rtpar[0],
Layer.data[pl.first].rtpar[1],
Layer.data[pl.first].rtpar[2],
Layer.data[pl.first].rtpar[3]) << std::endl;
875 if (!m_SplitBarrel) {
876 if (
Layer.printt0) t0calfile << Form(
"%i %i -1 -1 -1 : %e %e",-
Layer.data[pl.first].det,
Layer.data[pl.first].lay,
Layer.data[pl.first].t0,
Layer.data[pl.first].t0err) << std::endl;
877 if (
Layer.printrt) rtcalfile << Form(
"%i %i -1 -1 -1 : %i %e %e %e %e",-
Layer.data[pl.first].det,
Layer.data[pl.first].lay,rtint,
Layer.data[pl.first].rtpar[0],
Layer.data[pl.first].rtpar[1],
Layer.data[pl.first].rtpar[2],
Layer.data[pl.first].rtpar[3]) << std::endl;
880 for (std::pair<const std::string, BDboard>& pm : pl.second.m) {
882 if(Module.Skip())
break;
883 if(Module.HasKey(pm.first)){
884 moddir = Module.Calibrate(laydir,pm.first,SubLev(m_options,4),&
Layer.data[pl.first]);
885 if (Module.printt0) t0calfile << Form(
"%i %i %i -1 -1 : %e %e",Module.data[pm.first].det,Module.data[pm.first].lay,Module.data[pm.first].mod,Module.data[pm.first].t0,Module.data[pm.first].t0err) << std::endl;
886 if (Module.printrt) rtcalfile << Form(
"%i %i %i -1 -1 : %i %e %e %e %e",Module.data[pm.first].det,Module.data[pm.first].lay,Module.data[pm.first].mod,rtint,Module.data[pm.first].rtpar[0],Module.data[pm.first].rtpar[1],Module.data[pm.first].rtpar[2],Module.data[pm.first].rtpar[3]) << std::endl;
888 for (std::pair<const std::string, BDchip>&
pb : pm.second.b) {
890 if(Board.Skip())
break;
891 if(Board.HasKey(
pb.first)){
892 brddir = Board.Calibrate(moddir,
pb.first,SubLev(m_options,5),&Module.data[pm.first]);
894 for (std::pair<const std::string, BDstraw>&
pc :
pb.second.c) {
896 if(Chip.Skip())
break;
897 if(Chip.HasKey(
pc.first)){
898 chpdir = Chip.Calibrate(brddir,
pc.first,SubLev(m_options,6),&Board.data[
pb.first]);
900 for (std::pair<const std::string, BDzero>& ps :
pc.second.s) {
902 if(
Straw.Skip())
break;
903 if(
Straw.HasKey(ps.first)){
904 Straw.Calibrate(chpdir,ps.first,SubLev(m_options,7),&Chip.data[
pc.first]);
905 if (
Straw.printt0) t0calfile << Form(
"%i %i %i %i %i : %e %e",
Straw.data[ps.first].det,
Straw.data[ps.first].lay,
Straw.data[ps.first].mod,
Straw.data[ps.first].stl,
Straw.data[ps.first].stw,
Straw.data[ps.first].t0,
Straw.data[ps.first].t0err) << std::endl;
906 if (
Straw.printrt) rtcalfile << Form(
"%i %i %i %i %i : %i %e %e %e %e",
Straw.data[ps.first].det,
Straw.data[ps.first].lay,
Straw.data[ps.first].mod,
Straw.data[ps.first].stl,
Straw.data[ps.first].stw,rtint,
Straw.data[ps.first].rtpar[0],
Straw.data[ps.first].rtpar[1],
Straw.data[ps.first].rtpar[2],
Straw.data[ps.first].rtpar[3]) << std::endl;
918 std::map<std::string,TDirectory*> dirArmap;
928 for (std::pair<const std::string, BDdetector>&
pt : m_trt.t) {
930 if (TRT_Ar.Skip())
break;
931 if (TRT_Ar.HasKey(
pt.first)) {
932 trtdirAr = TRT_Ar.Calibrate(
histfile.get(),
pt.first,SubLev(m_options,1),&startdata);
934 for (std::pair<const std::string, BDlayer>& pd :
pt.second.d) {
936 if(Detector_Ar.Skip())
break;
937 if(Detector_Ar.HasKey(pd.first)){
938 detdirAr = Detector_Ar.Calibrate(trtdirAr,pd.first,SubLev(m_options,2),&TRT_Ar.data[
pt.first]);
940 for (std::pair<const std::string, BDmodule>& pl : pd.second.l) {
942 if(Layer_Ar.Skip())
break;
943 if(Layer_Ar.HasKey(pl.first)){
944 laydirAr = Layer_Ar.Calibrate(detdirAr,pl.first,SubLev(m_options,3),&Detector_Ar.data[pd.first]);
947 for (std::pair<const std::string, BDboard>& pm : pl.second.m) {
949 if(Module_Ar.Skip())
break;
950 if(Module_Ar.HasKey(pm.first)){
951 moddirAr = Module_Ar.Calibrate(laydirAr,pm.first,SubLev(m_options,4),&Layer_Ar.data[pl.first]);
952 if (Module_Ar.printt0) t0calfile << Form(
"%i %i %i -1 -1 : %e %e",Module_Ar.data[pm.first].det,Module_Ar.data[pm.first].lay,Module_Ar.data[pm.first].mod,Module_Ar.data[pm.first].t0,Module_Ar.data[pm.first].t0err) << std::endl;
953 if (Layer_Ar.printrt) rtcalfile << Form(
"%i %i %i -1 -1 : %i %e %e %e %e",Module_Ar.data[pm.first].det,Module_Ar.data[pm.first].lay,Module_Ar.data[pm.first].mod,rtint,Module_Ar.data[pm.first].rtpar[0],Module_Ar.data[pm.first].rtpar[1],Module_Ar.data[pm.first].rtpar[2],Module_Ar.data[pm.first].rtpar[3]) << std::endl;
955 for (std::pair<const std::string, BDchip>&
pb : pm.second.b) {
956 if(Board_Ar.Skip())
break;
957 if(Board_Ar.HasKey(
pb.first)){
958 brddirAr = Board_Ar.Calibrate(moddirAr,
pb.first,SubLev(m_options,5),&Module_Ar.data[pm.first]);
960 for (std::pair<const std::string, BDstraw>&
pc :
pb.second.c) {
962 if(Chip_Ar.Skip())
break;
963 if(Chip_Ar.HasKey(
pc.first)){
964 chpdirAr = Chip_Ar.Calibrate(brddirAr,
pc.first,SubLev(m_options,6),&Board_Ar.data[
pb.first]);
966 for (std::pair<const std::string, BDzero>& ps :
pc.second.s) {
968 if(Straw_Ar.Skip())
break;
969 if(Straw_Ar.HasKey(ps.first)){
970 Straw_Ar.Calibrate(chpdirAr,ps.first,SubLev(m_options,7),&Chip_Ar.data[
pc.first]);
971 if (Straw_Ar.printt0) t0calfile << Form(
"%i %i %i %i %i : %e %e",Straw_Ar.data[ps.first].det,Straw_Ar.data[ps.first].lay,Straw_Ar.data[ps.first].mod,Straw_Ar.data[ps.first].stl,Straw_Ar.data[ps.first].stw,Straw_Ar.data[ps.first].t0,Straw_Ar.data[ps.first].t0err) << std::endl;
972 if (Straw_Ar.printrt) rtcalfile << Form(
"%i %i %i %i %i : %i %e %e %e %e",Straw_Ar.data[ps.first].det,Straw_Ar.data[ps.first].lay,Straw_Ar.data[ps.first].mod,Straw_Ar.data[ps.first].stl,Straw_Ar.data[ps.first].stw,rtint,Straw_Ar.data[ps.first].rtpar[0],Straw_Ar.data[ps.first].rtpar[1],Straw_Ar.data[ps.first].rtpar[2],Straw_Ar.data[ps.first].rtpar[3]) << std::endl;
991 if (!Module.bequiet) Module.WriteStat(
histfile.get());
992 if (!Board.bequiet) Board.WriteStat(
histfile.get());
998 Layer.DumpConstants();
999 Module.DumpConstants();
1000 Board.DumpConstants();
1001 Chip.DumpConstants();
1002 Straw.DumpConstants();
1005 binrtcalfile.close();
1011 if (!TRT_Ar.bequiet) TRT_Ar.WriteStat(
histfile.get());
1012 if (!Detector_Ar.bequiet) Detector_Ar.WriteStat(
histfile.get());
1013 if (!Layer_Ar.bequiet) Layer_Ar.WriteStat(
histfile.get());
1014 if (!Module_Ar.bequiet) Module_Ar.WriteStat(
histfile.get());
1015 if (!Board_Ar.bequiet) Board_Ar.WriteStat(
histfile.get());
1017 Straw_Ar.WriteStat(
histfile.get());
1019 TRT_Ar.DumpConstants();
1020 Detector_Ar.DumpConstants();
1021 Layer_Ar.DumpConstants();
1022 Module_Ar.DumpConstants();
1023 Board_Ar.DumpConstants();
1024 Chip_Ar.DumpConstants();
1025 Straw_Ar.DumpConstants();