X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=HBTAN%2FAliHBTFunction.cxx;h=3b645510fea368dff1891d168e215a9bb263ffd1;hb=78d7c6d31835b4721fb8055d8939743a12c73ad2;hp=30266ff99d8102b438ed2716beaa80afffc84652;hpb=201fedb7ded428110a9ea0a072c659b7ff5066af;p=u%2Fmrichter%2FAliRoot.git diff --git a/HBTAN/AliHBTFunction.cxx b/HBTAN/AliHBTFunction.cxx index 30266ff99d8..3b645510fea 100644 --- a/HBTAN/AliHBTFunction.cxx +++ b/HBTAN/AliHBTFunction.cxx @@ -41,33 +41,70 @@ ClassImp( AliHBTFunction ) AliHBTFunction::AliHBTFunction(): - fPairCut(new AliHBTEmptyPairCut()) //dummy cut + fPairCut(new AliAODEmptyPairCut()), //dummy cut + fWriteNumAndDen(kFALSE) { //Default constructor } /******************************************************************/ + AliHBTFunction::AliHBTFunction(const char* name,const char* title): - TNamed(name,title), - fPairCut(new AliHBTEmptyPairCut()) //dummy cut + TNamed(name,title), + fPairCut(new AliAODEmptyPairCut()), //dummy cut + fWriteNumAndDen(kFALSE) { //Constructor } /******************************************************************/ +AliHBTFunction::AliHBTFunction(const AliHBTFunction & source): + TNamed(source), + fPairCut((AliAODPairCut*)source.fPairCut->Clone()), + fWriteNumAndDen(source.fWriteNumAndDen) +{ +// Copy constructor needed by the coding conventions +} +/******************************************************************/ + AliHBTFunction::~AliHBTFunction() { //destructor + if (AliVAODParticle::GetDebug() > 1) + { + Info("~AliHBTFunction","Deleting %s",GetName()); + } delete fPairCut; } /******************************************************************/ +AliHBTFunction & AliHBTFunction::operator= (const AliHBTFunction & source) +{ + // Assignment needed by the coding conventions + delete fPairCut; + fPairCut = (AliAODPairCut*)source.fPairCut->Clone(); + return * this; +} void AliHBTFunction::WriteFunction() { //writes result of the function to file - if (GetNumerator()) GetNumerator()->Write(); - if (GetDenominator()) GetDenominator()->Write(); + if (AliVAODParticle::GetDebug()) Info("AliHBTFunction","%s",GetName()); + if (fWriteNumAndDen) + { + if (AliVAODParticle::GetDebug()) Info("AliHBTFunction","Writing Num & Den"); + if (GetNumerator()) GetNumerator()->Write(); + if (GetDenominator()) GetDenominator()->Write(); + if (AliVAODParticle::GetDebug()) Info("AliHBTFunction","Writing Num & Den Done"); + } + if (AliVAODParticle::GetDebug()) Info("AliHBTFunction","Getting Result"); TH1* res = GetResult(); - if (res) res->Write(); + if (AliVAODParticle::GetDebug()) Info("AliHBTFunction","Getting Result Done"); + + if (res) + { + if (AliVAODParticle::GetDebug()) Info("AliHBTFunction","Writing Result"); + res->Write(); + if (AliVAODParticle::GetDebug()) Info("AliHBTFunction","Writing Result Done"); + } } /******************************************************************/ @@ -75,7 +112,7 @@ TH1* AliHBTFunction::GetRatio(Double_t normfactor) { //returns ratio of numerator and denominator // - if (gDebug>0) Info("GetRatio","Norm. Factor is %f for %s",normfactor,GetName()); + if (AliVAODParticle::GetDebug()>0) Info("GetRatio","Norm. Factor is %f for %s",normfactor,GetName()); if (normfactor == 0.0) { @@ -84,6 +121,7 @@ TH1* AliHBTFunction::GetRatio(Double_t normfactor) } TString str = fName + " ratio"; TH1 *result = (TH1*)GetNumerator()->Clone(str.Data()); + result->SetDirectory(0x0); result->SetTitle(str.Data()); @@ -93,7 +131,7 @@ TH1* AliHBTFunction::GetRatio(Double_t normfactor) } /******************************************************************/ -void AliHBTFunction::SetPairCut(AliHBTPairCut* cut) +void AliHBTFunction::SetPairCut(AliAODPairCut* cut) { //Sets new Pair Cut. Old one is deleted //Note that it is created new object instead of simple pointer set @@ -109,7 +147,7 @@ void AliHBTFunction::SetPairCut(AliHBTPairCut* cut) return; } delete fPairCut; - fPairCut = (AliHBTPairCut*)cut->Clone(); + fPairCut = (AliAODPairCut*)cut->Clone(); } @@ -168,9 +206,37 @@ void AliHBTFunction::InitFunction() { //Iniotializes fctn.: Resets histograms //In case histograms are not created in ctor, builds with default parameters + if (AliVAODParticle::GetDebug()>1) Info("InitFunction","%s",GetName()); if ( !(GetNumerator()&&GetDenominator()) ) BuildHistos(); GetNumerator()->Reset(); GetDenominator()->Reset(); + + GetNumerator()->SetDirectory(0x0); + GetDenominator()->SetDirectory(0x0); + if (AliVAODParticle::GetDebug()>1) Info("InitFunction","Done"); +} +/******************************************************************/ +/******************************************************************/ +/******************************************************************/ +ClassImp(AliHBTCorrelFunction) +//____________________________________________ +////////////////////////////////////////////// +// +// class AliHBTCorrelFunction +// +// Base class for correlation fuctions, that is which returns ratio. +// Stores pointer the created ratio histogram and deletes it when function is deleted +// created in order to evoid memory leak +// +//////////////////////////////////////////////////////// +AliHBTCorrelFunction& AliHBTCorrelFunction::operator=(const AliHBTCorrelFunction& in) +{ + //assigment operator + if (&in == this) return *this; + delete fRatio; + fRatio=(in.fRatio)?(TH1*)in.fRatio->Clone():0x0; + fRatio->SetDirectory(0x0); + return *this; } /******************************************************************/ @@ -236,6 +302,22 @@ AliHBTFunction1D::AliHBTFunction1D(const Char_t *name, const Char_t *title, } /******************************************************************/ +AliHBTFunction1D::AliHBTFunction1D(const AliHBTFunction1D& source): + AliHBTFunction(source) +{ +// Copy constructor needed by the coding conventions byt not used + Fatal("AliHBTFunction1D(const AliHBTFunction1D&)","Cpy ctor not usable."); +} +/******************************************************************/ + +AliHBTFunction1D& AliHBTFunction1D::operator= (const AliHBTFunction1D & /*source*/) +{ +// Assignment needed by the coding conventions byt not used + Fatal("Assignment operator","not implemented"); + return * this; + } +/******************************************************************/ + AliHBTFunction1D::~AliHBTFunction1D() { //destructor @@ -279,7 +361,7 @@ Double_t AliHBTFunction1D::Scale(TH1D* num,TH1D* den) //Calculates the factor that should be used to scale //quatience of num and den to 1 at tail - if (gDebug>0) Info("Scale","Enetered Scale()"); + if (AliVAODParticle::GetDebug()>0) Info("Scale","Enetered Scale()"); if(!num) { Error("Scale","No numerator"); @@ -293,8 +375,8 @@ Double_t AliHBTFunction1D::Scale(TH1D* num,TH1D* den) if(fNBinsToScale < 1) { - return 0.0; Error("Scale","Number of bins for scaling is smaller thnan 1"); + return 0.0; } UInt_t nbins = num->GetNbinsX(); if (fNBinsToScale > nbins) @@ -302,11 +384,10 @@ Double_t AliHBTFunction1D::Scale(TH1D* num,TH1D* den) Error("Scale","Number of bins for scaling is bigger thnan number of bins in histograms"); return 0.0; } - if (gDebug>0) Info("Scale","No errors detected"); + if (AliVAODParticle::GetDebug()>0) Info("Scale","No errors detected"); - Double_t ratio; - Double_t sum = 0; - Int_t n = 0; + Double_t densum = 0.0; + Double_t numsum = 0.0; Int_t offset = nbins - fNBinsToScale - 1; @@ -314,18 +395,18 @@ Double_t AliHBTFunction1D::Scale(TH1D* num,TH1D* den) { if ( num->GetBinContent(i) > 0.0 ) { - ratio = den->GetBinContent(i)/num->GetBinContent(i); - sum += ratio; - n++; + densum += fDenominator->GetBinContent(i); + numsum += fNumerator->GetBinContent(i); } } - if(gDebug > 0) Info("Scale","sum=%f fNBinsToScale=%d n=%d",sum,fNBinsToScale,n); + if(AliVAODParticle::GetDebug() > 0) + Info("Scale","numsum=%f densum=%f fNBinsToScaleX=%d",numsum,densum,fNBinsToScale); - if (n == 0) return 0.0; - Double_t ret = sum/((Double_t)n); + if (numsum == 0) return 0.0; + Double_t ret = densum/numsum; - if(gDebug > 0) Info("Scale","returning %f",ret); + if(AliVAODParticle::GetDebug() > 0) Info("Scale","returning %f",ret); return ret; } @@ -400,9 +481,24 @@ AliHBTFunction2D::AliHBTFunction2D(const Char_t *name, const Char_t *title, BuildHistos(nXbins,maxXval,minXval,nYbins,maxYval,minYval); } /******************************************************************/ +AliHBTFunction2D::AliHBTFunction2D(const AliHBTFunction2D & source): + AliHBTFunction(source) +{ +// Copy constructor needed by the coding conventions byt not used + Fatal("AliHBTFunction2D(const AliHBTFunction2D&)","Cpy ctor not usable."); +} +/******************************************************************/ + +AliHBTFunction2D& AliHBTFunction2D::operator= (const AliHBTFunction2D& /*source*/) { +// Assignment needed by the coding conventions byt not used + Fatal("Assignment operator","not implemented"); + return * this; +} +/******************************************************************/ AliHBTFunction2D::~AliHBTFunction2D() { +//dtor delete fNumerator; delete fDenominator; } @@ -419,7 +515,7 @@ void AliHBTFunction2D::BuildHistos() void AliHBTFunction2D::BuildHistos(Int_t nxbins, Float_t xmax, Float_t xmin, Int_t nybins, Float_t ymax, Float_t ymin) { - //Builds numerator and denominator histograms (2d-case) +//Builds numerator and denominator histograms (2d-case) TString numstr = fName + " Numerator"; //title and name of the //numerator histogram TString denstr = fName + " Denominator";//title and name of the @@ -446,10 +542,10 @@ void AliHBTFunction2D::SetNumberOfBinsToScale(UInt_t xn, UInt_t yn) Double_t AliHBTFunction2D::Scale() { - // Calculates the factor that should be used to scale - // quatience of fNumerator and fDenominator to 1 at - // given region - if (gDebug>0) Info("Scale","Enetered Scale()"); +// Calculates the factor that should be used to scale +// quatience of fNumerator and fDenominator to 1 at +// given region + if (AliVAODParticle::GetDebug()>0) Info("Scale","Enetered Scale()"); if(!fNumerator) { Error("Scale","No numerator"); @@ -463,8 +559,8 @@ Double_t AliHBTFunction2D::Scale() if( (fNBinsToScaleX < 1) || (fNBinsToScaleY < 1) ) { - return 0.0; Error("Scale","Number of bins for scaling is smaller thnan 1"); + return 0.0; } UInt_t nbinsX = fNumerator->GetNbinsX(); if (fNBinsToScaleX > nbinsX) @@ -480,32 +576,31 @@ Double_t AliHBTFunction2D::Scale() return 0.0; } - if (gDebug>0) Info("Scale","No errors detected"); + if (AliVAODParticle::GetDebug()>0) Info("Scale","No errors detected"); Int_t offsetX = nbinsX - fNBinsToScaleX - 1; //bin that we start loop over bins in axis X Int_t offsetY = nbinsY - fNBinsToScaleY - 1; //bin that we start loop over bins in axis X - Double_t ratio; - Double_t sum = 0; - Int_t n = 0; + Double_t densum = 0.0; + Double_t numsum = 0.0; for (UInt_t j = offsetY; j< nbinsY; j++) for (UInt_t i = offsetX; i< nbinsX; i++) { if ( fNumerator->GetBinContent(i,j) > 0.0 ) { - ratio = fDenominator->GetBinContent(i,j)/fNumerator->GetBinContent(i,j); - sum += ratio; - n++; + densum += fDenominator->GetBinContent(i,j); + numsum += fNumerator->GetBinContent(i,j); } } - if(gDebug > 0) Info("Scale","sum=%f fNBinsToScaleX=%d fNBinsToScaleY=%d n=%d",sum,fNBinsToScaleX,fNBinsToScaleY,n); + if(AliVAODParticle::GetDebug() > 0) + Info("Scale","numsum=%f densum=%f fNBinsToScaleX=%d fNBinsToScaleY=%d",numsum,densum,fNBinsToScaleX,fNBinsToScaleY); - if (n == 0) return 0.0; - Double_t ret = sum/((Double_t)n); + if (numsum == 0) return 0.0; + Double_t ret = densum/numsum; - if(gDebug > 0) Info("Scale","returning %f",ret); + if(AliVAODParticle::GetDebug() > 0) Info("Scale","returning %f",ret); return ret; } @@ -596,6 +691,22 @@ AliHBTFunction3D::AliHBTFunction3D(const Char_t *name, const Char_t *title, } /******************************************************************/ +AliHBTFunction3D::AliHBTFunction3D(const AliHBTFunction3D& source): + AliHBTFunction(source) +{ +// Copy constructor needed by the coding conventions byt not used + Fatal("AliHBTFunction3D(const AliHBTFunction3D&)","Cpy ctor not usable."); +} +/******************************************************************/ + +AliHBTFunction3D& AliHBTFunction3D::operator= (const AliHBTFunction3D & /*source*/) +{ +// Assignment needed by the coding conventions byt not used + Fatal("Assignment operator","not implemented"); + return * this; + } +/******************************************************************/ + AliHBTFunction3D::~AliHBTFunction3D() { @@ -623,11 +734,11 @@ void AliHBTFunction3D::BuildHistos(Int_t nxbins, Float_t xmax, Float_t xmin, TString denstr = fName + " Denominator";//title and name of the //denominator histogram - fNumerator = new TH3D(numstr.Data(),numstr.Data(), - nxbins,xmin,xmin,nybins,ymin,ymin,nzbins,zmin,zmin); + fNumerator = new TH3F(numstr.Data(),numstr.Data(), + nxbins,xmin,xmax,nybins,ymin,ymax,nzbins,zmin,zmax); - fDenominator = new TH3D(denstr.Data(),denstr.Data(), - nxbins,xmin,xmin,nybins,ymin,ymin,nzbins,zmin,zmin); + fDenominator = new TH3F(denstr.Data(),denstr.Data(), + nxbins,xmin,xmax,nybins,ymin,ymax,nzbins,zmin,zmax); fNumerator->Sumw2(); fDenominator->Sumw2(); @@ -640,7 +751,7 @@ Double_t AliHBTFunction3D::Scale() // Calculates the factor that should be used to scale // quatience of fNumerator and fDenominator to 1 at // given volume - if (gDebug>0) Info("Scale","Enetered Scale()"); + if (AliVAODParticle::GetDebug()>0) Info("Scale","Enetered Scale()"); if(!fNumerator) { Error("Scale","No numerator"); @@ -654,8 +765,8 @@ Double_t AliHBTFunction3D::Scale() if( (fNBinsToScaleX < 1) || (fNBinsToScaleY < 1) || (fNBinsToScaleZ < 1)) { - return 0.0; Error("Scale","Number of bins for scaling is smaller thnan 1"); + return 0.0; } UInt_t nbinsX = fNumerator->GetNbinsX(); if (fNBinsToScaleX > nbinsX) @@ -678,15 +789,14 @@ Double_t AliHBTFunction3D::Scale() return 0.0; } - if (gDebug>0) Info("Scale","No errors detected"); + if (AliVAODParticle::GetDebug()>0) Info("Scale","No errors detected"); Int_t offsetX = nbinsX - fNBinsToScaleX - 1; //bin that we start loop over bins in axis X Int_t offsetY = nbinsY - fNBinsToScaleY - 1; //bin that we start loop over bins in axis Y Int_t offsetZ = nbinsZ - fNBinsToScaleZ - 1; //bin that we start loop over bins in axis Z - Double_t ratio; - Double_t sum = 0; - Int_t n = 0; + Double_t densum = 0.0; + Double_t numsum = 0.0; for (UInt_t k = offsetZ; kGetBinContent(i,j,k) > 0.0 ) { - ratio = fDenominator->GetBinContent(i,j,k)/fNumerator->GetBinContent(i,j,k); - sum += ratio; - n++; + + densum += fDenominator->GetBinContent(i,j,k); + numsum += fNumerator->GetBinContent(i,j,k); } } - if(gDebug > 0) - Info("Scale","sum=%f fNBinsToScaleX=%d fNBinsToScaleY=%d fNBinsToScaleZ=%d n=%d", - sum,fNBinsToScaleX,fNBinsToScaleY,fNBinsToScaleZ,n); + if(AliVAODParticle::GetDebug() > 0) + Info("Scale","numsum=%f densum=%f fNBinsToScaleX=%d fNBinsToScaleY=%d fNBinsToScaleZ=%d", + numsum,densum,fNBinsToScaleX,fNBinsToScaleY,fNBinsToScaleZ); - if (n == 0) return 0.0; - Double_t ret = sum/((Double_t)n); + if (numsum == 0) return 0.0; + Double_t ret = densum/numsum; - if(gDebug > 0) Info("Scale","returning %f",ret); + if(AliVAODParticle::GetDebug() > 0) Info("Scale","returning %f",ret); return ret; } /******************************************************************/ @@ -749,12 +859,14 @@ ClassImp( AliHBTOnePairFctn1D ) AliHBTOnePairFctn1D::AliHBTOnePairFctn1D(Int_t nbins, Float_t maxXval, Float_t minXval): AliHBTFunction1D(nbins,maxXval,minXval) { + //constructor } /******************************************************************/ AliHBTOnePairFctn1D::AliHBTOnePairFctn1D(const Char_t *name, const Char_t *title): AliHBTFunction1D(name,title) { + } /******************************************************************/ @@ -762,6 +874,7 @@ AliHBTOnePairFctn1D::AliHBTOnePairFctn1D(const Char_t *name, const Char_t *title Int_t nbins, Float_t maxXval, Float_t minXval): AliHBTFunction1D(name,title,nbins,maxXval,minXval) { + //constructor } /******************************************************************/ @@ -802,6 +915,7 @@ ClassImp( AliHBTOnePairFctn2D ) AliHBTOnePairFctn2D::AliHBTOnePairFctn2D(const Char_t *name, const Char_t *title): AliHBTFunction2D(name,title) { + //constructor } /******************************************************************/ @@ -809,6 +923,7 @@ AliHBTOnePairFctn2D::AliHBTOnePairFctn2D(Int_t nXbins, Double_t maxXval, Double_ Int_t nYbins, Double_t maxYval, Double_t minYval): AliHBTFunction2D(nXbins, maxXval, minXval, nYbins, maxYval, minYval) { + //constructor } /******************************************************************/ @@ -817,6 +932,7 @@ AliHBTOnePairFctn2D::AliHBTOnePairFctn2D(const Char_t *name, const Char_t *title Int_t nYbins, Double_t maxYval, Double_t minYval): AliHBTFunction2D(name,title, nXbins, maxXval, minXval, nYbins, maxYval, minYval) { + //constructor } /******************************************************************/ @@ -867,6 +983,7 @@ ClassImp( AliHBTOnePairFctn3D) AliHBTOnePairFctn3D::AliHBTOnePairFctn3D(const Char_t *name, const Char_t *title): AliHBTFunction3D(name,title) { + //constructor } /******************************************************************/ @@ -875,6 +992,7 @@ AliHBTOnePairFctn3D::AliHBTOnePairFctn3D(Int_t nXbins, Double_t maxXval, Double_ Int_t nZbins, Double_t maxZval, Double_t minZval): AliHBTFunction3D(nXbins, maxXval, minXval, nYbins, maxYval, minYval, nZbins, maxZval, minZval) { + //constructor } /******************************************************************/ @@ -884,6 +1002,7 @@ AliHBTOnePairFctn3D::AliHBTOnePairFctn3D(const Char_t *name, const Char_t *title Int_t nZbins, Double_t maxZval, Double_t minZval): AliHBTFunction3D(name,title,nXbins, maxXval, minXval, nYbins, maxYval, minYval, nZbins, maxZval, minZval) { + //constructor } /******************************************************************/ @@ -937,12 +1056,14 @@ ClassImp(AliHBTTwoPairFctn1D) AliHBTTwoPairFctn1D::AliHBTTwoPairFctn1D(Int_t nbins, Float_t maxXval, Float_t minXval): AliHBTFunction1D(nbins,maxXval,minXval) { + //constructor } /******************************************************************/ AliHBTTwoPairFctn1D::AliHBTTwoPairFctn1D(const Char_t *name, const Char_t *title): AliHBTFunction1D(name,title) { + //constructor } /******************************************************************/ @@ -950,6 +1071,7 @@ AliHBTTwoPairFctn1D::AliHBTTwoPairFctn1D(const Char_t *name, const Char_t *title Int_t nbins, Float_t maxXval, Float_t minXval): AliHBTFunction1D(name,title,nbins,maxXval,minXval) { + //constructor } /******************************************************************/ @@ -957,11 +1079,10 @@ void AliHBTTwoPairFctn1D::ProcessSameEventParticles(AliHBTPair* trackpair, AliHB { // Fills the numerator using pairs from the same event partpair = CheckPair(partpair); - if( partpair ) - { - Double_t x = GetValue(trackpair,partpair); - fNumerator->Fill(x); - } + if( partpair == 0x0) return; + + Double_t x = GetValue(trackpair,partpair); + fNumerator->Fill(x); } /******************************************************************/ @@ -969,11 +1090,10 @@ void AliHBTTwoPairFctn1D::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHB { // Fills the denumerator usin mixed pairs partpair = CheckPair(partpair); - if( partpair ) - { - Double_t x = GetValue(trackpair,partpair); - fDenominator->Fill(x); - } + if( partpair == 0x0) return; + + Double_t x = GetValue(trackpair,partpair); + fDenominator->Fill(x); } /******************************************************************/ /******************************************************************/ @@ -1000,6 +1120,7 @@ ClassImp(AliHBTTwoPairFctn2D) AliHBTTwoPairFctn2D::AliHBTTwoPairFctn2D(const Char_t *name, const Char_t *title): AliHBTFunction2D(name,title) { + //constructor } /******************************************************************/ @@ -1007,6 +1128,7 @@ AliHBTTwoPairFctn2D::AliHBTTwoPairFctn2D(Int_t nXbins, Double_t maxXval, Double_ Int_t nYbins, Double_t maxYval, Double_t minYval): AliHBTFunction2D(nXbins, maxXval, minXval, nYbins, maxYval, minYval) { + //constructor } /******************************************************************/ @@ -1015,6 +1137,7 @@ AliHBTTwoPairFctn2D::AliHBTTwoPairFctn2D(const Char_t *name, const Char_t *title Int_t nYbins, Double_t maxYval, Double_t minYval): AliHBTFunction2D(name,title,nXbins, maxXval, minXval, nYbins, maxYval, minYval) { + //constructor } /******************************************************************/ @@ -1022,12 +1145,11 @@ void AliHBTTwoPairFctn2D::ProcessSameEventParticles(AliHBTPair* trackpair, AliHB { //processes pair of particles coming from a same events (real pair) partpair = CheckPair(partpair); //check cuts - if( partpair ) - { - Double_t x,y; - GetValues(trackpair,partpair,x,y); - fNumerator->Fill(x,y); - } + if (partpair == 0x0) return; + + Double_t x,y; + GetValues(trackpair,partpair,x,y); + fNumerator->Fill(x,y); } /******************************************************************/ @@ -1035,12 +1157,11 @@ void AliHBTTwoPairFctn2D::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHB { //processes pair of particles coming from a different events (mixed pair) partpair = CheckPair(partpair); - if( partpair ) - { - Double_t x,y; - GetValues(trackpair,partpair,x,y); - fDenominator->Fill(x,y); - } + if (partpair == 0x0) return; + + Double_t x,y; + GetValues(trackpair,partpair,x,y); + fDenominator->Fill(x,y); } /******************************************************************/ @@ -1068,6 +1189,7 @@ ClassImp(AliHBTTwoPairFctn3D) AliHBTTwoPairFctn3D::AliHBTTwoPairFctn3D(const Char_t *name, const Char_t *title): AliHBTFunction3D(name,title) { + //constructor } /******************************************************************/ @@ -1076,6 +1198,7 @@ AliHBTTwoPairFctn3D::AliHBTTwoPairFctn3D(Int_t nXbins, Double_t maxXval, Double_ Int_t nZbins, Double_t maxZval, Double_t minZval): AliHBTFunction3D(nXbins, maxXval, minXval, nYbins, maxYval, minYval, nZbins, maxZval, minZval) { + //constructor } /******************************************************************/ @@ -1085,6 +1208,7 @@ AliHBTTwoPairFctn3D::AliHBTTwoPairFctn3D(const Char_t *name, const Char_t *title Int_t nZbins, Double_t maxZval, Double_t minZval): AliHBTFunction3D(name,title,nXbins, maxXval, minXval, nYbins, maxYval, minYval, nZbins, maxZval, minZval) { + //constructor } /******************************************************************/ @@ -1092,12 +1216,12 @@ void AliHBTTwoPairFctn3D::ProcessSameEventParticles(AliHBTPair* trackpair, AliHB { // Fills th numerator using pairs from the same event partpair = CheckPair(partpair); - if( partpair ) - { - Double_t x,y,z; - GetValues(trackpair,partpair,x,y,z); - fNumerator->Fill(x,y,z); - } + if( partpair == 0x0) return; + + Double_t x,y,z; + GetValues(trackpair,partpair,x,y,z); + fNumerator->Fill(x,y,z); + } /******************************************************************/ @@ -1105,16 +1229,13 @@ void AliHBTTwoPairFctn3D::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHB { // Fills the denumerator using mixed pairs partpair = CheckPair(partpair); - if( partpair ) - { - Double_t x,y,z; - GetValues(trackpair,partpair,x,y,z); - fDenominator->Fill(x,y,z); - } - + if( partpair == 0x0) return; + + Double_t x,y,z; + GetValues(trackpair,partpair,x,y,z); + fDenominator->Fill(x,y,z); } - /******************************************************************/ /******************************************************************/ /******************************************************************/