|
ATLAS Offline Software
|
This class provides the abstract converter to translate an object to/from its persistent ROOT representation.
More...
#include <RootCnv.h>
|
double | phiCorr (double phi) |
|
void | ipCorr (double d0, double z0, double &d0c, double &z0c, double phi0, double eta, double pt) |
|
This class provides the abstract converter to translate an object to/from its persistent ROOT representation.
Definition at line 37 of file RootCnv.h.
◆ RootCnv() [1/4]
Athena::RootCnv::RootCnv |
( |
const CLID & |
id, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
Standard Constructor.
Definition at line 44 of file RootCnv.cxx.
46 m_cnvSvc(
"Athena::RootCnvSvc/AthenaRootCnvSvc", ::name_from_clid(
id)),
◆ RootCnv() [2/4]
Athena::RootCnv::RootCnv |
( |
ISvcLocator * |
pSvcLocator | ) |
|
Definition at line 52 of file RootCnv.cxx.
52 :
::Converter(ROOT_StorageType, CLID_NULL, pSvcLocator),
54 m_cnvSvc(
"Athena::RootCnvSvc/AthenaRootCnvSvc", ::name_from_clid(CLID_NULL)),
◆ ~RootCnv()
Athena::RootCnv::~RootCnv |
( |
| ) |
|
|
virtual |
◆ RootCnv() [3/4]
Athena::RootCnv::RootCnv |
( |
| ) |
|
|
private |
◆ RootCnv() [4/4]
◆ addTrack()
◆ classID()
static const CLID& Athena::RootCnv::classID |
( |
| ) |
|
|
inlinestatic |
- Returns
- class ID.
Definition at line 79 of file RootCnv.h.
◆ clear()
void Converter::clear |
( |
| ) |
|
|
inlineinherited |
◆ createObj()
StatusCode Athena::RootCnv::createObj |
( |
IOpaqueAddress * |
pAddr, |
|
|
DataObject *& |
pObj |
|
) |
| |
|
virtual |
Create a transient object from a ROOT persistent representation.
- Parameters
-
pAddr | [IN] IOpaqueAddress of ROOT persistent representation. |
pObj | [OUT] pointer to the transient object. |
Definition at line 105 of file RootCnv.cxx.
120 return StatusCode::FAILURE;
◆ createRep()
StatusCode Athena::RootCnv::createRep |
( |
DataObject * |
pObj, |
|
|
IOpaqueAddress *& |
pAddr |
|
) |
| |
|
virtual |
Create a ROOT persistent representation for a transient object.
- Parameters
-
pObj | [IN] pointer to the transient object. |
pAddr | [OUT] IOpaqueAddress of ROOT persistent representation. |
Definition at line 128 of file RootCnv.cxx.
133 return StatusCode::FAILURE;
135 CLID clid = pObj->clID();
136 IRegistry* pR = pObj->registry();
139 return StatusCode::FAILURE;
141 std::string
p[2] = {
"", pR->identifier() };
142 unsigned long ip[2] = { 0, 0 };
147 if (token == 0 || !
m_cnvSvc->createAddress(this->repSvcType(), clid,
p,
ip, pAddr).isSuccess()) {
149 return StatusCode::FAILURE;
151 ATH_MSG_DEBUG(
"writing [" << objType() <<
"/" <<
p[1] <<
"] [done], entry = " <<
ip[0]);
152 return StatusCode::SUCCESS;
◆ fillObjRefs()
StatusCode Athena::RootCnv::fillObjRefs |
( |
IOpaqueAddress * |
pAddr, |
|
|
DataObject * |
pObj |
|
) |
| |
|
virtual |
Resolve the references of the created transient object.
- Parameters
-
pAddr | [IN] IOpaqueAddress of ROOT persistent representation. |
pObj | [OUT] pointer to the transient object. |
Definition at line 123 of file RootCnv.cxx.
124 ATH_MSG_VERBOSE(
"fillObjRefs(pAddr = " << pAddr <<
", " <<
"pObj = " << pObj <<
")...");
125 return StatusCode::FAILURE;
◆ fillRepRefs()
StatusCode Athena::RootCnv::fillRepRefs |
( |
IOpaqueAddress * |
pAddr, |
|
|
DataObject * |
pObj |
|
) |
| |
|
virtual |
Resolve the references of the created transient object.
- Parameters
-
pAddr | [IN] IOpaqueAddress of ROOT persistent representation. |
pObj | [OUT] pointer to the transient object. |
Definition at line 155 of file RootCnv.cxx.
156 ATH_MSG_VERBOSE(
"fillRepRefs(pAddr = " << pAddr <<
", " <<
"pObj = " << pObj <<
")...");
157 return StatusCode::FAILURE;
◆ finalize()
StatusCode Athena::RootCnv::finalize |
( |
| ) |
|
|
virtual |
◆ initialize()
StatusCode Athena::RootCnv::initialize |
( |
| ) |
|
|
virtual |
Gaudi Service Interface method implementations:
Definition at line 63 of file RootCnv.cxx.
66 return StatusCode::FAILURE;
70 CLID clid = this->objType();
79 ATH_MSG_INFO(
"Cannot get T/P converter, will write transient type [" <<
m_ttype.
Name() <<
", clid = " << clid <<
"]");
87 return StatusCode::FAILURE;
90 return StatusCode::SUCCESS;
◆ 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.
◆ operator=()
◆ 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()
long Athena::RootCnv::repSvcType |
( |
| ) |
const |
Retrieve the class type of the data store the converter uses.
Definition at line 97 of file RootCnv.cxx.
98 return ROOT_StorageType;
◆ 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 Athena::RootCnv::storageType |
( |
| ) |
|
|
static |
- Returns
- storage type.
Definition at line 101 of file RootCnv.cxx.
102 return ROOT_StorageType;
◆ tracks()
◆ CnvFactory< Athena::RootCnv >
◆ ATLAS_THREAD_SAFE
std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
|
mutableprivateinherited |
◆ m_beamX
double Converter::m_beamX |
|
protectedinherited |
◆ m_beamY
double Converter::m_beamY |
|
protectedinherited |
◆ m_beamZ
double Converter::m_beamZ |
|
protectedinherited |
◆ m_cnvSvc
◆ 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_nm
std::string AthMessaging::m_nm |
|
privateinherited |
◆ m_ptype
persistent type
Definition at line 96 of file RootCnv.h.
◆ m_tpcnv
◆ m_tracks
◆ m_ttype
transient type
Definition at line 93 of file RootCnv.h.
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
RootType m_ttype
transient type
Scalar phi() const
phi method
bool fromStorable(DataObject *pDObj, T *&pTrans, bool quiet=false, IRegisterTransient *irt=0, bool isConst=true)
Scalar eta() const
pseudorapidity method
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Scalar theta() const
theta method
const TrackSummary * trackSummary() const
accessor function for TrackSummary.
#define ATH_MSG_VERBOSE(x)
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)
ServiceHandle< ::IAthenaRootCnvSvc > m_cnvSvc
ServiceHandle to the conversion service.
AthMessaging()
Default constructor:
msgSvc
Provide convenience handles for various services.
@ numberOfSCTHits
number of SCT holes
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...
uint32_t CLID
The Class ID type.
MsgStream & msg() const
The standard message stream.
void addTrack(TIDA::Track *t)
std::string Name(unsigned int mod=Reflex::SCOPED) const
@ numberOfTRTHits
number of TRT outliers
A summary of the information contained by a track.
RootType m_ptype
persistent type
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.
Bool_t IsFundamental() const
DetectorType
enumerates the various detector types currently accessible from the isHit() method.
virtual const std::type_info & persistentTInfo() const =0
return C++ type id of the persistent class this converter is for
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.
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
float nSiHits(const U &p)
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.