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
316 int nTRThist=0, ndethist=0, nlayhist=0, nmodhist=0, nbrdhist=0, nchphist=0, nstwhist=0;
317 int nTRThistAr=0, ndethistAr=0, nlayhistAr=0, nmodhistAr=0, nbrdhistAr=0, nchphistAr=0, nstwhistAr=0;
320 std::string
infile=m_hittuple;
321 std::string
outfile=
"calibout";
323 std::string detname=
"Detector";
324 std::string layname=
"Layer";
325 if (!m_SplitBarrel) {
326 detname=
"WholeBarrel";
327 layname=
"WholeBarrelLayer";
331 Calibrator TRT(0,
"TRT",m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
333 Calibrator Layer(2,layname.data(),m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
334 Calibrator Module(3,
"Module",m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
335 Calibrator Board(4,
"Board",m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
336 Calibrator Chip(5,
"Chip",m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
337 Calibrator Straw(6,
"Straw",m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
341 std::map<std::string,Calibrator*> calibrators;
342 calibrators[
"TRT"]=&
TRT;
344 calibrators[
"Layer"]=&
Layer;
345 calibrators[
"Module"]=&Module;
346 calibrators[
"Board"]=&Board;
347 calibrators[
"Chip"]=&Chip;
348 calibrators[
"Straw"]=&
Straw;
351 if(m_calsub!=
"user"){
352 m_doRt=m_config[m_calsub].CalibrateRt;
353 m_doT0=m_config[m_calsub].CalibrateT0;
354 m_doRes=m_config[m_calsub].FitResidual;
355 m_beQuiet=m_config[m_calsub].NoHistograms;
356 m_doOutPrint=m_config[m_calsub].PrintT0Out;
357 m_doRtPrint=m_config[m_calsub].PrintRtOut;
358 m_doLogPrint=m_config[m_calsub].PrintLog;
362 for (
const std::string&
s : m_doRt) calibrators[
s]->dort=
true;
363 for (
const std::string&
s : m_doT0) calibrators[
s]->dot0=
true;
364 for (
const std::string&
s : m_doRes) calibrators[
s]->dores=
true;
365 for (
const std::string&
s : m_beQuiet) calibrators[
s]->bequiet=
true;
366 for (
const std::string&
s : m_doOutPrint) calibrators[
s]->printt0=
true;
367 for (
const std::string&
s : m_doRtPrint) calibrators[
s]->printrt=
true;
368 for (
const std::string&
s : m_doLogPrint) calibrators[
s]->printlog=
true;
369 for (
const std::string&
s : m_useBoardRef) calibrators[
s]->usebref=
true;
370 for (std::pair<const std::string, Calibrator*>&
p : calibrators) {
372 calib->usep0=m_useP0;
373 calib->floatp3=m_floatP3;
374 calib->useshortstraws=m_DoShortStrawCorrection;
376 if (m_doRt.size()==0)
calib->nort=
true;
377 if (m_doT0.size()==0)
calib->not0=
true;
379 std::set<int> selset;
380 GetSubLevels(m_selstring,
calib->level+1,&selset);
382 calib->selection = selset;
387 Calibrator TRT_Ar (0,
"TRT_Ar" ,m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
388 Calibrator Detector_Ar(1,
"Detector_Ar",m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
389 Calibrator Layer_Ar (2,
"Layer_Ar" ,m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
390 Calibrator Module_Ar (3,
"Module_Ar" ,m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
391 Calibrator Board_Ar (4,
"Board_Ar" ,m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
392 Calibrator Chip_Ar (5,
"Chip_Ar" ,m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
393 Calibrator Straw_Ar (6,
"Straw_Ar" ,m_mint0,m_minrt,m_rtrel,m_rtbinning,m_t0offset);
396 std::map<std::string,Calibrator*> calibratorsAr;
397 calibratorsAr[
"TRT"] =&TRT_Ar;
398 calibratorsAr[
"Detector"] =&Detector_Ar;
399 calibratorsAr[
"Layer"] =&Layer_Ar;
400 calibratorsAr[
"Module"] =&Module_Ar;
401 calibratorsAr[
"Board"] =&Board_Ar;
402 calibratorsAr[
"Chip"] =&Chip_Ar;
403 calibratorsAr[
"Straw"] =&Straw_Ar;
406 for (
const std::string&
s : m_doRt) calibratorsAr[
s]->dort=
true;
407 for (
const std::string&
s : m_doT0) calibratorsAr[
s]->dot0=
true;
408 for (
const std::string&
s : m_doRes) calibratorsAr[
s]->dores=
true;
409 for (
const std::string&
s : m_beQuiet) calibratorsAr[
s]->bequiet=
true;
410 for (
const std::string&
s : m_doOutPrint) calibratorsAr[
s]->printt0=
true;
411 for (
const std::string&
s : m_doRtPrint) calibratorsAr[
s]->printrt=
true;
412 for (
const std::string&
s : m_doLogPrint) calibratorsAr[
s]->printlog=
true;
413 for (
const std::string&
s : m_useBoardRef) calibratorsAr[
s]->usebref=
true;
414 for (std::pair<const std::string, Calibrator*>&
p : calibratorsAr) {
416 calib->usep0=m_useP0;
417 calib->floatp3=m_floatP3;
418 calib->useshortstraws=m_DoShortStrawCorrection;
420 if (m_doRt.size()==0)
calib->nort=
true;
421 if (m_doT0.size()==0)
calib->not0=
true;
423 std::set<int> selset;
424 GetSubLevels(m_selstring,
calib->level+1,&selset);
426 calib->selection = selset;
432 m_options =
'_' +
TRT.GetOptString() +
'_' +
Detector.GetOptString() +
'_' +
Layer.GetOptString() +
'_' + Module.GetOptString() +
'_' + Board.GetOptString() +
'_' + Chip.GetOptString() +
'_' +
Straw.GetOptString();
433 if(m_calsub!=
"user") m_selstring =
'_' +
TRT.GetSelString() +
'_' +
Detector.GetSelString() +
'_' +
Layer.GetSelString() +
'_' + Module.GetSelString() +
'_' + Board.GetSelString() +
'_' + Chip.GetSelString() +
'_' +
Straw.GetSelString();
442 ATH_MSG_INFO(
"MIN STATISTICS : RT=" << m_minrt <<
", T0=" << m_mint0 );
463 ATH_MSG_INFO(
"MIN STATISTICS : RT=" << m_minrt <<
", T0=" << m_mint0 );
476 int rbrd, rchp, rdet, dum;
478 std::map<std::string,float> reft0map;
479 std::ifstream t0ref(
"finedelays.txt",std::ios::in);
480 if(t0ref.is_open())
ATH_MSG_INFO(
" Opened finedelays.txt ");
481 for(
int iref=0;iref<208;iref++){
482 t0ref >> rbrd >> rchp >> rdet >> dum >> rt0;
483 reft0map[std::string(Form(
"_%i_%i_%i",rdet,rbrd,rchp))]=rt0;
490 bool isdines = (m_rtrel.value()).
find(
"dines")!=std::string::npos;
491 bool isbinned = (m_rtrel.value()).
find(
"binned")!=std::string::npos;
493 if (isdines) rtint=2;
494 else if (isbinned) rtint=1;
499 std::map<std::string,epdata> ephasemap;
502 std::unique_ptr<TFile>
histfile(TFile::Open(
"calibout.root",
"RECREATE"));
511 std::ifstream
myFile (
infile.data(), std::ios::in | std::ios::binary);
520 myFile.read (
reinterpret_cast<char*
>(&npop),
sizeof(
int));
522 int* chist=
new int[2*npop+2];
524 if (npop>0)
myFile.read (
reinterpret_cast<char*
>(chist+2),
sizeof(
int)*2*npop);
526 myFile.read (
reinterpret_cast<char*
>(&isid),
sizeof(
int));
535 m_neighbourSvc->getChip(
ident,chip);
536 if(abs(m_TRTID->barrel_ec(
ident))<2){
537 board=m_neighbourSvc->chipToBoardBarrel(chip,m_TRTID->layer_or_wheel(
ident));
546 if (m_SplitBarrel) hitdata.
det=(
int)m_TRTID->barrel_ec(
ident);
547 else hitdata.
det=abs((
int)m_TRTID->barrel_ec(
ident));
548 if(hitdata.
det!=1 && hitdata.
det!=-1 && hitdata.
det!=2 && hitdata.
det!=-2) {
553 if( (hitdata.
det==1 || hitdata.
det==-1) && (hitdata.
lay<0 || hitdata.
lay>2) ) {
556 }
else if( (hitdata.
det==2 || hitdata.
det==-2) && (hitdata.
lay<0 || hitdata.
lay>13) ) {
561 if( hitdata.
mod < 0 || hitdata.
mod > 31 ) {
569 if( hitdata.
stl < 0 || hitdata.
stl > m_TRTID->straw_layer_max(
ident) ) {
575 if( hitdata.
stw < 0 || hitdata.
stw > m_TRTID->straw_max(
ident) ) {
584 std::vector<float> rvalues ;
585 const float defaultpcal[] = {0,0,0,0} ;
588 pcal = rtr ? rtr->
cal() : defaultpcal ;
593 pcal = rtr ? rtr->
cal() : defaultpcal ;
595 hitdata.
rtpar[0]=pcal[0];
596 hitdata.
rtpar[1]=pcal[1];
597 hitdata.
rtpar[2]=pcal[2];
598 hitdata.
rtpar[3]=pcal[3];
602 MakeBDKeys(hitdata.
det, hitdata.
lay, hitdata.
mod, hitdata.
brd, hitdata.
chp, hitdata.
sid);
605 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;
606 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;
617 hitdata.
t0=m_trtcaldbTool->getT0(
ident);
619 strawelement = m_trtmanager->getElement(
ident);
620 if(hitdata.
det==1 || hitdata.
det==-1) {
633 if ( m_DoShortStrawCorrection && hitdata.
lay==0 && hitdata.
stl<9){
635 double t0test1=m_trtcaldbTool->getT0((
Identifier)301998432);
636 double t0test2=m_trtcaldbTool->getT0((
Identifier)302001504);
637 if (t0test1 != t0test2) hitdata.
t0+=0.75;
641 hitdata.
rt0=reft0map[std::string(Form(
"_%i_%i_%i",hitdata.
det,hitdata.
brd,hitdata.
chp))];
644 int isArgonStraw = 0;
653 nTRThist +=
TRT.AddHit(m_Tkey,hitdata,chist,
true);
655 if (m_SplitBarrel) ndethist +=
Detector.AddHit(m_Dkey,hitdata,chist,
true);
656 else ndethist +=
Detector.AddHit(m_Dkey_acc,hitdata,chist,
true);
657 if (
Layer.CheckSelection(hitdata.
lay)) {
658 if (m_SplitBarrel) nlayhist +=
Layer.AddHit(m_Lkey,hitdata,chist,
true);
659 else { nlayhist +=
Layer.AddHit(m_Lkey_acc,hitdata,chist,
true);
continue;}
660 if (Module.CheckSelection(hitdata.
mod)) {
661 nmodhist += Module.AddHit(m_Mkey,hitdata,chist,
true);
662 if (Board.CheckSelection(hitdata.
brd)) {
663 nbrdhist += Board.AddHit(m_Bkey,hitdata,chist,
true);
664 if (Chip.CheckSelection(hitdata.
chp)) {
665 nchphist += Chip.AddHit(m_Ckey,hitdata,chist,
true);
666 if (
Straw.CheckSelection(hitdata.
stw))
667 nstwhist +=
Straw.AddHit(m_Skey,hitdata,chist,
true);
676 nTRThist +=
TRT.AddHit(m_Tkey,hitdata,chist,
true);
678 if (m_SplitBarrel) ndethist +=
Detector.AddHit(m_Dkey,hitdata,chist,
true);
679 else ndethist +=
Detector.AddHit(m_Dkey_acc,hitdata,chist,
true);
680 if (
Layer.CheckSelection(hitdata.
lay)) {
681 if (m_SplitBarrel) nlayhist +=
Layer.AddHit(m_Lkey,hitdata,chist,
true);
682 else { nlayhist +=
Layer.AddHit(m_Lkey_acc,hitdata,chist,
true);
continue;}
683 if (Module.CheckSelection(hitdata.
mod)) {
684 nmodhist += Module.AddHit(m_Mkey,hitdata,chist,
true);
685 if (Board.CheckSelection(hitdata.
brd)) {
686 nbrdhist += Board.AddHit(m_Bkey,hitdata,chist,
true);
687 if (Chip.CheckSelection(hitdata.
chp)) {
688 nchphist += Chip.AddHit(m_Ckey,hitdata,chist,
true);
689 if (
Straw.CheckSelection(hitdata.
stw)) {
690 nstwhist +=
Straw.AddHit(m_Skey,hitdata,chist,
true);
699 nTRThistAr += TRT_Ar.AddHit(m_Tkey,hitdata,chist,
true);
700 if (Detector_Ar.CheckSelection(hitdata.
det)) {
701 if (m_SplitBarrel) ndethistAr += Detector_Ar.AddHit(m_Dkey,hitdata,chist,
true);
702 else ndethistAr += Detector_Ar.AddHit(m_Dkey_acc,hitdata,chist,
true);
703 if (Layer_Ar.CheckSelection(hitdata.
lay)) {
704 if (m_SplitBarrel) nlayhistAr += Layer_Ar.AddHit(m_Lkey,hitdata,chist,
true);
705 else { nlayhistAr += Layer_Ar.AddHit(m_Lkey_acc,hitdata,chist,
true);
continue;}
706 if (Module_Ar.CheckSelection(hitdata.
mod)) {
707 nmodhistAr += Module_Ar.AddHit(m_Mkey,hitdata,chist,
true);
708 if (Board_Ar.CheckSelection(hitdata.
brd)) {
709 nbrdhistAr += Board_Ar.AddHit(m_Bkey,hitdata,chist,
true);
710 if (Chip_Ar.CheckSelection(hitdata.
chp)) {
711 nchphistAr += Chip_Ar.AddHit(m_Ckey,hitdata,chist,
true);
712 if (Straw_Ar.CheckSelection(hitdata.
stw)) {
713 nstwhistAr += Straw_Ar.AddHit(m_Skey,hitdata,chist,
true);
724 if ((ihist%10000==9999) | (ihist==m_nevents-1)){
725 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) );
726 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) );
733 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) );
734 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) );
736 TRT.UpdateOldConstants();
738 Layer.UpdateOldConstants();
739 Module.UpdateOldConstants();
740 Board.UpdateOldConstants();
741 Chip.UpdateOldConstants();
744 TRT_Ar.UpdateOldConstants();
745 Detector_Ar.UpdateOldConstants();
746 Layer_Ar.UpdateOldConstants();
747 Module_Ar.UpdateOldConstants();
748 Board_Ar.UpdateOldConstants();
749 Chip_Ar.UpdateOldConstants();
781 caldata startdata(
true,55,100);
784 std::map<std::string,TDirectory*> dirmap;
799 for (std::pair<const std::string, BDdetector>&
pt : m_trt.t) {
801 if (
TRT.Skip())
break;
802 if (
TRT.HasKey(
pt.first)) {
803 trtdir =
TRT.Calibrate(
histfile.get(),
pt.first,SubLev(m_options,1),&startdata);
804 if (
TRT.printt0) t0calfile << Form(
"-3 -1 -1 -1 -1 : %e %e",
TRT.data[
pt.first].t0,
TRT.data[
pt.first].t0err) << std::endl;
805 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;
807 for (std::pair<const std::string, BDlayer>&
pd :
pt.second.d) {
811 detdir =
Detector.Calibrate(trtdir,
pd.first,SubLev(m_options,2),&
TRT.data[
pt.first]);
813 for (std::pair<const std::string, BDmodule>& pl :
pd.second.l) {
815 if(
Layer.Skip())
break;
816 if(
Layer.HasKey(pl.first)){
817 laydir =
Layer.Calibrate(detdir,pl.first,SubLev(m_options,3),&
Detector.data[
pd.first]);
818 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;
819 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;
820 if (!m_SplitBarrel) {
821 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;
822 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;
825 for (std::pair<const std::string, BDboard>& pm : pl.second.m) {
827 if(Module.Skip())
break;
828 if(Module.HasKey(pm.first)){
829 moddir = Module.Calibrate(laydir,pm.first,SubLev(m_options,4),&
Layer.data[pl.first]);
830 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;
831 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;
833 for (std::pair<const std::string, BDchip>&
pb : pm.second.b) {
835 if(Board.Skip())
break;
836 if(Board.HasKey(
pb.first)){
837 brddir = Board.Calibrate(moddir,
pb.first,SubLev(m_options,5),&Module.data[pm.first]);
839 for (std::pair<const std::string, BDstraw>&
pc :
pb.second.c) {
841 if(Chip.Skip())
break;
842 if(Chip.HasKey(
pc.first)){
843 chpdir = Chip.Calibrate(brddir,
pc.first,SubLev(m_options,6),&Board.data[
pb.first]);
845 for (std::pair<const std::string, BDzero>&
ps :
pc.second.s) {
847 if(
Straw.Skip())
break;
849 Straw.Calibrate(chpdir,
ps.first,SubLev(m_options,7),&Chip.data[
pc.first]);
851 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;
863 std::map<std::string,TDirectory*> dirArmap;
873 for (std::pair<const std::string, BDdetector>&
pt : m_trt.t) {
875 if (TRT_Ar.Skip())
break;
876 if (TRT_Ar.HasKey(
pt.first)) {
877 trtdirAr = TRT_Ar.Calibrate(
histfile.get(),
pt.first,SubLev(m_options,1),&startdata);
879 for (std::pair<const std::string, BDlayer>&
pd :
pt.second.d) {
881 if(Detector_Ar.Skip())
break;
882 if(Detector_Ar.HasKey(
pd.first)){
883 detdirAr = Detector_Ar.Calibrate(trtdirAr,
pd.first,SubLev(m_options,2),&TRT_Ar.data[
pt.first]);
885 for (std::pair<const std::string, BDmodule>& pl :
pd.second.l) {
887 if(Layer_Ar.Skip())
break;
888 if(Layer_Ar.HasKey(pl.first)){
889 laydirAr = Layer_Ar.Calibrate(detdirAr,pl.first,SubLev(m_options,3),&Detector_Ar.data[
pd.first]);
892 for (std::pair<const std::string, BDboard>& pm : pl.second.m) {
894 if(Module_Ar.Skip())
break;
895 if(Module_Ar.HasKey(pm.first)){
896 moddirAr = Module_Ar.Calibrate(laydirAr,pm.first,SubLev(m_options,4),&Layer_Ar.data[pl.first]);
897 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;
898 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;
900 for (std::pair<const std::string, BDchip>&
pb : pm.second.b) {
901 if(Board_Ar.Skip())
break;
902 if(Board_Ar.HasKey(
pb.first)){
903 brddirAr = Board_Ar.Calibrate(moddirAr,
pb.first,SubLev(m_options,5),&Module_Ar.data[pm.first]);
905 for (std::pair<const std::string, BDstraw>&
pc :
pb.second.c) {
907 if(Chip_Ar.Skip())
break;
908 if(Chip_Ar.HasKey(
pc.first)){
909 chpdirAr = Chip_Ar.Calibrate(brddirAr,
pc.first,SubLev(m_options,6),&Board_Ar.data[
pb.first]);
911 for (std::pair<const std::string, BDzero>&
ps :
pc.second.s) {
913 if(Straw_Ar.Skip())
break;
914 if(Straw_Ar.HasKey(
ps.first)){
915 Straw_Ar.Calibrate(chpdirAr,
ps.first,SubLev(m_options,7),&Chip_Ar.data[
pc.first]);
916 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;
917 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;
936 if (!Module.bequiet) Module.WriteStat(
histfile.get());
937 if (!Board.bequiet) Board.WriteStat(
histfile.get());
943 Layer.DumpConstants();
944 Module.DumpConstants();
945 Board.DumpConstants();
946 Chip.DumpConstants();
947 Straw.DumpConstants();
950 binrtcalfile.close();
956 if (!TRT_Ar.bequiet) TRT_Ar.WriteStat(
histfile.get());
957 if (!Detector_Ar.bequiet) Detector_Ar.WriteStat(
histfile.get());
958 if (!Layer_Ar.bequiet) Layer_Ar.WriteStat(
histfile.get());
959 if (!Module_Ar.bequiet) Module_Ar.WriteStat(
histfile.get());
960 if (!Board_Ar.bequiet) Board_Ar.WriteStat(
histfile.get());
964 TRT_Ar.DumpConstants();
965 Detector_Ar.DumpConstants();
966 Layer_Ar.DumpConstants();
967 Module_Ar.DumpConstants();
968 Board_Ar.DumpConstants();
969 Chip_Ar.DumpConstants();
970 Straw_Ar.DumpConstants();