39 #include "TPaveStats.h" 51 SiStripApvGainsValue() :
cond::payloadInspector::Histogram1D<
SiStripApvGain>(
"SiStripApv Gains values",
52 "SiStripApv Gains values", 200,0.0,2.0){
56 bool fill(
const std::vector<std::tuple<cond::Time_t,cond::Hash> >& iovs )
override{
57 for (
auto const & iov: iovs) {
61 std::vector<uint32_t> detid;
62 payload->getDetIds(detid);
64 for (
const auto &
d : detid) {
66 for(
int it=0;it<range.second-range.first;it++){
88 SiStripApvBarrelGainsByLayer() :
cond::payloadInspector::Histogram1D<
SiStripApvGain>(
"SiStripApv Gains averages by Barrel layer",
89 "Barrel layer (0-3: TIB), (4-9: TOB)",10,0,10,
"average SiStripApv Gain"){
90 Base::setSingleIov(
true );
93 bool fill(
const std::vector<std::tuple<cond::Time_t,cond::Hash> >& iovs )
override{
94 for (
auto const & iov: iovs) {
95 std::shared_ptr<SiStripApvGain> payload = Base::fetchPayload( std::get<1>(iov) );
100 std::vector<uint32_t> detid;
101 payload->getDetIds(detid);
103 std::map<int,std::pair<float,float> > sumOfGainsByLayer;
105 for (
const auto &
d : detid) {
119 for(
int it=0;it<range.second-range.first;it++){
120 sumOfGainsByLayer[layer].first+=payload->getApvGain(it,range);
121 sumOfGainsByLayer[layer].second+=1.;
126 for (
auto&
data : sumOfGainsByLayer){
128 fillWithBinAndValue(
data.first-1,(
data.second.first/
data.second.second));
144 SiStripApvAbsoluteBarrelGainsByLayer() :
cond::payloadInspector::Histogram2D<
SiStripApvGain>(
"SiStripApv Gains by Barrel layer",
"Barrel layer (0-3: TIB), (4-9: TOB)", 10, 0, 10,
"SiStripApv Gain", 200, 0.0, 2.0){
145 Base::setSingleIov(
true);
149 bool fill (
const std::vector< std::tuple<cond::Time_t,cond::Hash> >& iovs)
override{
150 for (
auto const& iov: iovs){
151 std::shared_ptr<SiStripApvGain> payload = Base::fetchPayload (std::get<1>(iov));
156 std::vector<uint32_t> detid;
157 payload->getDetIds(detid);
158 for (
const auto &
d : detid){
160 if (subid!=3 && subid!=5)
continue;
163 for (
int it=0;it<range.second-range.first;it++){
164 float gain = payload->getApvGain(it, range);
165 fillWithValue(static_cast<float>((subid == 5) ? tTopo.
tobLayer(
d)+3 : tTopo.
tibLayer(
d)-1),
166 (gain > 2.0)?2.0:
gain);
185 SiStripApvEndcapMinusGainsByDisk() :
cond::payloadInspector::Histogram1D<
SiStripApvGain>(
"SiStripApv Gains averages by Endcap (minus) disk",
186 "Endcap (minus) disk (0-2: TID), (3-11: TEC)",12,0,12,
"average SiStripApv Gain"){
187 Base::setSingleIov(
true );
190 bool fill(
const std::vector<std::tuple<cond::Time_t,cond::Hash> >& iovs )
override{
191 for (
auto const & iov: iovs) {
192 std::shared_ptr<SiStripApvGain> payload = Base::fetchPayload( std::get<1>(iov) );
197 std::vector<uint32_t> detid;
198 payload->getDetIds(detid);
200 std::map<int,std::pair<float,float> > sumOfGainsByDisk;
202 for (
const auto &
d : detid) {
220 if(side!=1)
continue;
223 for(
int it=0;it<range.second-range.first;it++){
224 sumOfGainsByDisk[disk].first+=payload->getApvGain(it,range);
225 sumOfGainsByDisk[disk].second+=1.;
230 for (
auto&
data : sumOfGainsByDisk){
231 fillWithBinAndValue(
data.first-1,(
data.second.first/
data.second.second));
249 SiStripApvEndcapPlusGainsByDisk() :
cond::payloadInspector::Histogram1D<
SiStripApvGain>(
"SiStripApv Gains averages by Endcap (plus) disk",
250 "Endcap (plus) disk (0-2: TID), (3-11: TEC)",12,0,12,
"average SiStripApv Gain"){
251 Base::setSingleIov(
true );
254 bool fill(
const std::vector<std::tuple<cond::Time_t,cond::Hash> >& iovs )
override{
255 for (
auto const & iov: iovs) {
256 std::shared_ptr<SiStripApvGain> payload = Base::fetchPayload( std::get<1>(iov) );
261 std::vector<uint32_t> detid;
262 payload->getDetIds(detid);
264 std::map<int,std::pair<float,float> > sumOfGainsByDisk;
266 for (
const auto &
d : detid) {
284 if(side!=2)
continue;
287 for(
int it=0;it<range.second-range.first;it++){
288 sumOfGainsByDisk[disk].first+=payload->getApvGain(it,range);
289 sumOfGainsByDisk[disk].second+=1.;
294 for (
auto&
data : sumOfGainsByDisk){
295 fillWithBinAndValue(
data.first-1,(
data.second.first/
data.second.second));
310 SiStripApvAbsoluteEndcapMinusGainsByDisk() :
cond::payloadInspector::Histogram2D<
SiStripApvGain>(
311 "SiStripApv Gains averages by Endcap (minus) disk",
312 "Endcap (minus) disk (0-2: TID), (3-11: TEC)",12,0,12,
313 "SiStripApv Gain", 200, 0.0, 2.0){
314 Base::setSingleIov(
true);
317 bool fill (
const std::vector< std::tuple<cond::Time_t,cond::Hash> >& iovs)
override{
318 for (
auto const& iov: iovs) {
319 std::shared_ptr<SiStripApvGain> payload = Base::fetchPayload( std::get<1>(iov) );
324 std::vector<uint32_t> detid;
325 payload->getDetIds(detid);
327 for (
const auto &
d : detid){
338 if (side!=1)
continue;
340 for (
int it=0;it<range.second-range.first;it++){
341 float gain = payload->getApvGain(it, range);
342 fillWithValue((
float) disk-1, (gain>2.0)?2.0:gain);
357 SiStripApvAbsoluteEndcapPlusGainsByDisk() :
cond::payloadInspector::Histogram2D<
SiStripApvGain>(
358 "SiStripApv Gains averages by Endcap (plus) disk",
359 "Endcap (plus) disk (0-2: TID), (3-11: TEC)",12,0,12,
360 "SiStripApv Gain", 200, 0.0, 2.0){
361 Base::setSingleIov(
true);
364 bool fill (
const std::vector< std::tuple<cond::Time_t,cond::Hash> >& iovs)
override{
365 for (
auto const& iov: iovs) {
366 std::shared_ptr<SiStripApvGain> payload = Base::fetchPayload( std::get<1>(iov) );
371 std::vector<uint32_t> detid;
372 payload->getDetIds(detid);
374 for (
const auto &
d : detid){
385 if (side!=2)
continue;
387 for (
int it=0;it<range.second-range.first;it++){
388 float gain = payload->getApvGain(it, range);
389 fillWithValue((
float) disk-1, (gain>2.0)?2.0:gain);
403 SiStripApvGainsAverageTrackerMap() :
cond::payloadInspector::PlotImage<
SiStripApvGain>(
"Tracker Map of average SiStripGains" ){
404 setSingleIov(
true );
407 bool fill(
const std::vector<std::tuple<cond::Time_t,cond::Hash> >& iovs )
override{
408 auto iov = iovs.front();
409 std::shared_ptr<SiStripApvGain> payload = fetchPayload( std::get<1>(iov) );
411 std::string titleMap =
"SiStrip APV Gain average per module (payload : "+std::get<1>(iov)+
")";
413 std::unique_ptr<TrackerMap> tmap = std::unique_ptr<TrackerMap>(
new TrackerMap(
"SiStripApvGains"));
414 tmap->setTitle(titleMap);
417 std::vector<uint32_t> detid;
418 payload->getDetIds(detid);
420 std::map<uint32_t,float> store;
422 for (
const auto &
d : detid) {
425 float nAPVsPerModule=0.;
426 for(
int it=0;it<range.second-range.first;it++){
428 sumOfGains+=payload->getApvGain(it,range);
431 store[
d]=(sumOfGains/nAPVsPerModule);
432 tmap->fill(
d,(sumOfGains/nAPVsPerModule));
440 tmap->save(
true,range.first,range.second,
fileName);
451 SiStripApvGainsDefaultTrackerMap() :
cond::payloadInspector::PlotImage<
SiStripApvGain>(
"Tracker Map of SiStripGains to default" ){
452 setSingleIov(
true );
455 bool fill(
const std::vector<std::tuple<cond::Time_t,cond::Hash> >& iovs )
override{
456 auto iov = iovs.front();
457 std::shared_ptr<SiStripApvGain> payload = fetchPayload( std::get<1>(iov) );
459 std::unique_ptr<TrackerMap> tmap = std::unique_ptr<TrackerMap>(
new TrackerMap(
"SiStripApvGains"));
463 std::vector<uint32_t> detid;
464 payload->getDetIds(detid);
471 float G1default = 690./640.;
472 float G2default = 1.;
474 int totalG1DefaultAPVs=0;
475 int totalG2DefaultAPVs=0;
477 for (
const auto &
d : detid) {
480 float nAPVsPerModule=0.;
482 for(
int it=0;it<range.second-range.first;it++){
484 sumOfGains+=payload->getApvGain(it,range);
485 if( (payload->getApvGain(it,range))==G1default || (payload->getApvGain(it,range))==G2default) countDefaults++;
488 if(countDefaults>0.){
489 tmap->fill(
d,countDefaults);
491 if( std::fmod((sumOfGains/countDefaults),G1default)==0.){
492 totalG1DefaultAPVs+=countDefaults;
493 }
else if ( std::fmod((sumOfGains/countDefaults),G2default)==0.){
494 totalG2DefaultAPVs+=countDefaults;
501 std::string gainType = totalG1DefaultAPVs==0 ?
"G2 value (=1)" :
"G1 value (=690./640.)";
503 std::string titleMap =
"# of APVs/module w/ default "+gainType+
" (payload : "+std::get<1>(iov)+
")";
504 tmap->setTitle(titleMap);
518 SiStripApvGainsRatioWithPreviousIOVTrackerMap() :
cond::payloadInspector::PlotImage<
SiStripApvGain>(
"Tracker Map of ratio of SiStripGains with previous IOV" ){
519 setSingleIov(
false );
522 bool fill(
const std::vector<std::tuple<cond::Time_t,cond::Hash> >& iovs )
override{
524 std::vector<std::tuple<cond::Time_t,cond::Hash> > sorted_iovs = iovs;
527 std::sort(
begin(sorted_iovs),
end(sorted_iovs), [](
auto const &t1,
auto const &t2) {
528 return std::get<0>(t1) < std::get<0>(t2);
531 auto firstiov = sorted_iovs.front();
532 auto lastiov = sorted_iovs.back();
534 std::shared_ptr<SiStripApvGain> last_payload = fetchPayload( std::get<1>(lastiov) );
535 std::shared_ptr<SiStripApvGain> first_payload = fetchPayload( std::get<1>(firstiov) );
537 std::string titleMap =
"SiStrip APV Gain ratio per module average (IOV: ";
539 titleMap+=std::to_string(std::get<0>(firstiov));
541 titleMap+=std::to_string(std::get<0>(lastiov));
544 titleMap+=+
" "+std::to_string(nsigma)+
" std. dev. saturation";
546 std::unique_ptr<TrackerMap> tmap = std::unique_ptr<TrackerMap>(
new TrackerMap(
"SiStripApvGains"));
547 tmap->setTitle(titleMap);
550 std::map<uint32_t,float> lastmap,firstmap;
552 std::vector<uint32_t> detid;
553 last_payload->getDetIds(detid);
556 for (
const auto &
d : detid) {
560 for(
int it=0;it<range.second-range.first;it++){
562 Gain+=last_payload->getApvGain(it,range);
564 lastmap[
d]=(Gain/nAPV);
569 first_payload->getDetIds(detid);
572 for (
const auto &
d : detid) {
576 for(
int it=0;it<range.second-range.first;it++){
578 Gain+=first_payload->getApvGain(it,range);
580 firstmap[
d]=(Gain/nAPV);
584 std::map<uint32_t,float> cachedRatio;
585 for(
const auto &
d : detid){
586 float ratio = firstmap[
d]/lastmap[
d];
595 tmap->save(
true,range.first,range.second,
fileName);
601 typedef SiStripApvGainsRatioWithPreviousIOVTrackerMap<1> SiStripApvGainsAvgDeviationRatio1sigmaTrackerMap;
602 typedef SiStripApvGainsRatioWithPreviousIOVTrackerMap<2> SiStripApvGainsAvgDeviationRatio2sigmaTrackerMap;
603 typedef SiStripApvGainsRatioWithPreviousIOVTrackerMap<3> SiStripApvGainsAvgDeviationRatio3sigmaTrackerMap;
610 SiStripApvGainsRatioMaxDeviationWithPreviousIOVTrackerMap() :
cond::payloadInspector::PlotImage<
SiStripApvGain>(
"Tracker Map of ratio (for largest deviation) of SiStripGains with previous IOV" ){
611 setSingleIov(
false );
614 bool fill(
const std::vector<std::tuple<cond::Time_t,cond::Hash> >& iovs )
override{
616 std::vector<std::tuple<cond::Time_t,cond::Hash> > sorted_iovs = iovs;
619 std::sort(
begin(sorted_iovs),
end(sorted_iovs), [](
auto const &t1,
auto const &t2) {
620 return std::get<0>(t1) < std::get<0>(t2);
623 auto firstiov = sorted_iovs.front();
624 auto lastiov = sorted_iovs.back();
626 std::shared_ptr<SiStripApvGain> last_payload = fetchPayload( std::get<1>(lastiov) );
627 std::shared_ptr<SiStripApvGain> first_payload = fetchPayload( std::get<1>(firstiov) );
629 std::string titleMap =
"SiStrip APV Gain ratio for largest deviation per module (IOV: ";
631 titleMap+=std::to_string(std::get<0>(firstiov));
633 titleMap+=std::to_string(std::get<0>(lastiov));
636 titleMap+=+
" - "+std::to_string(nsigma)+
" std. dev. saturation";
638 std::unique_ptr<TrackerMap> tmap = std::unique_ptr<TrackerMap>(
new TrackerMap(
"SiStripApvGains"));
639 tmap->setTitle(titleMap);
642 std::map<std::pair<uint32_t,int>,
float> lastmap,firstmap;
644 std::vector<uint32_t> detid;
645 last_payload->getDetIds(detid);
648 for (
const auto &
d : detid) {
651 for(
int it=0;it<range.second-range.first;it++){
653 float Gain=last_payload->getApvGain(it,range);
654 std::pair<uint32_t,int>
index = std::make_pair(
d,nAPV);
661 first_payload->getDetIds(detid);
664 for (
const auto &
d : detid) {
667 for(
int it=0;it<range.second-range.first;it++){
669 float Gain=first_payload->getApvGain(it,range);
670 std::pair<uint32_t,int>
index = std::make_pair(
d,nAPV);
676 std::map<uint32_t,float> cachedRatio;
678 for(
const auto &item : firstmap ){
681 auto index = item.first;
682 auto mod = item.first.first;
686 if(cachedRatio[
mod]){
696 for (
const auto &element : cachedRatio){
697 tmap->fill(element.first,element.second);
706 tmap->save(
true,range.first,range.second,
fileName);
712 typedef SiStripApvGainsRatioMaxDeviationWithPreviousIOVTrackerMap<1> SiStripApvGainsMaxDeviationRatio1sigmaTrackerMap;
713 typedef SiStripApvGainsRatioMaxDeviationWithPreviousIOVTrackerMap<2> SiStripApvGainsMaxDeviationRatio2sigmaTrackerMap;
714 typedef SiStripApvGainsRatioMaxDeviationWithPreviousIOVTrackerMap<3> SiStripApvGainsMaxDeviationRatio3sigmaTrackerMap;
721 SiStripApvGainsMaximumTrackerMap() :
cond::payloadInspector::PlotImage<
SiStripApvGain>(
"Tracker Map of SiStripAPVGains (maximum per DetId)" ){
722 setSingleIov(
true );
725 bool fill(
const std::vector<std::tuple<cond::Time_t,cond::Hash> >& iovs )
override{
726 auto iov = iovs.front();
727 std::shared_ptr<SiStripApvGain> payload = fetchPayload( std::get<1>(iov) );
729 std::string titleMap =
"SiStrip APV Gain maximum per module (payload : "+std::get<1>(iov)+
")";
731 std::unique_ptr<TrackerMap> tmap = std::unique_ptr<TrackerMap>(
new TrackerMap(
"SiStripApvGains"));
732 tmap->setTitle(titleMap);
735 std::vector<uint32_t> detid;
736 payload->getDetIds(detid);
738 for (
const auto &
d : detid) {
741 for(
int it=0;it<range.second-range.first;it++){
743 float currentGain = payload->getApvGain(it,range);
744 if(currentGain > theMaxGain){
745 theMaxGain=currentGain;
749 tmap->fill(
d,theMaxGain);
754 std::pair<float,float> extrema = tmap->getAutomaticRange();
759 if (extrema.first!=extrema.second){
762 tmap->save(
true,extrema.first*0.95,extrema.first*1.05,
fileName);
774 SiStripApvGainsMinimumTrackerMap() :
cond::payloadInspector::PlotImage<
SiStripApvGain>(
"Tracker Map of SiStripAPVGains (minimum per DetId)" ){
775 setSingleIov(
true );
778 bool fill(
const std::vector<std::tuple<cond::Time_t,cond::Hash> >& iovs )
override{
779 auto iov = iovs.front();
780 std::shared_ptr<SiStripApvGain> payload = fetchPayload( std::get<1>(iov) );
782 std::string titleMap =
"SiStrip APV Gain minumum per module (payload : "+std::get<1>(iov)+
")";
784 std::unique_ptr<TrackerMap> tmap = std::unique_ptr<TrackerMap>(
new TrackerMap(
"SiStripApvGains"));
785 tmap->setTitle(titleMap);
788 std::vector<uint32_t> detid;
789 payload->getDetIds(detid);
791 for (
const auto &
d : detid) {
793 float theMinGain=999.;
794 for(
int it=0;it<range.second-range.first;it++){
795 float currentGain = payload->getApvGain(it,range);
796 if(currentGain < theMinGain){
797 theMinGain=currentGain;
801 tmap->fill(
d,theMinGain);
806 std::pair<float,float> extrema = tmap->getAutomaticRange();
811 if (extrema.first!=extrema.second){
814 tmap->save(
true,extrema.first*0.95,extrema.first*1.05,
fileName);
827 SiStripApvGainByRunMeans() :
cond::payloadInspector::HistoryPlot<
SiStripApvGain,
float>(
"SiStripApv Gains average",
"average Strip APV gain value"){}
828 ~SiStripApvGainByRunMeans()
override =
default;
832 std::vector<uint32_t> detid;
838 for (
const auto &
d : detid) {
840 for(
int it=0;it<range.second-range.first;it++){
846 return sumOfGains/nAPVs;
857 ~SiStripApvGainProperties()
override =
default;
861 std::vector<uint32_t> detid;
870 for (
const auto &
d : detid) {
872 for(
int it=0;it<range.second-range.first;it++){
878 rmsOfGains+=(gain*
gain);
883 meanOfGains=sumOfGains/nAPVs;
896 if((rmsOfGains/nAPVs-meanOfGains*meanOfGains)>0.){
897 return sqrt(rmsOfGains/nAPVs-meanOfGains*meanOfGains);
910 typedef SiStripApvGainProperties<SiStripPI::min> SiStripApvGainMin_History;
911 typedef SiStripApvGainProperties<SiStripPI::max> SiStripApvGainMax_History;
912 typedef SiStripApvGainProperties<SiStripPI::mean> SiStripApvGainMean_History;
913 typedef SiStripApvGainProperties<SiStripPI::rms> SiStripApvGainRMS_History;
922 SiStripApvTIBGainByRunMeans() :
cond::payloadInspector::HistoryPlot<
SiStripApvGain,
float>(
"SiStripApv Gains average",
"average Tracker Inner Barrel APV gain value"){}
923 ~SiStripApvTIBGainByRunMeans()
override =
default;
927 std::vector<uint32_t> detid;
933 for (
const auto &
d : detid) {
939 for(
int it=0;it<range.second-range.first;it++){
945 return sumOfGains/nAPVs;
956 SiStripApvTOBGainByRunMeans() :
cond::payloadInspector::HistoryPlot<
SiStripApvGain,
float>(
"SiStripApv Gains average",
"average Tracker Outer Barrel gain value"){}
957 ~SiStripApvTOBGainByRunMeans()
override =
default;
961 std::vector<uint32_t> detid;
967 for (
const auto &
d : detid) {
973 for(
int it=0;it<range.second-range.first;it++){
979 return sumOfGains/nAPVs;
990 SiStripApvTIDGainByRunMeans() :
cond::payloadInspector::HistoryPlot<
SiStripApvGain,
float>(
"SiStripApv Gains average",
"average Tracker Inner Disks APV gain value"){}
991 ~SiStripApvTIDGainByRunMeans()
override =
default;
995 std::vector<uint32_t> detid;
1000 for (
const auto &
d : detid) {
1006 for(
int it=0;it<range.second-range.first;it++){
1012 return sumOfGains/nAPVs;
1023 SiStripApvTECGainByRunMeans() :
cond::payloadInspector::HistoryPlot<
SiStripApvGain,
float>(
"SiStripApv Gains average in TEC",
"average Tracker Endcaps APV gain value"){}
1024 ~SiStripApvTECGainByRunMeans()
override =
default;
1028 std::vector<uint32_t> detid;
1034 for (
const auto &
d : detid) {
1040 for(
int it=0;it<range.second-range.first;it++){
1046 return sumOfGains/nAPVs;
1058 SiStripApvGainsTest() :
cond::payloadInspector::Histogram1D<
SiStripApvGain>(
"SiStripApv Gains test",
1059 "SiStripApv Gains test", 10,0.0,10.0),
1062 Base::setSingleIov(
true );
1065 bool fill(
const std::vector<std::tuple<cond::Time_t,cond::Hash> >& iovs )
override{
1066 for (
auto const & iov: iovs) {
1067 std::shared_ptr<SiStripApvGain> payload = Base::fetchPayload( std::get<1>(iov) );
1068 if( payload.get() ){
1070 std::vector<uint32_t> detid;
1071 payload->getDetIds(detid);
1075 for (
const auto &
d : detid) {
1077 for(
int it=0; it < range.second - range.first; ++it ) {
1078 summaryGain.
add(
d,payload->getApvGain(it, range));
1079 fillWithValue(payload->getApvGain(it,range));
1082 std::map<unsigned int, SiStripDetSummary::Values>
map = summaryGain.getCounts();
1086 std::stringstream ss;
1087 ss <<
"Summary of gain values:" << std::endl;
1088 summaryGain.print(ss,
true);
1105 SiStripApvGainsComparator () :
cond::payloadInspector::PlotImage<
SiStripApvGain>(
"SiStripGains Comparison" ){
1106 setSingleIov(
false );
1109 bool fill(
const std::vector<std::tuple<cond::Time_t,cond::Hash> >& iovs )
override{
1111 std::vector<std::tuple<cond::Time_t,cond::Hash> > sorted_iovs = iovs;
1114 std::sort(
begin(sorted_iovs),
end(sorted_iovs), [](
auto const &t1,
auto const &t2) {
1115 return std::get<0>(t1) < std::get<0>(t2);
1118 auto firstiov = sorted_iovs.front();
1119 auto lastiov = sorted_iovs.back();
1121 std::shared_ptr<SiStripApvGain> last_payload = fetchPayload( std::get<1>(lastiov) );
1122 std::shared_ptr<SiStripApvGain> first_payload = fetchPayload( std::get<1>(firstiov) );
1124 std::string lastIOVsince = std::to_string(std::get<0>(lastiov));
1125 std::string firstIOVsince = std::to_string(std::get<0>(firstiov));
1127 std::vector<uint32_t> detid;
1128 last_payload->getDetIds(detid);
1130 std::map<std::pair<uint32_t,int>,
float> lastmap,firstmap;
1133 for (
const auto &
d : detid) {
1137 for(
int it=0; it < range.second - range.first; ++it ) {
1139 Gain=last_payload->getApvGain(it,range);
1140 std::pair<uint32_t,int>
index = std::make_pair(
d,nAPV);
1146 first_payload->getDetIds(detid);
1149 for (
const auto &
d : detid) {
1153 for(
int it=0; it < range.second - range.first; ++it ) {
1155 Gain=first_payload->getApvGain(it,range);
1156 std::pair<uint32_t,int>
index = std::make_pair(
d,nAPV);
1161 TCanvas
canvas(
"Payload comparison",
"payload comparison",1400,1000);
1164 std::map<std::string,std::shared_ptr<TH1F>>
ratios;
1165 std::map<std::string,std::shared_ptr<TH2F>> scatters;
1166 std::map<std::string,int> colormap;
1167 std::map<std::string,int> markermap;
1168 colormap[
"TIB"] = kRed; markermap[
"TIB"] = kFullCircle;
1169 colormap[
"TOB"] = kGreen; markermap[
"TOB"] = kFullTriangleUp;
1170 colormap[
"TID"] = kBlack; markermap[
"TID"] = kFullSquare;
1171 colormap[
"TEC"] = kBlue; markermap[
"TEC"] = kFullTriangleDown;
1173 std::vector<std::string>
parts = {
"TEC",
"TOB",
"TIB",
"TID"};
1175 for (
const auto &
part : parts){
1176 ratios[
part] = std::make_shared<TH1F>(Form(
"hRatio_%s",
part.c_str()),Form(
"Gains ratio IOV: %s/ IOV: %s ;Previous Gain (%s) / New Gain (%s);Number of APV",firstIOVsince.c_str(),lastIOVsince.c_str(),firstIOVsince.c_str(),lastIOVsince.c_str()),200,0.,2.);
1177 scatters[
part] = std::make_shared<TH2F>(Form(
"hScatter_%s",
part.c_str()),Form(
"new Gain (%s) vs previous Gain (%s);Previous Gain (%s);New Gain (%s)",lastIOVsince.c_str(),firstIOVsince.c_str(),firstIOVsince.c_str(),lastIOVsince.c_str()),100,0.5,1.8,100,0.5,1.8);
1181 for(
const auto &item : firstmap ) {
1184 auto index = item.first;
1185 auto mod = item.first.first;
1188 float ratio = firstmap[
index]/lastmap[
index];
1191 ratios[
"TIB"]->Fill(ratio);
1192 scatters[
"TIB"]->Fill(lastmap[
index],firstmap[index]);
1196 ratios[
"TOB"]->Fill(ratio);
1197 scatters[
"TOB"]->Fill(lastmap[
index],firstmap[index]);
1201 ratios[
"TID"]->Fill(ratio);
1202 scatters[
"TID"]->Fill(lastmap[
index],firstmap[index]);
1206 ratios[
"TEC"]->Fill(ratio);
1207 scatters[
"TEC"]->Fill(lastmap[
index],firstmap[index]);
1212 auto legend = TLegend(0.60,0.8,0.92,0.95);
1213 legend.SetTextSize(0.05);
1215 canvas.cd(1)->SetTopMargin(0.05);
1216 canvas.cd(1)->SetLeftMargin(0.13);
1217 canvas.cd(1)->SetRightMargin(0.08);
1219 for (
const auto &
part : parts){
1221 ratios[
part]->SetMinimum(1.);
1222 ratios[
part]->SetStats(
false);
1223 ratios[
part]->SetLineWidth(2);
1224 ratios[
part]->SetLineColor(colormap[
part]);
1226 ratios[
part]->Draw();
1228 ratios[
part]->Draw(
"same");
1229 legend.AddEntry(ratios[part].
get(),part.c_str(),
"L");
1235 auto legend2 = TLegend(0.60,0.8,0.92,0.95);
1236 legend2.SetTextSize(0.05);
1238 canvas.cd(2)->SetTopMargin(0.05);
1239 canvas.cd(2)->SetLeftMargin(0.13);
1240 canvas.cd(2)->SetRightMargin(0.08);
1242 for (
const auto &part : parts){
1244 scatters[
part]->SetStats(
false);
1245 scatters[
part]->SetMarkerColor(colormap[part]);
1246 scatters[
part]->SetMarkerStyle(markermap[part]);
1247 scatters[
part]->SetMarkerSize(0.5);
1249 auto temp = (TH2F*)(scatters[part]->Clone());
1250 temp->SetMarkerSize(1.3);
1253 scatters[
part]->Draw(
"P");
1255 scatters[
part]->Draw(
"Psame");
1257 legend2.AddEntry(
temp,part.c_str(),
"P");
1260 TLine diagonal(0.5,0.5,1.8,1.8);
1261 diagonal.SetLineWidth(3);
1262 diagonal.SetLineStyle(2);
1263 diagonal.Draw(
"same");
1265 legend2.Draw(
"same");
1281 SiStripApvGainsValuesComparator () :
cond::payloadInspector::PlotImage<
SiStripApvGain>(
"Comparison of SiStrip APV gains values" ){
1282 setSingleIov(
false );
1285 bool fill(
const std::vector<std::tuple<cond::Time_t,cond::Hash> >& iovs )
override{
1287 TH1F::SetDefaultSumw2(
true);
1289 std::vector<std::tuple<cond::Time_t,cond::Hash> > sorted_iovs = iovs;
1292 std::sort(
begin(sorted_iovs),
end(sorted_iovs), [](
auto const &t1,
auto const &t2) {
1293 return std::get<0>(t1) < std::get<0>(t2);
1296 auto firstiov = sorted_iovs.front();
1297 auto lastiov = sorted_iovs.back();
1299 std::shared_ptr<SiStripApvGain> last_payload = fetchPayload( std::get<1>(lastiov) );
1300 std::shared_ptr<SiStripApvGain> first_payload = fetchPayload( std::get<1>(firstiov) );
1302 std::string lastIOVsince = std::to_string(std::get<0>(lastiov));
1303 std::string firstIOVsince = std::to_string(std::get<0>(firstiov));
1305 std::vector<uint32_t> detid;
1306 last_payload->getDetIds(detid);
1308 std::map<std::pair<uint32_t,int>,
float> lastmap,firstmap;
1311 for (
const auto &
d : detid) {
1314 for(
int it=0; it < range.second - range.first; ++it ) {
1316 auto index = std::make_pair(
d,nAPV);
1317 lastmap[
index]=last_payload->getApvGain(it,range);
1322 first_payload->getDetIds(detid);
1325 for (
const auto &
d : detid) {
1328 for(
int it=0; it < range.second - range.first; ++it ) {
1330 auto index = std::make_pair(
d,nAPV);
1331 firstmap[
index]=last_payload->getApvGain(it,range);
1335 TCanvas
canvas(
"Payload comparison",
"payload comparison",1000,1000);
1338 TPad pad1(
"pad1",
"pad1", 0, 0.3, 1, 1.0);
1339 pad1.SetBottomMargin(0.02);
1340 pad1.SetTopMargin(0.07);
1341 pad1.SetRightMargin(0.05);
1342 pad1.SetLeftMargin(0.15);
1346 auto h_firstGains = std::make_shared<TH1F>(
"hFirstGains",
"SiStrip APV gains values; APV Gains;n. APVs",200,0.2,1.8);
1347 auto h_lastGains = std::make_shared<TH1F>(
"hLastGains",
"SiStrip APV gains values; APV Gains;n. APVs",200,0.2,1.8);
1349 for(
const auto &item : firstmap ) {
1350 h_firstGains->Fill(item.second);
1353 for(
const auto &item : lastmap ) {
1354 h_lastGains->Fill(item.second);
1360 TH1F *hratio = (TH1F*)h_firstGains->Clone(
"hratio");
1362 h_firstGains->SetLineColor(kRed);
1363 h_lastGains->SetLineColor(kBlue);
1365 h_firstGains->SetMarkerColor(kRed);
1366 h_lastGains->SetMarkerColor(kBlue);
1368 h_firstGains->SetMarkerSize(1.);
1369 h_lastGains->SetMarkerSize(1.);
1371 h_firstGains->SetLineWidth(1);
1372 h_lastGains->SetLineWidth(1);
1374 h_firstGains->SetMarkerStyle(20);
1375 h_lastGains->SetMarkerStyle(21);
1377 h_firstGains->GetXaxis()->SetLabelOffset(2.);
1378 h_lastGains->GetXaxis()->SetLabelOffset(2.);
1380 h_firstGains->Draw(
"HIST");
1381 h_lastGains->Draw(
"HISTsame");
1383 TLegend
legend = TLegend(0.70,0.7,0.95,0.9);
1384 legend.SetHeader(
"Gain Comparison",
"C");
1385 legend.AddEntry(h_firstGains.get(),(
"IOV: "+std::to_string(std::get<0>(firstiov))).c_str(),
"PL");
1386 legend.AddEntry(h_lastGains.get() ,(
"IOV: "+std::to_string(std::get<0>(lastiov))).c_str(),
"PL");
1387 legend.Draw(
"same");
1391 TPad pad2(
"pad2",
"pad2", 0, 0.005, 1, 0.3);
1392 pad2.SetTopMargin(0.01);
1393 pad2.SetBottomMargin(0.2);
1394 pad2.SetRightMargin(0.05);
1395 pad2.SetLeftMargin(0.15);
1401 hratio->SetLineColor(kBlack);
1402 hratio->SetMarkerColor(kBlack);
1403 hratio->SetTitle(
"");
1404 hratio->SetMinimum(0.55);
1405 hratio->SetMaximum(1.55);
1406 hratio->SetStats(
false);
1407 hratio->Divide(h_lastGains.get());
1408 hratio->SetMarkerStyle(20);
1412 hratio->GetYaxis()->SetTitle((
"ratio "+std::to_string(std::get<0>(firstiov))+
" / "+std::to_string(std::get<0>(lastiov))).c_str());
1414 hratio->GetYaxis()->SetNdivisions(505);
1418 hratio->GetYaxis()->SetTitleSize(25);
1419 hratio->GetXaxis()->SetLabelSize(25);
1421 hratio->GetYaxis()->SetTitleFont(43);
1422 hratio->GetYaxis()->SetTitleOffset(2.5);
1423 hratio->GetYaxis()->SetLabelFont(43);
1424 hratio->GetYaxis()->SetLabelSize(25);
1427 hratio->GetXaxis()->SetTitleSize(30);
1428 hratio->GetXaxis()->SetTitleFont(43);
1429 hratio->GetXaxis()->SetTitle(
"SiStrip APV Gains");
1430 hratio->GetXaxis()->SetLabelFont(43);
1431 hratio->GetXaxis()->SetTitleOffset(3.);
1446 SiStripApvGainsRatioComparatorByRegion () :
cond::payloadInspector::PlotImage<
SiStripApvGain>(
"Module by Module Comparison of SiStrip APV gains" ),
1449 setSingleIov(
false );
1452 bool fill(
const std::vector<std::tuple<cond::Time_t,cond::Hash> >& iovs )
override{
1457 std::vector<std::tuple<cond::Time_t,cond::Hash> > sorted_iovs = iovs;
1460 std::sort(
begin(sorted_iovs),
end(sorted_iovs), [](
auto const &t1,
auto const &t2) {
1461 return std::get<0>(t1) < std::get<0>(t2);
1464 auto firstiov = sorted_iovs.front();
1465 auto lastiov = sorted_iovs.back();
1467 std::shared_ptr<SiStripApvGain> last_payload = fetchPayload( std::get<1>(lastiov) );
1468 std::shared_ptr<SiStripApvGain> first_payload = fetchPayload( std::get<1>(firstiov) );
1470 std::string lastIOVsince = std::to_string(std::get<0>(lastiov));
1471 std::string firstIOVsince = std::to_string(std::get<0>(firstiov));
1473 std::vector<uint32_t> detid;
1474 last_payload->getDetIds(detid);
1476 std::map<std::pair<uint32_t,int>,
float> lastmap,firstmap;
1479 for (
const auto &
d : detid) {
1483 for(
int it=0; it < range.second - range.first; ++it ) {
1485 Gain=last_payload->getApvGain(it,range);
1486 std::pair<uint32_t,int>
index = std::make_pair(
d,nAPV);
1492 first_payload->getDetIds(detid);
1495 for (
const auto &
d : detid) {
1499 for(
int it=0; it < range.second - range.first; ++it ) {
1501 Gain=first_payload->getApvGain(it,range);
1502 std::pair<uint32_t,int>
index = std::make_pair(
d,nAPV);
1507 TCanvas
canvas(
"Payload comparison by Tracker Region",
"payload comparison by Tracker Region",1800,800);
1510 auto h2first = std::unique_ptr<TH2F>(
new TH2F(
"byRegion1",
"SiStrip APV Gain values by region;; average SiStrip Gain",38,1.,39.,100.,0.,2.));
1511 auto h2last = std::unique_ptr<TH2F>(
new TH2F(
"byRegion2",
"SiStrip APV Gain values by region;; average SiStrip Gain",38,1.,39.,100.,0.,2.));
1513 auto h2ratio = std::unique_ptr<TH2F>(
new TH2F(
"byRegionRatio",
1514 Form(
"SiStrip APV Gains ratio by region;; Gains ratio IOV: %s/ IOV %s",lastIOVsince.c_str(),firstIOVsince.c_str())
1515 ,38,1.,39.,100.,0.85,1.15));
1517 h2first->SetStats(
false);
1518 h2last->SetStats(
false);
1519 h2ratio->SetStats(
false);
1521 canvas.cd(1)->SetBottomMargin(0.18);
1522 canvas.cd(1)->SetLeftMargin(0.12);
1523 canvas.cd(1)->SetRightMargin(0.05);
1526 std::vector<int> boundaries;
1530 for (
const auto &element : lastmap){
1531 auto region = this->getTheRegion(element.first.first);
1535 h2last->Fill(
bin,element.second);
1536 h2last->GetXaxis()->SetBinLabel(
bin,
label);
1537 h2ratio->Fill(
bin,element.second/firstmap[element.first]);
1538 h2ratio->GetXaxis()->SetBinLabel(
bin,
label);
1541 for (
const auto &element : firstmap){
1542 auto region = this->getTheRegion(element.first.first);
1546 h2first->Fill(
bin,element.second);
1547 h2first->GetXaxis()->SetBinLabel(
bin,
label);
1550 h2first->GetXaxis()->LabelsOption(
"v");
1551 h2last->GetXaxis()->LabelsOption(
"v");
1552 h2ratio->GetXaxis()->LabelsOption(
"v");
1554 h2last->SetLineColor(kBlue);
1555 h2first->SetLineColor(kRed);
1556 h2first->SetFillColor(kRed);
1558 h2first->SetMarkerStyle(20);
1559 h2last->SetMarkerStyle(21);
1561 h2first->SetMarkerColor(kRed);
1562 h2last->SetMarkerColor(kBlue);
1565 h2first->Draw(
"BOX");
1566 h2last->Draw(
"BOXsame");
1568 TLegend legend = TLegend(0.70,0.8,0.95,0.9);
1569 legend.SetHeader(
"Gain Comparison",
"C");
1570 legend.AddEntry(h2first.get(),(
"IOV: "+std::to_string(std::get<0>(firstiov))).c_str(),
"F");
1571 legend.AddEntry(h2last.get() ,(
"IOV: "+std::to_string(std::get<0>(lastiov))).c_str(),
"F");
1572 legend.Draw(
"same");
1575 canvas.cd(2)->SetBottomMargin(0.18);
1576 canvas.cd(2)->SetLeftMargin(0.12);
1577 canvas.cd(2)->SetRightMargin(0.12);
1579 h2ratio->Draw(
"COLZ");
1580 auto hpfx_tmp = (TProfile*)(h2ratio->ProfileX(
"_pfx",1,-1,
"o"));
1581 hpfx_tmp->SetStats(kFALSE);
1582 hpfx_tmp->SetMarkerColor(kRed);
1583 hpfx_tmp->SetLineColor(kRed);
1584 hpfx_tmp->SetMarkerSize(1.2);
1585 hpfx_tmp->SetMarkerStyle(20);
1586 hpfx_tmp->Draw(
"same");
1605 layer = m_trackerTopo.
tibLayer(detid);
1606 stereo = m_trackerTopo.
tibStereo(detid);
1610 layer = m_trackerTopo.
tobLayer(detid);
1611 stereo = m_trackerTopo.
tobStereo(detid);
1616 layer = m_trackerTopo.
tecWheel(detid);
1617 stereo = m_trackerTopo.
tecStereo(detid);
1622 layer = m_trackerTopo.
tidWheel(detid);
1623 stereo = m_trackerTopo.
tidStereo(detid);
1628 detNum += layer*10 + stereo;
1640 SiStripApvGainsComparatorByRegion() :
cond::payloadInspector::PlotImage<
SiStripApvGain>(
"SiStripGains Comparison By Region" ),
1643 setSingleIov(
false );
1646 bool fill(
const std::vector<std::tuple<cond::Time_t,cond::Hash> >& iovs )
override{
1648 std::vector<std::tuple<cond::Time_t,cond::Hash> > sorted_iovs = iovs;
1651 std::sort(
begin(sorted_iovs),
end(sorted_iovs), [](
auto const &t1,
auto const &t2) {
1652 return std::get<0>(t1) < std::get<0>(t2);
1655 auto firstiov = sorted_iovs.front();
1656 auto lastiov = sorted_iovs.back();
1658 std::shared_ptr<SiStripApvGain> last_payload = fetchPayload( std::get<1>(lastiov) );
1659 std::shared_ptr<SiStripApvGain> first_payload = fetchPayload( std::get<1>(firstiov) );
1661 std::vector<uint32_t> detid;
1662 last_payload->getDetIds(detid);
1666 for (
const auto &
d : detid) {
1668 for(
int it=0; it < range.second - range.first; ++it ) {
1669 summaryLastGain.add(
d,last_payload->getApvGain(it, range));
1675 for (
const auto &
d : detid) {
1677 for(
int it=0; it < range.second - range.first; ++it ) {
1678 summaryFirstGain.add(
d,first_payload->getApvGain(it, range));
1682 std::map<unsigned int, SiStripDetSummary::Values> firstmap = summaryFirstGain.getCounts();
1683 std::map<unsigned int, SiStripDetSummary::Values> lastmap = summaryLastGain.getCounts();
1686 TCanvas
canvas(
"Region summary",
"region summary",1200,1000);
1689 auto hfirst = std::unique_ptr<TH1F>(
new TH1F(
"byRegion1",
"SiStrip APV Gain average by region;; average SiStrip Gain",firstmap.size(),0.,firstmap.size()));
1690 auto hlast = std::unique_ptr<TH1F>(
new TH1F(
"byRegion2",
"SiStrip APV Gain average by region;; average SiStrip Gain",lastmap.size(),0.,lastmap.size()));
1692 hfirst->SetStats(
false);
1693 hlast->SetStats(
false);
1695 canvas.SetBottomMargin(0.18);
1696 canvas.SetLeftMargin(0.12);
1697 canvas.SetRightMargin(0.05);
1700 std::vector<int> boundaries;
1701 unsigned int iBin=0;
1706 for (
const auto &element : lastmap){
1708 int count = element.second.count;
1709 double mean = (element.second.mean)/count;
1711 if(currentDetector.empty()) currentDetector=
"TIB";
1713 switch ((element.first)/1000)
1729 hlast->SetBinContent(iBin,mean);
1730 hlast->SetBinError(iBin,mean/10000.);
1732 hlast->GetXaxis()->LabelsOption(
"v");
1734 if(detector!=currentDetector) {
1735 boundaries.push_back(iBin);
1743 for (
const auto &element : firstmap){
1745 int count = element.second.count;
1746 double mean = (element.second.mean)/count;
1748 hfirst->SetBinContent(iBin,mean);
1749 hfirst->SetBinError(iBin,mean/10000.);
1751 hfirst->GetXaxis()->LabelsOption(
"v");
1755 hlast->GetYaxis()->SetRangeUser(extrema.first,extrema.second);
1757 hlast->SetMarkerStyle(20);
1758 hlast->SetMarkerSize(1);
1760 hlast->Draw(
"Psame");
1762 hfirst->SetMarkerStyle(18);
1763 hfirst->SetMarkerSize(1);
1764 hfirst->SetLineColor(kBlue);
1765 hfirst->SetMarkerColor(kBlue);
1766 hfirst->Draw(
"E1same");
1767 hfirst->Draw(
"Psame");
1772 TLine
l[boundaries.size()];
1774 for (
const auto &
line : boundaries){
1775 l[
i] = TLine(hfirst->GetBinLowEdge(
line),
canvas.cd()->GetUymin(),hfirst->GetBinLowEdge(
line),
canvas.cd()->GetUymax());
1776 l[
i].SetLineWidth(1);
1777 l[
i].SetLineStyle(9);
1778 l[
i].SetLineColor(2);
1783 TLegend legend = TLegend(0.70,0.8,0.95,0.9);
1784 legend.SetHeader(
"Gain Comparison",
"C");
1785 legend.AddEntry(hfirst.get(),(
"IOV: "+std::to_string(std::get<0>(firstiov))).c_str(),
"PL");
1786 legend.AddEntry(hlast.get() ,(
"IOV: "+std::to_string(std::get<0>(lastiov))).c_str(),
"PL");
1787 legend.Draw(
"same");
1804 SiStripApvGainsByRegion() :
cond::payloadInspector::PlotImage<
SiStripApvGain>(
"SiStripGains By Region" ),
1807 setSingleIov(
true );
1810 bool fill(
const std::vector<std::tuple<cond::Time_t,cond::Hash> >& iovs )
override{
1811 auto iov = iovs.front();
1812 std::shared_ptr<SiStripApvGain> payload = fetchPayload( std::get<1>(iov) );
1814 std::vector<uint32_t> detid;
1815 payload->getDetIds(detid);
1819 for (
const auto &
d : detid) {
1821 for(
int it=0; it < range.second - range.first; ++it ) {
1822 summaryGain.add(
d,payload->getApvGain(it, range));
1826 std::map<unsigned int, SiStripDetSummary::Values>
map = summaryGain.getCounts();
1829 TCanvas
canvas(
"Region summary",
"region summary",1200,1000);
1831 auto h1 = std::unique_ptr<TH1F>(
new TH1F(
"byRegion",
"SiStrip Gain average by region;; average SiStrip Gain",map.size(),0.,map.size()));
1832 h1->SetStats(
false);
1833 canvas.SetBottomMargin(0.18);
1834 canvas.SetLeftMargin(0.12);
1835 canvas.SetRightMargin(0.05);
1838 std::vector<int> boundaries;
1839 unsigned int iBin=0;
1844 for (
const auto &element : map){
1846 int count = element.second.count;
1847 double mean = (element.second.mean)/count;
1849 if(currentDetector.empty()) currentDetector=
"TIB";
1851 switch ((element.first)/1000)
1867 h1->SetBinContent(iBin,mean);
1869 h1->GetXaxis()->LabelsOption(
"v");
1871 if(detector!=currentDetector) {
1872 boundaries.push_back(iBin);
1877 h1->SetMarkerStyle(20);
1878 h1->SetMarkerSize(1);
1884 TLine l[boundaries.size()];
1886 for (
const auto &
line : boundaries){
1888 l[
i].SetLineWidth(1);
1889 l[
i].SetLineStyle(9);
1890 l[
i].SetLineColor(2);
1895 TLegend legend = TLegend(0.52,0.82,0.95,0.9);
1896 legend.SetHeader((std::get<1>(iov)).c_str(),
"C");
1897 legend.AddEntry(h1.get(),(
"IOV: "+std::to_string(std::get<0>(iov))).c_str(),
"PL");
1898 legend.SetTextSize(0.025);
1899 legend.Draw(
"same");
unsigned int tibLayer(const DetId &id) const
static float getApvGain(uint16_t apv, const Range &range)
uint32_t tobStereo(const DetId &id) const
unsigned int tidWheel(const DetId &id) const
void setPaletteStyle(SiStripPI::palette palette)
void getDetIds(std::vector< uint32_t > &DetIds_) const
#define PAYLOAD_INSPECTOR_CLASS(CLASS_NAME)
unsigned int tidSide(const DetId &id) const
std::pair< float, float > getTheRange(std::map< uint32_t, float > values, const float nsigma)
void drawStatBox(std::map< std::string, std::shared_ptr< TH1F >> histos, std::map< std::string, int > colormap, std::vector< std::string > legend, double X=0.15, double Y=0.93, double W=0.15, double H=0.10)
uint32_t tidStereo(const DetId &id) const
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
Abs< T >::type abs(const T &t)
std::pair< ContainerIterator, ContainerIterator > Range
std::pair< float, float > getExtrema(TH1 *h1, TH1 *h2)
void add(DetId detid, float value)
Used to compute the mean value of the value variable divided by subdetector, layer and mono/stereo...
void makeNicePlotStyle(TH1 *hist)
void fillWithValue(float value, float weight=1)
#define PAYLOAD_INSPECTOR_MODULE(PAYLOAD_TYPENAME)
std::string estimatorType(SiStripPI::estimator e)
std::pair< int, const char * > regionType(int index)
bin
set the eta bin as selection string.
std::shared_ptr< PayloadType > fetchPayload(const cond::Hash &payloadHash)
void setSingleIov(bool flag)
char data[epos_bytes_allocation]
bool fill(const std::vector< std::tuple< cond::Time_t, cond::Hash > > &iovs) override
uint32_t tecStereo(const DetId &id) const
TrackerTopology fromTrackerParametersXMLFile(const std::string &xmlFileName)
const Range getRange(const uint32_t detID) const
uint32_t tibStereo(const DetId &id) const
T mod(const T &a, const T &b)
unsigned int tecWheel(const DetId &id) const
unsigned int tobLayer(const DetId &id) const
unsigned int tecSide(const DetId &id) const