ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
MuCTPIByteStreamCnv Class Reference

ByteStream converter for the MuCTPI_RDO object. More...

#include <MuCTPIByteStreamCnv.h>

Inheritance diagram for MuCTPIByteStreamCnv:
Collaboration diagram for MuCTPIByteStreamCnv:

Public Member Functions

 MuCTPIByteStreamCnv (ISvcLocator *svcloc)
 Standard constructor. More...
 
virtual StatusCode initialize () override
 Function connecting to all the needed services/tools. More...
 
virtual StatusCode createObj (IOpaqueAddress *pAddr, DataObject *&pObj) override
 Function creating the MuCTPI_RDO object from a MuCTPI ROB fragment. More...
 
virtual StatusCode createRep (DataObject *pObj, IOpaqueAddress *&pAddr) override
 Function creating the MuCTPI ROB fragment from a MuCTPI_RDO object. More...
 
virtual long repSvcType () const override
 Function needed by the framework. More...
 
void addTrack (TIDA::Track *t)
 
const std::vector< TIDA::Track * > & tracks () const
 
void clear ()
 
void selectTracks (const TrigInDetTrackCollection *trigtracks)
 
void selectTracks (const Rec::TrackParticleContainer *trigtracks)
 
void selectTracks (const Analysis::MuonContainer *muontracks)
 

Static Public Member Functions

static long storageType ()
 Function needed by the framework. More...
 
static const CLIDclassID ()
 Function needed by the framework. More...
 

Protected Member Functions

double phiCorr (double phi)
 
void ipCorr (double d0, double z0, double &d0c, double &z0c, double phi0, double eta, double pt)
 

Protected Attributes

double m_beamX
 
double m_beamY
 
double m_beamZ
 
std::vector< TIDA::Track * > m_tracks
 

Private Attributes

ToolHandle< MuCTPIByteStreamToolm_tool
 Tool doing the actual conversion. More...
 
MuCTPISrcIdMap m_srcIdMap
 Object storing the various IDs of the MuCTPI fragment. More...
 
ServiceHandle< IROBDataProviderSvcm_robDataProvider
 Service used when reading the BS data. More...
 
ServiceHandle< IByteStreamEventAccessm_ByteStreamEventAccess
 Service used when writing the BS data. More...
 

Detailed Description

ByteStream converter for the MuCTPI_RDO object.

   This is a quite standard BS converter for the output sent from the
   "Muon to Central Trigger Processor Interface" to the DAQ. It uses
   an external tool (MuCTPIByteStreamTool) to do the actual work of
   the conversion, this converter is "only" supposed to communicate
   with the framework.
See also
MuCTPIByteStreamTool
Author
Tadashi Maeno
Attila Krasznahorkay

Definition at line 47 of file MuCTPIByteStreamCnv.h.

Constructor & Destructor Documentation

◆ MuCTPIByteStreamCnv()

