|
ATLAS Offline Software
|
Contains methods to do the conversion from bytestream format to TileRawChannel stored in a TileRawChannelContainer and vice-versa making use of the TileRawChannelContByteStreamTool.
More...
#include <TileRawChannelContByteStreamCnv.h>
|
double | phiCorr (double phi) |
|
void | ipCorr (double d0, double z0, double &d0c, double &z0c, double phi0, double eta, double pt) |
|
Contains methods to do the conversion from bytestream format to TileRawChannel stored in a TileRawChannelContainer and vice-versa making use of the TileRawChannelContByteStreamTool.
Definition at line 39 of file TileRawChannelContByteStreamCnv.h.
◆ BYTESTREAMTOOL
◆ TileRawChannelContByteStreamCnv()
TileRawChannelContByteStreamCnv::TileRawChannelContByteStreamCnv |
( |
ISvcLocator * |
svcloc | ) |
|
◆ addTrack()
◆ classID()
const CLID & TileRawChannelContByteStreamCnv::classID |
( |
| ) |
|
|
static |
◆ clear()
void Converter::clear |
( |
| ) |
|
|
inlineinherited |
◆ createObj()
StatusCode AthConstConverter::createObj |
( |
IOpaqueAddress * |
pAddress, |
|
|
DataObject *& |
refpObject |
|
) |
| |
|
finaloverridevirtualinherited |
Create the transient representation of an object.
Non-const version; just calls the const version.
Definition at line 44 of file AthConstConverter.cxx.
◆ createObjConst()
StatusCode TileRawChannelContByteStreamCnv::createObjConst |
( |
IOpaqueAddress * |
pAddress, |
|
|
DataObject *& |
refpObject |
|
) |
| const |
|
overridevirtual |
Create the transient representation of an object.
The default implementation is a no-op.
Reimplemented from AthConstConverter.
Definition at line 70 of file TileRawChannelContByteStreamCnv.cxx.
79 return StatusCode::FAILURE;
82 const std::string containerName(*(pRE_Addr->par()));
83 bool isTMDB(containerName == std::string(
"MuRcvRawChCnt"));
88 std::vector<uint32_t> robid(1);
90 std::vector<const ROBDataProviderSvc::ROBF*> robf;
101 std::unordered_map<uint32_t,int> bsflags;
107 rawChannelCollection->
clear();
117 if (newrob != robid[0]) {
120 m_robSvc->getROBData(Gaudi::Hive::currentContext(), robid, robf);
124 if (robf.size() > 0 ) {
126 m_decoder->fillCollection_TileMuRcv_RawChannel(robf[0], *rawChannelCollection);
128 m_decoder->fillCollection(robf[0], *rawChannelCollection, cont);
130 flag = cont->get_bsflags();
131 auto result = bsflags.insert(std::pair<uint32_t, int>(
flag, 1));
134 ATH_MSG_DEBUG(
"ROB for " << ((isTMDB)?
"TMDB ":
"") <<
"drawer 0x" << MSG::hex << collID << MSG::dec <<
" not found in BS" );
137 ATH_MSG_DEBUG(
"Status for " << ((isTMDB)?
"TMDB ":
"") <<
"drawer 0x" << MSG::hex << collID <<
" is 0x" <<
status << MSG::dec);
141 if (bsflags.size() > 1) {
143 for (
const auto & elem : bsflags) {
144 if (elem.second >
n) {
150 if (
flag != cont->get_bsflags()) {
155 ATH_MSG_DEBUG(
"Changing units for " << ((isTMDB)?
"TMDB ":
"") <<
"RawChannelContainer from "
156 << cont->get_unit() <<
" to " <<
unit << MSG::hex
157 <<
" and BS flags from 0x" << cont->get_bsflags() <<
" to 0x" <<
flag << MSG::dec);
160 cont->set_bsflags(
flag);
164 ATH_MSG_DEBUG(
"Creating raw channel container: " << containerName );
170 return StatusCode::SUCCESS;
◆ createRep()
StatusCode AthConstConverter::createRep |
( |
DataObject * |
pObject, |
|
|
IOpaqueAddress *& |
refpAddress |
|
) |
| |
|
finaloverridevirtualinherited |
Convert the transient object to the requested representation.
Non-const version; just calls the const version.
Definition at line 56 of file AthConstConverter.cxx.
◆ createRepConst()
StatusCode TileRawChannelContByteStreamCnv::createRepConst |
( |
DataObject * |
pObject, |
|
|
IOpaqueAddress *& |
refpAddress |
|
) |
| const |
|
overridevirtual |
Convert the transient object to the requested representation.
The default implementation is a no-op.
Reimplemented from AthConstConverter.
Definition at line 173 of file TileRawChannelContByteStreamCnv.cxx.
181 std::string
key(
"Tile");
192 return StatusCode::FAILURE;
195 std::string
name = pObj->registry()->name();
197 if ( pAddr !=
nullptr ) pAddr->release();
204 return StatusCode::SUCCESS;
◆ finalize()
StatusCode TileRawChannelContByteStreamCnv::finalize |
( |
| ) |
|
|
overridevirtual |
◆ initialize()
StatusCode TileRawChannelContByteStreamCnv::initialize |
( |
| ) |
|
|
overridevirtual |
◆ initMessaging()
void AthMessaging::initMessaging |
( |
| ) |
const |
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
◆ ipCorr()
void Converter::ipCorr |
( |
double |
d0, |
|
|
double |
z0, |
|
|
double & |
d0c, |
|
|
double & |
z0c, |
|
|
double |
phi0, |
|
|
double |
eta, |
|
|
double |
pt |
|
) |
| |
|
inlineprotectedinherited |
Definition at line 257 of file Converter.h.
261 double sd0 = (
d0 != 0 ?
d0/fabs(
d0) : 1);
262 double spt = (
pt != 0 ?
pt/fabs(
pt) : 1);
270 double rc = fabs(
pt)*15.0/(9.0*1.042);
276 double xd01,yd01,xd02,yd02;
279 xd01 = 0; yd01 =
rc+yc;
280 xd02 = 0; yd02 = -
rc+yc;
282 xd01 = xc+yc/xc*yc+sqrt(
pow((xc+yc/xc*yc),2)-xc*xc-yc*yc+rc*rc); yd01 = yc/xc*xd01;
283 xd02 = xc+yc/xc*yc-sqrt(
pow((xc+yc/xc*yc),2)-xc*xc-yc*yc+rc*rc); yd02 = yc/xc*xd02;
286 double r1 = sqrt(xd01*xd01+yd01*yd01);
287 double r2 = sqrt(xd02*xd02+yd02*yd02);
292 phiV = atan2(yd01,xd01);
294 phiV = atan2(yd02,xd02);
304 d0c = fabs(sqrt(xc*xc+yc*yc)-rc)*
sin(phiV-newphi);
307 double theta_save=
theta;
◆ msg() [1/2]
MsgStream & AthMessaging::msg |
( |
| ) |
const |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 164 of file AthMessaging.h.
◆ msg() [2/2]
MsgStream & AthMessaging::msg |
( |
const MSG::Level |
lvl | ) |
const |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 179 of file AthMessaging.h.
180 {
return msg() << lvl; }
◆ msgLvl()
bool AthMessaging::msgLvl |
( |
const MSG::Level |
lvl | ) |
const |
|
inlineinherited |
Test the output level.
- Parameters
-
lvl | The message level to test against |
- Returns
- boolean Indicating if messages at given level will be printed
- Return values
-
true | Messages at level "lvl" will be printed |
Definition at line 151 of file AthMessaging.h.
◆ name()
const std::string& AthConstConverter::name |
( |
| ) |
const |
|
inlineinherited |
◆ phiCorr()
double Converter::phiCorr |
( |
double |
phi | ) |
|
|
inlineprotectedinherited |
Definition at line 248 of file Converter.h.
250 if (
phi < -TMath::Pi())
phi += 2*TMath::Pi();
251 if (
phi > TMath::Pi())
phi -= 2*TMath::Pi();
◆ repSvcType()
virtual long TileRawChannelContByteStreamCnv::repSvcType |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ selectTracks() [1/3]
Definition at line 177 of file Converter.h.
179 static int hpmap[20] = { 0, 1, 2, 7, 8, 9, 3, 4, 5, 6, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 };
184 while(muonitr!=muonend) {
186 bool hasInDet = (*muonitr)->hasInDetTrackParticle();
188 if(hasInDet) trackitr=(*muonitr)->inDetTrackParticle();
190 if(!hasInDet)
continue;
194 CLHEP::HepVector perigeeParams = measPer->parameters();
195 double pT = measPer->pT();
196 double eta = measPer->eta();
223 double dof = quality->quality->
numberDoF();
227 for (
int ih=0 ; ih<20 ; ih++ ) {
236 deta, dphi, dz0, dd0, dpT,
238 nStrawHits, nTrHits, bitmap, 0,
◆ selectTracks() [2/3]
Definition at line 111 of file Converter.h.
116 static int hpmap[20] = { 0, 1, 2, 7, 8, 9, 3, 4, 5, 6, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 };
118 while ( trackitr!=trackend ) {
122 CLHEP::HepVector perigeeParams = measPer->parameters();
123 double pT = measPer->pT();
124 double eta = measPer->eta();
147 bool expectBL =
false;
155 for (
int ih=0 ; ih<20 ; ih++ ) {
164 deta, dphi, dz0, dd0, dpT,
166 nStrawHits, nTrHits, bitmap, 0,
◆ selectTracks() [3/3]
Definition at line 56 of file Converter.h.
61 while ( trackitr!=trackend ) {
63 double eta = (*trackitr)->param()->eta();
64 double phi = (*trackitr)->param()->phi0();
65 double z0 = (*trackitr)->param()->z0();
66 double pT = (*trackitr)->param()->pT();
67 double d0 = (*trackitr)->param()->a0();
70 double deta = (*trackitr)->param()->eeta();
71 double dphi = (*trackitr)->param()->ephi0();
72 double dz0 = (*trackitr)->param()->ez0();
73 double dpT = (*trackitr)->param()->epT();
74 double dd0 = (*trackitr)->param()->ea0();
76 int algoid = (*trackitr)->algorithmId();
78 int nBlayerHits = ((*trackitr)->HitPattern() & 0x1);
79 int nPixelHits = 2*(*trackitr)->NPixelSpacePoints();
80 int nSctHits = 2*(*trackitr)->NSCT_SpacePoints();
81 int nStrawHits = (*trackitr)->NStrawHits();
82 int nTrHits = (*trackitr)->NTRHits();
85 bool expectBL =
false;
87 unsigned hitPattern = (*trackitr)->HitPattern();
88 unsigned multiPattern = 0;
90 double chi2 = (*trackitr)->chi2();
98 deta, dphi, dz0, dd0, dpT,
100 nStrawHits, nTrHits, hitPattern, multiPattern,
◆ setLevel()
void AthMessaging::setLevel |
( |
MSG::Level |
lvl | ) |
|
|
inherited |
◆ storageType()
long TileRawChannelContByteStreamCnv::storageType |
( |
| ) |
|
|
static |
◆ tracks()
◆ ATLAS_THREAD_SAFE
◆ m_beamX
double Converter::m_beamX |
|
protectedinherited |
◆ m_beamY
double Converter::m_beamY |
|
protectedinherited |
◆ m_beamZ
double Converter::m_beamZ |
|
protectedinherited |
◆ m_byteStreamCnvSvc
◆ m_decoder
◆ m_hid2re
◆ m_imsg
std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr } |
|
mutableprivateinherited |
◆ m_lvl
std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL } |
|
mutableprivateinherited |
◆ m_msg_tls
boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls |
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
◆ m_name
std::string AthConstConverter::m_name |
|
privateinherited |
◆ m_nm
std::string AthMessaging::m_nm |
|
privateinherited |
◆ m_robSvc
◆ m_tool
◆ m_tracks
The documentation for this class was generated from the following files:
std::atomic< MSG::Level > m_lvl
Current logging level.
@ numberOfPixelHits
number of pixel layers on track with absence of hits
void ipCorr(double d0, double z0, double &d0c, double &z0c, double phi0, double eta, double pt)
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Const iterator class for DataVector/DataList.
@ numberOfTRTHighThresholdHits
total number of TRT hits which pass the high threshold
Scalar phi() const
phi method
Template class for assembling a full atlas raw event from subfragments.
bool fromStorable(DataObject *pDObj, T *&pTrans, bool quiet=false, IRegisterTransient *irt=0, bool isConst=true)
Scalar eta() const
pseudorapidity method
StatusCode status() const
Return the error status from the constructors.
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
uint32_t getRobFromFragID(int frag_id) const
make a ROB SrcID for a fragment ID
Scalar theta() const
theta method
void setFragGlobalCRC(uint32_t globalcrc)
Various set methods.
const TileHid2RESrcID * m_hid2re
Pointer to TileHid2RESrcID.
ToolHandle< TileROD_Decoder > m_decoder
Pointer to TileROD_Decoder.
uint32_t getRobFromTileMuRcvFragID(int frag_id) const
ToolHandle< TileRawChannelContByteStreamTool > m_tool
const TrackSummary * trackSummary() const
accessor function for TrackSummary.
AthConstConverter(long storage_type, const CLID &class_type, ISvcLocator *svc, const std::string &name)
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
float nPixelHits(const U &p)
IMessageSvc * getMessageSvc(bool quiet=false)
@ numberOfBLayerHits
these are the hits in the 0th pixel layer?
double phiCorr(double phi)
virtual StatusCode createRepConst(DataObject *pObject, IOpaqueAddress *&refpAddress) const
Convert the transient object to the requested representation.
DataObject * asStorable(SG::DataObjectSharedPtr< T > pObject)
static const CLID & ID()
the CLID of T
Helper for holding non-const raw data prior to recording in SG.
@ numberOfSCTHits
number of SCT holes
IOpaqueAddress for ByteStreamCnvSvc, with ROB ids.
static long storageType()
const FitQuality * fitQuality() const
accessor function for FitQuality.
double chi2(TH1 *h0, TH1 *h1)
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
MsgStream & msg() const
The standard message stream.
void addTrack(TIDA::Track *t)
@ numberOfTRTHits
number of TRT outliers
static constexpr long storageType()
ServiceHandle< IByteStreamCnvSvc > m_byteStreamCnvSvc
Collection * indexFindPtr(IdentifierHash hash)
Look up a (non-const) collection via hash.
ServiceHandle< IROBDataProviderSvc > m_robSvc
Pointer to IROBDataProviderSvc.
A summary of the information contained by a track.
const std::string & name() const
virtual StatusCode createObjConst(IOpaqueAddress *pAddress, DataObject *&refpObject) const
Create the transient representation of an object.
const Trk::Perigee * measuredPerigee() const
Accessor method for Perigee.
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
void clear()
Clear everything for next event.
DetectorType
enumerates the various detector types currently accessible from the isHit() method.
const PlainObject unit() const
This is a plugin that makes Eigen look like CLHEP & defines some convenience methods.
std::string m_nm
Message source name.
double chiSquared() const
returns the of the overall track fit
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
void initMessaging() const
Initialize our message level and MessageSvc.
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
constexpr int pow(int base, int exp) noexcept
std::vector< TIDA::Track * > m_tracks
static const CLID & classID()
float nSiHits(const U &p)
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.