ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, 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.                  *        
 **************************************************************************/
//           
//  derived from AliExternalTrackParam, itself is the trackpar at the upper end of the cosmic ray in TPC
//  its lower partner is fLowerTrackParam
//  number of cluster of the whole cosmic ray, its lever arm, chi2/ncls and impact parameters(D, Z) are also stored as important information of the combined TPC track quality
//           
//  Xianguo Lu 
//  lu@physi.uni-heidelberg.de
//  Xianguo.Lu@cern.ch
//           

#include "AliExternalTrackParam.h"
#include "AliESDCosmicTrack.h"

ClassImp(AliESDCosmicTrack);

AliESDCosmicTrack::AliESDCosmicTrack():
  AliExternalTrackParam()

  , fLowerTrackParam(0x0)
  , fX0UpperTrackParam(0x0)
  , fX0LowerTrackParam(0x0)
  , fInnerClusterUpper(0x0)
  , fInnerClusterLower(0x0)

  , fNCluster(-999)
  , fLeverArm(-999)
  , fChi2PerCluster(-999)
  , fImpactD(-999)
  , fImpactZ(-999)
  , fIsReuse(-999)
  , fFindableRatio(-999)
{
  //
  // default constructor
  // important to have default constructor in TTree
  //
  for(Int_t ii=0; ii<2; ii++)
    fESDtrackIndex[ii] = 0;
}

AliESDCosmicTrack::AliESDCosmicTrack(const Int_t idUp, const Int_t idLow, const AliExternalTrackParam * trkparUp, const AliExternalTrackParam * trkparLow, const AliExternalTrackParam * parx0Up, const AliExternalTrackParam * parx0Low, const Int_t ncls, const Double_t la, const Double_t chi2, const Double_t impd, const Double_t impz, const Bool_t isreuse, const Double_t findable, const TVector3 innerclusterupper, const TVector3 innerclusterlower): 
  AliExternalTrackParam(*trkparUp)
  , fLowerTrackParam(new AliExternalTrackParam(*trkparLow))
  , fX0UpperTrackParam(new AliExternalTrackParam(*parx0Up))
  , fX0LowerTrackParam(new AliExternalTrackParam(*parx0Low))
  , fInnerClusterUpper(new TVector3(innerclusterupper))
  , fInnerClusterLower(new TVector3(innerclusterlower))
  , fNCluster(ncls)
  , fLeverArm(la)
  , fChi2PerCluster(chi2)
  , fImpactD(impd)
  , fImpactZ(impz)
  , fIsReuse(isreuse)
  , fFindableRatio(findable)
{
  //
  // constructor
  //
  fESDtrackIndex[0] = idUp;
  fESDtrackIndex[1] = idLow;
}

AliESDCosmicTrack::AliESDCosmicTrack(const AliESDCosmicTrack & costrk):
  AliExternalTrackParam(costrk)
  , fLowerTrackParam(new AliExternalTrackParam(*costrk.fLowerTrackParam))
  , fX0UpperTrackParam(new AliExternalTrackParam(*costrk.fX0UpperTrackParam))
  , fX0LowerTrackParam(new AliExternalTrackParam(*costrk.fX0LowerTrackParam))
  , fInnerClusterUpper(new TVector3(*costrk.fInnerClusterUpper))
  , fInnerClusterLower(new TVector3(*costrk.fInnerClusterLower))
  , fNCluster(costrk.fNCluster)
  , fLeverArm(costrk.fLeverArm)
  , fChi2PerCluster(costrk.fChi2PerCluster)
  , fImpactD(costrk.fImpactD)
  , fImpactZ(costrk.fImpactZ)
  , fIsReuse(costrk.fIsReuse)
  , fFindableRatio(costrk.fFindableRatio)
{
  //
  // copy constructor
  //
  for(Int_t ii=0; ii<2; ii++){
    fESDtrackIndex[ii] = costrk.fESDtrackIndex[ii];
  }
}

AliESDCosmicTrack &AliESDCosmicTrack::operator=(const AliESDCosmicTrack & costrk)
{
  //
  // assignment operator
  //
  if(&costrk == this) return *this;
  AliExternalTrackParam::operator=(costrk);
  fLowerTrackParam = new AliExternalTrackParam(*costrk.fLowerTrackParam);
  fX0UpperTrackParam = new AliExternalTrackParam(*costrk.fX0UpperTrackParam);
  fX0LowerTrackParam = new AliExternalTrackParam(*costrk.fX0LowerTrackParam);
  fInnerClusterUpper = new TVector3(*costrk.fInnerClusterUpper);
  fInnerClusterLower = new TVector3(*costrk.fInnerClusterLower);
  fNCluster = costrk.fNCluster;
  fLeverArm = costrk.fLeverArm;
  fChi2PerCluster = costrk.fChi2PerCluster;
  fImpactD = costrk.fImpactD;
  fImpactZ = costrk.fImpactZ;
  fIsReuse = costrk.fIsReuse;
  fFindableRatio = costrk.fFindableRatio;

  for(Int_t ii=0; ii<2; ii++){
    fESDtrackIndex[ii] = costrk.fESDtrackIndex[ii];
  }
  return *this;
}

AliESDCosmicTrack::~AliESDCosmicTrack()
{
  delete fLowerTrackParam;
  delete fX0UpperTrackParam;
  delete fX0LowerTrackParam;

  delete fInnerClusterUpper;
  delete fInnerClusterLower;
}

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