/************************************************************************** * Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. * * * * Author: The ALICE Off-line Project. * * Contributors are mentioned in the code where appropriate. * * * * Permission to use, copy, modify and distribute this software and its * * documentation strictly for non-commercial purposes is hereby granted * * without fee, provided that the above copyright notice appears in all * * copies and that both the copyright notice and this permission notice * * appear in the supporting documentation. The authors make no claims * * about the suitability of this software for any purpose. It is * * provided "as is" without express or implied warranty. * **************************************************************************/ /* $Id$ */ //////////////////////////////////////////////////// // Stand alone track class // // Origin: Elisabetta Crescio // // e-mail: crescio@to.infn.it // // it is a V2 track with a possible number // // of cluster equal to kMaxNumberOfClusters // //////////////////////////////////////////////////// #include "AliITSgeomTGeo.h" #include "AliITStrackSA.h" ClassImp(AliITStrackSA) //_____________________________________ AliITStrackSA:: AliITStrackSA() : AliITStrackMI(), fNSA(0) { // Default constructor SetNumberOfClusters(0); SetNumberOfClustersSA(0); ResetIndexSA(); for(Int_t nlay=0;nlay=TMath::TwoPi()) sAlpha-=TMath::TwoPi(); Double_t sX=TMath::Sqrt(xyz[0]*xyz[0] + xyz[1]*xyz[1]); fdEdx = 0; Double_t conv=GetBz()*kB2C; Double_t sC[] = {0.000009, // 0.000009 0., 0.000003, //0.000030 0., 0., 0.000001, //0.000001 0., 0., 0., 0.000002, //0.000002 0., 0., 0., 0., 0.000001/(conv*conv)}; //0.0000001 Double_t sP[] = {Ycoor, Zcoor, TMath::Sin(phi-sAlpha), tanlambda, curv/conv}; // dealing with the case B=0 (taken from AliTPCtrack.cxx) Double_t mostProbablePt=AliExternalTrackParam::GetMostProbablePt(); Double_t p0=TMath::Sign(1/mostProbablePt,sP[4]); Double_t w0=sC[14]/(sC[14] + p0*p0), w1=p0*p0/(sC[14] + p0*p0); sP[4] = w0*p0 + w1*sP[4]; sC[14]*=w1; Set(sX,sAlpha,sP,sC); for(Int_t i=0; i=kMaxNumberOfClusters){ Warning("AddClusterSA","Maximum number of clusters already reached. Nothing is done\n"); return; } fSain[presnum] = (layer<<28)+clnumb; presnum++; SetNumberOfClustersSA(presnum); } //____________________________________________________________ void AliITStrackSA::AddClusterMark(Int_t layer, Int_t clnumb) { // add one clusters to the list (maximum number=kMaxNumberOfClusters) Int_t presnum = GetNumberOfMarked(layer); // printf("presnum=%d\n",presnum); if(presnum>=kMaxNumberOfClustersL){ Warning("AddClusterMark","Maximum number of clusters already reached. Nothing is done\n"); return; } fCluMark[layer][presnum] = clnumb; presnum++; SetNumberOfMarked(layer,presnum); } //____________________________________________________________ void AliITStrackSA::AddClusterV2(Int_t layer,Int_t clnumb) { // add one clusters to the list (maximum number=6) Int_t presnum = GetNumberOfClusters(); if(presnum>=AliITSgeomTGeo::GetNLayers()){ Warning("AddClusterV2","Maximum number of clusters already reached. Nothing is done\n"); return; } fIndex[presnum] = (layer<<28)+clnumb; presnum++; SetNumberOfClusters(presnum); } //_____________________________________________________________ void AliITStrackSA::ResetMarked(){ //Reset array of marked clusters for(Int_t nlay=0;nlay