LCOV - code coverage report
Current view: top level - TPC/TPCbase - AliTPCLaserTrack.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 27 3.7 %
Date: 2016-06-14 17:26:59 Functions: 2 31 6.5 %

          Line data    Source code
       1             : #ifndef ALITPCLASERTRACK_H
       2             : #define ALITPCLASERTRACK_H
       3             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       4             :  * See cxx source for full Copyright notice                               */
       5             : /// \class AliTPCLaserTrack
       6             : /// \brief Surveyed Laser Track positions
       7             : 
       8             : #include <TString.h>
       9             : 
      10             : #include "AliExternalTrackParam.h"
      11             : #include "TVectorD.h"
      12             : 
      13             : class TObjArray;
      14             : 
      15             : 
      16             : 
      17             : class AliTPCLaserTrack : public AliExternalTrackParam {
      18             : public:
      19             :   AliTPCLaserTrack();
      20             :   ~AliTPCLaserTrack();
      21             :   AliTPCLaserTrack(const AliTPCLaserTrack &ltr);
      22             :   AliTPCLaserTrack(const Int_t id, const Int_t side, const Int_t rod,
      23             :                    const Int_t bundle, const Int_t beam,
      24             :                    Double_t x, Double_t alpha,
      25             :                    const Double_t param[5],
      26             :                    const Double_t covar[15], const Float_t rayLength=0);
      27             : 
      28             :   AliTPCLaserTrack& operator = (const  AliTPCLaserTrack &source);
      29             :   void UpdatePoints();   // update track points
      30             :   static void LoadTracks();
      31           0 :   static TObjArray* GetTracks() {return fgArrLaserTracks;}
      32             : 
      33             :   static Int_t IdentifyTrack(AliExternalTrackParam *track, Int_t side=-1);
      34             : 
      35           0 :   Int_t GetId()     const {return fId;     }
      36           0 :   Int_t GetSide()   const {return fSide;   }
      37           0 :   Int_t GetRod()    const {return fRod;    }
      38           0 :   Int_t GetBundle() const {return fBundle; }
      39           0 :   Int_t GetBeam()   const {return fBeam;   }
      40             : 
      41           0 :   Float_t GetRayLength() const {return fRayLength;}
      42             : 
      43             : 
      44             : 
      45           0 :   static Int_t GetNLaserTracks() { return fgkNLaserTracks; }
      46           0 :   static Int_t GetNLaserRodsPerSide() { return fgkNRodsPerSide; }
      47           0 :   static Int_t GetNMirrorBundlesPerRod() { return fgkNBundlePerRod; }
      48           0 :   static Int_t GetNLaserRaysPerMirrorBundle() { return fgkNBeamsPerBundle; }
      49             : 
      50             : 
      51           0 :   void SetId    (Int_t id)    {fId     = id;    }
      52           0 :   void SetSide  (Int_t side)  {fSide   = side;  }
      53           0 :   void SetRod   (Int_t rod)   {fRod    = rod;   }
      54           0 :   void SetBundle(Int_t bundle){fBundle = bundle;}
      55           0 :   void SetBeam  (Int_t beam)  {fBeam   = beam;  }
      56           0 :   void SetRayLength (Float_t len) {fRayLength = len;}
      57             : 
      58           0 :   const TVectorD* GetVecSec() const { return fVecSec; }
      59           0 :   const TVectorD* GetVecP2()  const { return fVecP2;  }
      60           0 :   const TVectorD* GetVecPhi() const { return fVecPhi; }
      61           0 :   const TVectorD* GetVecGX()  const { return fVecGX;  }
      62           0 :   const TVectorD* GetVecGY()  const { return fVecGY;  }
      63           0 :   const TVectorD* GetVecGZ()  const { return fVecGZ;  }
      64           0 :   const TVectorD* GetVecLX()  const { return fVecLX;  }
      65           0 :   const TVectorD* GetVecLY()  const { return fVecLY;  }
      66           0 :   const TVectorD* GetVecLZ()  const { return fVecLZ;  }
      67             : 
      68             : private:
      69             :   Int_t fId;              ///< Laser beam id            (0-335)
      70             :   Int_t fSide;            ///< TPC side; 0:Shaft Side (A) -- 1:Muon Side (C)
      71             :   Int_t fRod;             ///< Laser Rod                (0-5)
      72             :   Int_t fBundle;          ///< Mirror bundle in the Rod (0-3)
      73             :   Int_t fBeam;            ///< Laser Beam in the bundle (0-6)
      74             : 
      75             :   Float_t fRayLength;     ///< distance from the last common point of the laser Rays
      76             :                           //(Splitter box on the A-Side at the bottom of the TPC)
      77             :                           //to each mirror [cm](needed for an exact drift velocity estimation)
      78             : public:
      79             :   TVectorD *fVecSec;      ///< - sector numbers
      80             :   TVectorD *fVecP2;       ///< - P2
      81             :   TVectorD *fVecPhi;       ///< - global phi
      82             :   TVectorD *fVecGX;       ///< points vectors - globalX
      83             :   TVectorD *fVecGY;       ///< points vectors - globalY
      84             :   TVectorD *fVecGZ;       ///< points vectors - globalZ
      85             :   TVectorD *fVecLX;       ///< points vectors - localX
      86             :   TVectorD *fVecLY;       ///< points vectors - localY
      87             :   TVectorD *fVecLZ;       ///< points vectors - localZ
      88             : private:
      89             :   static TObjArray* fgArrLaserTracks; //!<! Array of all Laser Tracks,
      90             :                                         //  keeps instances of this class;
      91             : 
      92             :   static const Int_t fgkNLaserTracks    = 336; ///< Number of laser tracks
      93             :   static const Int_t fgkNRodsPerSide    = 6;   ///< Number of laser rods on each readout side
      94             :   static const Int_t fgkNBundlePerRod   = 4;   ///< Number of mirror bundles per rod
      95             :   static const Int_t fgkNBeamsPerBundle = 7;   ///< Number of laser rays per bundle
      96             : 
      97             : //    static const char* fgkDataFileName = "$ALIC_ROOT/TPC/Calib/LaserTracks.root";  //Path to the Data File
      98             : 
      99             :   /// \cond CLASSIMP
     100        1384 :   ClassDef(AliTPCLaserTrack,3)        // Laser Track positions and track identification
     101             :   /// \endcond
     102             : };
     103             : 
     104             : #endif
     105             : 

Generated by: LCOV version 1.11