|
ATLAS Offline Software
|
Go to the documentation of this file.
16 static const InterfaceID IID_IRecMuCTPIByteStreamTool(
"RecMuCTPIByteStreamTool", 1, 1 );
24 return IID_IRecMuCTPIByteStreamTool;
37 declareInterface< RecMuCTPIByteStreamTool >(
this );
48 if(
sc.isFailure() ) {
55 if(
sc.isFailure() ) {
61 return StatusCode::SUCCESS;
82 uint32_t rodId = rob->rod_source_id();
84 if( rodId == miRodId ) {
91 const uint32_t ndata = rob->rod_ndata();
92 const uint32_t detev_type = rob->rod_detev_type();
93 const uint32_t lvl1_type = rob->rod_lvl1_trigger_type();
94 const uint32_t lvl1_id = rob->rod_lvl1_id();
95 const uint32_t run_no = rob->rod_run_no();
96 const uint32_t nstatus = rob->rod_nstatus();
98 rob->rod_status( it_statusData );
103 <<
" (dec " <<
bcid <<
")");
105 << MSG::dec <<
" (dec " << detev_type <<
")");
107 <<
" (dec " << lvl1_id <<
")");
109 <<
" (dec " << lvl1_type <<
")");
113 for (
uint32_t i = 0;
i < nstatus; ++
i , ++it_statusData) {
114 ATH_MSG_VERBOSE(
"Status word # " <<
i <<
": 0x" << MSG::hex << (*it_statusData) << MSG::dec
115 <<
" (dec " << (*it_statusData) <<
")");
130 rob->rod_data( it_data );
135 if( ((*it_data) & 0x20000000) != 0 ) nMultWords++;
139 rob->rod_data( it_data );
141 it_data+=(nMultWords-1)/2;
143 ATH_MSG_DEBUG(
" 0x" << MSG::hex << std::setw( 8 ) << *it_data
144 <<
" (candidate multiplicity)");
149 sum[
i ] = ( *it_data >> (
i * 3 ) ) & 0x1F;
153 uint16_t g_bcId = ( (*it_data) & 0x001C0000 ) >> 18;
156 it_data+=(nMultWords+1)/2;
159 for(
uint32_t i = nMultWords;
i < ndata; ++
i, ++it_data ) {
161 ATH_MSG_DEBUG(
" 0x" << MSG::hex << std::setw( 8 ) << *it_data);
168 bool accepted =
true;
169 if ( ( tmpWord & 0x04000000 ) == 0 )
173 uint32_t roiWord = ( tmpWord & 0x00003FFF ) + ( ( tmpWord & 0x03FE0000 ) >> 3 );
176 <<
" : ROI=" << std::setw( 8 ) <<
roiWord);
182 uint16_t pTVal = thisRoI.getThresholdValue();
183 uint16_t pTNumber = thisRoI.getThresholdNumber();
185 uint16_t secId = thisRoI.sectorID();
187 uint16_t hemisphere = thisRoI.subsysID();
188 double eta = thisRoI.eta();
189 double phi = thisRoI.phi();
190 bool first = thisRoI.firstCandidate();
191 bool duplicatedRoI = thisRoI.padOverflow();
192 bool duplicatedSector = thisRoI.sectorOverflow();
196 accepted,
first, duplicatedRoI, duplicatedSector );
202 return StatusCode::SUCCESS;
206 ATH_MSG_WARNING(
"Expected source ID 0x" << MSG::hex << miRodId <<
" but found 0x"
207 << rodId << MSG::dec);
208 return StatusCode::FAILURE;
def retrieve(aClass, aKey=None)
void headerSourceId(uint32_t val)
Set the ROD ID specidied in the header.
uint32_t getRodID() const
get a ROD Source ID
void headerDetectorEventType(uint32_t val)
Set the event type specified in the header.
Scalar phi() const
phi method
void headerNumberDataWords(uint32_t val)
Set the number of data words as it was specified in the trailer
Scalar eta() const
pseudorapidity method
void headerRunNumber(uint32_t val)
Set the run number specified in the header.
#define ATH_MSG_VERBOSE(x)
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
void setRoI(const uint16_t bcId, const uint16_t pTval, const uint16_t pTnum, const double eta, const double phi, const uint16_t secID, const uint16_t sysId, const uint16_t hemisphere, const uint16_t roiNum, const bool accepted, const bool first, const bool duplicatedRoI, const bool duplicatedSector)
Add a muon RoI to the object
Reconstruction Input Object of the MuCTPI hardware and simulation.
const DataType * PointerType
This class defines the reconstructed Muon ROI.
void headerNumberStatusWords(uint32_t val)
Set the number of status words as it was specified in the trailer
void setSum(const uint16_t *sum)
Set the multiplicity sum.
::StatusCode StatusCode
StatusCode definition for legacy code.
void headerLVL1ID(uint32_t val)
Set the LVL1 ID specified in the header.
std::vector< uint32_t > & headerStatusWords()
Get the status words from the payload.
void headerBCID(uint32_t val)
Set the BCID specified in the header.
uint16_t bcId(uint32_t data)
setTeId setLumiBlock setRoiId setRoiSubsystem roiNumber
setEventNumber setTimeStamp bcid
void headerLVL1TriggerType(uint32_t val)
Set the LVL1 trigger type specified in the header.
#define ATH_MSG_WARNING(x)
void setBCID(const uint16_t bcId)
Function setting the BCID of the object.