ROOT logo
#ifndef ALITRDPIDINFO_H
#define ALITRDPIDINFO_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */
////////////////////////////////////////////////////////////////////////////
//                                                                        //
//  TRD PID/Track summary info for performance                            //
//                                                                        //
//  Authors:                                                              //
//    Alexandru Bercuci <A.Bercuci@gsi.de>                                //
//                                                                        //
////////////////////////////////////////////////////////////////////////////

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

class AliTRDpidInfo : public TObject
{
public:
  class AliTRDpidData {
  friend class AliTRDpidInfo;       // allow direct access
  friend class AliTRDpidRefMakerLQ; // allow direct access
  friend class AliTRDpidRefMakerNN; // allow direct access
  public:
    AliTRDpidData();
    virtual ~AliTRDpidData(){}
    Int_t   Layer() const    { return (fPLbin&0xf0)>>4;}
    Int_t   Momentum() const { return fPLbin&0xf;}
  protected:
    UChar_t fPLbin;   // momentum / layer bin
    Float_t fdEdx[8]; // dEdx array
    ClassDef(AliTRDpidData, 1)  // PID layer representation
  };

  AliTRDpidInfo();
  AliTRDpidInfo(Int_t idx);
  virtual ~AliTRDpidInfo();
  inline AliTRDpidData const* GetData(Int_t itrklt) const;
  AliTRDpidData const* GetDataInLayer(Int_t ily) const;
  Int_t   GetNtracklets() const        { return fNtracklets;}
  Char_t  GetPID() const               { return fPID;}
  void    PushBack(Int_t ly, Int_t p, const Float_t *dedx);
  void    Reset();
  void    SetPID(Int_t idx)             { fPID = idx;}

private:
  Char_t        fPID;         // reference PID
  Int_t         fNtracklets;  // number of tracklets
  AliTRDpidData *fData;       //[fNtracklets] PID data array

  AliTRDpidInfo(const AliTRDpidInfo& ref);
  AliTRDpidInfo& operator=(const AliTRDpidInfo& ref);

  ClassDef(AliTRDpidInfo, 1)  // track PID data representation
};


//________________________________________________________________________
AliTRDpidInfo::AliTRDpidData const* AliTRDpidInfo::GetData(Int_t itrklt) const
{
// Retrive itrklt-th tracklet independent of layer
// For the layer specific getter see GetDataInLayer().

  if(!fData) return NULL;
  if(itrklt<0 || itrklt>=fNtracklets) return NULL;
  return &fData[itrklt];
}

#endif

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