ROOT logo
#include "AliConversionPhotonBase.h"
#include <iostream>

using namespace std;

ClassImp(AliConversionPhotonBase)

AliConversionPhotonBase::AliConversionPhotonBase() :
fV0Index(-1),
  fChi2perNDF(-1),
  fTagged(kFALSE),
  fIMass(-999),
  fPsiPair(-999),
  fQuality(0)
{
  //Default constructor
  fLabel[0] = -1;
  fLabel[1] = -1;

  fMCLabel[0]=-1;
  fMCLabel[1]=-1;
  

  fArmenteros[0]=-999;
  fArmenteros[1]=-999;

  fConversionPoint[0]=-999;
  fConversionPoint[1]=-999;
  fConversionPoint[2]=-999;
}


AliConversionPhotonBase::AliConversionPhotonBase(const AliConversionPhotonBase & original) :
fV0Index(original.fV0Index),
fChi2perNDF(original.fChi2perNDF),
fTagged(original.fTagged),
fIMass(original.fIMass),
fPsiPair(original.fPsiPair),
fQuality(original.fQuality)
  {
  //Copy constructor
  fLabel[0] = original.fLabel[0];
  fLabel[1] = original.fLabel[1];

  fMCLabel[0]=original.fMCLabel[0];
  fMCLabel[1]=original.fMCLabel[1];

  fArmenteros[0]=original.fArmenteros[0];
  fArmenteros[1]=original.fArmenteros[1];

  fConversionPoint[0]=original.fConversionPoint[0];
  fConversionPoint[1]=original.fConversionPoint[1];
  fConversionPoint[2]=original.fConversionPoint[2];

  }

AliConversionPhotonBase::~AliConversionPhotonBase() {
// empty standard destructor

}


AliConversionPhotonBase & AliConversionPhotonBase::operator = (const AliConversionPhotonBase & /*source*/)
{
  // assignment operator
  return *this;
}

TParticle *AliConversionPhotonBase::GetMCParticle(AliStack *fMCStack){
    if(!fMCStack){printf("MC Stack not defined");return 0x0;}

    Int_t label=GetMCParticleLabel(fMCStack);

    if(label>-1){
	return fMCStack->Particle(label);
    }

    return 0x0;
}

Bool_t AliConversionPhotonBase::IsTruePhoton(AliStack *fMCStack){
    TParticle *mcgamma=GetMCParticle(fMCStack);

    if(mcgamma){
	// Check if it is a true photon
	if(mcgamma->GetPdgCode()==22){
        return kTRUE;
	}
    }
    return kFALSE;
}

Int_t AliConversionPhotonBase::GetMCParticleLabel(AliStack *fMCStack){
    if(!fMCStack){printf("MC Stack not defined");return -1;}

    TParticle *fPositiveMCParticle=GetPositiveMCDaughter(fMCStack);
    TParticle *fNegativeMCParticle=GetNegativeMCDaughter(fMCStack);

    if(!fPositiveMCParticle||!fNegativeMCParticle){return -1;}

    if(fPositiveMCParticle->GetMother(0)>-1&&(fNegativeMCParticle->GetMother(0) == fPositiveMCParticle->GetMother(0))){

	    return fPositiveMCParticle->GetMother(0);
    }

    return -1;
}


TParticle *AliConversionPhotonBase::GetMCDaughter(AliStack *fMCStack,Int_t label){
    if(!fMCStack){printf("MC Stack not defined \n");return 0x0;}
    if(label<0||label>1){printf("Requested index out of bounds: %i \n",label);return 0x0;}

    if(fMCLabel[label]>-1){
	TParticle *fMCDaughter=fMCStack->Particle(fMCLabel[label]);
	return fMCDaughter;}
    else return 0x0;
}

