ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

// Comment describing what this class does needed!

// $Id: AliJMCTrack.cxx,v 1.2 2008/05/08 13:44:45 djkim Exp $

////////////////////////////////////////////////////
//
//  \file AliJMCTrack.cxx
//  \brief
//  \author J. Rak, D.J.Kim, R.Diaz (University of Jyvaskyla)
//  \email: djkim@jyu.fi
//  \version $Revision: 1.2 $
//  \date $Date: 2008/05/08 13:44:45 $
//
//  class which encapsulates track  monte carlo information
////////////////////////////////////////////////////

#include "AliJMCTrack.h"
#include <TMath.h>
#include <TROOT.h>

ClassImp(AliJMCTrack);

//______________________________________________________________________________
AliJMCTrack::AliJMCTrack() : 
    AliJBaseTrack(),
    fPdgCode(0),
    fVx(0),
    fVy(0),
    fVz(0)
{
  // default constructor
  fMother[0] = fMother[1] = -1;
  fDaughter[0] = fDaughter[1] = -1;


}

//______________________________________________________________________________
AliJMCTrack::AliJMCTrack(const AliJMCTrack& a):
    AliJBaseTrack(a),
    fPdgCode(a.fPdgCode),
    fVx(a.fVx),
    fVy(a.fVy),
    fVz(a.fVz)
{
  //copy constructor
  for(Int_t i=0;i<2;i++){
    fMother[i] = a.fMother[i];
    fDaughter[i] = a.fDaughter[i];
  }
}


//______________________________________________________________________________
void AliJMCTrack::SetPdgCode(Int_t icode) {
  // Set PDG code, charge,  recalculate E
  if( TMath::Abs(icode) > 32767 ) icode = 0; // Short_t
  fPdgCode=icode;
//   SetVectM(Vect(), GetPDGData().Mass());
//   SetCharge( TMath::Nint(GetPDGData().Charge()) ); // is this right?
}


//______________________________________________________________________________
Bool_t AliJMCTrack::IsHadron() const{
  // Check is hadron 
  int absID = TMath::Abs(GetPdgCode());
  if( absID >= 211 && absID<=533 ) return true; //meson
  if( absID >1000 && absID<6000 ) return true; // barion
  return false;
}

//______________________________________________________________________________
AliJMCTrack& AliJMCTrack::operator=(const AliJMCTrack& trk){
  //operator= 
  if(this != &trk){
    AliJBaseTrack::operator=(trk);
    fPdgCode   =  trk.fPdgCode;
    fLabel     =  trk.fLabel;
    for(Int_t i=0;i<2;i++){
      fMother[i]   = trk.fMother[i];
      fDaughter[i] = trk.fDaughter[i];
    }
    fVx  = trk.fVx;
    fVy  = trk.fVy;
    fVz  = trk.fVz;
  }
  return *this;
}

const TParticlePDG& AliJMCTrack::GetPDGData() const { 
  return *(TDatabasePDG::Instance()->GetParticle( fPdgCode )); 
}





 AliJMCTrack.cxx:1
 AliJMCTrack.cxx:2
 AliJMCTrack.cxx:3
 AliJMCTrack.cxx:4
 AliJMCTrack.cxx:5
 AliJMCTrack.cxx:6
 AliJMCTrack.cxx:7
 AliJMCTrack.cxx:8
 AliJMCTrack.cxx:9
 AliJMCTrack.cxx:10
 AliJMCTrack.cxx:11
 AliJMCTrack.cxx:12
 AliJMCTrack.cxx:13
 AliJMCTrack.cxx:14
 AliJMCTrack.cxx:15
 AliJMCTrack.cxx:16
 AliJMCTrack.cxx:17
 AliJMCTrack.cxx:18
 AliJMCTrack.cxx:19
 AliJMCTrack.cxx:20
 AliJMCTrack.cxx:21
 AliJMCTrack.cxx:22
 AliJMCTrack.cxx:23
 AliJMCTrack.cxx:24
 AliJMCTrack.cxx:25
 AliJMCTrack.cxx:26
 AliJMCTrack.cxx:27
 AliJMCTrack.cxx:28
 AliJMCTrack.cxx:29
 AliJMCTrack.cxx:30
 AliJMCTrack.cxx:31
 AliJMCTrack.cxx:32
 AliJMCTrack.cxx:33
 AliJMCTrack.cxx:34
 AliJMCTrack.cxx:35
 AliJMCTrack.cxx:36
 AliJMCTrack.cxx:37
 AliJMCTrack.cxx:38
 AliJMCTrack.cxx:39
 AliJMCTrack.cxx:40
 AliJMCTrack.cxx:41
 AliJMCTrack.cxx:42
 AliJMCTrack.cxx:43
 AliJMCTrack.cxx:44
 AliJMCTrack.cxx:45
 AliJMCTrack.cxx:46
 AliJMCTrack.cxx:47
 AliJMCTrack.cxx:48
 AliJMCTrack.cxx:49
 AliJMCTrack.cxx:50
 AliJMCTrack.cxx:51
 AliJMCTrack.cxx:52
 AliJMCTrack.cxx:53
 AliJMCTrack.cxx:54
 AliJMCTrack.cxx:55
 AliJMCTrack.cxx:56
 AliJMCTrack.cxx:57
 AliJMCTrack.cxx:58
 AliJMCTrack.cxx:59
 AliJMCTrack.cxx:60
 AliJMCTrack.cxx:61
 AliJMCTrack.cxx:62
 AliJMCTrack.cxx:63
 AliJMCTrack.cxx:64
 AliJMCTrack.cxx:65
 AliJMCTrack.cxx:66
 AliJMCTrack.cxx:67
 AliJMCTrack.cxx:68
 AliJMCTrack.cxx:69
 AliJMCTrack.cxx:70
 AliJMCTrack.cxx:71
 AliJMCTrack.cxx:72
 AliJMCTrack.cxx:73
 AliJMCTrack.cxx:74
 AliJMCTrack.cxx:75
 AliJMCTrack.cxx:76
 AliJMCTrack.cxx:77
 AliJMCTrack.cxx:78
 AliJMCTrack.cxx:79
 AliJMCTrack.cxx:80
 AliJMCTrack.cxx:81
 AliJMCTrack.cxx:82
 AliJMCTrack.cxx:83
 AliJMCTrack.cxx:84
 AliJMCTrack.cxx:85
 AliJMCTrack.cxx:86
 AliJMCTrack.cxx:87
 AliJMCTrack.cxx:88
 AliJMCTrack.cxx:89
 AliJMCTrack.cxx:90
 AliJMCTrack.cxx:91
 AliJMCTrack.cxx:92
 AliJMCTrack.cxx:93
 AliJMCTrack.cxx:94
 AliJMCTrack.cxx:95
 AliJMCTrack.cxx:96
 AliJMCTrack.cxx:97
 AliJMCTrack.cxx:98
 AliJMCTrack.cxx:99
 AliJMCTrack.cxx:100
 AliJMCTrack.cxx:101
 AliJMCTrack.cxx:102
 AliJMCTrack.cxx:103
 AliJMCTrack.cxx:104
 AliJMCTrack.cxx:105
 AliJMCTrack.cxx:106
 AliJMCTrack.cxx:107
 AliJMCTrack.cxx:108
 AliJMCTrack.cxx:109
 AliJMCTrack.cxx:110
 AliJMCTrack.cxx:111
 AliJMCTrack.cxx:112
 AliJMCTrack.cxx:113