ROOT logo
#ifndef ALITRDTRACKLETBASE_H
#define ALITRDTRACKLETBASE_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id: AliTRDtrackletBase.h 26327 2008-06-02 15:36:18Z cblume $ */

////////////////////////////////////////////////////////////////////////////
//                                                                        //
// TRD tracklet                                                           //
// abstract base class for TRD tracklets                                  //
//                                                                        //
// Authors                                                                //
//  Alex Bercuci (A.Bercuci@gsi.de)                                       //
//  Jochen Klein (jochen.klein@cern.ch)                                   //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TObject
#include "TObject.h"
#endif

class AliTRDtrackletBase : public TObject {

 public:

    AliTRDtrackletBase() : TObject() {}
    AliTRDtrackletBase(const AliTRDtrackletBase &o) : TObject(o) {}
    virtual ~AliTRDtrackletBase() {}

    AliTRDtrackletBase& operator=(const AliTRDtrackletBase &o) { TObject::operator=(o); return *this; }

    virtual Bool_t   CookPID() = 0;

    virtual Int_t    GetDetector() const = 0 ;
    virtual Int_t    GetHCId() const { return 2 * GetDetector() + (GetYbin() > 0 ? 1 : 0); }

    virtual Float_t  GetX() const  = 0;
    virtual Float_t  GetY() const  = 0;
    virtual Float_t  GetZ() const  = 0;
    virtual Float_t  GetdYdX() const = 0;
    virtual Float_t  GetdZdX() const { return 0; }

    virtual Int_t    GetdY() const = 0;     // in units of 140um
    virtual Int_t    GetYbin() const  = 0;  // in units of 160um
    virtual Int_t    GetZbin() const  = 0;  // in pad length units

    virtual Double_t GetPID(Int_t is=-1) const = 0;

    virtual void     LocalToGlobal(Float_t&, Float_t&, Float_t&, Float_t&) {}

    virtual void     Print(Option_t * /*option=""*/) const {}

    virtual UInt_t   GetTrackletWord() const = 0;

    virtual void     SetDetector(Int_t id) = 0;

 protected:

    ClassDef(AliTRDtrackletBase, 1);        // Base class for TRD on- and offline tracklets

};

#endif
 AliTRDtrackletBase.h:1
 AliTRDtrackletBase.h:2
 AliTRDtrackletBase.h:3
 AliTRDtrackletBase.h:4
 AliTRDtrackletBase.h:5
 AliTRDtrackletBase.h:6
 AliTRDtrackletBase.h:7
 AliTRDtrackletBase.h:8
 AliTRDtrackletBase.h:9
 AliTRDtrackletBase.h:10
 AliTRDtrackletBase.h:11
 AliTRDtrackletBase.h:12
 AliTRDtrackletBase.h:13
 AliTRDtrackletBase.h:14
 AliTRDtrackletBase.h:15
 AliTRDtrackletBase.h:16
 AliTRDtrackletBase.h:17
 AliTRDtrackletBase.h:18
 AliTRDtrackletBase.h:19
 AliTRDtrackletBase.h:20
 AliTRDtrackletBase.h:21
 AliTRDtrackletBase.h:22
 AliTRDtrackletBase.h:23
 AliTRDtrackletBase.h:24
 AliTRDtrackletBase.h:25
 AliTRDtrackletBase.h:26
 AliTRDtrackletBase.h:27
 AliTRDtrackletBase.h:28
 AliTRDtrackletBase.h:29
 AliTRDtrackletBase.h:30
 AliTRDtrackletBase.h:31
 AliTRDtrackletBase.h:32
 AliTRDtrackletBase.h:33
 AliTRDtrackletBase.h:34
 AliTRDtrackletBase.h:35
 AliTRDtrackletBase.h:36
 AliTRDtrackletBase.h:37
 AliTRDtrackletBase.h:38
 AliTRDtrackletBase.h:39
 AliTRDtrackletBase.h:40
 AliTRDtrackletBase.h:41
 AliTRDtrackletBase.h:42
 AliTRDtrackletBase.h:43
 AliTRDtrackletBase.h:44
 AliTRDtrackletBase.h:45
 AliTRDtrackletBase.h:46
 AliTRDtrackletBase.h:47
 AliTRDtrackletBase.h:48
 AliTRDtrackletBase.h:49
 AliTRDtrackletBase.h:50
 AliTRDtrackletBase.h:51
 AliTRDtrackletBase.h:52
 AliTRDtrackletBase.h:53
 AliTRDtrackletBase.h:54
 AliTRDtrackletBase.h:55
 AliTRDtrackletBase.h:56
 AliTRDtrackletBase.h:57
 AliTRDtrackletBase.h:58
 AliTRDtrackletBase.h:59
 AliTRDtrackletBase.h:60
 AliTRDtrackletBase.h:61
 AliTRDtrackletBase.h:62
 AliTRDtrackletBase.h:63
 AliTRDtrackletBase.h:64
 AliTRDtrackletBase.h:65