MuCTPIByteStreamCnv::MuCTPIByteStreamCnv ( 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 33 of file MuCTPIByteStreamCnv.cxx.

34  : Converter( storageType(), classID(), svcloc ),
35  m_tool( "MuCTPIByteStreamTool" ),
36 #ifdef CTP_MUCTPI_HAVE_SAME_ROS
37  m_ctp_tool( "CTPByteStreamTool" ),
38  m_ctp_rec_tool( "RecCTPByteStreamTool" ),
39  m_storeGate( "StoreGateSvc", "MuCTPIByteStreamCnv" ),
40 #endif
41  m_robDataProvider( "ROBDataProviderSvc", "MuCTPIByteStreamCnv" ),
42  m_ByteStreamEventAccess( "ByteStreamCnvSvc", "MuCTPIByteStreamCnv" ) {
43 
44 }

Member Function Documentation

◆ addTrack()

void Converter::addTrack ( TIDA::Track t)
inlineinherited

Definition at line 45 of file Converter.h.

45  {
46  m_tracks.push_back(t);
47  }

◆ classID()

const CLID & MuCTPIByteStreamCnv::classID ( )
static

Function needed by the framework.

Function telling the framework the Class ID of the object that this converter is for (MuCTPI_RDO).

Definition at line 50 of file MuCTPIByteStreamCnv.cxx.

50  {
51 
53 
54 }

◆ clear()

void Converter::clear ( )
inlineinherited

Definition at line 53 of file Converter.h.

53 {m_tracks.clear();}

◆ createObj()

StatusCode MuCTPIByteStreamCnv::createObj ( IOpaqueAddress *  pAddr,
DataObject *&  pObj 
)
overridevirtual

Function creating the MuCTPI_RDO object from a MuCTPI ROB fragment.

This function creates the MuCTPI_RDO object from the BS data.

It requests the ROB fragment with the ROB Id of the MuCTPI and gives this fragment to the MuCTPIByteStreamTool for conversion.

Definition at line 116 of file MuCTPIByteStreamCnv.cxx.

116  {
117 
118  MsgStream log( msgSvc(), "MuCTPIByteStreamCnv" );
119  log << MSG::DEBUG << "createObj() called" << endmsg;
120 
121  ByteStreamAddress *pBS_Addr;
122  pBS_Addr = dynamic_cast< ByteStreamAddress* >( pAddr );
123  if ( !pBS_Addr ) {
124  log << MSG::ERROR << " Can not cast to ByteStreamAddress " << endmsg ;
125  return StatusCode::FAILURE;
126  }
127 
128  log << MSG::DEBUG << " Creating Objects " << *( pBS_Addr->par() ) << endmsg;
129 
130  //
131  // Get SourceID:
132  //
133  const uint32_t robId = m_srcIdMap.getRobID( m_srcIdMap.getRodID() );
134 
135  log << MSG::DEBUG << " expected ROB sub-detector ID: " << std::hex
136  << robId << std::dec << endmsg;
137 
138  std::vector< uint32_t > vID;
139  vID.push_back( robId );
140 
141  //
142  // Get ROB fragment:
143  //
145  m_robDataProvider->getROBData( vID, robFrags );
146 
147  //
148  // Size check:
149  //
150  if( robFrags.size() == 0 ) {
151 
152  // This is a hack - for some time CTP and MUCTPI were plugged in
153  // the same ROB of the same ROS PC ...
154  // 0x76000b : MUCTPI
155  // 0x76000a : CTP
156  // Note that the MUCTPI ROBID must come first, cos further down we
157  // just use the first element of robFrags to create the RDO
158  vID[0] = ( robId | 0x00000b );
159 #ifdef CTP_MUCTPI_HAVE_SAME_ROS
160  vID.push_back( robId | 0x00000a );
161 #endif
162  m_robDataProvider->getROBData( vID, robFrags );
163 
164  if( robFrags.size() == 0 ) {
165  // yet another temporary hack!!! - for some time the ROB ID was 0!
166  vID[0] = 0x00000b;
167 #ifdef CTP_MUCTPI_HAVE_SAME_ROS
168  vID[1] = 0x00000a;
169 #endif
170  m_robDataProvider->getROBData( vID, robFrags );
171 
172  if( robFrags.size() == 0 ) {
173  log << MSG::WARNING << "No MuCTPI ROB fragments found!" << endmsg;
174 
176  pObj = SG::asStorable( result );
177  return StatusCode::SUCCESS;
178  }
179  }
180  }
181 
182  IROBDataProviderSvc::VROBFRAG::const_iterator it = robFrags.begin();
183  MuCTPI_RDO* result = 0;
184  StatusCode sc = m_tool->convert( ROBData( *it ).getROBFragment(), result );
185  if( sc.isFailure() ) {
186  log << MSG::ERROR << " Failed to create Objects: " << *( pBS_Addr->par() ) << endmsg;
187  if (result!=0){
188  delete result;
189  result=0;
190  }
191  return sc;
192  }
193  pObj = SG::asStorable( result ) ;
194 
195 #ifdef CTP_MUCTPI_HAVE_SAME_ROS
196  // If CTP and MuCTPI send to the same ROS, the MuCTPI ROS, we get
197  // the CTP fragment in the MuCTPI ROS fragment. In order to be able
198  // to produce a CTP_RDO, we call the CTP ByteStream AlgTool from
199  // here whenever we think we have a CTP fragment.
200 
201  if( robFrags.size() > 1 ) {
202 
203  ++it;
204  if( it != robFrags.end() ) {
205 
206  CTP_RDO* ctp_result = 0;
207  CTP_RIO* ctp_rio_result = 0;
208 
209  ATH_CHECK( m_ctp_tool->convert( ROBData( *it ).getROBFragment(), ctp_result ) );
210 
211  SG::asStorable( ctp_result ) ;
212  ATH_CHECK( m_storeGate->record( ctp_result, "CTP_RDO" ) );
213 
214  ATH_CHECK( m_ctp_rec_tool->convert( ROBData( *it ).getROBFragment(), ctp_rio_result, log ) );
215 
216  SG::asStorable( ctp_rio_result ) ;
217  ATH_CHECK( m_storeGate->record( ctp_rio_result, "CTP_RIO" ) );
218  }
219 
220  }
221 #endif
222 
223  return sc;
224 }

◆ createRep()

StatusCode MuCTPIByteStreamCnv::createRep ( DataObject *  pObj,
IOpaqueAddress *&  pAddr 
)
overridevirtual

Function creating the MuCTPI ROB fragment from a MuCTPI_RDO object.

This function receives a MuCTPI_RDO object as input, and adds the ROB fragment of the MuCTPI to the current raw event using the IByteStreamEventAccess interface.

Definition at line 231 of file MuCTPIByteStreamCnv.cxx.

231  {
232 
233  MsgStream log( msgSvc(), "MuCTPIByteStreamCnv" );
234  log << MSG::DEBUG << "createRep() called" << endmsg;
235 
236  RawEventWrite* re = m_ByteStreamEventAccess->getRawEvent();
237 
239  if( ! SG::fromStorable( pObj, result ) ) {
240  log << MSG::ERROR << " Cannot cast to MuCTPI_RDO" << endmsg;
241  return StatusCode::FAILURE;
242  }
243 
244  ByteStreamAddress* addr = new ByteStreamAddress( classID(), pObj->registry()->name(), "" );
245 
246  pAddr = addr;
247 
248  // Convert to ByteStream
249  return m_tool->convert( result, re );
250 }

◆ initialize()

StatusCode MuCTPIByteStreamCnv::initialize ( )
overridevirtual

Function connecting to all the needed services/tools.

Init method gets all necessary services etc.

Definition at line 63 of file MuCTPIByteStreamCnv.cxx.

63  {
64 
65  //
66  // Initialise the base class:
67  //
69 
70  MsgStream log( msgSvc(), "MuCTPIByteStreamCnv" );
71  log << MSG::DEBUG << "MuCTPIByteStreamCnv in initialize() " << endmsg;
72 
73  //
74  // Get ByteStreamCnvSvc:
75  //
76  ATH_CHECK( m_ByteStreamEventAccess.retrieve() );
77 
78  //
79  // Get MuCTPIByteStreamTool:
80  //
81  ATH_CHECK( m_tool.retrieve() );
82  log << MSG::DEBUG << "Connected to MuCTPIByteStreamTool" << endmsg;
83 
84 #ifdef CTP_MUCTPI_HAVE_SAME_ROS
85  //
86  // Get CTPByteStreamTool:
87  //
88  ATH_CHECK( m_ctp_tool.retrieve() );
89  log << MSG::DEBUG << "Connected to CTPByteStreamTool" << endmsg;
90 
91  //
92  // Get RecCTPByteStreamTool:
93  //
94  ATH_CHECK( m_ctp_rec_tool.retrieve() );
95  log << MSG::DEBUG << "Connected to RecCTPByteStreamTool" << endmsg;
96 #endif
97 
98  //
99  // Get ROBDataProvider:
100  //
101  if( m_robDataProvider.retrieve().isFailure() ) {
102  log << MSG::WARNING << "Can't get ROBDataProviderSvc" << endmsg;
103  // return is disabled for Write BS which does not requre ROBDataProviderSvc
104  } else {
105  log << MSG::DEBUG << "Connected to ROBDataProviderSvc" << endmsg;
106  }
107 
108  return StatusCode::SUCCESS;
109 }

◆ 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.

257  {
258 
259  double sn = sin(phi0);
260  double cs = cos(phi0);
261  double sd0 = (d0 != 0 ? d0/fabs(d0) : 1);
262  double spt = (pt != 0 ? pt/fabs(pt) : 1);
263 
264  if (fabs(pt) >= 1*CLHEP::TeV) {
265 
266  d0c = d0 + m_beamX*sn - m_beamY*cs;
267 
268  } else {
269 
270  double rc = fabs(pt)*15.0/(9.0*1.042);
271 
272  double xc = (fabs(d0)-spt*sd0*rc)*cos(phi0+M_PI/2*sd0) - m_beamX;
273  double yc = (fabs(d0)-spt*sd0*rc)*sin(phi0+M_PI/2*sd0) - m_beamY;
274 
275  double newphi;
276  double xd01,yd01,xd02,yd02;
277 
278  if (xc == 0) {
279  xd01 = 0; yd01 = rc+yc;
280  xd02 = 0; yd02 = -rc+yc;
281  } else {
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;
284  }
285 
286  double r1 = sqrt(xd01*xd01+yd01*yd01);
287  double r2 = sqrt(xd02*xd02+yd02*yd02);
288 
289  double phiV;
290 
291  if (r1 < r2)
292  phiV = atan2(yd01,xd01);
293  else
294  phiV = atan2(yd02,xd02);
295 
296  double phi1 = phiCorr(phiV+M_PI/2);
297  double phi2 = phiCorr(phiV-M_PI/2);
298 
299  if (fabs(phiCorr(phi1-phi0))<=fabs(phiCorr(phi2-phi0)))
300  newphi = phi1;
301  else
302  newphi = phi2;
303 
304  d0c = fabs(sqrt(xc*xc+yc*yc)-rc)*sin(phiV-newphi);
305 
306  double theta=2*atan2(exp(-eta),1);
307  double theta_save=theta;
308  theta = theta - (1+spt)/2*M_PI;
309  if (theta>0) theta = theta_save;
310 
311  double deltaz0= -spt*rc/tan(theta)*phiCorr(phiCorr(newphi)-phiCorr(phi0));
312  z0c = z0 + deltaz0;
313 
314  }
315  }

◆ phiCorr()

double Converter::phiCorr ( double  phi)
inlineprotectedinherited

Definition at line 248 of file Converter.h.

248  {
249 
250  if (phi < -TMath::Pi()) phi += 2*TMath::Pi();
251  if (phi > TMath::Pi()) phi -= 2*TMath::Pi();
252 
253  return phi;
254  }

◆ repSvcType()

virtual long MuCTPIByteStreamCnv::repSvcType ( ) const
inlineoverridevirtual

Function needed by the framework.

Definition at line 61 of file MuCTPIByteStreamCnv.h.

61 { return i_repSvcType(); }

◆ selectTracks() [1/3]

void Converter::selectTracks ( const Analysis::MuonContainer muontracks)
inlineinherited

Definition at line 177 of file Converter.h.

177  {
178 
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 };
180 
181  Analysis::MuonContainer::const_iterator muonitr = muontracks->begin();
182  Analysis::MuonContainer::const_iterator muonend = muontracks->end();
183 
184  while(muonitr!=muonend) {
185 
186  bool hasInDet = (*muonitr)->hasInDetTrackParticle();
187  const Rec::TrackParticle *trackitr=NULL;
188  if(hasInDet) trackitr=(*muonitr)->inDetTrackParticle();
189  muonitr++;
190  if(!hasInDet) continue;
191 
192  const Trk::MeasuredPerigee* measPer = trackitr->measuredPerigee();
193 
194  CLHEP::HepVector perigeeParams = measPer->parameters();
195  double pT = measPer->pT();
196  double eta = measPer->eta();
197  double phi = perigeeParams[Trk::phi0];
198  double z0 = perigeeParams[Trk::z0];
199  double d0 = perigeeParams[Trk::d0];
200  //double theta = perigeeParams[Trk::theta];
201 
202  double deta = 1;
203  double dphi = 1;
204  double dz0 = 1;
205  double dd0 = 1;
206  double dpT = 1;
207 
208  // Check number of hits
209  // NB: a spacepoint is two offline "hits", so a pixel spacepoint is really
210  // 2 "hits" and an offline SCT "hit" is really a 1D cluster, so two intersetcting
211  // stereo clusters making a spacepoint are two "hits"
212  const Trk::TrackSummary *summary = trackitr->trackSummary();
213  int nBlayerHits = 2*summary->get(Trk::numberOfBLayerHits);
215  int nSctHits = summary->get(Trk::numberOfSCTHits);
216  int nStrawHits = summary->get(Trk::numberOfTRTHits);
217  int nTrHits = summary->get(Trk::numberOfTRTHighThresholdHits);
218 
219  int nSiHits = nPixelHits + nSctHits;
220 
221  const Trk::FitQuality *quality = trackitr->fitQuality();
222  double chi2 = quality->chiSquared();
223  double dof = quality->quality->numberDoF();
224 
225  unsigned bitmap = 0;
226 
227  for ( int ih=0 ; ih<20 ; ih++ ) {
228  if ( summary->isHit(Trk::DetectorType(ih)) ) bitmap |= ( 1<<hpmap[ih] );
229  }
230 
231  // Shift d0 and z0 according to beam position
232  ipCorr(d0, z0, d0, z0, phi, eta, pT);
233 
234  // Create and save Track
235  TIDA::Track* t = new TIDA::Track(eta, phi, z0, d0, pT, chi2, dof,
236  deta, dphi, dz0, dd0, dpT,
237  nBlayerHits, nPixelHits, nSctHits, nSiHits,
238  nStrawHits, nTrHits, bitmap, 0,
239  -1) ;
240 
241  addTrack(t);
242  }
243 
244  }

