LCOV - code coverage report
Current view: top level - ITSMFT/MFT/MFTbase - AliMFTPlane.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 21 4.8 %
Date: 2016-06-14 17:26:59 Functions: 1 25 4.0 %

          Line data    Source code
       1             : #ifndef AliMFTPlane_H
       2             : #define AliMFTPlane_H 
       3             : 
       4             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       5             :  * See cxx source for full Copyright notice                               */
       6             : 
       7             : //====================================================================================================================================================
       8             : //
       9             : //      Class for the description of the structure for the planes of the ALICE Muon Forward Tracker
      10             : //
      11             : //      Contact author: antonio.uras@cern.ch
      12             : //
      13             : //====================================================================================================================================================
      14             : 
      15             : #include "TNamed.h"
      16             : #include "THnSparse.h"
      17             : #include "TClonesArray.h"
      18             : #include "TAxis.h"
      19             : #include "TPave.h"
      20             : #include "TCanvas.h"
      21             : #include "TH2D.h"
      22             : #include "TEllipse.h"
      23             : #include "TMath.h"
      24             : #include "AliLog.h"
      25             : 
      26             : 
      27             : //====================================================================================================================================================
      28             : 
      29             : class AliMFTPlane : public TNamed {
      30             : 
      31             : public:
      32             : 
      33             :   AliMFTPlane();
      34             :   AliMFTPlane(const Char_t *name, const Char_t *title);
      35             :   AliMFTPlane(const AliMFTPlane& pt);
      36             :   AliMFTPlane& operator=(const AliMFTPlane &source);
      37             :   
      38             :   virtual ~AliMFTPlane();  // destructor
      39             :   virtual void Clear(const Option_t* /*opt*/);
      40             :   
      41             :   Bool_t Init(Int_t    planeNumber,
      42             :               Double_t zCenter, 
      43             :               Double_t rMin, 
      44             :               Double_t rMax, 
      45             :               Double_t pixelSizeX, 
      46             :               Double_t pixelSizeY, 
      47             :               Double_t thicknessActive, 
      48             :               Double_t thicknessSupport, 
      49             :               Double_t thicknessReadout,
      50             :               Bool_t   hasPixelRectangularPatternAlongY);
      51             :   
      52             :   Bool_t CreateStructure();
      53             : 
      54           0 :   Int_t GetNActiveElements()  const { return fActiveElements->GetEntries();  }
      55           0 :   Int_t GetNReadoutElements() const { return fReadoutElements->GetEntries(); }
      56           0 :   Int_t GetNSupportElements() const { return fSupportElements->GetEntries(); }
      57             : 
      58           0 :   TClonesArray* GetActiveElements()  { return fActiveElements;  }
      59           0 :   TClonesArray* GetReadoutElements() { return fReadoutElements; }
      60           0 :   TClonesArray* GetSupportElements() { return fSupportElements; }
      61             : 
      62             :   THnSparseC* GetActiveElement(Int_t id);
      63             :   THnSparseC* GetReadoutElement(Int_t id);
      64             :   THnSparseC* GetSupportElement(Int_t id);
      65             : 
      66           0 :   Bool_t IsFront(THnSparseC *element) const { return (element->GetAxis(2)->GetXmin() < fZCenter); }
      67             : 
      68             :   void DrawPlane(Option_t *opt="");
      69             : 
      70           0 :   Double_t GetRMinSupport() const { return fRMinSupport; }
      71           0 :   Double_t GetRMaxSupport() const { return fRMaxSupport; }
      72           0 :   Double_t GetThicknessSupport() { return GetSupportElement(0)->GetAxis(2)->GetXmax() - GetSupportElement(0)->GetAxis(2)->GetXmin(); }
      73             :   
      74           0 :   Double_t GetZCenter()            const { return fZCenter; }
      75           0 :   Double_t GetZCenterActiveFront() const { return fZCenterActiveFront; }
      76           0 :   Double_t GetZCenterActiveBack()  const { return fZCenterActiveBack; }
      77             : 
      78           0 :   void SetEquivalentSilicon(Double_t equivalentSilicon)                       { fEquivalentSilicon            = equivalentSilicon; }
      79           0 :   void SetEquivalentSiliconBeforeFront(Double_t equivalentSiliconBeforeFront) { fEquivalentSiliconBeforeFront = equivalentSiliconBeforeFront; }
      80           0 :   void SetEquivalentSiliconBeforeBack(Double_t equivalentSiliconBeforeBack)   { fEquivalentSiliconBeforeBack  = equivalentSiliconBeforeBack; }
      81           0 :   Double_t GetEquivalentSilicon()            const { return fEquivalentSilicon; }
      82           0 :   Double_t GetEquivalentSiliconBeforeFront() const { return fEquivalentSiliconBeforeFront; }
      83           0 :   Double_t GetEquivalentSiliconBeforeBack()  const { return fEquivalentSiliconBeforeBack; }
      84             : 
      85             :   Int_t GetNumberOfChips(Option_t *opt);
      86           0 :   Bool_t HasPixelRectangularPatternAlongY() { return fHasPixelRectangularPatternAlongY; }
      87             :   
      88             : private:
      89             : 
      90             :   // measures in cm
      91             : 
      92             :   static const Double_t fActiveSuperposition;  // superposition between the active elements tasselling the MFT planes, for having a 
      93             :                                                // full acceptance coverage even in case of 10 degrees inclined tracks
      94             :   static const Double_t fHeightActive;         // height of the active elements
      95             :   static const Double_t fHeightReadout;        // height of the readout elements attached to the active ones
      96             : 
      97             :   static const Double_t fSupportExtMargin;     // minimum border size between the end of the support plane and the sensors: fHeightReadout + 0.3
      98             : 
      99             :   Int_t fPlaneNumber;
     100             : 
     101             :   Double_t fZCenter, fRMinSupport, fRMax, fRMaxSupport, fPixelSizeX, fPixelSizeY, fThicknessActive, fThicknessSupport, fThicknessReadout;
     102             :   Double_t fZCenterActiveFront, fZCenterActiveBack, fEquivalentSilicon, fEquivalentSiliconBeforeFront, fEquivalentSiliconBeforeBack;
     103             : 
     104             :   TClonesArray *fActiveElements, *fReadoutElements, *fSupportElements;
     105             : 
     106             :   Bool_t fHasPixelRectangularPatternAlongY, fPlaneIsOdd;
     107             : 
     108          14 :   ClassDef(AliMFTPlane, 1)
     109             : 
     110             : };
     111             : 
     112             : //====================================================================================================================================================
     113             :         
     114             : #endif
     115             : 

Generated by: LCOV version 1.11