34 std::string patFileName;
39 patFileName = patFilesDir
51 parser.
parse(patFileName);
52 init(parser, coneCrds);
66 for(
unsigned int i = 0;
i < qualVec.size(); ++
i) {
68 std::bitset<RPCConst::m_LOGPLANES_COUNT> qualBits(quality.
m_FiredPlanes);
69 unsigned short firedPlanes = qualBits.to_ulong();
86 for (
unsigned int iqual=0; iqual<rpcconf->
m_quals.size(); iqual++){
88 if (rpcconf->
m_quals[iqual].m_tower != tower ||
89 rpcconf->
m_quals[iqual].m_logsector != sector ||
90 rpcconf->
m_quals[iqual].m_logsegment != segment )
continue;
93 std::bitset<RPCConst::m_LOGPLANES_COUNT> qualBits(quality.
m_FiredPlanes);
94 unsigned short firedPlanes = qualBits.to_ulong();
124 throw RPCException(
"GetPattren(): Patterns vec is empty, mayby it was not filled!");
159 return iEGroup->m_GroupShape.getLogStripState(logPlane, bitNum);
161 throw RPCException(
"getEPatternsGroupShape(): groupNum to big!");
171 if(patternGroupNum == -1)
177 if(i == patternGroupNum)
178 ret =
"EGroup #"+ rpcconst.
intToString(i)+iEGroup->getGroupDescription();
184 throw RPCException(
"getEPatternsGroupShape(): groupNum to big!");
192 unsigned short firedPlanes,
short quality) {
208 throw RPCException(
"insertQualityRecord(): wrong qualityTabNumber");
215 bool ignorePos =
false;
216 if ( tower == 99 || sector == 99 || segment == 99) ignorePos =
true;
220 for(RPCPattern::RPCPatVec::const_iterator patIt = patternsVec.begin();
221 patIt != patternsVec.end();
225 (patIt->getTower() != tower
226 || patIt->getLogSector() != sector
227 || patIt->getLogSegment() != segment) )
continue;
232 TEPatternsGroupList::iterator iEGroup;
235 if(iEGroup->check(patIt))
241 ", code: " + rpcconst.
intToString(patIt->getCode()) +
242 ", dir: " + rpcconst.
intToString(patIt->getSign()) +
243 ", refGroup: " + rpcconst.
intToString(patIt->getRefGroup()) +
244 ", qualityTabNumber: " + rpcconst.
intToString(patIt->getQualityTabNumber()));
248 iEGroup->addPattern(patIt);
251 throw RPCException(
"InsertPattern(): unsupported pattern type");
267 std::bitset<RPCConst::m_LOGPLANES_COUNT> qualBits(quality.
m_FiredPlanes);
268 unsigned short firedPlanes = qualBits.to_ulong();
std::string getPatternsGroupDescription(int patternGroupNum)
void insertPatterns(const RPCPattern::RPCPatVec &pattern, const int tower=99, const int sector=99, const int segment=99)
std::string getGroupDescription() const
The coordinates of Logic Cone: m_Tower, m_LogSector, m_LogSegment.
bool getLogStripState(int logPlane, unsigned int logStripNum) const
void addPattern(const RPCPattern::RPCPatVec::const_iterator &pattern)
RPCPattern::TQualityVec m_quals
TTPatternsGroup m_TrackPatternsGroup
Here patters used in "baseline" algorith are stored.
void setGroupDescription(std::string groupDescription)
static const TPatternType PAT_TYPE_T
unsigned char m_FiredPlanes
std::vector< RPCPattern > RPCPatVec
void insertQualityRecord(unsigned int qualityTabNumber, unsigned short firedPlanes, short quality)
RPCConst::TQualityTabsVec m_QualityTabsVec
std::string intToString(int number)
Converts inteager number to string.
RPCPattern::RPCPatVec m_PatternsVec
const RPCPattern::RPCPatVec & getPatternsVec(const RPCConst::l1RpcConeCrdnts &coneCrds) const
RPCPattern getPattern(int patNum) const
std::vector< TQuality > TQualityVec
TEPatternsGroupList m_EnergeticPatternsGroupList
static const TPatternType PAT_TYPE_E
bool getEPatternsGroupShape(int groupNum, int logPlane, int logStripNum)
static const int m_LOGPLANES_COUNT
Max Logic Planes Count in trigger towers.
const RPCPattern::TQualityVec & getQualityVec() const
std::vector< short > TQualityTab
int getPatternsGroupCount()
RPCPacData(std::string patFilesDir, int m_tower, int logSector, int logSegment)
Group of paterns for "improved"("energetic") algorithm. In current implementation all patterns in giv...
bool getTPatternsGroupShape(int logPlane, int logStripNum)
RPCPattern::RPCPatVec m_pats
void parse(std::string fileName)
void init(const RPCPatternsParser &parser, const RPCConst::l1RpcConeCrdnts &coneCrdnts)
Power< A, B >::type pow(const A &a, const B &b)