◆ selectTracks() [2/3]

void Converter::selectTracks ( const Rec::TrackParticleContainer trigtracks)
inlineinherited

Definition at line 111 of file Converter.h.

111  {
112 
113  Rec::TrackParticleContainer::const_iterator trackitr = trigtracks->begin();
114  Rec::TrackParticleContainer::const_iterator trackend = trigtracks->end();
115 
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 };
117 
118  while ( trackitr!=trackend ) {
119 
120  const Trk::MeasuredPerigee* measPer = (*trackitr)->measuredPerigee();
121 
122  CLHEP::HepVector perigeeParams = measPer->parameters();
123  double pT = measPer->pT();
124  double eta = measPer->eta();
125  double phi = perigeeParams[Trk::phi0];
126  double z0 = perigeeParams[Trk::z0];
127  double d0 = perigeeParams[Trk::d0];
128  //double theta = perigeeParams[Trk::theta];
129 
130  double deta = 1;
131  double dphi = 1;
132  double dz0 = 1;
133  double dd0 = 1;
134  double dpT = 1;
135 
136  // Check number of hits
137  // NB: a spacepoint is two offline "hits", so a pixel spacepoint is really
138  // 2 "hits" and an offline SCT "hit" is really a 1D cluster, so two intersetcting
139  // stereo clusters making a spacepoint are two "hits"
140  const Trk::TrackSummary *summary = (*trackitr)->trackSummary();
141  int nBlayerHits = 2*summary->get(Trk::numberOfBLayerHits);
143  int nSctHits = summary->get(Trk::numberOfSCTHits);
144  int nStrawHits = summary->get(Trk::numberOfTRTHits);
145  int nTrHits = summary->get(Trk::numberOfTRTHighThresholdHits);
146  int nSiHits = nPixelHits + nSctHits;
147  bool expectBL = false; // Not stored for Rec::TrackParticle
148 
149  const Trk::FitQuality *quality = (*trackitr)->fitQuality();
150  double chi2 = quality->chiSquared();
151  double dof = quality->numberDoF();
152 
153  unsigned bitmap = 0;
154 
155  for ( int ih=0 ; ih<20 ; ih++ ) {
156  if ( summary->isHit(Trk::DetectorType(ih)) ) bitmap |= ( 1<<hpmap[ih] );
157  }
158 
159  // Shift d0 and z0 according to beam position
160  ipCorr(d0, z0, d0, z0, phi, eta, pT);
161 
162  // Create and save Track
163  TIDA::Track* t = new TIDA::Track(eta, phi, z0, d0, pT, chi2, dof,
164  deta, dphi, dz0, dd0, dpT,
165  nBlayerHits, nPixelHits, nSctHits, nSiHits,
166  nStrawHits, nTrHits, bitmap, 0,
167  -1,
168  expectBL) ;
169 
170  addTrack(t);
171  trackitr++;
172  }
173 
174  }

