LCOV - code coverage report
Current view: top level - STEER/STEERBase - AliVTrack.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 3 125 2.4 %
Date: 2016-06-14 17:26:59 Functions: 4 131 3.1 %

          Line data    Source code
       1             : #ifndef AliVTrack_H
       2             : #define AliVTrack_H
       3             : /* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
       4             :  * See cxx source for full Copyright notice                               */
       5             : 
       6             : 
       7             : //-------------------------------------------------------------------------
       8             : //     base class for ESD and AOD tracks
       9             : //     Author: A. Dainese
      10             : //-------------------------------------------------------------------------
      11             : 
      12             : #include <TBits.h>
      13             : 
      14             : #include "AliVParticle.h"
      15             : #include "AliPID.h"
      16             : #include "AliVMisc.h"
      17             : 
      18             : class AliVEvent;
      19             : class AliVVertex;
      20             : class AliESDVertex;
      21             : class AliExternalTrackParam;
      22             : class AliTPCdEdxInfo;
      23             : class AliDetectorPID;
      24             : class AliTOFHeader;
      25             : 
      26             :  
      27             : class AliVTrack: public AliVParticle {
      28             : 
      29             : public:
      30             :   enum {
      31             :     kITSin        = 0x1
      32             :     ,kITSout      = 0x2
      33             :     ,kITSrefit    = 0x4
      34             :     ,kITSpid      = 0x8
      35             :     ,kTPCin       = 0x10
      36             :     ,kTPCout      = 0x20
      37             :     ,kTPCrefit    = 0x40
      38             :     ,kTPCpid      = 0x80
      39             :     ,kTRDin       = 0x100
      40             :     ,kTRDout      = 0x200
      41             :     ,kTRDrefit    = 0x400
      42             :     ,kTRDpid      = 0x800
      43             :     ,kTOFin       = 0x1000
      44             :     ,kTOFout      = 0x2000
      45             :     ,kTOFrefit    = 0x4000
      46             :     ,kTOFpid      = 0x8000
      47             :     ,kHMPIDout    = 0x10000
      48             :     ,kHMPIDpid    = 0x20000
      49             :     ,kEMCALmatch  = 0x40000
      50             :     ,kTRDbackup   = 0x80000
      51             :     ,kTOFmismatch = 0x100000
      52             :     ,kPHOSmatch   = 0x200000
      53             :     ,kITSupg      = 0x400000     // flag that in the ITSupgrade reco
      54             :     //
      55             :     ,kSkipFriend  = 0x800000     // flag to skip friend storage
      56             :     //
      57             :     ,kGlobalMerge = 0x1000000
      58             :     ,kMultInV0    = 0x2000000     //BIT(25): assumed to be belong to V0 in multiplicity estimates
      59             :     ,kMultSec     = 0x4000000     //BIT(26): assumed to be secondary (due to the DCA) in multiplicity estimates
      60             :     ,kEmbedded    = 0x8000000     // BIT(27), 1<<27: Is a track that has been embedded into the event
      61             :     //
      62             :     ,kITSpureSA   = 0x10000000
      63             :     ,kTRDStop     = 0x20000000
      64             :     ,kESDpid      = 0x40000000
      65             :     ,kTIME        = 0x80000000
      66             :   };
      67             :   enum {
      68             :     kTRDnPlanes = 6,
      69             :     kEMCALNoMatch = -4096,
      70             :     kTOFBCNA = -100
      71             :   };
      72             : 
      73       81662 :   AliVTrack() { }
      74      101656 :   virtual ~AliVTrack() { }
      75             :   AliVTrack(const AliVTrack& vTrack); 
      76             :   AliVTrack& operator=(const AliVTrack& vTrack);
      77             :   // constructor for reinitialisation of vtable
      78           0 :   AliVTrack( AliVConstructorReinitialisationFlag f) :AliVParticle(f){}
      79             : 
      80           0 :   virtual Bool_t  IsPureITSStandalone() const {return kFALSE;}
      81           0 :   virtual const AliVEvent* GetEvent() const {return 0;}
      82             :   virtual Int_t    GetID() const = 0;
      83             :   virtual UChar_t  GetITSClusterMap() const = 0;
      84           0 :   virtual UChar_t  GetITSSharedClusterMap() const {return 0;}
      85           0 :   virtual Bool_t   HasPointOnITSLayer(Int_t /*i*/) const { return kFALSE; }
      86           0 :   virtual Bool_t   HasSharedPointOnITSLayer(Int_t /*i*/) const { return kFALSE; }
      87           0 :   virtual void     GetITSdEdxSamples(Double_t s[4]) const {for (int i=4;i--;) s[i]=0;};
      88           0 :   virtual const TBits* GetTPCClusterMapPtr() const {return NULL;}
      89           0 :   virtual const TBits* GetTPCFitMapPtr()     const {return NULL;}
      90           0 :   virtual const TBits* GetTPCSharedMapPtr()  const {return NULL;}
      91           0 :   virtual Float_t  GetTPCClusterInfo(Int_t /*nNeighbours*/, Int_t /*type*/, Int_t /*row0*/=0, Int_t /*row1*/=159, Int_t /*type*/= 0) const {return 0.;}
      92           0 :   virtual AliTPCdEdxInfo * GetTPCdEdxInfo() const {return 0x0;}
      93           0 :   virtual UShort_t GetTPCNcls() const { return 0;}
      94           0 :   virtual UShort_t GetTPCNclsF() const { return 0;}
      95           0 :   virtual Double_t GetTPCchi2() const {return 0;}
      96           0 :   virtual Double_t GetTRDslice(Int_t /*plane*/, Int_t /*slice*/) const { return -1.; }
      97           0 :   virtual Int_t    GetNumberOfTRDslices() const { return 0; }
      98           0 :   virtual UChar_t  GetTRDncls() const {return 0;}
      99           0 :   virtual UChar_t  GetTRDntrackletsPID() const { return 0;}
     100           0 :   virtual void     SetDetectorPID(const AliDetectorPID */*pid*/) {;}
     101           0 :   virtual const    AliDetectorPID* GetDetectorPID() const { return 0x0; }
     102           0 :   virtual Double_t GetTRDchi2()          const { return -1;}
     103           0 :   virtual Int_t    GetNumberOfClusters() const {return 0;}
     104           0 :   virtual Double_t GetITSchi2()          const {return 0;}
     105           0 :   virtual Float_t GetTPCCrossedRows() const {return 0;}
     106             : 
     107             :   virtual Bool_t RelateToVVertex(const AliVVertex* /*vtx*/,
     108             :                         Double_t /*b*/, Double_t /*maxd*/,
     109           0 :                         AliExternalTrackParam* /*cParam*/=0) {return kFALSE;}
     110             :   virtual Bool_t RelateToVVertexTPC(const AliVVertex* /*vtx*/,
     111             :                         Double_t /*b*/, Double_t /*maxd*/,
     112           0 :                         AliExternalTrackParam* /*cParam*/=0) {return kFALSE;}
     113             :   virtual Bool_t RelateToVVertexBxByBz(const AliVVertex * /*vtx*/,
     114             :                         Double_t /*b*/[3], Double_t /*maxd*/,
     115           0 :                         AliExternalTrackParam* /*cParam*/=0) {return kFALSE;}
     116             :   virtual Bool_t RelateToVVertexTPCBxByBz(const AliVVertex * /*vtx*/,
     117             :                         Double_t /*b*/[3], Double_t /*maxd*/,
     118           0 :                         AliExternalTrackParam* /*cParam*/=0) {return kFALSE;}
     119             :   
     120             :   virtual Bool_t RelateToVertex(const AliESDVertex * /*vtx*/,
     121             :                         Double_t /*b*/, Double_t /*maxd*/,
     122           0 :                         AliExternalTrackParam* /*cParam*/=0) {return kFALSE;}
     123             :   virtual Bool_t RelateToVertexTPC(const AliESDVertex * /*vtx*/,
     124             :                         Double_t /*b*/, Double_t /*maxd*/,
     125           0 :                         AliExternalTrackParam* /*cParam*/=0) {return kFALSE;}
     126             :   virtual Bool_t RelateToVertexBxByBz(const AliESDVertex * /*vtx*/,
     127             :                         Double_t /*b*/[3], Double_t /*maxd*/,
     128           0 :                         AliExternalTrackParam* /*cParam*/=0) {return kFALSE;}
     129             :   virtual Bool_t RelateToVertexTPCBxByBz(const AliESDVertex * /*vtx*/,
     130             :                         Double_t /*b*/[3], Double_t /*maxd*/,
     131           0 :                         AliExternalTrackParam* /*cParam*/=0) {return kFALSE;}
     132             :   
     133           0 :   virtual void GetImpactParameters(Float_t [], Float_t []) const {;}
     134           0 :   virtual void GetImpactParameters(Float_t &/*&xy*/,Float_t &/*&z*/) const {;}
     135           0 :   virtual void GetImpactParametersTPC(Float_t &/*&xy*/,Float_t &/*&z*/) const {;}
     136           0 :   virtual void GetImpactParametersTPC(Float_t [] /*p[2]*/, Float_t [] /*cov[3]*/) const {;}
     137             :   
     138           0 :   virtual Int_t GetEMCALcluster()     const {return kEMCALNoMatch;}
     139           0 :   virtual void SetEMCALcluster(Int_t)       {;}
     140           0 :   virtual Bool_t IsEMCAL()            const {return kFALSE;}
     141             : 
     142           0 :   virtual Double_t GetTrackPhiOnEMCal()  const {return -999;}
     143           0 :   virtual Double_t GetTrackEtaOnEMCal()  const {return -999;}
     144           0 :   virtual Double_t GetTrackPtOnEMCal()   const {return -999;}
     145           0 :   virtual Double_t GetTrackPOnEMCal()    const {return -999;}
     146           0 :   virtual Bool_t IsExtrapolatedToEMCAL() const {return GetTrackPtOnEMCal()!=-999;} 
     147           0 :   virtual void SetTrackPhiEtaPtOnEMCal(Double_t,Double_t,Double_t=-999) {;}
     148             : 
     149           0 :   virtual Int_t GetPHOScluster()      const {return -1;}
     150           0 :   virtual void SetPHOScluster(Int_t)        {;}
     151           0 :   virtual Bool_t IsPHOS()             const {return kFALSE;}
     152           0 :   virtual void   SetPIDForTracking(Int_t ) {}
     153           0 :   virtual Int_t  GetPIDForTracking() const {return -999;}
     154             :   
     155             :   //pid info
     156           0 :   virtual void     SetStatus(ULong_t /*flags*/) {;}
     157           0 :   virtual void     ResetStatus(ULong_t /*flags*/) {;}
     158             : 
     159           0 :   virtual Double_t  GetITSsignal()       const {return 0.;}
     160           0 :   virtual Double_t  GetITSsignalTunedOnData() const {return 0.;}
     161           0 :   virtual void      SetITSsignalTunedOnData(Double_t /*signal*/) {}
     162           0 :   virtual Double_t  GetTPCsignal()       const {return 0.;}
     163           0 :   virtual Double_t  GetTPCsignalTunedOnData() const {return 0.;}
     164           0 :   virtual void      SetTPCsignalTunedOnData(Double_t /*signal*/) {}
     165           0 :   virtual UShort_t  GetTPCsignalN()      const {return 0 ;}
     166           0 :   virtual Double_t  GetTPCmomentum()     const {return 0.;}
     167           0 :   virtual Double_t  GetTPCTgl()          const {return 0.;}
     168           0 :   virtual Int_t     GetTPCLabel()        const {return 0;}
     169           0 :   virtual Double_t  GetTgl()             const {return 0.;}
     170           0 :   virtual Double_t  GetTOFsignal()       const {return 0.;}
     171           0 :   virtual Double_t  GetTOFsignalTunedOnData() const {return 0.;}
     172           0 :   virtual void      SetTOFsignalTunedOnData(Double_t /*signal*/) {}
     173           0 :   virtual Double_t  GetHMPIDsignal()     const {return 0.;}
     174           0 :   virtual Double_t  GetTRDsignal()       const {return 0.;}
     175           0 :   virtual UChar_t GetTRDNchamberdEdx() const {return 0;}
     176           0 :   virtual UChar_t GetTRDNclusterdEdx() const {return 0;}
     177             : 
     178           0 :   virtual Double_t  GetHMPIDoccupancy()  const {return 0.;}
     179             :   
     180           0 :   virtual Int_t     GetHMPIDcluIdx()     const {return 0;}
     181             :   
     182           0 :   virtual void GetHMPIDtrk(Float_t &/*&x*/, Float_t &/*y*/, Float_t &/*th*/, Float_t &/*ph*/) const {;}  
     183           0 :   virtual void GetHMPIDmip(Float_t &/*x*/, Float_t &/*y*/, Int_t &/*q*/,Int_t &/*nph*/) const {;}
     184             :   
     185           0 :   virtual Bool_t GetOuterHmpPxPyPz(Double_t */*p*/) const {return kFALSE;}
     186             : 
     187           0 :   virtual const AliExternalTrackParam * GetInnerParam() const { return NULL;}
     188           0 :   virtual const AliExternalTrackParam * GetOuterParam() const { return NULL;}
     189           0 :   virtual const AliExternalTrackParam * GetTPCInnerParam() const { return NULL;}
     190           0 :   virtual const AliExternalTrackParam * GetConstrainedParam() const {return NULL;}
     191             : 
     192             :   virtual void      GetIntegratedTimes(Double_t */*times*/, Int_t nspec=AliPID::kSPECIESC) const;
     193           0 :   virtual Double_t  GetTRDmomentum(Int_t /*plane*/, Double_t */*sp*/=0x0) const {return 0.;}
     194           0 :   virtual void      GetHMPIDpid(Double_t */*p*/) const {;}
     195           0 :   virtual Double_t  GetIntegratedLength() const { return 0.;}
     196             :   
     197             :   virtual ULong_t  GetStatus() const = 0;
     198             :   virtual Bool_t   GetXYZ(Double_t *p) const = 0;
     199             :   virtual Bool_t   GetXYZAt(Double_t /*x*/, Double_t /*b*/, Double_t* /*r*/ ) const;
     200             :   virtual Double_t GetBz() const;
     201             :   virtual void     GetBxByBz(Double_t b[3]) const;
     202             :   virtual Bool_t   GetCovarianceXYZPxPyPz(Double_t cv[21]) const = 0;
     203             :   virtual Bool_t   PropagateToDCA(const AliVVertex *vtx,Double_t b,Double_t maxd,Double_t dz[2],Double_t covar[3]) = 0;
     204           0 :   virtual Int_t    GetNcls(Int_t /*idet*/) const { return 0; }
     205           0 :   virtual Bool_t   GetPxPyPz(Double_t */*p*/) const { return kFALSE; }
     206           0 :   virtual void     SetID(Short_t /*id*/) {;}
     207           0 :   virtual Int_t    GetTOFBunchCrossing(Double_t = 0, Bool_t = kFALSE) const { return kTOFBCNA;}
     208           0 :   virtual Double_t GetTOFExpTDiff(Double_t /*b*/=0, Bool_t /*pidTPConly*/=kTRUE) const {return kTOFBCNA*25;}
     209           0 :   virtual const AliTOFHeader *GetTOFHeader() const {return NULL;};
     210             : 
     211             :   //---------------------------------------------------------------------------
     212             :   //--the calibration interface--
     213             :   //--to be used in online calibration/QA
     214             :   //--should also be implemented in ESD so it works offline as well
     215             :   //-----------
     216           0 :   virtual Int_t GetTrackParam         ( AliExternalTrackParam& ) const {return 0;}
     217           0 :   virtual Int_t GetTrackParamRefitted ( AliExternalTrackParam& ) const {return 0;}
     218           0 :   virtual Int_t GetTrackParamIp       ( AliExternalTrackParam& ) const {return 0;}
     219           0 :   virtual Int_t GetTrackParamTPCInner ( AliExternalTrackParam& ) const {return 0;}
     220           0 :   virtual Int_t GetTrackParamOp       ( AliExternalTrackParam& ) const {return 0;}
     221           0 :   virtual Int_t GetTrackParamCp       ( AliExternalTrackParam& ) const {return 0;}
     222           0 :   virtual Int_t GetTrackParamITSOut   ( AliExternalTrackParam& ) const {return 0;}
     223             : 
     224           0 :   virtual void  ResetTrackParamIp       ( const AliExternalTrackParam* ) {;}
     225           0 :   virtual void  ResetTrackParamOp       ( const AliExternalTrackParam* ) {;}
     226           0 :   virtual void  ResetTrackParamTPCInner ( const AliExternalTrackParam* ) {;}
     227             : 
     228           0 :   virtual Int_t GetNumberOfTPCClusters() const { return 0; } 
     229           0 :   virtual Int_t GetNumberOfITSClusters() const { return 0; } 
     230           0 :   virtual Int_t GetNumberOfTRDClusters() const { return 0; } 
     231             : 
     232           0 :   virtual Int_t             GetKinkIndex(Int_t /*i*/) const { return 0;}
     233           0 :   virtual Double_t          GetSigned1Pt()         const { return 0;}
     234           0 :   virtual Bool_t            IsOn(Int_t /*mask*/) const {return 0;}
     235           0 :   virtual Double_t          GetX()    const {return 0;}
     236           0 :   virtual Double_t          GetY()    const {return 0;}
     237           0 :   virtual Double_t          GetZ()    const {return 0;}
     238           0 :   virtual const Double_t   *GetParameter() const {return 0;}
     239           0 :   virtual Double_t          GetAlpha() const {return 0;}
     240           0 :   virtual Double_t          GetSnp()  const {return 0;}
     241           0 :   virtual Double_t          GetSigmaSnp2() const {return 0;}
     242           0 :   virtual UShort_t          GetTPCncls(Int_t /*row0*/=0, Int_t /*row1*/=159) const {return 0;}
     243           0 :   virtual Double_t          GetTOFsignalDz() const {return 0;}
     244           0 :   virtual Double_t          GetP() const {return 0;}
     245           0 :   virtual Double_t          GetSignedPt() const {return 0;}
     246           0 :   virtual Double_t          GetSign() const {return 0;}
     247           0 :   virtual void              GetDirection(Double_t []) const {;}
     248           0 :   virtual Double_t          GetLinearD(Double_t /*xv*/, Double_t /*yv*/) const {return 0;}
     249           0 :   virtual void              GetDZ(Double_t /*x*/,Double_t /*y*/,Double_t /*z*/,Double_t /*b*/,Float_t [] /*dz[2]*/) const {;}
     250           0 :   virtual Char_t            GetITSclusters(Int_t */**idx*/) const {return 0;}
     251           0 :   virtual UChar_t           GetTRDclusters(Int_t */**idx*/) const {return 0;}
     252             : 
     253             : 
     254         296 :   ClassDef(AliVTrack,1)  // base class for tracks
     255             : };
     256             : 
     257             : #endif

Generated by: LCOV version 1.11