1#ifndef RecExtTrackCnv_CXX
2#define RecExtTrackCnv_CXX 1
4#include "GaudiKernel/DataObject.h"
5#include "GaudiKernel/MsgStream.h"
6#include "GaudiKernel/ObjectVector.h"
8#include "TClonesArray.h"
10#include "EventModel/EventModel.h"
12#include "ReconEvent/ReconEvent.h"
14#include "ExtEvent/RecExtTrack.h"
16#include "RootEventData/TRecMucTrack.h"
18#include "RootEventData/TRecTrackEvent.h"
20#include "RootCnvSvc/Rec/RecExtTrackCnv.h"
21#include "RootCnvSvc/Rec/RecTrackCnv.h"
22#include "RootCnvSvc/RootAddress.h"
36 MsgStream log(
msgSvc(),
"RecExtTrackCnv" );
49 MsgStream log(
msgSvc(),
"RecExtTrackCnv" );
50 log << MSG::DEBUG <<
"RecExtTrackCnv::TObjectToDataObject" << endmsg;
51 StatusCode sc = StatusCode::SUCCESS;
55 refpObject = extTrackTdsCol;
58 if ( !m_extTrackCol )
return sc;
59 TIter extTrackIter( m_extTrackCol );
61 while ( ( extTrackRoot = (
TRecExtTrack*)extTrackIter.Next() ) )
65 m_common.m_rootExtTrackMap[extTrackRoot] = extTrackTds;
68 for (
int iPart = 0; iPart < 5; iPart++ )
78 Hep3Vector tof1p( p1x, p1y, p1z );
79 Hep3Vector tof1m( m1x, m1y, m1z );
84 double tof1 = extTrackRoot->
GetTof1( iPart );
85 double tof1path = extTrackRoot->
GetTof1Path( iPart );
90 HepSymMatrix e1m( 6 );
91 for (
int i = 0; i < 6; i++ )
92 for (
int j = 0; j < 6; j++ )
102 Hep3Vector tof2p( p2x, p2y, p2z );
103 Hep3Vector tof2m( m2x, m2y, m2z );
107 double tof2 = extTrackRoot->
GetTof2( iPart );
108 double tof2path = extTrackRoot->
GetTof2Path( iPart );
113 HepSymMatrix e2m( 6 );
114 for (
int i = 0; i < 6; i++ )
115 for (
int j = 0; j < 6; j++ )
125 Hep3Vector Ep( pEx, pEy, pEz );
126 Hep3Vector Em( mEx, mEy, mEz );
132 HepSymMatrix eEm( 6 );
133 for (
int i = 0; i < 6; i++ )
134 for (
int j = 0; j < 6; j++ )
136 double emcPath = extTrackRoot->
emcPath( iPart );
145 Hep3Vector Mp( pMx, pMy, pMz );
146 Hep3Vector Mm( mMx, mMy, mMz );
155 HepSymMatrix eMm( 6 );
156 for (
int i = 0; i < 6; i++ )
157 for (
int j = 0; j < 6; j++ )
161 int size = extTrackRoot->
GetSize( iPart );
171 HepSymMatrix matrix( 6 );
173 for (
int i = 0; i < size; i++ )
178 Hep3Vector p( px, py, pz );
182 Hep3Vector m( mx, my, mz );
189 std::vector<double> vecError = extTrackRoot->
GetErrorMatrix( i, iPart );
190 for (
int k = 0; k < 6; k++ )
192 for (
int j = 0; j < 6; j++ ) { matrix[k][j] = vecError[k * 6 + j]; }
199 extTrackTds->
SetTof1Data( tof1p, tof1m, v1s, v1n, tof1, tof1path, e1m, z1, t1, x1, y1 );
200 extTrackTds->
SetTof2Data( tof2p, tof2m, v2s, v2n, tof2, tof2path, e2m, z2, t2, x2, y2 );
201 extTrackTds->
SetEmcData( Ep, Em, vEs, vEn, theta, phi, eEm );
203 extTrackTds->
SetMucData( Mp, Mm, vMs, vMn, eMm, zM, tM, xM, yM );
205 extTrackTdsCol->push_back( extTrackTds );
213 delete m_extTrackCol;
216 return StatusCode::SUCCESS;
221 MsgStream log(
msgSvc(),
"RecExtTrackCnv" );
222 log << MSG::DEBUG <<
"RecExtTrackCnv::DataObjectToTObject" << endmsg;
223 StatusCode sc = StatusCode::SUCCESS;
226 if ( !extTrackColTds )
228 log << MSG::ERROR <<
"Could not downcast to RecExtTrackCol" << endmsg;
229 return StatusCode::FAILURE;
236 log << MSG::ERROR <<
"Could not get ReconEvent in TDS " << endmsg;
237 return StatusCode::FAILURE;
242 { log << MSG::ERROR <<
"RecExtTrackCnv:Could not downcast to TDS Rec Event" << endmsg; }
243 IOpaqueAddress* addr;
245 m_cnvSvc->getRecTrackCnv()->createRep( evt, addr );
250 if ( !m_extTrackCol )
return sc;
254 RecExtTrackCol::const_iterator extTrackTds;
256 for ( extTrackTds = extTrackColTds->begin(); extTrackTds != extTrackColTds->end();
260 Int_t trackId = ( *extTrackTds )->GetTrackId();
264 for (
int iPart = 0; iPart < 5; iPart++ )
267 Double_t p1x = ( *extTrackTds )->tof1Position( iPart ).x();
268 Double_t p1y = ( *extTrackTds )->tof1Position( iPart ).y();
269 Double_t p1z = ( *extTrackTds )->tof1Position( iPart ).z();
270 Double_t m1x = ( *extTrackTds )->tof1Momentum( iPart ).x();
271 Double_t m1y = ( *extTrackTds )->tof1Momentum( iPart ).y();
272 Double_t m1z = ( *extTrackTds )->tof1Momentum( iPart ).z();
274 TString v1s = ( *extTrackTds )->tof1VolumeName( iPart );
275 Int_t v1n = ( *extTrackTds )->tof1VolumeNumber( iPart );
276 Double_t tof1 = ( *extTrackTds )->tof1( iPart );
277 Double_t tof1p = ( *extTrackTds )->tof1Path( iPart );
278 Double_t z1 = ( *extTrackTds )->tof1PosSigmaAlongZ( iPart );
279 Double_t t1 = ( *extTrackTds )->tof1PosSigmaAlongT( iPart );
280 Double_t x1 = ( *extTrackTds )->tof1PosSigmaAlongX( iPart );
281 Double_t y1 = ( *extTrackTds )->tof1PosSigmaAlongY( iPart );
283 HepSymMatrix e1mTds = ( *extTrackTds )->tof1ErrorMatrix( iPart );
284 for (
int i = 0; i < 6; i++ )
285 for (
int j = 0; j < 6; j++ ) e1m[i][j] = e1mTds[i][j];
288 Double_t p2x = ( *extTrackTds )->tof2Position( iPart ).x();
289 Double_t p2y = ( *extTrackTds )->tof2Position( iPart ).y();
290 Double_t p2z = ( *extTrackTds )->tof2Position( iPart ).z();
291 Double_t m2x = ( *extTrackTds )->tof2Momentum( iPart ).x();
292 Double_t m2y = ( *extTrackTds )->tof2Momentum( iPart ).y();
293 Double_t m2z = ( *extTrackTds )->tof2Momentum( iPart ).z();
295 TString v2s = ( *extTrackTds )->tof2VolumeName( iPart );
296 Int_t v2n = ( *extTrackTds )->tof2VolumeNumber( iPart );
297 Double_t tof2 = ( *extTrackTds )->tof2( iPart );
298 Double_t tof2p = ( *extTrackTds )->tof2Path( iPart );
299 Double_t z2 = ( *extTrackTds )->tof2PosSigmaAlongZ( iPart );
300 Double_t t2 = ( *extTrackTds )->tof2PosSigmaAlongT( iPart );
301 Double_t x2 = ( *extTrackTds )->tof2PosSigmaAlongX( iPart );
302 Double_t y2 = ( *extTrackTds )->tof2PosSigmaAlongY( iPart );
304 HepSymMatrix e2mTds = ( *extTrackTds )->tof2ErrorMatrix( iPart );
305 for (
int i = 0; i < 6; i++ )
306 for (
int j = 0; j < 6; j++ ) e2m[i][j] = e2mTds[i][j];
308 Double_t pEx = ( *extTrackTds )->emcPosition( iPart ).x();
309 Double_t pEy = ( *extTrackTds )->emcPosition( iPart ).y();
310 Double_t pEz = ( *extTrackTds )->emcPosition( iPart ).z();
311 Double_t mEx = ( *extTrackTds )->emcMomentum( iPart ).x();
312 Double_t mEy = ( *extTrackTds )->emcMomentum( iPart ).y();
313 Double_t mEz = ( *extTrackTds )->emcMomentum( iPart ).z();
315 TString vEs = ( *extTrackTds )->emcVolumeName( iPart );
316 Int_t vEn = ( *extTrackTds )->emcVolumeNumber( iPart );
318 Double_t theta = ( *extTrackTds )->emcPosSigmaAlongTheta( iPart );
319 Double_t phi = ( *extTrackTds )->emcPosSigmaAlongPhi( iPart );
322 HepSymMatrix eEmTds = ( *extTrackTds )->emcErrorMatrix( iPart );
323 for (
int i = 0; i < 6; i++ )
324 for (
int j = 0; j < 6; j++ ) eEm[i][j] = eEmTds[i][j];
325 Double_t emcPath = ( *extTrackTds )->emcPath( iPart );
328 Double_t pMx = ( *extTrackTds )->mucPosition( iPart ).x();
329 Double_t pMy = ( *extTrackTds )->mucPosition( iPart ).y();
330 Double_t pMz = ( *extTrackTds )->mucPosition( iPart ).z();
331 Double_t mMx = ( *extTrackTds )->mucMomentum( iPart ).x();
332 Double_t mMy = ( *extTrackTds )->mucMomentum( iPart ).y();
333 Double_t mMz = ( *extTrackTds )->mucMomentum( iPart ).z();
335 TString vMs = ( *extTrackTds )->mucVolumeName( iPart );
336 Int_t vMn = ( *extTrackTds )->mucVolumeNumber( iPart );
338 Double_t zM = ( *extTrackTds )->mucPosSigmaAlongZ( iPart );
339 Double_t tM = ( *extTrackTds )->mucPosSigmaAlongT( iPart );
340 Double_t xM = ( *extTrackTds )->mucPosSigmaAlongX( iPart );
341 Double_t yM = ( *extTrackTds )->mucPosSigmaAlongY( iPart );
344 HepSymMatrix eMmTds = ( *extTrackTds )->mucErrorMatrix( iPart );
345 for (
int i = 0; i < 6; i++ )
346 for (
int j = 0; j < 6; j++ ) eMm[i][j] = eMmTds[i][j];
349 ExtMucHitVec vecHit = ( *extTrackTds )->GetExtMucHitVec( iPart );
350 Int_t size = vecHit.size();
357 extTrackRoot->
SetSize( size, iPart );
358 for (
int i = 0; i < size; i++ )
360 Double_t px = vecHit[i].GetPosition().x();
361 Double_t py = vecHit[i].GetPosition().y();
362 Double_t pz = vecHit[i].GetPosition().z();
363 Double_t mx = vecHit[i].GetMomentum().x();
364 Double_t my = vecHit[i].GetMomentum().y();
365 Double_t mz = vecHit[i].GetMomentum().z();
366 TString vs = vecHit[i].GetVolumeName();
367 Int_t vn = vecHit[i].GetVolumeNumber();
368 Double_t z = vecHit[i].GetPosSigmaAlongZ();
369 Double_t
t = vecHit[i].GetPosSigmaAlongT();
370 Double_t x = vecHit[i].GetPosSigmaAlongX();
371 Double_t y = vecHit[i].GetPosSigmaAlongY();
373 HepSymMatrix mTds = vecHit[i].GetErrorMatrix();
374 for (
int j = 0; j < 6; j++ )
375 for (
int k = 0; k < 6; k++ ) m[j][k] = mTds[j][k];
377 extTrackRoot->
SetExtMucHit( px, py, pz, mx, my, mz, vs, vn, z,
t, x, y, m, iPart );
391 extTrackRoot->
SetTof1( tof1, iPart );
411 extTrackRoot->
SetTof2( tof2, iPart );
457 return StatusCode::SUCCESS;
vector< ExtMucHit > ExtMucHitVec
ObjectVector< RecExtTrack > RecExtTrackCol
void SetTof1Data(Hep3Vector aPosition, Hep3Vector aMomentum, string aVolumeName, int aVolumeNumber, double aTof, double aPath, HepSymMatrix aErrorMatrix, double aZSigma=0., double aTSigma=0., double aXSigma=0., double aYSigma=0.)
void SetTrackId(int trackId)
void SetEmcData(Hep3Vector aPosition, Hep3Vector aMomentum, string aVolumeName, int aVolumeNumber, double aThetaSigma, double aPhiSigma, HepSymMatrix aErrorMatrix)
void SetParType(int aParType=2)
void SetTof2Data(Hep3Vector aPosition, Hep3Vector aMomentum, string aVolumeName, int aVolumeNumber, double aTof, double aPath, HepSymMatrix aErrorMatrix, double aZSigma=0., double aTSigma=0., double aXSigma=0., double aYSigma=0.)
void SetMucData(Hep3Vector aPosition, Hep3Vector aMomentum, string aVolumeName, int aVolumeNumber, HepSymMatrix aErrorMatrix, double aZSigma=0., double aTSigma=0., double aXSigma=0., double aYSigma=0.)
void SetEmcPath(double path)
void SetExtMucHit(Hep3Vector aPosition, Hep3Vector aMomentum, string aVolumeName, int aVolumeNumber, HepSymMatrix aErrorMatrix, double aZSigma=0., double aTSigma=0., double aXSigma=0., double aYSigma=0.)
virtual StatusCode DataObjectToTObject(DataObject *obj, RootAddress *addr)
transformation to root
virtual StatusCode TObjectToDataObject(DataObject *&obj)
transformation from root
static const CLID & classID()
RecExtTrackCnv(ISvcLocator *svc)
void AddExtMucHit(ExtMucHit aExtMucHit)
Definition of a Root address, derived from IOpaqueAddress.
IDataProviderSvc * m_eds
pointer to eventdataservice
std::vector< void * > m_adresses
each converter knows the corresponding adresses
std::string m_rootBranchname
root branchname (may be concatenated of severals)
RootEventBaseCnv(const CLID &clid, ISvcLocator *svc)
Double_t GetTof2PosSigmaAlongX(const Int_t i=2) const
void SetTof2VolumeName(const TString Tof2VolumeName, const Int_t i=2)
void SetTof1VolumeNumber(const Int_t Tof1VolumeNumber, const Int_t i=2)
Double_t GetPositionX(Int_t i, const Int_t k=2) const
Double_t GetPositionZ(Int_t i, const Int_t k=2) const
Int_t GetTof2VolumeNumber(const Int_t i=2) const
Int_t GetSize(const Int_t i=2) const
void SetTof2PosSigmaAlongZ(const Double_t Tof2PosSigmaAlongZ, const Int_t i=2)
void SetTof1MomentumZ(const Double_t Tof1MomentumZ, const Int_t i=2)
Double_t GetTof1PosSigmaAlongY(const Int_t i=2) const
void SetExtMucHit(Double_t PositionX, Double_t PositionY, Double_t PositionZ, Double_t MomentumX, Double_t MomentumY, Double_t MomentumZ, TString VolumeName, Int_t VolumeNumber, Double_t PosSigmaAlongZ, Double_t PosSigmaAlongT, Double_t PosSigmaAlongX, Double_t PosSigmaAlongY, Double_t ErrorMatrix[6][6], const Int_t k=2)
Double_t GetTof1PositionY(const Int_t i=2) const
Double_t GetMucPositionZ(const Int_t i=2) const
void SetTof2(const Double_t Tof2, const Int_t i=2)
void SetSize(Int_t size, const Int_t i=2)
Int_t GetEmcVolumeNumber(const Int_t i=2) const
void SetEmcVolumeNumber(const Int_t EmcVolumeNumber, const Int_t i=2)
Int_t GetMucVolumeNumber(const Int_t i=2) const
TString GetVolumeName(Int_t i, const Int_t k=2) const
void SetTof1Path(const Double_t Tof1Path, const Int_t i=2)
void SetTof2PosSigmaAlongX(const Double_t Tof2PosSigmaAlongX, const Int_t i=2)
void SetTof1PosSigmaAlongY(const Double_t Tof1PosSigmaAlongY, const Int_t i=2)
void SetEmcMomentumX(const Double_t EmcMomentumX, const Int_t i=2)
Double_t GetTof2MomentumY(const Int_t i=2) const
Double_t GetMucMomentumX(const Int_t i=2) const
void SetTof2MomentumY(const Double_t Tof2MomentumY, const Int_t i=2)
void SetMucPositionZ(const Double_t MucPositionZ, const Int_t i=2)
Double_t GetTof1PositionX(const Int_t i=2) const
void SetTof2MomentumX(const Double_t Tof2MomentumX, const Int_t i=2)
void SetMucPositionX(const Double_t MucPositionX, const Int_t i=2)
Double_t GetMomentumX(Int_t i, const Int_t k=2) const
void SetMucPosSigmaAlongX(const Double_t MucPosSigmaAlongX, const Int_t i=2)
void SetMucVolumeName(const TString MucVolumeName, const Int_t i=2)
void SetTof2PosSigmaAlongY(const Double_t Tof2PosSigmaAlongY, const Int_t i=2)
void SetTof1MomentumX(const Double_t Tof1MomentumX, const Int_t i=2)
void SetTof1PositionZ(const Double_t Tof1PositionZ, const Int_t i=2)
Double_t GetMucMomentumZ(const Int_t i=2) const
vector< Double_t > GetErrorMatrix(Int_t i, const Int_t k=2) const
Double_t GetMucMomentumY(const Int_t i=2) const
void SetMucPosSigmaAlongY(const Double_t MucPosSigmaAlongY, const Int_t i=2)
Double_t GetTof1PositionZ(const Int_t i=2) const
Double_t GetMucPositionX(const Int_t i=2) const
void SetEmcMomentumY(const Double_t EmcMomentumY, const Int_t i=2)
void SetTof2ErrorMatrix(const Double_t Tof2ErrorMatrix[6][6], const Int_t k=2)
void SetTof2Path(const Double_t Tof2Path, const Int_t i=2)
Double_t GetTof2MomentumX(const Int_t i=2) const
Double_t GetTof1ErrorMatrix(Int_t i, Int_t j, const Int_t k=2) const
void SetMucMomentumY(const Double_t MucMomentumY, const Int_t i=2)
Double_t GetTof1PosSigmaAlongZ(const Int_t i=2) const
void SetMucPosSigmaAlongT(const Double_t MucPosSigmaAlongT, const Int_t i=2)
void SetTof1(const Double_t Tof1, const Int_t i=2)
Double_t GetTof2PositionX(const Int_t i=2) const
Double_t GetPosSigmaAlongY(Int_t i, const Int_t k=2) const
void SetMucMomentumZ(const Double_t MucMomentumZ, const Int_t i=2)
Double_t GetTof2PosSigmaAlongY(const Int_t i=2) const
Double_t GetPosSigmaAlongX(Int_t i, const Int_t k=2) const
void SetEmcErrorMatrix(const Double_t EmcErrorMatrix[6][6], const Int_t k=2)
Double_t GetPosSigmaAlongZ(Int_t i, const Int_t k=2) const
TString GetTof1VolumeName(const Int_t i=2) const
Double_t GetTof2PositionZ(const Int_t i=2) const
Double_t emcPath(const Int_t i=2) const
Int_t GetVolumeNumber(Int_t i, const Int_t k=2) const
void SetEmcMomentumZ(const Double_t EmcMomentumZ, const Int_t i=2)
void SetTof1ErrorMatrix(const Double_t Tof1ErrorMatrix[6][6], const Int_t k=2)
void SetTof1PosSigmaAlongX(const Double_t Tof1PosSigmaAlongX, const Int_t i=2)
Double_t GetTof2PosSigmaAlongZ(const Int_t i=2) const
void SetEmcPosSigmaAlongTheta(const Double_t EmcPosSigmaAlongTheta, const Int_t i=2)
void SetTrackId(const Int_t trackId)
Double_t GetEmcErrorMatrix(Int_t i, Int_t j, const Int_t k=2) const
Double_t GetPositionY(Int_t i, const Int_t k=2) const
void SetTof2PosSigmaAlongT(const Double_t Tof2PosSigmaAlongT, const Int_t i=2)
void SetTof1PosSigmaAlongT(const Double_t Tof1PosSigmaAlongT, const Int_t i=2)
void SetTof1MomentumY(const Double_t Tof1MomentumY, const Int_t i=2)
void SetEmcPositionX(const Double_t EmcPositionX, const Int_t i=2)
Double_t GetTof2PositionY(const Int_t i=2) const
void SetEmcPositionZ(const Double_t EmcPositionZ, const Int_t i=2)
Double_t GetMucPositionY(const Int_t i=2) const
Double_t GetTof1Path(const Int_t i=2) const
void SetMucPositionY(const Double_t MucPositionY, const Int_t i=2)
Double_t GetTof2ErrorMatrix(Int_t i, Int_t j, const Int_t k=2) const
void SetTof2MomentumZ(const Double_t Tof2MomentumZ, const Int_t i=2)
TString GetMucVolumeName(const Int_t i=2) const
Double_t GetTof1MomentumZ(const Int_t i=2) const
void SetMucErrorMatrix(const Double_t MucErrorMatrix[6][6], const Int_t k=2)
Double_t GetEmcPositionY(const Int_t i=2) const
Double_t GetEmcPositionX(const Int_t i=2) const
void SetEmcVolumeName(const TString EmcVolumeName, const Int_t i=2)
void SetTof2PositionY(const Double_t Tof2PositionY, const Int_t i=2)
Double_t GetEmcPositionZ(const Int_t i=2) const
Double_t GetTof1(const Int_t i=2) const
Double_t GetTof1PosSigmaAlongX(const Int_t i=2) const
Double_t GetTof2MomentumZ(const Int_t i=2) const
Double_t GetEmcPosSigmaAlongPhi(const Int_t i=2) const
Int_t GetTof1VolumeNumber(const Int_t i=2) const
Double_t GetTof1PosSigmaAlongT(const Int_t i=2) const
TString GetEmcVolumeName(const Int_t i=2) const
void SetTof1PosSigmaAlongZ(const Double_t Tof1PosSigmaAlongZ, const Int_t i=2)
Double_t GetEmcMomentumZ(const Int_t i=2) const
Double_t GetEmcMomentumX(const Int_t i=2) const
Double_t GetMomentumZ(Int_t i, const Int_t k=2) const
void SetMucPosSigmaAlongZ(const Double_t MucPosSigmaAlongZ, const Int_t i=2)
TString GetTof2VolumeName(const Int_t i=2) const
Double_t GetMomentumY(Int_t i, const Int_t k=2) const
Double_t GetEmcPosSigmaAlongTheta(const Int_t i=2) const
Double_t GetMucPosSigmaAlongX(const Int_t i=2) const
void SetTof1VolumeName(const TString Tof1VolumeName, const Int_t i=2)
void SetMucMomentumX(const Double_t MucMomentumX, const Int_t i=2)
Double_t GetMucErrorMatrix(Int_t i, Int_t j, const Int_t k=2) const
void SetTof1PositionX(const Double_t Tof1PositionX, const Int_t i=2)
void SetTof2PositionZ(const Double_t Tof2PositionZ, const Int_t i=2)
Double_t GetTof2Path(const Int_t i=2) const
Double_t GetTof1MomentumY(const Int_t i=2) const
Double_t GetMucPosSigmaAlongT(const Int_t i=2) const
void SetEmcPosSigmaAlongPhi(const Double_t EmcPosSigmaAlongPhi, const Int_t i=2)
Double_t GetTof2PosSigmaAlongT(const Int_t i=2) const
void SetTof2PositionX(const Double_t Tof2PositionX, const Int_t i=2)
void SetEmcPath(Double_t path, const Int_t i=2)
Double_t GetTof2(const Int_t i=2) const
void SetEmcPositionY(const Double_t EmcPositionY, const Int_t i=2)
void SetTof2VolumeNumber(const Int_t Tof2VolumeNumber, const Int_t i=2)
Double_t GetTof1MomentumX(const Int_t i=2) const
void SetMucVolumeNumber(const Int_t MucVolumeNumber, const Int_t i=2)
void SetTof1PositionY(const Double_t Tof1PositionY, const Int_t i=2)
Double_t GetEmcMomentumY(const Int_t i=2) const
Double_t GetPosSigmaAlongT(Int_t i, const Int_t k=2) const
Double_t GetMucPosSigmaAlongZ(const Int_t i=2) const
Double_t GetMucPosSigmaAlongY(const Int_t i=2) const
const TObjArray * getExtTrackCol() const
void addExtTrack(TRecExtTrack *Track)
Add a ExtTrack into the Ext Data collection.
_EXTERN_ std::string Event