====== Instalation ====== 1. cd build 2. cmake .. 3. make -j16 ====== Run ====== (in common version instead of CA use either CAITS or CAHFT) CA - procces all events from "build/Events" directory CA -perf - print performances CA N - procces only event with number N CA -ev N - -//-//- CA -ev N1 N2 - procces only events with numbers N1,N1+1,..,N2 CA -dir [dirPath] - procces all events from [directory] directory example: ./CA -ev 0 9 -dir "/data.local1/mzyzak/alice/Analysis/GenerateHits" -perf ======= QA ======= in build directory: root -l DrawHistos.C+ - will create dir Histos with number of pictures root -l Pulls.C - will show and create pulls pictures: GlobalTrackParamQuality.pdf; SectorTrackParamQuality.pdf ======= Comments ======= To make it portable next designation is made: X0 X1 X2 - local coordinates X0 is normal to the station module, X2 is paralel to magnetic field. X0 X1 X2 are right handed coordinates Momentum - for cartecian c.s. is P, for cylindrical is Pt QMom = q/p or q/pt respectively ======= Input information =========== units: Field - kGauss distance - cm momentum - GeV/c charge - charge of proton = 1 Global coordinate system: The global z is along beam line, x is horizontal, y is vertical. The global c.s is righthand c.s. The local c.s. is connected with detector module on which hit is placed, x is normal to the detector, y is parallel and perpendicular to beam, z is parallel both to the module and beam line. The local c.s is righthand c.s. Local track parameters: Y, Z, SinPhi = dy/sqrt(dx*dx + dy*dy), DzDs = dz/sqrt(dx*dx + dy*dy), q/Pt 0. geometry file - settings.data The following information has to be there: NStations Bz sta0 sta1 … where sta0 means the following info about first station: IStation R xOverX0 xRho StripAngle Dim CellLength here Bz - is the main field component (currently we suppose homogenous magnetic field) IStation - index of station in the file (starting from 0) R - radius of the station barrel (approximate distance between ladders and beam) xOverX0 = x/X0, here x - is thickness of the station, X0 - is average radiation length xRho = x * Rho, here Rho is evarage density of the station material StripAngle - angle of the strip in case of 1-dimensional strip measurement. In case of 2D measurements put StripAngle=0. Dim - dimensionality of the measurements, Dim=2 for 2D measurements. CellLength - number of measurements in the cell CA algorithm creates, for 2D measurements and 3D reconstruction CellLength=3 is optimal. 1. The hits are stored in the files with names "event[eventNumber]_hits.data" each file has format NHits hit0 hit1 … where NHits is number of hits hit0 is info for hit0 in the next format: X Y Z Cyy Cyz Czz IStation HitId StationAngle here xyz - coordinates of the hit in Global coordinate system (same for all detectors). The global z is along beam line, x is horizontal, y is vertical. The global c.s is righthand c.s. Cyy Cyz Czz - covariance matrix for hit position in Local coordinate system. The local c.s. is connected with detector module on which hit is placed, x is normal to the detector, y is parallel and perpendicular to beam, z is parallel both to the module and beam line. The local c.s is righthand c.s. IStation - station number (station we call a set of modules at approximately same distance from the beam line) HitId - index of the hit in hit array StationAngle defines position of local c.s. with respect to global c.s., this is angle between local and global X axises. That is an angle you should turn local X clockwise to make it coincide with global X. Also we store MC information to do efficiency evaluation. 2. MC Points are stored in event[NEvent]_MCPoints.data files each file contains: NMCPoints mcPoint0 mcPoint1 mcPoint2 … mcPoint is: X Y Z Px Py Pz QP 0 IStation TrackI TrackID xyz px py pz - coordinates and momentum of the MCTrack in the MCPoint position (in Global c.s.). So xyz is MCPoint position itself. QP = q/p - charge over momentum 0 is zero (historical thing) TrackI - index of the MCTrack in the tracks array (or MCTracks file, see below). TrackID - simulation id of the MCTrack. MCPoints are sorter by MCTracks such that TrackID is increased 3. MCTracks are stored in event[NEvent]_MCTracks.data format is same: NMCTracks MCTrack0 MCTrack1 … MCTrack0 is: MotherId PDG x y z ex ey ez QP 0 0 0 0 0 0 0 p pt NHits NMCPoints FirstMCPointI 0 0 1 MotherId is ID of the MCtrack of the mother particle. For primary tracks it is -1 PDG is PDG code x y z - global coordinates ex ey ez is ort, so ex = px/fabs( p ) for example QP = q/p p - momentum, pt - is transverse momentum NHits - number of hits created by the particle NMCPoints - number of mc points created by the particle (that are stored in the MCpoints-file) FirstMCPointI - position (index) of the first MCPoint, which belong to this mcTrack, in the MCPoints-file. 4. event[EventNumber]_hitLabels.data - File, which set correspondence between hits and MCTracks. Format is: NLabels MCId0_0 MCId1_0 MCId2_0 MCId0_1 MCId1_1 MCId2_1 MCId0_2 MCId1_2 MCId2_2 … where MCId[j]_[i] is index of the MCTrack, which created i-th hit. We suppose that maximum 3 mcTracks can contribute considerable in a hit. If only one track contributes than MCId1_[i] and MCId2_[i] = -1 ======= Output information =========== RecoTracks are stored in event[NEvent]_tracks.data format is same: NTracks Track0 Track1 … Track[i] is: hitId0 hitId1 ... xI yI zI pxI pyI pzI qI CIxx CIyx CIyy CIzx CIzy CIzz CIpxx CIpxy CIpxz CIpxpx CIpyx CIpyy CIpyz CIpypx CIpypy CIpzx CIpzy CIpzz CIpzpx CIpzpy CIpzpz chi2I ndfI xO yO zO pxO pyO pzO qO COxx COyx COyy COzx COzy COzz COpxx COpxy COpxz COpxpx COpyx COpyy COpyz COpypx COpypy COpzx COpzy COpzz COpzpx COpzpy COpzpz chi2O ndfO where x y z px py pz - coordinates and momentum of the track (charge is supposed to be 1, so this is actually momentum over change: px/q py/q pz/q) in global c.s. q - sign of change in assuption that pt > 0 C[i][j] - covariance matrix chi2 - chi2 after Kaman Filter, equal to -1 in case the fit has diverged ndf - number degree of freedom I states for inner parameters, O - for outer. the parameters can be switched at AliHLTTPCCAGBTracker::SaveTracksInFile() function to local. In this case instead of x y z px py pz q Cxx Cyx Cyy Czx Czy Czz Cpxx Cpxy Cpxz Cpxpx Cpyx Cpyy Cpyz Cpypx Cpypy Cpzx Cpzy Cpzz Cpzpx Cpzpy Cpzpz chi2 ndf one will have: x signCosPhi chi2 ndf y z sinPhi dzDs q/Pt Cyy Czy Czz CsPy CsPz CsPsP CdDy CdDz CdDsP CdDdD CqPy CqPz CqPsP CqPdD CqPqP