//$Id$ // Author: Anders Vestbo //*-- Copyright © ASV #include #include #include #include "AliL3ModelTrack.h" #include "AliL3Defs.h" #include "AliL3Transform.h" ClassImp(AliL3ModelTrack) AliL3ModelTrack::AliL3ModelTrack() { fNClusters = 0; fClusters = 0; fOverlap = -1; fPad=0; fTime=0; fClusterCharge=0; fTrackModel=0; } AliL3ModelTrack::~AliL3ModelTrack() { if(fClusters) delete [] fClusters; if(fPad) delete [] fPad; if(fTime) delete [] fTime; if(fTrackModel) delete fTrackModel; } void AliL3ModelTrack::Init(Int_t slice,Int_t patch) { fNClusters = 0; Int_t nrows = NumRows[patch]; fClusters = new AliL3ClusterModel[nrows]; memset((void*)fClusters,0,nrows*sizeof(AliL3ClusterModel)); fPad = new Float_t[NRowsSlice]; fTime = new Float_t[NRowsSlice]; fTrackModel = new AliL3TrackModel; memset(fTrackModel,0,sizeof(AliL3TrackModel)); fClusterCharge = 100; AliL3Transform transform; fXYResidualQ = 0.01/transform.GetPadPitchWidth(patch); fZResidualQ = 0.01/transform.GetPadPitchWidth(patch); } void AliL3ModelTrack::SetCluster(Float_t fpad,Float_t ftime,Float_t charge,Float_t sigmaY2,Float_t sigmaZ2) { AliL3ClusterModel *cl = &fClusters[fNClusters]; if(!charge) cl->fPresent = kFALSE; else { cl->fPresent = kTRUE; cl->fDTime = (ftime - GetTimeHit(fNClusters))/fXYResidualQ; cl->fDPad = (fpad - GetPadHit(fNClusters))/fZResidualQ; cl->fDCharge = charge; cl->fDSigmaY2 = sigmaY2; cl->fDSigmaZ2 = sigmaZ2; } //cout<<"Pad "<fKappa = GetKappa(); fTrackModel->fFirstPointX = GetFirstPointX(); fTrackModel->fFirstPointY = GetFirstPointY(); fTrackModel->fFirstPointZ = GetFirstPointZ(); fTrackModel->fTgl = GetTgl(); fTrackModel->fPsi = GetPsi(); fTrackModel->fLength = GetLength(); fTrackModel->fClusterCharge = fClusterCharge; fTrackModel->fNClusters = fNClusters; } void AliL3ModelTrack::Print() { //Print info cout<<"---------------------"<fPresent) cout<fDPad<<" Dtime "<fDTime<<" Dcharge "<fDCharge; cout<<" Padcrossing "<