21 std::string
strip (
const std::string& fString) {
22 if (fString.empty ())
return fString;
23 int startIndex = fString.find_first_not_of(
" \t\n");
24 int endIndex = fString.find_last_not_of(
" \t\n");
25 return fString.substr(startIndex, (endIndex-startIndex)+1);
28 int calibChannel (
const std::string& fName) {
30 fName ==
"Mixer-High" ? 1 :
31 fName ==
"Mixer-Low" ? 2 :
32 fName ==
"Megatile" ? 3 :
33 fName ==
"Mixer-Scintillator" ? 4 :
34 fName ==
"RadDam1" ? 5 :
35 fName ==
"RadDam2" ? 6 :
36 fName ==
"RadDam3" ? 7 :
43 const std::string& fField2,
const std::string& fField3) {
44 if (!
init (fFlavor, fField1, fField2, fField3)) {
45 std::cerr <<
"HcalText2DetIdConverter::HcalText2DetIdConverter-> Can not initiate detId from items: "
46 << fFlavor <<
'/' << fField1 <<
'/' << fField2 <<
'/' << fField3 << std::endl;
48 <<
" Can not initiate detId from items: "
49 << fFlavor <<
'/' << fField1 <<
'/' << fField2 <<
'/' << fField3 << std::endl;
109 default: result =
false;
123 default: result =
false;
137 std::cerr <<
"HcalText2DetIdConverter::init-> Unknown detId: " << std::hex << std::showbase <<
mId.
rawId() << std::endl;
145 const std::string& fField2,
const std::string& fField3) {
179 int channel = calibChannel (
field3);
191 std::cerr <<
"HcalText2DetIdConverter::init-> Unknown HcalDetId flavor: " <<
flavorName << std::endl;
200 const char* nptr = i == 1 ?
field1.c_str() :
202 long result = strtol (nptr, &endptr, 0);
203 if (*nptr !=
'\0' && *endptr ==
'\0') {
207 int result = calibChannel (
field2);
211 std::cerr <<
"HcalText2DetIdConverter::getField-> Can not convert string "<< nptr <<
" to int. Bad symbol: " << *endptr << std::endl;
218 sprintf (buffer,
"%d", fValue);
219 if (i == 1)
field1 = buffer;
220 else if (i == 2)
field2 = buffer;
static const HcalDetId Undefined
bool isHcalZDCDetId() const
CalibDetType calibFlavor() const
get the flavor of this calibration detid
int zside() const
get the z-side of the cell (1/-1)
std::string toString() const
int ieta() const
get the tower ieta
int ieta() const
get the rbx name (if relevant)
uint32_t rawId() const
get the raw id
bool isHcalZDCDetId() const
bool isHcalTrigTowerDetId() const
int depth() const
get the tower depth
bool isHcalTrigTowerDetId() const
void setField(int i, int fValue)
int ieta() const
get the cell ieta
HcalText2DetIdConverter(const std::string &fFlavor="NA", const std::string &fField1="0", const std::string &fField2="0", const std::string &fField3="0")
Section section() const
get the section
int iphi() const
get the low-edge iphi (if relevant)
bool init(const std::string &fFlavor, const std::string &fField1, const std::string &fField2, const std::string &fField3)
int iphi() const
get the cell iphi
bool isHcalCalibDetId() const
int channel() const
get the channel
static const HcalTrigTowerDetId Undefined
int cboxChannel() const
get the calibration box channel (if relevant)
bool isHcalCalibDetId() const
HcalSubdetector hcalSubdet() const
get the HcalSubdetector (if relevant)
HcalGenericSubdetector genericSubdet() const
int iphi() const
get the tower iphi
int getField(int i) const