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
|
#ifndef Geometry_TrackerNumberingBuilder_CmsTrackerDetIdBuilder_H
#define Geometry_TrackerNumberingBuilder_CmsTrackerDetIdBuilder_H
#include "FWCore/ParameterSet/interface/types.h"
#include <ostream>
#include <vector>
#include <array>
class GeometricDet;
/**
* Class to build a geographicalId.
*/
class CmsTrackerDetIdBuilder {
public:
CmsTrackerDetIdBuilder(const std::vector<int> &detidShifts);
void buildId(GeometricDet &det);
private:
void iterate(GeometricDet &det, int level, unsigned int ID);
static const unsigned int nSubDet = 6;
static const int maxLevels = 6;
// This is the map between detid and navtype to restore backward compatibility between 12* and 13* series
std::map<std::string, uint32_t> m_mapNavTypeToDetId;
std::array<int, nSubDet * maxLevels> m_detidshifts;
};
#endif
|