|  | ATLAS Offline Software
    | 
 
 
 
ByteStream converter for the CTP_RIO object.  
 More...
#include <RecCTPByteStreamCnv.h>
|  | 
| double | phiCorr (double phi) | 
|  | 
| void | ipCorr (double d0, double z0, double &d0c, double &z0c, double phi0, double eta, double pt) | 
|  | 
ByteStream converter for the CTP_RIO object. 
   This is a quite standard BS converter for the output sent from the
   Central Trigger Processor to the DAQ. It uses an external tool
   (RecCTPByteStreamTool) to do the actual work of the conversion, this
   converter is "only" supposed to communicate with the framework.
- See also
- RecCTPByteStreamTool
- Author
- David Berge 
- Date
- Date
- 2009-02-23 21:23:03 
Definition at line 35 of file RecCTPByteStreamCnv.h.
◆ RecCTPByteStreamCnv()
      
        
          | RecCTPByteStreamCnv::RecCTPByteStreamCnv | ( | ISvcLocator * | svcloc | ) |  | 
      
 
Standard constructor. 
The constructor sets up all the ToolHandle and ServiceHandle objects and initialises the base class in the correct way. 
Definition at line 24 of file RecCTPByteStreamCnv.cxx.
   26     m_tool( 
"RecCTPByteStreamTool" ),
 
 
 
 
◆ addTrack()
◆ classID()
  
  | 
        
          | const CLID & RecCTPByteStreamCnv::classID | ( |  | ) |  |  | static | 
 
Function needed by the framework. 
Function telling the framework the Class ID of the object that this converter is for (CTP_RIO). 
Definition at line 35 of file RecCTPByteStreamCnv.cxx.
 
 
◆ clear()
  
  | 
        
          | void Converter::clear | ( |  | ) |  |  | inlineinherited | 
 
 
◆ createObj()
  
  | 
        
          | StatusCode RecCTPByteStreamCnv::createObj | ( | IOpaqueAddress * | pAddr, |  
          |  |  | DataObject *& | pObj |  
          |  | ) |  |  |  | overridevirtual | 
 
Function creating the CTP_RIO object from a CTP ROB fragment. 
This function creates the CTP_RIO object from the BS data.
It requests the ROB fragment with the ROB Id of the CTP and gives this fragment to the RecCTPByteStreamTool for conversion. 
Definition at line 78 of file RecCTPByteStreamCnv.cxx.
   80   MsgStream 
log( 
msgSvc(), 
"RecCTPByteStreamCnv" );
 
   86     log << MSG::ERROR << 
" Can not cast to ByteStreamAddress " << 
endmsg ;
 
   87     return StatusCode::FAILURE;
 
   97   log << 
MSG::DEBUG << 
"expected ROB sub-detector ID: " << std::hex 
 
   98       << robId << std::dec << 
endmsg;  
 
  100   std::vector< uint32_t > vID;
 
  101   vID.push_back( robId );
 
  108   if ( robFrags.size() != 1 ) {
 
  109     log << MSG::WARNING << 
" Number of ROB fragments for source ID 0x" << MSG::hex << robId
 
  110         << 
" is " << robFrags.size() << 
endmsg;
 
  114     return StatusCode::SUCCESS;
 
  117   IROBDataProviderSvc::VROBFRAG::const_iterator 
it = robFrags.begin();
 
  123   return StatusCode::SUCCESS;
 
 
 
 
◆ initialize()
  
  | 
        
          | StatusCode RecCTPByteStreamCnv::initialize | ( |  | ) |  |  | overridevirtual | 
 
Function connecting to all the needed services/tools. 
Init method gets all necessary services etc. 
Definition at line 48 of file RecCTPByteStreamCnv.cxx.
   55   MsgStream 
log( 
msgSvc(), 
"RecCTPByteStreamCnv" );
 
   70   return StatusCode::SUCCESS;
 
 
 
 
◆ 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;
 
 
 
 
◆ 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 RecCTPByteStreamCnv::repSvcType | ( |  | ) | const |  | inlineoverridevirtual | 
 
Function needed by the framework. 
Definition at line 47 of file RecCTPByteStreamCnv.h.
   47 { 
return i_repSvcType(); }
 
 
 
◆ 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; 
 
  151       double dof  = 
quality->numberDoF();
 
  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, 
 
 
 
 
◆ storageType()
  
  | 
        
          | long RecCTPByteStreamCnv::storageType | ( |  | ) |  |  | static | 
 
 
◆ tracks()
◆ m_beamX
  
  | 
        
          | double Converter::m_beamX |  | protectedinherited | 
 
 
◆ m_beamY
  
  | 
        
          | double Converter::m_beamY |  | protectedinherited | 
 
 
◆ m_beamZ
  
  | 
        
          | double Converter::m_beamZ |  | protectedinherited | 
 
 
◆ m_robDataProvider
◆ m_srcIdMap
◆ m_tool
◆ m_tracks
The documentation for this class was generated from the following files:
 
@ 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)
Const iterator class for DataVector/DataList.
@ numberOfTRTHighThresholdHits
total number of TRT hits which pass the high threshold
const ROBFragment * getROBFragment() const
Return the ROBFragment.
Scalar phi() const
phi method
ToolHandle< RecCTPByteStreamTool > m_tool
Tool doing the actual conversion.
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
templete data class to wrap ROB fragment for accessing ROD data
const TrackSummary * trackSummary() const
accessor function for TrackSummary.
static long storageType()
Function needed by the framework.
float nPixelHits(const U &p)
@ numberOfBLayerHits
these are the hits in the 0th pixel layer?
double phiCorr(double phi)
DataObject * asStorable(SG::DataObjectSharedPtr< T > pObject)
static const CLID & classID()
Function needed by the framework.
msgSvc
Provide convenience handles for various services.
@ numberOfSCTHits
number of SCT holes
ServiceHandle< IROBDataProviderSvc > m_robDataProvider
Service used when reading the BS data.
IOpaqueAddress for ByteStreamCnvSvc, with ROB ids.
const FitQuality * fitQuality() const
accessor function for FitQuality.
double chi2(TH1 *h0, TH1 *h1)
std::vector< const ROBF * > VROBFRAG
Class to represent and store fit qualities from track reconstruction in terms of  and number of degre...
void addTrack(TIDA::Track *t)
@ numberOfTRTHits
number of TRT outliers
static constexpr long storageType()
A summary of the information contained by a track.
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.
DetectorType
enumerates the various detector types currently accessible from the isHit() method.
CTPSrcIdMap m_srcIdMap
Object storing the various IDs of the CTP fragment.
uint32_t getRodID() const
get a ROD Source ID
uint32_t getRobID(uint32_t rod_id) const
Make a ROB Source ID from a ROD source ID.
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.