///________________________________________________________________________
void AliConversionPhotonBase::DeterminePhotonQuality(AliVTrack* negTrack, AliVTrack* posTrack){

   
   if(!negTrack || !posTrack) {
        fQuality = 0;
        return;
   }
   if(negTrack->Charge() == posTrack->Charge()){
        fQuality = 0;
        return;
   }   
   Int_t nClusterITSneg = negTrack->GetNcls(0);
   Int_t nClusterITSpos = posTrack->GetNcls(0);
   
   if (nClusterITSneg > 1 && nClusterITSpos > 1){
      fQuality = 3;
      return;
   } else if (nClusterITSneg > 1 || nClusterITSpos > 1){
      fQuality = 2;
      return;
   } else {
      fQuality = 1;
      return;
   }
   return;
   
}
 AliConversionPhotonBase.cxx:1
 AliConversionPhotonBase.cxx:2
 AliConversionPhotonBase.cxx:3
 AliConversionPhotonBase.cxx:4
 AliConversionPhotonBase.cxx:5
 AliConversionPhotonBase.cxx:6
 AliConversionPhotonBase.cxx:7
 AliConversionPhotonBase.cxx:8
 AliConversionPhotonBase.cxx:9
 AliConversionPhotonBase.cxx:10
 AliConversionPhotonBase.cxx:11
 AliConversionPhotonBase.cxx:12
 AliConversionPhotonBase.cxx:13
 AliConversionPhotonBase.cxx:14
 AliConversionPhotonBase.cxx:15
 AliConversionPhotonBase.cxx:16
 AliConversionPhotonBase.cxx:17
 AliConversionPhotonBase.cxx:18
 AliConversionPhotonBase.cxx:19
 AliConversionPhotonBase.cxx:20
 AliConversionPhotonBase.cxx:21
 AliConversionPhotonBase.cxx:22
 AliConversionPhotonBase.cxx:23
 AliConversionPhotonBase.cxx:24
 AliConversionPhotonBase.cxx:25
 AliConversionPhotonBase.cxx:26
 AliConversionPhotonBase.cxx:27
 AliConversionPhotonBase.cxx:28
 AliConversionPhotonBase.cxx:29
 AliConversionPhotonBase.cxx:30
 AliConversionPhotonBase.cxx:31
 AliConversionPhotonBase.cxx:32
 AliConversionPhotonBase.cxx:33
 AliConversionPhotonBase.cxx:34
 AliConversionPhotonBase.cxx:35
 AliConversionPhotonBase.cxx:36
 AliConversionPhotonBase.cxx:37
 AliConversionPhotonBase.cxx:38
 AliConversionPhotonBase.cxx:39
 AliConversionPhotonBase.cxx:40
 AliConversionPhotonBase.cxx:41
 AliConversionPhotonBase.cxx:42
 AliConversionPhotonBase.cxx:43
 AliConversionPhotonBase.cxx:44
 AliConversionPhotonBase.cxx:45
 AliConversionPhotonBase.cxx:46
 AliConversionPhotonBase.cxx:47
 AliConversionPhotonBase.cxx:48
 AliConversionPhotonBase.cxx:49
 AliConversionPhotonBase.cxx:50
 AliConversionPhotonBase.cxx:51
 AliConversionPhotonBase.cxx:52
 AliConversionPhotonBase.cxx:53
 AliConversionPhotonBase.cxx:54
 AliConversionPhotonBase.cxx:55
 AliConversionPhotonBase.cxx:56
 AliConversionPhotonBase.cxx:57
 AliConversionPhotonBase.cxx:58
 AliConversionPhotonBase.cxx:59
 AliConversionPhotonBase.cxx:60
 AliConversionPhotonBase.cxx:61
 AliConversionPhotonBase.cxx:62
 AliConversionPhotonBase.cxx:63
 AliConversionPhotonBase.cxx:64
 AliConversionPhotonBase.cxx:65
 AliConversionPhotonBase.cxx:66
 AliConversionPhotonBase.cxx:67
 AliConversionPhotonBase.cxx:68
 AliConversionPhotonBase.cxx:69
 AliConversionPhotonBase.cxx:70
 AliConversionPhotonBase.cxx:71
 AliConversionPhotonBase.cxx:72
 AliConversionPhotonBase.cxx:73
 AliConversionPhotonBase.cxx:74
 AliConversionPhotonBase.cxx:75
 AliConversionPhotonBase.cxx:76
 AliConversionPhotonBase.cxx:77
 AliConversionPhotonBase.cxx:78
 AliConversionPhotonBase.cxx:79
 AliConversionPhotonBase.cxx:80
 AliConversionPhotonBase.cxx:81
 AliConversionPhotonBase.cxx:82
 AliConversionPhotonBase.cxx:83
 AliConversionPhotonBase.cxx:84
 AliConversionPhotonBase.cxx:85
 AliConversionPhotonBase.cxx:86
 AliConversionPhotonBase.cxx:87
 AliConversionPhotonBase.cxx:88
 AliConversionPhotonBase.cxx:89
 AliConversionPhotonBase.cxx:90
 AliConversionPhotonBase.cxx:91
 AliConversionPhotonBase.cxx:92
 AliConversionPhotonBase.cxx:93
 AliConversionPhotonBase.cxx:94
 AliConversionPhotonBase.cxx:95
 AliConversionPhotonBase.cxx:96
 AliConversionPhotonBase.cxx:97
 AliConversionPhotonBase.cxx:98
 AliConversionPhotonBase.cxx:99
 AliConversionPhotonBase.cxx:100
 AliConversionPhotonBase.cxx:101
 AliConversionPhotonBase.cxx:102
 AliConversionPhotonBase.cxx:103
 AliConversionPhotonBase.cxx:104
 AliConversionPhotonBase.cxx:105
 AliConversionPhotonBase.cxx:106
 AliConversionPhotonBase.cxx:107
 AliConversionPhotonBase.cxx:108
 AliConversionPhotonBase.cxx:109
 AliConversionPhotonBase.cxx:110
 AliConversionPhotonBase.cxx:111
 AliConversionPhotonBase.cxx:112
 AliConversionPhotonBase.cxx:113
 AliConversionPhotonBase.cxx:114
 AliConversionPhotonBase.cxx:115
 AliConversionPhotonBase.cxx:116
 AliConversionPhotonBase.cxx:117
 AliConversionPhotonBase.cxx:118
 AliConversionPhotonBase.cxx:119
 AliConversionPhotonBase.cxx:120
 AliConversionPhotonBase.cxx:121
 AliConversionPhotonBase.cxx:122
 AliConversionPhotonBase.cxx:123
 AliConversionPhotonBase.cxx:124
 AliConversionPhotonBase.cxx:125
 AliConversionPhotonBase.cxx:126
 AliConversionPhotonBase.cxx:127
 AliConversionPhotonBase.cxx:128
 AliConversionPhotonBase.cxx:129
 AliConversionPhotonBase.cxx:130
 AliConversionPhotonBase.cxx:131
 AliConversionPhotonBase.cxx:132
 AliConversionPhotonBase.cxx:133
 AliConversionPhotonBase.cxx:134
 AliConversionPhotonBase.cxx:135
 AliConversionPhotonBase.cxx:136
 AliConversionPhotonBase.cxx:137
 AliConversionPhotonBase.cxx:138
 AliConversionPhotonBase.cxx:139
 AliConversionPhotonBase.cxx:140
 AliConversionPhotonBase.cxx:141
 AliConversionPhotonBase.cxx:142
 AliConversionPhotonBase.cxx:143
 AliConversionPhotonBase.cxx:144
 AliConversionPhotonBase.cxx:145
 AliConversionPhotonBase.cxx:146
 AliConversionPhotonBase.cxx:147