LCOV - code coverage report
Current view: top level - TRD/TRDbase - AliTRDtrackletGTU.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 61 92 66.3 %
Date: 2016-06-14 17:26:59 Functions: 13 16 81.2 %

          Line data    Source code
       1             : /**************************************************************************
       2             :  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       3             :  *                                                                        *
       4             :  * Author: The ALICE Off-line Project.                                    *
       5             :  * Contributors are mentioned in the code where appropriate.              *
       6             :  *                                                                        *
       7             :  * Permission to use, copy, modify and distribute this software and its   *
       8             :  * documentation strictly for non-commercial purposes is hereby granted   *
       9             :  * without fee, provided that the above copyright notice appears in all   *
      10             :  * copies and that both the copyright notice and this permission notice   *
      11             :  * appear in the supporting documentation. The authors make no claims     *
      12             :  * about the suitability of this software for any purpose. It is          *
      13             :  * provided "as is" without express or implied warranty.                  *
      14             :  **************************************************************************/
      15             : 
      16             : /* $Id: AliTRDtrackletGTU.cxx 28397 2008-09-02 09:33:00Z cblume $ */
      17             : 
      18             : ////////////////////////////////////////////////////////////////////////////
      19             : //                                                                        //
      20             : //  GTU tracklet                                                          //
      21             : //                                                                        //
      22             : //  Author: J. Klein (Jochen.Klein@cern.ch)                               //
      23             : //                                                                        //
      24             : ////////////////////////////////////////////////////////////////////////////
      25             : 
      26             : #include "TMath.h"
      27             : #include "TClass.h"
      28             : 
      29             : #include "AliTRDtrackletGTU.h"
      30             : #include "AliTRDtrackletWord.h"
      31             : #include "AliTRDtrackletMCM.h"
      32             : #include "AliLog.h"
      33             : #include "AliTRDgtuParam.h"
      34             : #include "AliTRDgeometry.h"
      35             : #include "AliTRDpadPlane.h"
      36             : 
      37          48 : ClassImp(AliTRDtrackletGTU)
      38             : 
      39             : AliTRDtrackletBase* AliTRDtrackletGTU::fgkDummyTracklet = 0x0;
      40             : 
      41             : AliTRDtrackletGTU::AliTRDtrackletGTU() :
      42         530 :   AliTRDtrackletBase(),
      43        1060 :   fGtuParam(AliTRDgtuParam::Instance()),
      44         530 :   fTracklet(0x0),
      45         530 :   fTrackletESD(0x0),
      46         530 :   fMCMtrackletIndex(-1),
      47         530 :   fAssignedZ(kFALSE),
      48         530 :   fAlpha(0),
      49         530 :   fYProj(0),
      50         530 :   fYPrime(0),
      51         530 :   fIndex(0)
      52        2650 : {
      53             :   // ctor for any tracklet deriving from AliTRDtrackletBase
      54             : 
      55         530 :   if (!fgkDummyTracklet)
      56           3 :     fgkDummyTracklet = new AliTRDtrackletWord(0);
      57         530 :   fTracklet = fgkDummyTracklet;
      58             : 
      59        4240 :   for (Int_t zch = 0; zch < fGtuParam->GetNZChannels(); zch++)
      60        1590 :     fSubChannel[zch] = 0;
      61        1060 : }
      62             : 
      63             : AliTRDtrackletGTU::AliTRDtrackletGTU(AliTRDtrackletBase *tracklet) :
      64         360 :   AliTRDtrackletBase(*tracklet),
      65         720 :   fGtuParam(AliTRDgtuParam::Instance()),
      66         360 :   fTracklet(0x0),
      67         360 :   fTrackletESD(0x0),
      68         360 :   fMCMtrackletIndex(-1),
      69         360 :   fAssignedZ(kFALSE),
      70         360 :   fAlpha(0),
      71         360 :   fYProj(0),
      72         360 :   fYPrime(0),
      73         360 :   fIndex(0)
      74        1800 : {
      75             :   // ctor for any tracklet deriving from AliTRDtrackletBase
      76             : 
      77         363 :   if (!fgkDummyTracklet) fgkDummyTracklet = new AliTRDtrackletWord(0);
      78         360 :   fTracklet = fgkDummyTracklet;
      79             : 
      80        2880 :   for (Int_t zch = 0; zch < fGtuParam->GetNZChannels(); zch++)
      81        1080 :     fSubChannel[zch] = 0;
      82         360 :   fTracklet = tracklet;
      83        1080 :   if ( fTracklet->IsA() == TClass::GetClass("AliTRDtrackletMCM")) {
      84        1800 :       AliDebug(5,Form("label from mcm tracklet: %i", ((AliTRDtrackletMCM*) fTracklet)->GetLabel()));
      85             :   }
      86         720 : }
      87             : 
      88             : AliTRDtrackletGTU::AliTRDtrackletGTU(AliESDTrdTracklet *tracklet) :
      89           0 :   AliTRDtrackletBase(),
      90           0 :   fGtuParam(AliTRDgtuParam::Instance()),
      91           0 :   fTracklet(0x0),
      92           0 :   fTrackletESD(tracklet),
      93           0 :   fMCMtrackletIndex(-1),  // has to be set via SetMCMtrackletIndex() separately
      94           0 :   fAssignedZ(kFALSE),
      95           0 :   fAlpha(0),
      96           0 :   fYProj(0),
      97           0 :   fYPrime(0),
      98           0 :   fIndex(0)
      99           0 : {
     100             :   // ctor for an AliESDTrdTracklet
     101             : 
     102           0 :   if (!fgkDummyTracklet) fgkDummyTracklet = new AliTRDtrackletWord(0);
     103           0 :   fTracklet = fgkDummyTracklet;
     104             : 
     105           0 :   for (Int_t zch = 0; zch < fGtuParam->GetNZChannels(); zch++)
     106           0 :     fSubChannel[zch] = 0;
     107           0 : }
     108             : 
     109             : AliTRDtrackletGTU::AliTRDtrackletGTU(const AliTRDtrackletGTU& tracklet) :
     110         334 :   AliTRDtrackletBase(tracklet),
     111         668 :   fGtuParam(AliTRDgtuParam::Instance()),
     112         334 :   fTracklet(tracklet.fTracklet),
     113         334 :   fTrackletESD(tracklet.fTrackletESD),
     114         334 :   fMCMtrackletIndex(tracklet.fMCMtrackletIndex),
     115         334 :   fAssignedZ(tracklet.fAssignedZ),
     116         334 :   fAlpha(tracklet.fAlpha),
     117         334 :   fYProj(tracklet.fYProj),
     118         334 :   fYPrime(tracklet.fYPrime),
     119         334 :   fIndex(tracklet.fIndex)
     120        1670 : {
     121             :   // copy ctor
     122             : 
     123        2672 :   for (Int_t zch = 0; zch < fGtuParam->GetNZChannels(); zch++)
     124        1002 :     fSubChannel[zch] = tracklet.fSubChannel[zch];
     125         668 : }
     126             : 
     127             : AliTRDtrackletGTU& AliTRDtrackletGTU::operator=(const AliTRDtrackletGTU &rhs)
     128             : {
     129             :   // assignment operator
     130             : 
     131           0 :   if (&rhs != this) {
     132           0 :     fTracklet = rhs.fTracklet;
     133           0 :     fTrackletESD = rhs.fTrackletESD;
     134           0 :     fMCMtrackletIndex = rhs.fMCMtrackletIndex;
     135           0 :     for (Int_t zch = 0; zch < fGtuParam->GetNZChannels(); zch++)
     136           0 :       fSubChannel[zch] = rhs.fSubChannel[zch];
     137           0 :     fIndex = rhs.fIndex;
     138           0 :     fYPrime = rhs.fYPrime;
     139           0 :     fYProj = rhs.fYProj;
     140           0 :     fAlpha = rhs.fAlpha;
     141           0 :     fAssignedZ = rhs.fAssignedZ;
     142           0 :   }
     143             : 
     144           0 :   return *this;
     145             : }
     146             : 
     147             : AliTRDtrackletGTU::~AliTRDtrackletGTU()
     148        3272 : {
     149             :   // dtor
     150        3272 : }
     151             : 
     152             : void AliTRDtrackletGTU::SetSubChannel(Int_t zch, Int_t subch)
     153             : {
     154             :   // set the subchannel in the given z-channel
     155        1542 :   fAssignedZ = kTRUE;
     156         771 :   fSubChannel[zch] = subch;
     157         771 : }
     158             : 
     159             : Int_t AliTRDtrackletGTU::GetSubChannel(Int_t zch) const
     160             : {
     161             :   // get the subchannel in the given z-channel
     162       54694 :   return fSubChannel[zch];
     163             : }
     164             : 
     165             : Int_t AliTRDtrackletGTU::GetLabel() const
     166             : {
     167             :   // get the MC label for the tracklet, -1 if none
     168             : 
     169         146 :   if (fTrackletESD)
     170           0 :     return fTrackletESD->GetLabel();
     171          73 :   else if ( fTracklet->IsA() == TClass::GetClass("AliTRDtrackletMCM"))
     172          73 :     return ((AliTRDtrackletMCM*) fTracklet)->GetLabel();
     173             :   else
     174           0 :     return -1;
     175          73 : }
     176             : 
     177             : /*
     178             : Float_t AliTRDtrackletGTU::GetPhysX(Int_t layer)
     179             : {
     180             :   // get the x-position (in the local system) assuming the tracklet is in the given layer
     181             :   return fGtuParam->GetGeo()->GetTime0(layer);
     182             : }
     183             : 
     184             : Float_t AliTRDtrackletGTU::GetPhysY()
     185             : {
     186             :   //
     187             :   return GetYbin() * 0.0160;
     188             : }
     189             : 
     190             : Float_t AliTRDtrackletGTU::GetPhysAlpha()
     191             : {
     192             :   return GetAlpha() * 0.01; // wrong factor!
     193             : }
     194             : 
     195             : Float_t AliTRDtrackletGTU::GetPhysZ(Int_t stack, Int_t layer)
     196             : {
     197             :   return fGtuParam->GetGeo()->GetPadPlane(layer, stack)->GetRowPos(GetZbin()); // not the middle of a pad!
     198             : }
     199             : */

Generated by: LCOV version 1.11