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

// Short comment describing what this class does needed!

// $Id: AliJMCTrack.h,v 1.3 2008/05/08 15:19:52 djkim Exp $

////////////////////////////////////////////////////
/*!
  \file AliJMCTrack.h
  \brief
  \author J. Rak, D.J.Kim, R.Diaz (University of Jyvaskyla)
  \email: djkim@jyu.fi
  \version $Revision: 1.3 $
  \date $Date: 2008/05/08 15:19:52 $
  */
////////////////////////////////////////////////////

#ifndef ALIJMCTRACK_H
#define ALIJMCTRACK_H

// include ROOT lib
#ifndef ROOT_TObject
#include <TObject.h>
#endif
#include <TDatabasePDG.h>

// include Inharitance
#include "AliJBaseTrack.h"

class AliJMCTrack : public AliJBaseTrack {

 public:
  enum { kPrimary=AliJBaseTrack::kNFlag, kPHOS, kEMCAL, kTPC, kInjected, kNFlag };//For ALICE
  enum { kFinal=AliJBaseTrack::kNFlag };// for MC
  //usage : this->SetFlag( kPrimary, kTRUE );
  //usage : this->IsTrue( kFinal );

  AliJMCTrack();      //default constructor
  AliJMCTrack(const AliJMCTrack& a);  //copy constructor

  ~AliJMCTrack(){;}    //destructor

  Int_t  GetPdgCode()    const {return fPdgCode;}
  Int_t  GetMother  (Int_t i) const {return fMother[i];}
  Int_t  GetDaughter(Int_t i) const {return fDaughter[i];}
  Double32_t GetVx()    const{return fVx;}
  Double32_t  GetVy()    const{return fVy;}
  Double32_t  GetVz()    const{return fVz;}

  const TParticlePDG& GetPDGData() const ;
  void SetPdgCode(Int_t icode);// Set PDG and E,charge
  void SetMother  (int m0, int m1){ fMother[0] = m0;fMother[1]=m1; }
  void SetDaughter(int d0, int d1){ fDaughter[0]=d0;fDaughter[1]=d1; }
  void SetProductionVertex(Double_t vx, Double_t vy, Double_t vz)
  {fVx=vx; fVy=vy; fVz=vz;}


  AliJMCTrack& operator=(const AliJMCTrack& trk);


  //Extra
  Bool_t IsFinal() const { return IsTrue( kFinal ); }
  void  SetIsFinal(Bool_t t){ SetFlag( kFinal, t );}
  //TODO
  Bool_t IsHadron() const;
  Bool_t IsCharged() const { return GetCharge(); }
  Bool_t IsParton()  const {return ( fPdgCode > -7 && fPdgCode < 7 && fPdgCode !=0 );}

 private:

  Short_t         fPdgCode;              // PDG code of the particle
  Short_t         fMother[2];            // Index of the mother particles
  Short_t         fDaughter[2];          // Indices of the daughter particles

  Double32_t      fVx;                   //[0.,0.,12] x of production vertex
  Double32_t      fVy;                   //[0.,0.,12] y of production vertex
  Double32_t      fVz;                   //[0.,0.,12] z of production vertex

  ClassDef(AliJMCTrack,2)
};

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