20 m_database[TGCId::Endcap][TGCId::WT] = std::make_unique<TGCDatabasePPToSL>(filename,
"PP EWT");
21 m_database[TGCId::Endcap][TGCId::WD] = std::make_unique<TGCDatabasePPToSL>(filename,
"PP EWD");
22 m_database[TGCId::Endcap][TGCId::ST] = std::make_unique<TGCDatabasePPToSL>(filename,
"PP EST");
23 m_database[TGCId::Endcap][TGCId::SD] = std::make_unique<TGCDatabasePPToSL>(filename,
"PP ESD");
24 m_database[TGCId::Endcap][TGCId::WI] = std::make_unique<TGCDatabasePPToSL>(filename,
"PP EWI");
25 m_database[TGCId::Endcap][TGCId::SI] = std::make_unique<TGCDatabasePPToSL>(filename,
"PP ESI");
26 m_database[TGCId::Forward][TGCId::WT] = std::make_unique<TGCDatabasePPToSL>(filename,
"PP FWT");
27 m_database[TGCId::Forward][TGCId::WD] = std::make_unique<TGCDatabasePPToSL>(filename,
"PP FWD");
28 m_database[TGCId::Forward][TGCId::ST] = std::make_unique<TGCDatabasePPToSL>(filename,
"PP FST");
29 m_database[TGCId::Forward][TGCId::SD] = std::make_unique<TGCDatabasePPToSL>(filename,
"PP FSD");
30 m_database[TGCId::Forward][TGCId::WI] = std::make_unique<TGCDatabasePPToSL>(filename,
"PP FWI");
31 m_database[TGCId::Forward][TGCId::SI] = std::make_unique<TGCDatabasePPToSL>(filename,
"PP FSI");
34TGCCablePPToSLB::~TGCCablePPToSLB() =
default;
37 bool orChannel)
const {
58 bool orChannel)
const {
59 if(orChannel)
return nullptr;
60 if(slbin->
isValid()==
false)
return nullptr;
74 if(!slb)
return nullptr;
79 if(!mapId)
return nullptr;
85 if(!pp)
return nullptr;
130 bool orChannel)
const {
131 if(orChannel)
return nullptr;
132 if(ppout->
isValid()==
false)
return nullptr;
134 const int ppoutBlock = ppout->
getBlock();
140 if(!pp)
return nullptr;
145 if(!mapId)
return nullptr;
149 const int size = mapId->
size();
150 for(
int i=0;i<size;i++){
157 if(!slb)
return nullptr;
161 int channelInSLB = -1;
170 channelInSLB = ppout->
getChannel()-lengthOfSLB;
180 channelInSLB = ppout->
getChannel()-lengthOfSLB;
185 cellType,channelInSLB);
198 if(slb->
isValid()==
false)
return nullptr;
200 const int slbId = slb->
getId();
205 for(
int i=0; i<MaxEntry; i++){
206 if(databaseP->
getEntry(i,1)==slbId){
218 if(databaseP->
getEntry(i,2)==slbId) {
236 if(pp->
isValid()==
false)
return nullptr;
238 const int ppId = pp->
getId();
243 for(
int i=0; i<MaxEntry; i++){
244 if(databaseP->
getEntry(i,0)==ppId) {
bool getModule(std::istream &s, RegSelModule &m)
virtual TGCChannelId * getChannelIn(const TGCChannelId *slbin, bool orChannel=false) const
virtual TGCModuleMap * getModuleOut(const TGCModuleId *pp) const
virtual TGCChannelId * getChannelOut(const TGCChannelId *ppout, bool orChannel=false) const
virtual TGCModuleMap * getModuleIn(const TGCModuleId *slb) const
std::array< std::array< std::unique_ptr< TGCDatabase >, TGCId::MaxModuleType >, TGCId::MaxRegionType > m_database
virtual TGCChannelId * getChannel(const TGCChannelId *channelId, bool orChannel=false) const
virtual TGCModuleMap * getModule(const TGCModuleId *moduleId) const
TGCCable(CableType type=NoCableType)
ChannelIdType getChannelIdType() const
virtual bool isValid() const
virtual TGCModuleId * getModule(void) const
virtual int getChannelInSLB(void) const
virtual CellType getCellType(void) const
static int convertChannel(TGCId::ModuleType moduleType, CellType cellType, int channelInSLB)
static int getLengthOfSLB(TGCId::ModuleType moduleType, CellType cellType)
virtual TGCModuleId * getModule(void) const
virtual int getMaxEntry(void) const
virtual int getEntry(int entry, int column) const
ModuleType getModuleType(void) const
RegionType getRegionType(void) const
virtual int getSector() const
SideType getSideType(void) const
virtual bool isValid(void) const
ModuleIdType getModuleIdType(void) const
void insert(int connector, TGCModuleId *moduleId)
TGCModuleId * popModuleId(int entry)