LCOV - code coverage report
Current view: top level - HMPID/HMPIDrec - AliHMPIDRecon.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 4 8 50.0 %
Date: 2016-06-14 17:26:59 Functions: 5 14 35.7 %

          Line data    Source code
       1             : #ifndef AliHMPIDRecon_h
       2             : #define AliHMPIDRecon_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             : // AliHMPIDRecon                                                         //
      10             : //                                                                      //
      11             : // HMPID class to perfom pattern recognition based on Hough transfrom    //
      12             : //                                                                      //
      13             : //////////////////////////////////////////////////////////////////////////
      14             : 
      15             : 
      16             : #include <TNamed.h>        //base class
      17             : #include <TVector3.h>     //fields 
      18             : 
      19             : class TClonesArray; //CkovAngle()
      20             : class AliESDtrack;  //CkovAngle()
      21             : class AliHMPIDParam;//general pourpose
      22             : 
      23             : class AliHMPIDRecon : public TNamed 
      24             : {
      25             : public : 
      26             :              AliHMPIDRecon();
      27         176 :     virtual ~AliHMPIDRecon() {;} //dtor
      28             : 
      29             :   void     InitVars     (Int_t n);                                                                 //init space for variables
      30             :   void     DeleteVars   ()const;                                                                   //delete variables
      31             :   void     CkovAngle    (AliESDtrack *pTrk,TClonesArray *pCluLst,Int_t index,Double_t nmean,Float_t xRa,Float_t yRa );//reconstructed Theta Cerenkov
      32             :   Bool_t   FindPhotCkov (Double_t cluX,Double_t cluY,Double_t &thetaCer,Double_t &phiCer    );     //find ckov angle for single photon candidate
      33             :   Double_t FindRingCkov (Int_t iNclus                                                       );     //best ckov for ring formed by found photon candidates
      34             :   void     FindRingGeom (Double_t ckovAng,Int_t level=1                                     );     //estimated area of ring in cm^2 and portion accepted by geometry
      35             :   TVector2 IntWithEdge  (TVector2 p1,TVector2 p2                                            )const;//find intercection between plane and lines of 2 thetaC
      36             :   Int_t    FlagPhot     (Double_t ckov,TClonesArray *pCluLst,AliESDtrack *pTrk              );     //is photon ckov near most probable track ckov
      37             :   Double_t HoughResponse(                                                                   );     //most probable track ckov angle
      38             :   void     Propagate    (const TVector3  dir,      TVector3 &pos,Double_t z                 )const;//propagate photon alogn the line  
      39             :   void     Refract      (      TVector3 &dir,                    Double_t n1,    Double_t n2)const;//refract photon on the boundary
      40             :   TVector2 TracePhot    (Double_t ckovTh,Double_t ckovPh                                    )const;//trace photon created by track to PC 
      41             :   void     AddObjectToFriends(TClonesArray *pCluLst, Int_t photonIndex, AliESDtrack *pTrk   );     // Add AliHMPIDCluster object to ESD friends
      42             :   TVector2 TraceForward (TVector3 dirCkov                                                   )const;//tracing forward a photon from (x,y) to PC
      43             :   void     Lors2Trs     (TVector3 dirCkov,Double_t &thetaCer,Double_t &phiCer               )const;//LORS to TRS 
      44             :   void     Trs2Lors     (TVector3 dirCkov,Double_t &thetaCer,Double_t &phiCer               )const;//TRS to LORS
      45             :   TVector2 GetMip       (                                                                   )const 
      46           0 :                         {return fMipPos;}                                                          //mip coordinates
      47             :   Double_t GetRingArea  (                                                                   )const
      48           0 :                         {return fRingArea;}                                                        //area of the current ring in cm^2 
      49             :   Double_t GetRingAcc   (                                                                   )const
      50           0 :                         {return fRingAcc;}                                                         //portion of the ring ([0,1]) accepted by geometry.To scale n. of photons 
      51             :   Double_t FindRingExt  (Double_t ckov,Int_t ch,Double_t xPc,Double_t yPc,Double_t thRa,Double_t phRa);//find ring acceptance by external parameters
      52             :   void     SetTrack     (Double_t xRad,Double_t yRad,Double_t theta,Double_t phi            )
      53          88 :                                 {fTrkDir.SetMagThetaPhi(1,theta,phi);  fTrkPos.Set(xRad,yRad);}    //set track parameter at RAD
      54             :   void     SetImpPC     (Double_t xPc,Double_t yPc                                          )
      55          16 :                                 {fPc.Set(xPc,yPc);}                                                //set track impact to PC 
      56             :   void     SetMip       (Double_t xmip,Double_t ymip                                        )
      57           0 :                                 {fMipPos.Set(xmip,ymip);}                                          //set track impact to PC
      58             :   enum ETrackingFlags {kNotPerformed=-20,kMipDistCut=-9,kMipQdcCut=-5,kNoPhotAccept=-11,kNoRad = -22};
      59             : //
      60             : protected:
      61             :   Int_t     fPhotCnt;                           // counter of photons candidate
      62             :   Int_t    *fPhotFlag;                          // flags of photon candidates
      63             :   Int_t    *fPhotClusIndex;                     // cluster index of photon candidates
      64             :   Double_t *fPhotCkov;                          // Ckov angles of photon candidates, [rad]
      65             :   Double_t *fPhotPhi;                           // phis of photons candidates, [rad]
      66             :   Double_t *fPhotWei;                           // weigths of photon candidates
      67             :   Double_t  fCkovSigma2;                        // sigma2 of the reconstructed ring
      68             : 
      69             :   Bool_t    fIsWEIGHT;                          // flag to consider weight procedure
      70             :   Float_t   fDTheta;                            // Step for sliding window
      71             :   Float_t   fWindowWidth;                       // Hough width of sliding window
      72             :   
      73             :   Double_t  fRingArea;                          // area of a given ring
      74             :   Double_t  fRingAcc;                           // fraction of the ring accepted by geometry
      75             :   TVector3  fTrkDir;                            // track direction in LORS at RAD
      76             :   TVector2  fTrkPos;                            // track positon in LORS at RAD
      77             :   TVector2  fMipPos;                            // mip positon for a given track
      78             :   TVector2  fPc;                                // track position at PC
      79             :   
      80             :   AliHMPIDParam *fParam;                        // Pointer to AliHMPIDParam
      81             :   
      82             : private:
      83             :   AliHMPIDRecon(const AliHMPIDRecon& r);              //dummy copy constructor
      84             :   AliHMPIDRecon &operator=(const AliHMPIDRecon& r);   //dummy assignment operator
      85             : //
      86          12 :   ClassDef(AliHMPIDRecon,3)
      87             : };
      88             : 
      89             : #endif // #ifdef AliHMPIDRecon_cxx
      90             : 

Generated by: LCOV version 1.11