◆ selectTracks() [3/3]

void Converter::selectTracks ( const TrigInDetTrackCollection trigtracks)
inlineinherited

Definition at line 56 of file Converter.h.

56  {
57 
58  TrigInDetTrackCollection::const_iterator trackitr = trigtracks->begin();
59  TrigInDetTrackCollection::const_iterator trackend = trigtracks->end();
60 
61  while ( trackitr!=trackend ) {
62 
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();
68  //double theta = 2*atan2(exp(-(*trackitr)->param()->eta()),1);
69 
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();
75 
76  int algoid = (*trackitr)->algorithmId();
77 
78  int nBlayerHits = ((*trackitr)->HitPattern() & 0x1);
79  int nPixelHits = 2*(*trackitr)->NPixelSpacePoints(); // NB: for comparison with offline
80  int nSctHits = 2*(*trackitr)->NSCT_SpacePoints(); // a spacepoint is 2 "hits"
81  int nStrawHits = (*trackitr)->NStrawHits();
82  int nTrHits = (*trackitr)->NTRHits();
83 
84  int nSiHits = nPixelHits + nSctHits;
85  bool expectBL = false; //not available with TrigInDetTrack
86 
87  unsigned hitPattern = (*trackitr)->HitPattern();
88  unsigned multiPattern = 0;
89 
90  double chi2 = (*trackitr)->chi2();
91  double dof = 0;
92 
93  // Shift d0 and z0 according to beam position
94  ipCorr(d0, z0, d0, z0, phi, eta, pT);
95 
96  // Create and save Track
97  TIDA::Track* t = new TIDA::Track(eta, phi, z0, d0, pT, chi2, dof,
98  deta, dphi, dz0, dd0, dpT,
99  nBlayerHits, nPixelHits, nSctHits, nSiHits,
100  nStrawHits, nTrHits, hitPattern, multiPattern,
101  algoid,
102  expectBL ) ;
103 
104  addTrack(t);
105  trackitr++;
106  }
107  }

