LCOV - code coverage report
Current view: top level - HLT/TRD - AliHLTTRDTrack.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 120 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 12 0.0 %

          Line data    Source code
       1             : // $Id$
       2             : 
       3             : /**************************************************************************
       4             :  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       5             :  *                                                                        *
       6             :  * Authors:                                                               *
       7             :  *          for The ALICE HLT Project.                                    *
       8             :  *                                                                        *
       9             :  * Permission to use, copy, modify and distribute this software and its   *
      10             :  * documentation strictly for non-commercial purposes is hereby granted   *
      11             :  * without fee, provided that the above copyright notice appears in all   *
      12             :  * copies and that both the copyright notice and this permission notice   *
      13             :  * appear in the supporting documentation. The authors make no claims     *
      14             :  * about the suitability of this software for any purpose. It is          *
      15             :  * provided "as is" without express or implied warranty.                  *
      16             :  **************************************************************************/
      17             : 
      18             : //  @file   AliHLTTRDTracklet.cxx
      19             : //  @author Theodor Rascanu
      20             : //  @date   
      21             : //  @brief  A datacontainer for tracklets for the HLT. 
      22             : // 
      23             : 
      24             : #include "AliHLTTRDTrack.h"
      25             : #include "AliHLTTRDTracklet.h"
      26             : 
      27             : /**
      28             :  * Default Constructor
      29             :  */
      30             : //============================================================================
      31             : AliHLTTRDTrack::AliHLTTRDTrack():
      32           0 :   fDE(-1),
      33           0 :   fFakeRatio(-1),
      34           0 :   fChi2(-1),
      35             :   // fMass(-1),
      36           0 :   fN(-1),
      37           0 :   fIntegratedLength(-1),
      38           0 :   fX(-1),
      39           0 :   fAlpha(-1),
      40           0 :   fSize(sizeof(AliHLTTRDTrack)),
      41           0 :   fBits(0)
      42           0 : {
      43           0 :   InitArrays();
      44             :   // not to be used
      45           0 : }
      46             : 
      47             : /**
      48             :  * Constructor
      49             :  * Creates hltTrack from TRDtrackV1
      50             :  */
      51             : //============================================================================
      52             : AliHLTTRDTrack::AliHLTTRDTrack(const AliTRDtrackV1* const inTrack):
      53           0 :   fDE(inTrack->fDE),
      54           0 :   fFakeRatio(inTrack->fFakeRatio),
      55           0 :   fChi2(inTrack->fChi2),
      56             :   // fMass(inTrack->fMass),
      57           0 :   fN(inTrack->fN),
      58           0 :   fIntegratedLength(inTrack->GetIntegratedLength()),
      59           0 :   fX(inTrack->GetX()),
      60           0 :   fAlpha(inTrack->GetAlpha()),
      61           0 :   fSize(sizeof(AliHLTTRDTrack)),
      62           0 :   fBits(0)
      63           0 : {
      64           0 :   CopyDataMembers(inTrack);
      65           0 : }
      66             : 
      67             : /**
      68             :  * Default Destructor
      69             :  * In principle should not be empty, but... we do not use it
      70             :  */
      71             : //============================================================================
      72             : AliHLTTRDTrack::~AliHLTTRDTrack()
      73           0 : {
      74             :   
      75           0 : }
      76             : 
      77             : /**
      78             :  * Copy data members (except tracklets) from TRDtrackV1 to HLTTRDTrack.
      79             :  */
      80             : //============================================================================
      81             : void AliHLTTRDTrack::CopyDataMembers(const AliTRDtrackV1* const inTrack)
      82             : {
      83           0 :   for(Int_t i = 0; i < AliPID::kSPECIES; i++)
      84             :     {
      85           0 :       fPID[i] = inTrack->fPID[i];
      86             :     }
      87             :   
      88           0 :   for (Int_t i = 0; i < 3; i++)
      89             :     {
      90           0 :       fBudget[i] = inTrack->fBudget[i];
      91             :     }
      92             :   
      93           0 :   const Double_t* const Ptemp = inTrack->GetParameter();
      94           0 :   for (Int_t i = 0; i < 5; i++)
      95             :     {
      96           0 :       fP[i] = Ptemp[i];
      97             :     }
      98             : 
      99           0 :   const Double_t* const Ctemp = inTrack->GetCovariance();
     100           0 :   for (Int_t i = 0; i < 15; i++)
     101             :     {
     102           0 :       fC[i] = Ctemp[i];
     103             :     }
     104             : 
     105           0 :   UInt_t mask = inTrack->TestBits(-1);
     106           0 :   fBits = mask >> 14;
     107             : 
     108           0 :   for (Int_t iTracklet = 0; iTracklet < AliTRDtrackV1::kNplane; iTracklet++)
     109             :     {
     110           0 :       AliTRDseedV1* trdTracklet = inTrack->GetTracklet(iTracklet);
     111           0 :       if (trdTracklet){
     112           0 :         AliHLTTRDTracklet* hltTracklet = new (GetEndPointer()) AliHLTTRDTracklet(trdTracklet);
     113           0 :         fSize += hltTracklet->GetSize();
     114           0 :         fTrackletAtPlane[iTracklet] = kTRUE;
     115           0 :       }
     116           0 :       else fTrackletAtPlane[iTracklet] = kFALSE;
     117             :     }
     118           0 : }
     119             : 
     120             : /**
     121             :  * Copy data to the output TRDtrackV1
     122             :  */
     123             : //============================================================================
     124             : void AliHLTTRDTrack::ExportTRDTrack(AliTRDtrackV1* const outTrack) const
     125             : {
     126             :   //outTrack->Reset(); we always use a new fresh trdtrack as input, so this is useless
     127           0 :   outTrack->SetBit(AliTRDtrackV1::kOwner);
     128             : 
     129           0 :   outTrack->fDE=fDE;
     130           0 :   outTrack->fFakeRatio=fFakeRatio;
     131           0 :   outTrack->fChi2=fChi2;
     132             :   // outTrack->fMass=fMass;
     133           0 :   outTrack->fN=fN;
     134           0 :   outTrack->SetIntegratedLength(fIntegratedLength);
     135           0 :   outTrack->Set(fX, fAlpha, fP, fC);
     136             : 
     137           0 :   for(Int_t i = 0; i < AliPID::kSPECIES; i++)
     138             :     {
     139           0 :       outTrack->fPID[i] = fPID[i];
     140             :     }
     141           0 :   for (Int_t i = 0; i < 3; i++)
     142             :     {
     143           0 :       outTrack->fBudget[i]=fBudget[i];
     144             :     }
     145             : 
     146           0 :   outTrack->SetBit(UInt_t(fBits)<<14);
     147             : 
     148           0 :   AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*)this+sizeof(*this);
     149             :   AliHLTTRDTracklet* hltTracklet;
     150             :   
     151           0 :   for (Int_t iTracklet = 0; iTracklet < AliTRDtrackV1::kNplane; iTracklet++){
     152           0 :     if (fTrackletAtPlane[iTracklet]){
     153           0 :       AliTRDseedV1* trdTracklet = new AliTRDseedV1();
     154           0 :       hltTracklet = (AliHLTTRDTracklet*) iterPtr;
     155           0 :       hltTracklet->ExportTRDTracklet(trdTracklet);
     156           0 :       outTrack->SetTracklet(trdTracklet,iTracklet);
     157           0 :       iterPtr += hltTracklet->GetSize();
     158           0 :     }
     159             :   }
     160             : 
     161           0 : }
     162             :   
     163             : 
     164             : /**
     165             :  * Init of arrays
     166             :  */
     167             : //============================================================================
     168             : void AliHLTTRDTrack::InitArrays()
     169             : {
     170           0 :   for(Int_t i = 0; i < AliTRDtrackV1::kNplane; i++){
     171           0 :     fTrackletAtPlane[i]=kFALSE;
     172             :   }
     173             : 
     174           0 :   for(Int_t i = 0; i < AliPID::kSPECIES; i++)
     175             :     {
     176           0 :       fPID[i] = -1;
     177             :     }
     178             :   
     179           0 :   for (Int_t i = 0; i < 3; i++)
     180             :     {
     181           0 :       fBudget[i] = -1;
     182             :     }
     183           0 :   for (Int_t i = 0; i < 5; i++)
     184             :     {
     185           0 :       fP[i] = -1;
     186             :     }
     187           0 :   for (Int_t i = 0; i < 15; i++)
     188             :     {
     189           0 :       fC[i] = -1;
     190             :     }
     191           0 : }
     192             : 
     193             : /**
     194             :  * Print main values for HLTTrack
     195             :  */
     196             : //============================================================================
     197             : void AliHLTTRDTrack::Print(Bool_t printTracklets) const
     198             : {
     199           0 :   printf("--hltTrack-- addr %p; fSize %i\n", this, fSize);
     200           0 :   printf("   fX = %f; fAlpha = %f\n", fX, fAlpha);
     201           0 :   printf("   ");
     202             :   
     203           0 :   for(Int_t i = 0; i < AliPID::kSPECIES; i++)
     204             :     {
     205           0 :       printf("fPID[%i] = %f; ",i, fPID[i]);
     206             :     }
     207           0 :   printf("\n   ");
     208             :   
     209           0 :   for (Int_t i = 0; i < 3; i++)
     210             :     {
     211           0 :       printf("fBudget[%i] = %f; ",i, fBudget[i]);
     212             :     }
     213           0 :   printf("\n");
     214             : 
     215           0 :   if (printTracklets)
     216             :     {
     217           0 :       AliHLTUInt8_t *iterPtr = (AliHLTUInt8_t*)this+sizeof(*this);
     218             :       AliHLTTRDTracklet* hltTracklet;
     219             : 
     220           0 :       for (Int_t i = 0; i < AliTRDtrackV1::kNplane; i++){
     221           0 :         if (fTrackletAtPlane[i]){
     222           0 :           printf("[%i]",i);
     223           0 :           hltTracklet = (AliHLTTRDTracklet*) iterPtr;
     224           0 :           hltTracklet->Print();
     225           0 :           iterPtr += hltTracklet->GetSize();
     226           0 :         }
     227             :         else
     228           0 :           printf(" NULL ");
     229             :       }
     230           0 :     }
     231             : 
     232           0 :   printf("\n");
     233           0 : }
     234             : 
     235             : /**
     236             :  * Save track at block position
     237             :  */
     238             : //============================================================================
     239             : AliHLTUInt32_t AliHLTTRDTrack::SaveAt(AliHLTUInt8_t *const block, const AliTRDtrackV1* const inTrack)
     240             : {
     241             :   AliHLTUInt32_t size=0;
     242             : 
     243           0 :   memcpy(block,inTrack,sizeof(AliTRDtrackV1));
     244             :   size+=sizeof(AliTRDtrackV1);
     245             : 
     246           0 :   for(int i=0; i<AliTRDtrackV1::kNplane; i++){
     247           0 :     AliTRDseedV1* inTracklet = inTrack->GetTracklet(i);
     248           0 :     if(inTracklet) size+=AliHLTTRDTracklet::SaveAt(block+size, inTracklet);
     249             :   }
     250             : 
     251           0 :   return size;
     252             : }
     253             : 
     254             : /**
     255             :  * Read track from block
     256             :  */
     257             : //============================================================================
     258             : AliHLTUInt32_t AliHLTTRDTrack::LoadFrom(AliTRDtrackV1 *const outTrack, const AliHLTUInt8_t *const block)
     259             : {
     260             :   AliHLTUInt32_t size=0;
     261             : 
     262           0 :   memcpy(((AliHLTUInt8_t*)outTrack)+sizeof(void*),block+sizeof(void*),sizeof(AliTRDtrackV1)-sizeof(void*));
     263             :   size+=sizeof(AliTRDtrackV1);
     264             : 
     265           0 :   for(int i=0; i<AliTRDtrackV1::kNplane; i++){
     266           0 :     if(outTrack->GetTracklet(i)){
     267           0 :       AliTRDseedV1 *const outTracklet = new AliTRDseedV1;
     268           0 :       outTrack->fTracklet[i]=outTracklet;
     269           0 :       size+=AliHLTTRDTracklet::LoadFrom(outTracklet, block+size);
     270           0 :     }
     271             :   }
     272             : 
     273           0 :   outTrack->SetBit(AliTRDtrackV1::kOwner);
     274           0 :   outTrack->fBackupTrack=NULL;
     275           0 :   outTrack->fTrackLow=NULL;
     276           0 :   outTrack->fTrackHigh=NULL;
     277           0 :   return size;
     278           0 : }

Generated by: LCOV version 1.11