1#ifndef RecTofTrackCnv_CXX
2#define RecTofTrackCnv_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 "DstEvent/TofHitStatus.h"
13#include "MucRecEvent/RecMucTrack.h"
14#include "ReconEvent/ReconEvent.h"
16#include "RootEventData/TRecTofTrack.h"
17#include "RootEventData/TRecTrackEvent.h"
19#include "RootCnvSvc/Rec/RecTofTrackCnv.h"
20#include "RootCnvSvc/Rec/RecTrackCnv.h"
21#include "RootCnvSvc/RootAddress.h"
35 MsgStream log(
msgSvc(),
"RecTofTrackCnv" );
48 MsgStream log(
msgSvc(),
"RecTofTrackCnv" );
49 log << MSG::DEBUG <<
"RecTofTrackCnv::TObjectToDataObject" << endmsg;
50 StatusCode sc = StatusCode::SUCCESS;
54 refpObject = recTofTrackTdsCol;
57 if ( !m_recTofTrackCol )
return sc;
58 TIter recTofTrackIter( m_recTofTrackCol );
60 while ( ( recTofTrackRoot = (
TRecTofTrack*)recTofTrackIter.Next() ) )
63 int tofTrackID = recTofTrackRoot->
tofTrackID();
64 int trackID = recTofTrackRoot->
trackID();
65 int tofID = recTofTrackRoot->
tofID();
66 unsigned int status = recTofTrackRoot->
status();
67 double path = recTofTrackRoot->
path();
68 double zrhit = recTofTrackRoot->
zrhit();
69 double ph = recTofTrackRoot->
ph();
70 double tof = recTofTrackRoot->
tof();
71 double errtof = recTofTrackRoot->
errtof();
72 double beta = recTofTrackRoot->
beta();
74 double texpMuon = recTofTrackRoot->
texpMuon();
75 double texpPion = recTofTrackRoot->
texpPion();
76 double texpKaon = recTofTrackRoot->
texpKaon();
77 double texpProton = recTofTrackRoot->
texpProton();
79 double toffsetMuon = recTofTrackRoot->
toffsetMuon();
80 double toffsetPion = recTofTrackRoot->
toffsetPion();
81 double toffsetKaon = recTofTrackRoot->
toffsetKaon();
85 double sigmaMuon = recTofTrackRoot->
sigmaMuon();
86 double sigmaPion = recTofTrackRoot->
sigmaPion();
87 double sigmaKaon = recTofTrackRoot->
sigmaKaon();
88 double sigmaProton = recTofTrackRoot->
sigmaProton();
90 int quality = recTofTrackRoot->
quality();
91 double t0 = recTofTrackRoot->
t0();
92 double errt0 = recTofTrackRoot->
errt0();
93 double errz = recTofTrackRoot->
errz();
94 double phi = recTofTrackRoot->
phi();
95 double errphi = recTofTrackRoot->
errphi();
97 double errenergy = recTofTrackRoot->
errenergy();
100 m_common.m_rootRecTofTrackMap[recTofTrackRoot] = recTofTrackTds;
106 recTofTrackTds->
setPath( path );
108 recTofTrackTds->
setPh( ph );
109 recTofTrackTds->
setTof( tof );
111 recTofTrackTds->
setBeta( beta );
130 recTofTrackTds->
setT0( t0 );
132 recTofTrackTds->
setErrZ( errz );
133 recTofTrackTds->
setPhi( phi );
138 recTofTrackTdsCol->push_back( recTofTrackTds );
141 delete m_recTofTrackCol;
142 m_recTofTrackCol = 0;
144 return StatusCode::SUCCESS;
149 MsgStream log(
msgSvc(),
"RecTofTrackCnv" );
150 log << MSG::DEBUG <<
"RecTofTrackCnv::DataObjectToTObject" << endmsg;
151 StatusCode sc = StatusCode::SUCCESS;
154 if ( !recTofTrackColTds )
156 log << MSG::ERROR <<
"Could not downcast to TofTrackCol" << endmsg;
157 return StatusCode::FAILURE;
164 log << MSG::ERROR <<
"Could not get RecEvent in TDS " << endmsg;
165 return StatusCode::FAILURE;
170 { log << MSG::ERROR <<
"RecMucTrackCnv:Could not downcast to TDS DigiEvent" << endmsg; }
172 IOpaqueAddress* addr;
174 m_cnvSvc->getRecTrackCnv()->createRep( evt, addr );
178 if ( !m_recTofTrackCol )
return sc;
181 RecTofTrackCol::const_iterator recTofTrackTds;
183 for ( recTofTrackTds = recTofTrackColTds->begin();
184 recTofTrackTds != recTofTrackColTds->end(); recTofTrackTds++ )
187 Int_t tofTrackID = ( *recTofTrackTds )->tofTrackID();
188 Int_t trackID = ( *recTofTrackTds )->trackID();
189 Int_t tofID = ( *recTofTrackTds )->tofID();
190 Int_t strip = ( *recTofTrackTds )->strip();
191 UInt_t status = ( *recTofTrackTds )->status();
192 Double_t path = ( *recTofTrackTds )->path();
193 Double_t zrhit = ( *recTofTrackTds )->zrhit();
194 Double_t ph = ( *recTofTrackTds )->ph();
195 Double_t tof = ( *recTofTrackTds )->tof();
196 Double_t errtof = ( *recTofTrackTds )->errtof();
197 Double_t beta = ( *recTofTrackTds )->beta();
198 Double_t texpElectron = ( *recTofTrackTds )->texpElectron();
199 Double_t texpMuon = ( *recTofTrackTds )->texpMuon();
200 Double_t texpPion = ( *recTofTrackTds )->texpPion();
201 Double_t texpKaon = ( *recTofTrackTds )->texpKaon();
202 Double_t texpProton = ( *recTofTrackTds )->texpProton();
203 Double_t toffsetElectron = ( *recTofTrackTds )->toffsetElectron();
204 Double_t toffsetMuon = ( *recTofTrackTds )->toffsetMuon();
205 Double_t toffsetPion = ( *recTofTrackTds )->toffsetPion();
206 Double_t toffsetKaon = ( *recTofTrackTds )->toffsetKaon();
207 Double_t toffsetProton = ( *recTofTrackTds )->toffsetProton();
208 Double_t toffsetAntiProton = ( *recTofTrackTds )->toffsetAntiProton();
209 Double_t sigmaElectron = ( *recTofTrackTds )->sigmaElectron();
210 Double_t sigmaMuon = ( *recTofTrackTds )->sigmaMuon();
211 Double_t sigmaPion = ( *recTofTrackTds )->sigmaPion();
212 Double_t sigmaKaon = ( *recTofTrackTds )->sigmaKaon();
213 Double_t sigmaProton = ( *recTofTrackTds )->sigmaProton();
214 Double_t sigmaAntiProton = ( *recTofTrackTds )->sigmaAntiProton();
215 Int_t quality = ( *recTofTrackTds )->quality();
216 Double_t t0 = ( *recTofTrackTds )->t0();
217 Double_t errt0 = ( *recTofTrackTds )->errt0();
218 Double_t errz = ( *recTofTrackTds )->errz();
219 Double_t phi = ( *recTofTrackTds )->phi();
220 Double_t errphi = ( *recTofTrackTds )->errphi();
221 Double_t
energy = ( *recTofTrackTds )->energy();
222 Double_t errenergy = ( *recTofTrackTds )->errenergy();
233 recTofTrackRoot->
setPath( path );
235 recTofTrackRoot->
setPh( ph );
236 recTofTrackRoot->
setTof( tof );
238 recTofTrackRoot->
setBeta( beta );
257 recTofTrackRoot->
setT0( t0 );
259 recTofTrackRoot->
setErrZ( errz );
260 recTofTrackRoot->
setPhi( phi );
268 return StatusCode::SUCCESS;
ObjectVector< RecTofTrack > RecTofTrackCol
************Class m_ypar INTEGER m_KeyWgt INTEGER m_KeyIHVP INTEGER m_KeyGPS INTEGER m_IsBeamPolarized INTEGER m_EvtGenInterface DOUBLE PRECISION m_Emin DOUBLE PRECISION m_sphot DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_q2 DOUBLE PRECISION m_PolBeam2 DOUBLE PRECISION m_xErrPb *COMMON c_KK2f $ !CMS energy average $ !Spin Polarization vector first beam $ !Spin Polarization vector second beam $ !Beam energy spread[GeV] $ !minimum hadronization energy[GeV] $ !input READ never touch them !$ !debug facility $ !maximum weight $ !inverse alfaQED $ !minimum real photon energy
void setStatus(unsigned int status)
void setTexpElectron(double texpe)
void setTexpMuon(double texpmu)
void setToffsetPion(double topi)
void setEnergy(double energy)
void setPath(double path)
void setTexpPion(double texppi)
void setTofTrackID(int tofTrackID)
void setSigmaMuon(double smu)
void setQuality(int quality)
void setTexpKaon(double texpk)
void setZrHit(double zrhit)
void setToffsetMuon(double tomu)
void setSigmaProton(double sp)
void setToffsetProton(double top)
void setErrTof(double etof)
void setErrT0(double errt0)
void setTexpProton(double texpp)
void setToffsetAntiProton(double topb)
void setBeta(double beta)
void setSigmaKaon(double sk)
void setErrEnergy(double errenergy)
void setTrackID(int trackID)
void setErrZ(double errz)
void setSigmaAntiProton(double spb)
void setErrPhi(double errphi)
void setSigmaPion(double spi)
void setSigmaElectron(double se)
void setToffsetKaon(double tok)
void setToffsetElectron(double toe)
static const CLID & classID()
virtual StatusCode DataObjectToTObject(DataObject *obj, RootAddress *addr)
transformation to root
RecTofTrackCnv(ISvcLocator *svc)
virtual StatusCode TObjectToDataObject(DataObject *&obj)
transformation from root
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
RootEventBaseCnv(const CLID &clid, ISvcLocator *svc)
void setTexpElectron(Double_t texpe)
Double_t texpMuon() const
void setToffsetAntiProton(Double_t topb)
void setSigmaKaon(Double_t sk)
Double_t sigmaPion() const
Double_t sigmaAntiProton() const
void setTof(Double_t tof)
void setTrackID(Int_t trackID)
Double_t texpKaon() const
void setTexpProton(Double_t texpp)
Double_t toffsetMuon() const
void setToffsetKaon(Double_t tok)
Double_t sigmaProton() const
Double_t texpProton() const
void setSigmaElectron(Double_t se)
void setEnergy(Double_t energy)
Double_t texpElectron() const
void setStatus(UInt_t status)
void setToffsetElectron(Double_t toe)
Double_t sigmaMuon() const
void setTexpKaon(Double_t texpk)
void setToffsetMuon(Double_t tomu)
void setQuality(Int_t quality)
void setSigmaPion(Double_t spi)
Double_t toffsetPion() const
void setErrZ(Double_t errz)
void setErrTof(Double_t etof)
Double_t toffsetKaon() const
Double_t texpPion() const
void setTofID(Int_t tofID)
void setSigmaAntiProton(Double_t spb)
Double_t toffsetAntiProton() const
void setToffsetPion(Double_t topi)
void setBeta(Double_t beta)
Double_t toffsetProton() const
Double_t errenergy() const
void setSigmaMuon(Double_t smu)
void setPhi(Double_t phi)
void setErrPhi(Double_t errphi)
Double_t sigmaElectron() const
void setTofTrackID(Int_t tofTrackID)
void setPath(Double_t path)
void setErrEnergy(Double_t errenergy)
void setTexpMuon(Double_t texpmu)
void setToffsetProton(Double_t top)
void setSigmaProton(Double_t sp)
void setZrHit(Double_t zrhit)
void setTexpPion(Double_t texppi)
Double_t sigmaKaon() const
Double_t toffsetElectron() const
void setErrT0(Double_t errt0)
void clearTofTrackCol()
clear the whole array
const TObjArray * getTofTrackCol() const
retrieve the whole TObjArray of TofTrack Data
void addTofTrack(TRecTofTrack *Track)
Add a TofTrack into the TOF Data collection.
_EXTERN_ std::string Event