◆ storageType()

long MuCTPIByteStreamCnv::storageType ( )
static

Function needed by the framework.

Definition at line 56 of file MuCTPIByteStreamCnv.cxx.

56  {
58 }

◆ tracks()

const std::vector<TIDA::Track*>& Converter::tracks ( ) const
inlineinherited

Definition at line 50 of file Converter.h.

50 {return m_tracks;}

Member Data Documentation

◆ m_beamX

double Converter::m_beamX
protectedinherited

Definition at line 320 of file Converter.h.

◆ m_beamY

double Converter::m_beamY
protectedinherited

Definition at line 320 of file Converter.h.

◆ m_beamZ

double Converter::m_beamZ
protectedinherited

Definition at line 320 of file Converter.h.

◆ m_ByteStreamEventAccess

ServiceHandle< IByteStreamEventAccess > MuCTPIByteStreamCnv::m_ByteStreamEventAccess
private

Service used when writing the BS data.

Definition at line 82 of file MuCTPIByteStreamCnv.h.

◆ m_robDataProvider

ServiceHandle< IROBDataProviderSvc > MuCTPIByteStreamCnv::m_robDataProvider
private

Service used when reading the BS data.

Definition at line 80 of file MuCTPIByteStreamCnv.h.

◆ m_srcIdMap

