101 if(orChannel)
return nullptr;
102 if(asdin->isValid()==
false)
return nullptr;
104 const bool asdinisEndcap = asdin->isEndcap();
105 const bool asdinisTriplet = asdin->isTriplet();
106 const int asdinLayer = asdin->getLayer();
107 const int asdinChannel = asdin->getChannel();
109 TGCDatabase* databaseP =
m_database[asdin->getRegionType()][asdin->getModuleType()].get();
111 TGCChannelASDOut* asdout =
nullptr;
115 if(asdin->isEndcap()) {
116 if(!asdin->isInner()){
124 if(!asdin->isInner()){
135 if(asdin->isEndcap()&&!asdin->isInner()){
136 chamber = 5-asdin->getChamber();
138 chamber = asdin->getChamber()-1;
144 const int MaxEntry = databaseP->getMaxEntry();
145 for(
int i=0;
i<MaxEntry;
i++){
148 if(asdinisEndcap&&asdinisTriplet)
149 dbChamber = dbChamber-1;
151 int dbChannel = asdinChannel-1;
152 if(databaseP->getEntry(
i,7)==dbChannel &&
153 databaseP->getEntry(
i,1)==dbChamber &&
154 databaseP->getEntry(
i,0)==asdinLayer) {
161 bool is_Backward =
false;
162 if(asdin->isEndcap()){
163 if(!asdin->isInner()) {
164 if(asdin->isAside()) is_Backward = (sector%2==1);
165 else is_Backward = (sector%2==0);
170 if(asdin->isAside()) is_Backward =
false;
171 else is_Backward =
true;
172 }
else if(sector == 16) {
173 if(asdin->isAside()) is_Backward =
true;
174 else is_Backward =
false;
178 if(asdin->isAside()) is_Backward = (sector%3==2);
179 else is_Backward = (sector%3!=2);
183 if(asdin->isAside()) is_Backward =
true;
185 if(( is_Backward && asdin->isAside()) ||
186 (!is_Backward && asdin->isCside()))
187 channel = 32-asdin->getChannel();
189 channel = asdin->getChannel()-1;
191 if(
channel==-1)
return nullptr;
193 asdout =
new TGCChannelASDOut(asdin->getSideType(),
194 asdin->getSignalType(),
195 asdin->getRegionType(),