Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
//#include <map>

#include "DataFormats/DetId/interface/DetId.h"
#include "DataFormats/SiStripDetId/interface/StripSubdetector.h"
#include "DPGAnalysis/SiStripTools/interface/SiStripTKNumbers.h"

SiStripTKNumbers::SiStripTKNumbers() {
  DetId tk(DetId::Tracker, 0);
  _nmodules[tk.rawId()] = (3540 - 816) + 816 + 5208 + 6400;
  _nfibres[tk.rawId()] = (9192 - 2208) + 2208 + 12906 + 15104;
  _nmodules[tk.subdetId()] = _nmodules[tk.rawId()];
  _nfibres[tk.subdetId()] = _nfibres[tk.rawId()];

  DetId tib(DetId::Tracker, StripSubdetector::TIB);
  _nmodules[tib.rawId()] = 3540 - 816;
  _nfibres[tib.rawId()] = 9192 - 2208;
  _nmodules[tib.subdetId()] = _nmodules[tib.rawId()];
  _nfibres[tib.subdetId()] = _nfibres[tib.rawId()];

  DetId tid(DetId::Tracker, StripSubdetector::TID);
  _nmodules[tid.rawId()] = 816;
  _nfibres[tid.rawId()] = 2208;
  _nmodules[tid.subdetId()] = _nmodules[tid.rawId()];
  _nfibres[tid.subdetId()] = _nfibres[tid.rawId()];

  DetId tob(DetId::Tracker, StripSubdetector::TOB);
  _nmodules[tob.rawId()] = 5208;
  _nfibres[tob.rawId()] = 12906;
  _nmodules[tob.subdetId()] = _nmodules[tob.rawId()];
  _nfibres[tob.subdetId()] = _nfibres[tob.rawId()];

  DetId tec(DetId::Tracker, StripSubdetector::TEC);
  _nmodules[tec.rawId()] = 6400;
  _nfibres[tec.rawId()] = 15104;
  _nmodules[tec.subdetId()] = _nmodules[tec.rawId()];
  _nfibres[tec.subdetId()] = _nfibres[tec.rawId()];

  DetId tecp(DetId(DetId::Tracker, StripSubdetector::TEC).rawId() | ((1 & 0x3) << 18));
  _nmodules[tecp.rawId()] = 3200;
  _nfibres[tecp.rawId()] = 7552;

  DetId tecm(DetId(DetId::Tracker, StripSubdetector::TEC).rawId() | ((2 & 0x3) << 18));
  _nmodules[tecm.rawId()] = 3200;
  _nfibres[tecm.rawId()] = 7552;
}

int SiStripTKNumbers::nmodules(const DetId& detid) const {
  int subd = detid.subdetId();
  if (_nmodules.find(subd) != _nmodules.end())
    return _nmodules.find(subd)->second;

  return 0;
}

int SiStripTKNumbers::nmodules(const int id) const {
  if (_nmodules.find(id) != _nmodules.end())
    return _nmodules.find(id)->second;

  return 0;
}

int SiStripTKNumbers::nfibres(const DetId& detid) const {
  int subd = detid.subdetId();
  if (_nfibres.find(subd) != _nfibres.end())
    return _nfibres.find(subd)->second;

  return 0;
}

int SiStripTKNumbers::nfibres(const int id) const {
  if (_nfibres.find(id) != _nfibres.end())
    return _nfibres.find(id)->second;

  return 0;
}

int SiStripTKNumbers::napvs(const DetId& detid) const { return nfibres(detid) * _apvsperfibre; }

int SiStripTKNumbers::napvs(const int id) const { return nfibres(id) * _apvsperfibre; }

int SiStripTKNumbers::nstrips(const DetId& detid) const { return nfibres(detid) * _apvsperfibre * _stripsperapv; }

int SiStripTKNumbers::nstrips(const int id) const { return nfibres(id) * _apvsperfibre * _stripsperapv; }