MuCTPISrcIdMap MuCTPIByteStreamCnv::m_srcIdMap
private

Object storing the various IDs of the MuCTPI fragment.

Definition at line 71 of file MuCTPIByteStreamCnv.h.

◆ m_tool

ToolHandle< MuCTPIByteStreamTool > MuCTPIByteStreamCnv::m_tool
private

Tool doing the actual conversion.

Definition at line 69 of file MuCTPIByteStreamCnv.h.

◆ m_tracks

std::vector<TIDA::Track*> Converter::m_tracks
protectedinherited

Definition at line 321 of file Converter.h.


The documentation for this class was generated from the following files:
CTP_RIO
Definition: CTP_RIO.h:22
Trk::numberOfPixelHits
@ numberOfPixelHits
number of pixel layers on track with absence of hits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:57
Converter::Converter
Converter()
Definition: Converter.h:31
RawEventWrite
OFFLINE_FRAGMENTS_NAMESPACE_WRITE::FullEventFragment RawEventWrite
data type for writing raw event
Definition: RawEvent.h:39
CalculateHighPtTerm.pT
pT
Definition: ICHEP2016/CalculateHighPtTerm.py:57
Converter::ipCorr
void ipCorr(double d0, double z0, double &d0c, double &z0c, double phi0, double eta, double pt)
Definition: Converter.h:257
MuCTPISrcIdMap::getRobID
uint32_t getRobID(uint32_t rod_id) const
Make a ROB Source ID from a ROD source ID.
Definition: MuCTPISrcIdMap.cxx:17
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
MuCTPISrcIdMap::getRodID
uint32_t getRodID() const
get a ROD Source ID
Definition: MuCTPISrcIdMap.cxx:12
Trk::numberOfTRTHighThresholdHits
@ numberOfTRTHighThresholdHits
total number of TRT hits which pass the high threshold
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:87
get_generator_info.result
result
Definition: get_generator_info.py:21
Converter::m_beamY
double m_beamY
Definition: Converter.h:320
ROBData_T::getROBFragment
const ROBFragment * getROBFragment() const
Return the ROBFragment.
Definition: ROBData.h:184
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
TauGNNUtils::Variables::Track::nPixelHits
bool nPixelHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:542
MuCTPIByteStreamCnv::m_robDataProvider
ServiceHandle< IROBDataProviderSvc > m_robDataProvider
Service used when reading the BS data.
Definition: MuCTPIByteStreamCnv.h:80
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
SG::fromStorable
bool fromStorable(DataObject *pDObj, T *&pTrans, bool quiet=false, IRegisterTransient *irt=0, bool isConst=true)
Definition: StorableConversions.h:180
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
ROBData
ROBData_T< OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment, OFFLINE_FRAGMENTS_NAMESPACE::PointerType > ROBData
Definition: ROBData.h:225
initialize
void initialize()
Definition: run_EoverP.cxx:894
InDetAccessor::phi0
@ phi0
Definition: InDetAccessor.h:33
theta
Scalar theta() const
theta method
Definition: AmgMatrixBasePlugin.h:71
conifer::pow
constexpr int pow(int x)
Definition: conifer.h:20
xAOD::JetInput::Track
@ Track
Definition: JetContainerInfo.h:61
ROBData_T
templete data class to wrap ROB fragment for accessing ROD data
Definition: ROBData.h:46
Trk::TrackParticleBase::trackSummary
const TrackSummary * trackSummary() const
accessor function for TrackSummary.
Definition: TrackParticleBase.h:247
skel.it
it
Definition: skel.GENtoEVGEN.py:423
test_pyathena.pt
pt
Definition: test_pyathena.py:11
M_PI
#define M_PI
Definition: ActiveFraction.h:11
Trk::z0
@ z0
Definition: ParamDefs.h:70
SG::asStorable
DataObject * asStorable(T *pObject)
Definition: StorableConversions.h:158
python.SystemOfUnits.TeV
int TeV
Definition: SystemOfUnits.py:158
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
MCP::ScaleSmearParam::r2
@ r2
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
MuCTPIByteStreamCnv::storageType
static long storageType()
Function needed by the framework.
Definition: MuCTPIByteStreamCnv.cxx:56
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
Trk::numberOfBLayerHits
@ numberOfBLayerHits
these are the hits in the 0th pixel layer?
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:51
Converter::phiCorr
double phiCorr(double phi)
Definition: Converter.h:248
ClassID_traits::ID
static const CLID & ID()
the CLID of T
Definition: Control/AthenaKernel/AthenaKernel/ClassID_traits.h:50
MuCTPIByteStreamCnv::m_ByteStreamEventAccess
ServiceHandle< IByteStreamEventAccess > m_ByteStreamEventAccess
Service used when writing the BS data.
Definition: MuCTPIByteStreamCnv.h:82
TauGNNUtils::Variables::Track::nSiHits
bool nSiHits(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
Definition: TauGNNUtils.cxx:691
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
MuCTPIByteStreamCnv::classID
static const CLID & classID()
Function needed by the framework.
Definition: MuCTPIByteStreamCnv.cxx:50
Converter::m_beamX
double m_beamX
Definition: Converter.h:320
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Trk::numberOfSCTHits
@ numberOfSCTHits
number of SCT holes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:71
ByteStreamAddress
IOpaqueAddress for ByteStreamCnvSvc, with ROB ids.
Definition: ByteStreamAddress.h:28
Trk::TrackParticleBase::fitQuality
const FitQuality * fitQuality() const
accessor function for FitQuality.
Definition: TrackParticleBase.h:259
chi2
double chi2(TH1 *h0, TH1 *h1)
Definition: comparitor.cxx:522
TRT::Track::d0
@ d0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:62
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
IROBDataProviderSvc::VROBFRAG
std::vector< const ROBF * > VROBFRAG
Definition: IROBDataProviderSvc.h:29
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
Trk::FitQuality
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
Definition: FitQuality.h:97
TRT::Track::z0
@ z0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:63
Converter::addTrack
void addTrack(TIDA::Track *t)
Definition: Converter.h:45
Trk::numberOfTRTHits
@ numberOfTRTHits
number of TRT outliers
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:79
ByteStreamAddress::storageType
static constexpr long storageType()
Definition: ByteStreamAddress.h:51
Trk::TrackSummary
A summary of the information contained by a track.
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:287
Trk::d0
@ d0
Definition: ParamDefs.h:69
MuCTPIByteStreamCnv::m_srcIdMap
MuCTPISrcIdMap m_srcIdMap
Object storing the various IDs of the MuCTPI fragment.
Definition: MuCTPIByteStreamCnv.h:71
Rec::TrackParticle
Definition: Reconstruction/Particle/Particle/TrackParticle.h:47
Rec::TrackParticle::measuredPerigee
const Trk::Perigee * measuredPerigee() const
Accessor method for Perigee.
Definition: Reconstruction/Particle/Particle/TrackParticle.h:180
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
MuCTPI_RDO
Class representing the readout data of the MuCTPI hardware and simulation.
Definition: MuCTPI_RDO.h:41
CTP_RDO
Definition: CTP_RDO.h:20
Trk::DetectorType
DetectorType
enumerates the various detector types currently accessible from the isHit() method.
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:231
re
const boost::regex re(r_e)
DEBUG
#define DEBUG
Definition: page_access.h:11
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
TIDA::Track
Definition: Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/Track.h:26
Trk::FitQuality::chiSquared
double chiSquared() const
returns the of the overall track fit
Definition: FitQuality.h:56
Trk::FitQuality::numberDoF
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
Definition: FitQuality.h:60
MuCTPIByteStreamCnv::m_tool
ToolHandle< MuCTPIByteStreamTool > m_tool
Tool doing the actual conversion.
Definition: MuCTPIByteStreamCnv.h:69
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
MCP::ScaleSmearParam::r1
@ r1
Converter::m_tracks
std::vector< TIDA::Track * > m_tracks
Definition: Converter.h:321
Trk::phi0
@ phi0
Definition: ParamDefs.h:71
python.trfValidateRootFile.rc
rc
Definition: trfValidateRootFile.py:350
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
SCT_Monitoring::summary
@ summary
Definition: SCT_MonitoringNumbers.h:65