544{
546 if ( SamplingName.find("PreSamplerB") != std::string::npos ) {
547 nsmp = CaloCell_ID::PreSamplerB;
548 } else if ( SamplingName.find("EMB1") != std::string::npos ) {
549 nsmp = CaloCell_ID::EMB1;
550 } else if ( SamplingName.find("EMB2") != std::string::npos ) {
551 nsmp = CaloCell_ID::EMB2;
552 } else if ( SamplingName.find("EMB3") != std::string::npos ) {
553 nsmp = CaloCell_ID::EMB3;
554 } else if ( SamplingName.find("PreSamplerE") != std::string::npos ) {
555 nsmp = CaloCell_ID::PreSamplerE;
556 } else if ( SamplingName.find("EME1") != std::string::npos ) {
557 nsmp = CaloCell_ID::EME1;
558 } else if ( SamplingName.find("EME2") != std::string::npos ) {
559 nsmp = CaloCell_ID::EME2;
560 } else if ( SamplingName.find("EME3") != std::string::npos ) {
561 nsmp = CaloCell_ID::EME3;
562 } else if ( SamplingName.find("HEC0") != std::string::npos ) {
563 nsmp = CaloCell_ID::HEC0;
564 }else if ( SamplingName.find("HEC1") != std::string::npos ) {
565 nsmp = CaloCell_ID::HEC1;
566 }else if ( SamplingName.find("HEC2") != std::string::npos ) {
567 nsmp = CaloCell_ID::HEC2;
568 }else if ( SamplingName.find("HEC3") != std::string::npos ) {
569 nsmp = CaloCell_ID::HEC3;
570 }else if ( SamplingName.find("TileBar0") != std::string::npos ) {
571 nsmp = CaloCell_ID::TileBar0;
572 }else if ( SamplingName.find("TileBar1") != std::string::npos ) {
573 nsmp = CaloCell_ID::TileBar1;
574 }else if ( SamplingName.find("TileBar2") != std::string::npos ) {
575 nsmp = CaloCell_ID::TileBar2;
576 }else if ( SamplingName.find("TileGap1") != std::string::npos ) {
577 nsmp = CaloCell_ID::TileGap1;
578 }else if ( SamplingName.find("TileGap2") != std::string::npos ) {
579 nsmp = CaloCell_ID::TileGap2;
580 }else if ( SamplingName.find("TileGap3") != std::string::npos ) {
581 nsmp = CaloCell_ID::TileGap3;
582 }else if ( SamplingName.find("TileExt0") != std::string::npos ) {
583 nsmp = CaloCell_ID::TileExt0;
584 }else if ( SamplingName.find("TileExt1") != std::string::npos ) {
585 nsmp = CaloCell_ID::TileExt1;
586 }else if ( SamplingName.find("TileExt2") != std::string::npos ) {
587 nsmp = CaloCell_ID::TileExt2;
588 }else if ( SamplingName.find("FCAL0") != std::string::npos ) {
589 nsmp = CaloCell_ID::FCAL0;
590 }else if ( SamplingName.find("FCAL1") != std::string::npos ) {
591 nsmp = CaloCell_ID::FCAL1;
592 }else if ( SamplingName.find("FCAL2") != std::string::npos ) {
593 nsmp = CaloCell_ID::FCAL2;
594 }else {
595 std::cout << "CaloDmDescrManager::get_calo_sample() -> Calorimeter sampling '" << SamplingName
596 << "' is not a valid Calorimeter sampling name and will be ignored! " << std::endl;
597 return CaloCell_ID::Unknown;
598 }
600 if(SamplingName.find('(') == std::string::npos || SamplingName.find(')') != SamplingName.size()-1 ){
601 std::cout << "CaloDmDescrManager::get_calo_sample() -> Can't parse calorimeter sampling '" << SamplingName << "' string! Something with brackets..." << std::endl;
602 return CaloCell_ID::Unknown;
603 }
604 std::string sEtaRange(SamplingName,SamplingName.find('(')+1);
605 std::istringstream iEtaRange( sEtaRange.c_str() );
606 if(iEtaRange >> etaMin >> dummy >> etaMax) {
607 return nsmp;
608 }else{
609 std::cout << "CaloDmDescrManager::get_calo_sample() -> Can't parse calorimeter sampling '" << SamplingName << "' string!" << std::endl;
610 return CaloCell_ID::Unknown;
611 }
612}
CaloSampling::CaloSample CaloSample