First attempt to Asimuthaly Sensitive HBT (G.Galazka)
authorskowron <skowron@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 27 Oct 2004 19:04:15 +0000 (19:04 +0000)
committerskowron <skowron@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 27 Oct 2004 19:04:15 +0000 (19:04 +0000)
HBTAN/AliHBTWeightashbtCorrFctn.cxx [new file with mode: 0644]
HBTAN/AliHBTWeightashbtCorrFctn.h [new file with mode: 0644]
HBTAN/AliHBTashbtCorrFctn.cxx [new file with mode: 0644]
HBTAN/AliHBTashbtCorrFctn.h [new file with mode: 0644]

diff --git a/HBTAN/AliHBTWeightashbtCorrFctn.cxx b/HBTAN/AliHBTWeightashbtCorrFctn.cxx
new file mode 100644 (file)
index 0000000..41f165b
--- /dev/null
@@ -0,0 +1,1062 @@
+#include "AliHBTWeightashbtCorrFctn.h"
+#include <TH1.h>
+#include <Riostream.h>
+
+///////////////////////////////////////////////////////
+//                                                   //
+// AliHBTWeightashbtCorrFctn.h                             //
+//                                                   //
+// Class for calculating 3D ashbt correlation        //
+// functions                                         //
+//                                                   //
+///////////////////////////////////////////////////////
+
+ClassImp(AliHBTWeightashbtCorrFctn)
+
+AliHBTWeightashbtCorrFctn::AliHBTWeightashbtCorrFctn(const char* name, const char* title):
+ AliHBTOnePairFctn1D(name,title),
+
+    fWeightNumOut1(0x0),
+    fWeightNumOut2(0x0),
+    fWeightNumOut3(0x0),
+    fWeightNumOut4(0x0),
+    fWeightNumOut5(0x0),
+    fWeightNumOut6(0x0),
+    fWeightNumOut7(0x0),
+    fWeightNumOut8(0x0),
+
+    fWeightDenOut1(0x0),
+    fWeightDenOut2(0x0),
+    fWeightDenOut3(0x0),
+    fWeightDenOut4(0x0),
+    fWeightDenOut5(0x0),
+    fWeightDenOut6(0x0),
+    fWeightDenOut7(0x0),
+    fWeightDenOut8(0x0),
+   
+    fWeightRatOut1(0x0),
+    fWeightRatOut2(0x0),
+    fWeightRatOut3(0x0),
+    fWeightRatOut4(0x0),
+    fWeightRatOut5(0x0),
+    fWeightRatOut6(0x0),
+    fWeightRatOut7(0x0),
+    fWeightRatOut8(0x0),
+   
+
+    fWeightNumSide1(0x0),
+    fWeightNumSide2(0x0),
+    fWeightNumSide3(0x0),
+    fWeightNumSide4(0x0),
+    fWeightNumSide5(0x0),
+    fWeightNumSide6(0x0),
+    fWeightNumSide7(0x0),
+    fWeightNumSide8(0x0),
+
+    fWeightDenSide1(0x0),
+    fWeightDenSide2(0x0),
+    fWeightDenSide3(0x0),
+    fWeightDenSide4(0x0),
+    fWeightDenSide5(0x0),
+    fWeightDenSide6(0x0),
+    fWeightDenSide7(0x0),
+    fWeightDenSide8(0x0),
+   
+    fWeightRatSide1(0x0),
+    fWeightRatSide2(0x0),
+    fWeightRatSide3(0x0),
+    fWeightRatSide4(0x0),
+    fWeightRatSide5(0x0),
+    fWeightRatSide6(0x0),
+    fWeightRatSide7(0x0),
+    fWeightRatSide8(0x0),
+   
+    fWeightNumLong1(0x0),
+    fWeightNumLong2(0x0),
+    fWeightNumLong3(0x0),
+    fWeightNumLong4(0x0),
+    fWeightNumLong5(0x0),
+    fWeightNumLong6(0x0),
+    fWeightNumLong7(0x0),
+    fWeightNumLong8(0x0),
+
+    fWeightDenLong1(0x0),
+    fWeightDenLong2(0x0),
+    fWeightDenLong3(0x0),
+    fWeightDenLong4(0x0),
+    fWeightDenLong5(0x0),
+    fWeightDenLong6(0x0),
+    fWeightDenLong7(0x0),
+    fWeightDenLong8(0x0),
+   
+    fWeightRatLong1(0x0),
+    fWeightRatLong2(0x0),
+    fWeightRatLong3(0x0),
+    fWeightRatLong4(0x0),
+    fWeightRatLong5(0x0),
+    fWeightRatLong6(0x0),
+    fWeightRatLong7(0x0),
+    fWeightRatLong8(0x0)
+
+
+{
+//ctor
+}
+/******************************************************************/
+AliHBTWeightashbtCorrFctn::AliHBTWeightashbtCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval):
+ AliHBTOnePairFctn1D(name,title,nbins,maxXval,minXval),
+
+    fWeightNumOut1(0x0),
+    fWeightNumOut2(0x0),
+    fWeightNumOut3(0x0),
+    fWeightNumOut4(0x0),
+    fWeightNumOut5(0x0),
+    fWeightNumOut6(0x0),
+    fWeightNumOut7(0x0),
+    fWeightNumOut8(0x0),
+
+    fWeightDenOut1(0x0),
+    fWeightDenOut2(0x0),
+    fWeightDenOut3(0x0),
+    fWeightDenOut4(0x0),
+    fWeightDenOut5(0x0),
+    fWeightDenOut6(0x0),
+    fWeightDenOut7(0x0),
+    fWeightDenOut8(0x0),
+   
+    fWeightRatOut1(0x0),
+    fWeightRatOut2(0x0),
+    fWeightRatOut3(0x0),
+    fWeightRatOut4(0x0),
+    fWeightRatOut5(0x0),
+    fWeightRatOut6(0x0),
+    fWeightRatOut7(0x0),
+    fWeightRatOut8(0x0),
+   
+
+    fWeightNumSide1(0x0),
+    fWeightNumSide2(0x0),
+    fWeightNumSide3(0x0),
+    fWeightNumSide4(0x0),
+    fWeightNumSide5(0x0),
+    fWeightNumSide6(0x0),
+    fWeightNumSide7(0x0),
+    fWeightNumSide8(0x0),
+
+    fWeightDenSide1(0x0),
+    fWeightDenSide2(0x0),
+    fWeightDenSide3(0x0),
+    fWeightDenSide4(0x0),
+    fWeightDenSide5(0x0),
+    fWeightDenSide6(0x0),
+    fWeightDenSide7(0x0),
+    fWeightDenSide8(0x0),
+   
+    fWeightRatSide1(0x0),
+    fWeightRatSide2(0x0),
+    fWeightRatSide3(0x0),
+    fWeightRatSide4(0x0),
+    fWeightRatSide5(0x0),
+    fWeightRatSide6(0x0),
+    fWeightRatSide7(0x0),
+    fWeightRatSide8(0x0),
+   
+    fWeightNumLong1(0x0),
+    fWeightNumLong2(0x0),
+    fWeightNumLong3(0x0),
+    fWeightNumLong4(0x0),
+    fWeightNumLong5(0x0),
+    fWeightNumLong6(0x0),
+    fWeightNumLong7(0x0),
+    fWeightNumLong8(0x0),
+
+    fWeightDenLong1(0x0),
+    fWeightDenLong2(0x0),
+    fWeightDenLong3(0x0),
+    fWeightDenLong4(0x0),
+    fWeightDenLong5(0x0),
+    fWeightDenLong6(0x0),
+    fWeightDenLong7(0x0),
+    fWeightDenLong8(0x0),
+   
+    fWeightRatLong1(0x0),
+    fWeightRatLong2(0x0),
+    fWeightRatLong3(0x0),
+    fWeightRatLong4(0x0),
+    fWeightRatLong5(0x0),
+    fWeightRatLong6(0x0),
+    fWeightRatLong7(0x0),
+    fWeightRatLong8(0x0)
+
+
+{
+BuildHistos(nbins, maxXval, minXval);
+//ctor
+}
+
+/******************************************************************/
+AliHBTWeightashbtCorrFctn::AliHBTWeightashbtCorrFctn(const AliHBTWeightashbtCorrFctn& in):
+ AliHBTOnePairFctn1D(in),
+    fWeightNumOut1(0x0),
+    fWeightNumOut2(0x0),
+    fWeightNumOut3(0x0),
+    fWeightNumOut4(0x0),
+    fWeightNumOut5(0x0),
+    fWeightNumOut6(0x0),
+    fWeightNumOut7(0x0),
+    fWeightNumOut8(0x0),
+
+    fWeightDenOut1(0x0),
+    fWeightDenOut2(0x0),
+    fWeightDenOut3(0x0),
+    fWeightDenOut4(0x0),
+    fWeightDenOut5(0x0),
+    fWeightDenOut6(0x0),
+    fWeightDenOut7(0x0),
+    fWeightDenOut8(0x0),
+   
+    fWeightRatOut1(0x0),
+    fWeightRatOut2(0x0),
+    fWeightRatOut3(0x0),
+    fWeightRatOut4(0x0),
+    fWeightRatOut5(0x0),
+    fWeightRatOut6(0x0),
+    fWeightRatOut7(0x0),
+    fWeightRatOut8(0x0),
+   
+
+    fWeightNumSide1(0x0),
+    fWeightNumSide2(0x0),
+    fWeightNumSide3(0x0),
+    fWeightNumSide4(0x0),
+    fWeightNumSide5(0x0),
+    fWeightNumSide6(0x0),
+    fWeightNumSide7(0x0),
+    fWeightNumSide8(0x0),
+
+    fWeightDenSide1(0x0),
+    fWeightDenSide2(0x0),
+    fWeightDenSide3(0x0),
+    fWeightDenSide4(0x0),
+    fWeightDenSide5(0x0),
+    fWeightDenSide6(0x0),
+    fWeightDenSide7(0x0),
+    fWeightDenSide8(0x0),
+   
+    fWeightRatSide1(0x0),
+    fWeightRatSide2(0x0),
+    fWeightRatSide3(0x0),
+    fWeightRatSide4(0x0),
+    fWeightRatSide5(0x0),
+    fWeightRatSide6(0x0),
+    fWeightRatSide7(0x0),
+    fWeightRatSide8(0x0),
+   
+    fWeightNumLong1(0x0),
+    fWeightNumLong2(0x0),
+    fWeightNumLong3(0x0),
+    fWeightNumLong4(0x0),
+    fWeightNumLong5(0x0),
+    fWeightNumLong6(0x0),
+    fWeightNumLong7(0x0),
+    fWeightNumLong8(0x0),
+
+    fWeightDenLong1(0x0),
+    fWeightDenLong2(0x0),
+    fWeightDenLong3(0x0),
+    fWeightDenLong4(0x0),
+    fWeightDenLong5(0x0),
+    fWeightDenLong6(0x0),
+    fWeightDenLong7(0x0),
+    fWeightDenLong8(0x0),
+   
+    fWeightRatLong1(0x0),
+    fWeightRatLong2(0x0),
+    fWeightRatLong3(0x0),
+    fWeightRatLong4(0x0),
+    fWeightRatLong5(0x0),
+    fWeightRatLong6(0x0),
+    fWeightRatLong7(0x0),
+    fWeightRatLong8(0x0)
+  
+
+ {
+//ctor
+}
+
+/******************************************************************/
+
+AliHBTWeightashbtCorrFctn::~AliHBTWeightashbtCorrFctn()
+{
+ //dtor
+    delete fWeightNumOut1;
+    delete fWeightNumOut2;
+    delete fWeightNumOut3;
+    delete fWeightNumOut4;
+    delete fWeightNumOut5;
+    delete fWeightNumOut6;
+    delete fWeightNumOut7;
+    delete fWeightNumOut8;
+
+    delete fWeightDenOut1;
+    delete fWeightDenOut2;
+    delete fWeightDenOut3;
+    delete fWeightDenOut4;
+    delete fWeightDenOut5;
+    delete fWeightDenOut6;
+    delete fWeightDenOut7;
+    delete fWeightDenOut8;
+   
+    delete fWeightRatOut1;
+    delete fWeightRatOut2;
+    delete fWeightRatOut3;
+    delete fWeightRatOut4;
+    delete fWeightRatOut5;
+    delete fWeightRatOut6;
+    delete fWeightRatOut7;
+    delete fWeightRatOut8;
+   
+
+    delete fWeightNumSide1;
+    delete fWeightNumSide2;
+    delete fWeightNumSide3;
+    delete fWeightNumSide4;
+    delete fWeightNumSide5;
+    delete fWeightNumSide6;
+    delete fWeightNumSide7;
+    delete fWeightNumSide8;
+
+    delete fWeightDenSide1;
+    delete fWeightDenSide2;
+    delete fWeightDenSide3;
+    delete fWeightDenSide4;
+    delete fWeightDenSide5;
+    delete fWeightDenSide6;
+    delete fWeightDenSide7;
+    delete fWeightDenSide8;
+   
+    delete fWeightRatSide1;
+    delete fWeightRatSide2;
+    delete fWeightRatSide3;
+    delete fWeightRatSide4;
+    delete fWeightRatSide5;
+    delete fWeightRatSide6;
+    delete fWeightRatSide7;
+    delete fWeightRatSide8;
+   
+    delete fWeightNumLong1;
+    delete fWeightNumLong2;
+    delete fWeightNumLong3;
+    delete fWeightNumLong4;
+    delete fWeightNumLong5;
+    delete fWeightNumLong6;
+    delete fWeightNumLong7;
+    delete fWeightNumLong8;
+
+    delete fWeightDenLong1;
+    delete fWeightDenLong2;
+    delete fWeightDenLong3;
+    delete fWeightDenLong4;
+    delete fWeightDenLong5;
+    delete fWeightDenLong6;
+    delete fWeightDenLong7;
+    delete fWeightDenLong8;
+   
+    delete fWeightRatLong1;
+    delete fWeightRatLong2;
+    delete fWeightRatLong3;
+    delete fWeightRatLong4;
+    delete fWeightRatLong5;
+    delete fWeightRatLong6;
+    delete fWeightRatLong7;
+    delete fWeightRatLong8; 
+
+}
+
+/******************************************************************/
+void AliHBTWeightashbtCorrFctn::WriteFunction()
+{
+//out    
+   Double_t out1scale = Scale(fWeightNumOut1,fWeightDenOut1);
+   cout <<"out1scale = "<<out1scale<<endl;
+   fWeightRatOut1->Divide(fWeightNumOut1,fWeightDenOut1,out1scale);
+   
+   Double_t out2scale = Scale(fWeightNumOut2,fWeightDenOut2);
+   cout <<"out2scale = "<<out2scale<<endl;
+   fWeightRatOut2->Divide(fWeightNumOut2,fWeightDenOut2,out2scale);
+   
+   Double_t out3scale = Scale(fWeightNumOut3,fWeightDenOut3);
+   cout <<"out3scale = "<<out3scale<<endl;
+   fWeightRatOut3->Divide(fWeightNumOut3,fWeightDenOut3,out3scale);
+   
+   Double_t out4scale = Scale(fWeightNumOut4,fWeightDenOut4);
+   cout <<"out4scale = "<<out4scale<<endl;
+   fWeightRatOut4->Divide(fWeightNumOut4,fWeightDenOut4,out4scale);
+   
+   Double_t out5scale = Scale(fWeightNumOut5,fWeightDenOut5);
+   cout <<"out5scale = "<<out5scale<<endl;
+   fWeightRatOut5->Divide(fWeightNumOut5,fWeightDenOut5,out5scale);
+   
+   Double_t out6scale = Scale(fWeightNumOut6,fWeightDenOut6);
+   cout <<"out6scale = "<<out6scale<<endl;
+   fWeightRatOut6->Divide(fWeightNumOut6,fWeightDenOut6,out6scale);
+   
+   Double_t out7scale = Scale(fWeightNumOut7,fWeightDenOut7);
+   cout <<"out7scale = "<<out7scale<<endl;
+   fWeightRatOut7->Divide(fWeightNumOut7,fWeightDenOut7,out7scale);
+   
+   Double_t out8scale = Scale(fWeightNumOut8,fWeightDenOut8);
+   cout <<"out8scale = "<<out8scale<<endl;
+   fWeightRatOut8->Divide(fWeightNumOut8,fWeightDenOut8,out8scale);
+
+   //side
+   Double_t side1scale = Scale(fWeightNumSide1,fWeightDenSide1);
+   cout <<"side1scale = "<<side1scale<<endl;
+   fWeightRatSide1->Divide(fWeightNumSide1,fWeightDenSide1,side1scale);
+   
+   Double_t side2scale = Scale(fWeightNumSide2,fWeightDenSide2);
+   cout <<"side2scale = "<<side2scale<<endl;
+   fWeightRatSide2->Divide(fWeightNumSide2,fWeightDenSide2,side2scale);
+   
+   Double_t side3scale = Scale(fWeightNumSide3,fWeightDenSide3);
+   cout <<"side3scale = "<<side3scale<<endl;
+   fWeightRatSide3->Divide(fWeightNumSide3,fWeightDenSide3,side3scale);
+   
+   Double_t side4scale = Scale(fWeightNumSide4,fWeightDenSide4);
+   cout <<"side4scale = "<<side4scale<<endl;
+   fWeightRatSide4->Divide(fWeightNumSide4,fWeightDenSide4,side4scale);
+   
+   Double_t side5scale = Scale(fWeightNumSide5,fWeightDenSide5);
+   cout <<"side5scale = "<<side5scale<<endl;
+   fWeightRatSide5->Divide(fWeightNumSide5,fWeightDenSide5,side5scale);
+   
+   Double_t side6scale = Scale(fWeightNumSide6,fWeightDenSide6);
+   cout <<"side6scale = "<<side6scale<<endl;
+   fWeightRatSide6->Divide(fWeightNumSide6,fWeightDenSide6,side6scale);
+   
+   Double_t side7scale = Scale(fWeightNumSide7,fWeightDenSide7);
+   cout <<"side7scale = "<<side7scale<<endl;
+   fWeightRatSide7->Divide(fWeightNumSide7,fWeightDenSide7,side7scale);
+   
+   Double_t side8scale = Scale(fWeightNumSide8,fWeightDenSide8);
+   cout <<"side8scale = "<<side8scale<<endl;
+   fWeightRatSide8->Divide(fWeightNumSide8,fWeightDenSide8,side8scale);
+   
+//long
+   Double_t long1scale = Scale(fWeightNumLong1,fWeightDenLong1);
+   cout <<"long1scale = "<<long1scale<<endl;
+   fWeightRatLong1->Divide(fWeightNumLong1,fWeightDenLong1,long1scale);
+   
+   Double_t long2scale = Scale(fWeightNumLong2,fWeightDenLong2);
+   cout <<"long2scale = "<<long2scale<<endl;
+   fWeightRatLong2->Divide(fWeightNumLong2,fWeightDenLong2,long2scale);
+   
+   Double_t long3scale = Scale(fWeightNumLong3,fWeightDenLong3);
+   cout <<"long3scale = "<<long3scale<<endl;
+   fWeightRatLong3->Divide(fWeightNumLong3,fWeightDenLong3,long3scale);
+   
+   Double_t long4scale = Scale(fWeightNumLong4,fWeightDenLong4);
+   cout <<"long4scale = "<<long4scale<<endl;
+   fWeightRatLong4->Divide(fWeightNumLong4,fWeightDenLong4,long4scale);
+   
+   Double_t long5scale = Scale(fWeightNumLong5,fWeightDenLong5);
+   cout <<"long5scale = "<<long5scale<<endl;
+   fWeightRatLong5->Divide(fWeightNumLong5,fWeightDenLong5,long5scale);
+   
+   Double_t long6scale = Scale(fWeightNumLong6,fWeightDenLong6);
+   cout <<"long6scale = "<<long6scale<<endl;
+   fWeightRatLong6->Divide(fWeightNumLong6,fWeightDenLong6,long6scale);
+   
+   Double_t long7scale = Scale(fWeightNumLong7,fWeightDenLong7);
+   cout <<"long7scale = "<<long7scale<<endl;
+   fWeightRatLong7->Divide(fWeightNumLong7,fWeightDenLong7,long7scale);
+   
+   Double_t long8scale = Scale(fWeightNumLong8,fWeightDenLong8);
+   cout <<"long8scale = "<<long8scale<<endl;
+   fWeightRatLong8->Divide(fWeightNumLong8,fWeightDenLong8,long8scale);
+
+        fWeightNumOut1->Write();
+     fWeightNumOut2->Write();
+     fWeightNumOut3->Write();
+     fWeightNumOut4->Write();
+     fWeightNumOut5->Write();
+     fWeightNumOut6->Write();
+     fWeightNumOut7->Write();
+     fWeightNumOut8->Write();
+
+     fWeightDenOut1->Write();
+     fWeightDenOut2->Write();
+     fWeightDenOut3->Write();
+     fWeightDenOut4->Write();
+     fWeightDenOut5->Write();
+     fWeightDenOut6->Write();
+     fWeightDenOut7->Write();
+     fWeightDenOut8->Write();
+   
+     fWeightRatOut1->Write();
+     fWeightRatOut2->Write();
+     fWeightRatOut3->Write();
+     fWeightRatOut4->Write();
+     fWeightRatOut5->Write();
+     fWeightRatOut6->Write();
+     fWeightRatOut7->Write();
+     fWeightRatOut8->Write();
+   
+
+     fWeightNumSide1->Write();
+     fWeightNumSide2->Write();
+     fWeightNumSide3->Write();
+     fWeightNumSide4->Write();
+     fWeightNumSide5->Write();
+     fWeightNumSide6->Write();
+     fWeightNumSide7->Write();
+     fWeightNumSide8->Write();
+
+     fWeightDenSide1->Write();
+     fWeightDenSide2->Write();
+     fWeightDenSide3->Write();
+     fWeightDenSide4->Write();
+     fWeightDenSide5->Write();
+     fWeightDenSide6->Write();
+     fWeightDenSide7->Write();
+     fWeightDenSide8->Write();
+   
+     fWeightRatSide1->Write();
+     fWeightRatSide2->Write();
+     fWeightRatSide3->Write();
+     fWeightRatSide4->Write();
+     fWeightRatSide5->Write();
+     fWeightRatSide6->Write();
+     fWeightRatSide7->Write();
+     fWeightRatSide8->Write();
+   
+     fWeightNumLong1->Write();
+     fWeightNumLong2->Write();
+     fWeightNumLong3->Write();
+     fWeightNumLong4->Write();
+     fWeightNumLong5->Write();
+     fWeightNumLong6->Write();
+     fWeightNumLong7->Write();
+     fWeightNumLong8->Write();
+
+     fWeightDenLong1->Write();
+     fWeightDenLong2->Write();
+     fWeightDenLong3->Write();
+     fWeightDenLong4->Write();
+     fWeightDenLong5->Write();
+     fWeightDenLong6->Write();
+     fWeightDenLong7->Write();
+     fWeightDenLong8->Write();
+   
+     fWeightRatLong1->Write();
+     fWeightRatLong2->Write();
+     fWeightRatLong3->Write();
+     fWeightRatLong4->Write();
+     fWeightRatLong5->Write();
+     fWeightRatLong6->Write();
+     fWeightRatLong7->Write();
+     fWeightRatLong8->Write(); 
+
+}
+
+//-------------------------------------
+void AliHBTWeightashbtCorrFctn::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+{
+    //Fills the numerator using pair from the same event
+   
+   trackpair = CheckPair(trackpair);
+   if(partpair == 0x0) return;
+   if(trackpair == 0x0) return;
+   Double_t weight = 1.0;
+   
+   Double_t rplane=0.;   //reaction plane angle - 2 B determined
+   Double_t phi=(trackpair->Particle1()->Phi()+trackpair->Particle2()->Phi())/2.-rplane; //deltaphi bo nie mam nic innego pod reka
+   phi=phi*360/(2*TMath::Pi());
+   Double_t qout=trackpair->GetQOutLCMS();
+   Double_t qside=trackpair->GetQSideLCMS();
+   Double_t qlong=trackpair->GetQLongLCMS();
+   
+   if ( trackpair && partpair)
+     {
+       if ( ( trackpair->Particle1()->GetPdgCode() == partpair->Particle1()->GetPdgCode()) &&
+            ( trackpair->Particle2()->GetPdgCode() == partpair->Particle2()->GetPdgCode())    )
+         {
+            weight=partpair->GetWeight();
+         }
+       
+       
+       if((phi>=0.) && (phi <45.))
+         {
+            fWeightNumOut1->Fill(qout,weight);
+            fWeightNumSide1->Fill(qside,weight);
+            fWeightNumLong1->Fill(qlong,weight);
+         }
+       else if((phi>=45.) && (phi <90.))
+         {
+            fWeightNumOut2->Fill(qout,weight);
+            fWeightNumSide2->Fill(qside,weight);
+            fWeightNumLong2->Fill(qlong,weight);
+         }
+       else if((phi>=90.) && (phi <135.))
+         {
+            fWeightNumOut3->Fill(qout,weight);
+            fWeightNumSide3->Fill(qside,weight);
+            fWeightNumLong3->Fill(qlong,weight);
+         }
+       else if((phi>=135.) && (phi <180.))
+         {
+            fWeightNumOut4->Fill(qout,weight);
+            fWeightNumSide4->Fill(qside,weight);
+            fWeightNumLong4->Fill(qlong,weight);
+         }
+       else if((phi>=180.) && (phi <225.))
+         {
+            fWeightNumOut5->Fill(qout,weight);
+            fWeightNumSide5->Fill(qside,weight);
+            fWeightNumLong5->Fill(qlong,weight);
+         }
+       else if((phi>=225.) && (phi <270.))
+         {
+            fWeightNumOut6->Fill(qout,weight);
+            fWeightNumSide6->Fill(qside,weight);
+            fWeightNumLong6->Fill(qlong,weight);
+         }
+       else if((phi>=270.) && (phi <315.))
+         {
+            fWeightNumOut7->Fill(qout,weight);
+            fWeightNumSide7->Fill(qside,weight);
+            fWeightNumLong7->Fill(qlong,weight);
+         }
+       else if((phi>=315.) && (phi <360.))
+         {
+            fWeightNumOut8->Fill(qout,weight);
+            fWeightNumSide8->Fill(qside,weight);
+            fWeightNumLong8->Fill(qlong,weight);
+         }
+     }
+   
+   
+}
+
+/****************************************************************/
+void AliHBTWeightashbtCorrFctn::Init()
+{
+     fWeightNumOut1->Reset();
+     fWeightNumOut2->Reset();
+     fWeightNumOut3->Reset();
+     fWeightNumOut4->Reset();
+     fWeightNumOut5->Reset();
+     fWeightNumOut6->Reset();
+     fWeightNumOut7->Reset();
+     fWeightNumOut8->Reset();
+
+     fWeightDenOut1->Reset();
+     fWeightDenOut2->Reset();
+     fWeightDenOut3->Reset();
+     fWeightDenOut4->Reset();
+     fWeightDenOut5->Reset();
+     fWeightDenOut6->Reset();
+     fWeightDenOut7->Reset();
+     fWeightDenOut8->Reset();
+   
+     fWeightRatOut1->Reset();
+     fWeightRatOut2->Reset();
+     fWeightRatOut3->Reset();
+     fWeightRatOut4->Reset();
+     fWeightRatOut5->Reset();
+     fWeightRatOut6->Reset();
+     fWeightRatOut7->Reset();
+     fWeightRatOut8->Reset();
+   
+
+     fWeightNumSide1->Reset();
+     fWeightNumSide2->Reset();
+     fWeightNumSide3->Reset();
+     fWeightNumSide4->Reset();
+     fWeightNumSide5->Reset();
+     fWeightNumSide6->Reset();
+     fWeightNumSide7->Reset();
+     fWeightNumSide8->Reset();
+
+     fWeightDenSide1->Reset();
+     fWeightDenSide2->Reset();
+     fWeightDenSide3->Reset();
+     fWeightDenSide4->Reset();
+     fWeightDenSide5->Reset();
+     fWeightDenSide6->Reset();
+     fWeightDenSide7->Reset();
+     fWeightDenSide8->Reset();
+   
+     fWeightRatSide1->Reset();
+     fWeightRatSide2->Reset();
+     fWeightRatSide3->Reset();
+     fWeightRatSide4->Reset();
+     fWeightRatSide5->Reset();
+     fWeightRatSide6->Reset();
+     fWeightRatSide7->Reset();
+     fWeightRatSide8->Reset();
+   
+     fWeightNumLong1->Reset();
+     fWeightNumLong2->Reset();
+     fWeightNumLong3->Reset();
+     fWeightNumLong4->Reset();
+     fWeightNumLong5->Reset();
+     fWeightNumLong6->Reset();
+     fWeightNumLong7->Reset();
+     fWeightNumLong8->Reset();
+
+     fWeightDenLong1->Reset();
+     fWeightDenLong2->Reset();
+     fWeightDenLong3->Reset();
+     fWeightDenLong4->Reset();
+     fWeightDenLong5->Reset();
+     fWeightDenLong6->Reset();
+     fWeightDenLong7->Reset();
+     fWeightDenLong8->Reset();
+   
+     fWeightRatLong1->Reset();
+     fWeightRatLong2->Reset();
+     fWeightRatLong3->Reset();
+     fWeightRatLong4->Reset();
+     fWeightRatLong5->Reset();
+     fWeightRatLong6->Reset();
+     fWeightRatLong7->Reset();
+     fWeightRatLong8->Reset(); 
+   
+
+ }
+/****************************************************************/
+
+
+void AliHBTWeightashbtCorrFctn::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
+{
+
+   trackpair = CheckPair(trackpair);
+   Double_t rplane=0.;   //reaction plane angle - 2 B determined
+   Double_t phi=(trackpair->Particle1()->Phi()+trackpair->Particle2()->Phi())/2.-rplane; //deltaphi bo nie mam nic innego pod reka
+   phi=phi*360/(2*TMath::Pi());
+   Double_t qout=trackpair->GetQOutLCMS();
+   Double_t qside=trackpair->GetQSideLCMS();
+   Double_t qlong=trackpair->GetQLongLCMS();
+   
+
+if ( trackpair && partpair)
+     {   
+       
+       if((phi>=0.) && (phi <45.))
+         {
+            fWeightDenOut1->Fill(qout);
+            fWeightDenSide1->Fill(qside);
+            fWeightDenLong1->Fill(qlong);
+         }
+       else if((phi>=45.) && (phi <90.))
+         {
+            fWeightDenOut2->Fill(qout);
+            fWeightDenSide2->Fill(qside);
+            fWeightDenLong2->Fill(qlong);
+         }
+       else if((phi>=90.) && (phi <135.))
+         {
+            fWeightDenOut3->Fill(qout);
+            fWeightDenSide3->Fill(qside);
+            fWeightDenLong3->Fill(qlong);
+         }
+       else if((phi>=135.) && (phi <180.))
+         {
+            fWeightDenOut4->Fill(qout);
+            fWeightDenSide4->Fill(qside);
+            fWeightDenLong4->Fill(qlong);
+         }
+       else if((phi>=180.) && (phi <225.))
+         {
+            fWeightDenOut5->Fill(qout);
+            fWeightDenSide5->Fill(qside);
+            fWeightDenLong5->Fill(qlong);
+         }
+       else if((phi>=225.) && (phi <270.))
+         {
+            fWeightDenOut6->Fill(qout);
+            fWeightDenSide6->Fill(qside);
+            fWeightDenLong6->Fill(qlong);
+         }
+       else if((phi>=270.) && (phi <315.))
+         {
+            fWeightDenOut7->Fill(qout);
+            fWeightDenSide7->Fill(qside);
+            fWeightDenLong7->Fill(qlong);
+         }
+       else if((phi>=315.) && (phi <360.))
+         {
+            fWeightDenOut8->Fill(qout);
+            fWeightDenSide8->Fill(qside);
+            fWeightDenLong8->Fill(qlong);
+         }
+     }
+   
+}
+
+
+/******************************************************************/
+
+void AliHBTWeightashbtCorrFctn::BuildHistos(Int_t nbins, Float_t max, Float_t min)
+{
+    
+   
+   TString nameNumOut1 = "NumOut0-45deg";
+   TString nameNumOut2 = "NumOut45-90deg";
+   TString nameNumOut3 = "NumOut90-135deg";
+   TString nameNumOut4 = "NumOut135-180deg";
+   TString nameNumOut5 = "NumOut180-225deg";
+   TString nameNumOut6 = "NumOut225-270deg";
+   TString nameNumOut7 = "NumOut270-315deg";
+   TString nameNumOut8 = "NumOut315-360deg";
+   
+   
+   TString nameDenOut1 = "DenOut0-45deg";
+   TString nameDenOut2 = "DenOut45-90deg";
+   TString nameDenOut3 = "DenOut90-135deg";
+   TString nameDenOut4 = "DenOut135-180deg";
+   TString nameDenOut5 = "DenOut180-225deg";
+   TString nameDenOut6 = "DenOut225-270deg";
+   TString nameDenOut7 = "DenOut270-315deg";
+   TString nameDenOut8 = "DenOut315-360deg";
+   
+   
+   TString nameRatOut1 = "RatOut0-45deg";
+   TString nameRatOut2 = "RatOut45-90deg";
+   TString nameRatOut3 = "RatOut90-135deg";
+   TString nameRatOut4 = "RatOut135-180deg";
+   TString nameRatOut5 = "RatOut180-225deg";
+   TString nameRatOut6 = "RatOut225-270deg";
+   TString nameRatOut7 = "RatOut270-315deg";
+   TString nameRatOut8 = "RatOut315-360deg";
+   
+   TString nameNumSide1 = "NumSide0-45deg";
+   TString nameNumSide2 = "NumSide45-90deg";
+   TString nameNumSide3 = "NumSide90-135deg";
+   TString nameNumSide4 = "NumSide135-180deg";
+   TString nameNumSide5 = "NumSide180-225deg";
+   TString nameNumSide6 = "NumSide225-270deg";
+   TString nameNumSide7 = "NumSide270-315deg";
+   TString nameNumSide8 = "NumSide315-360deg";
+   
+   
+   TString nameDenSide1 = "DenSide0-45deg";
+   TString nameDenSide2 = "DenSide45-90deg";
+   TString nameDenSide3 = "DenSide90-135deg";
+   TString nameDenSide4 = "DenSide135-180deg";
+   TString nameDenSide5 = "DenSide180-225deg";
+   TString nameDenSide6 = "DenSide225-270deg";
+   TString nameDenSide7 = "DenSide270-315deg";
+   TString nameDenSide8 = "DenSide315-360deg";
+   
+   
+   TString nameRatSide1 = "RatSide0-45deg";
+   TString nameRatSide2 = "RatSide45-90deg";
+   TString nameRatSide3 = "RatSide90-135deg";
+   TString nameRatSide4 = "RatSide135-180deg";
+   TString nameRatSide5 = "RatSide180-225deg";
+   TString nameRatSide6 = "RatSide225-270deg";
+   TString nameRatSide7 = "RatSide270-315deg";
+   TString nameRatSide8 = "RatSide315-360deg";
+   
+   TString nameNumLong1 = "NumLong0-45deg";
+   TString nameNumLong2 = "NumLong45-90deg";
+   TString nameNumLong3 = "NumLong90-135deg";
+   TString nameNumLong4 = "NumLong135-180deg";
+   TString nameNumLong5 = "NumLong180-225deg";
+   TString nameNumLong6 = "NumLong225-270deg";
+   TString nameNumLong7 = "NumLong270-315deg";
+   TString nameNumLong8 = "NumLong315-360deg";
+   
+   
+   TString nameDenLong1 = "DenLong0-45deg";
+   TString nameDenLong2 = "DenLong45-90deg";
+   TString nameDenLong3 = "DenLong90-135deg";
+   TString nameDenLong4 = "DenLong135-180deg";
+   TString nameDenLong5 = "DenLong180-225deg";
+   TString nameDenLong6 = "DenLong225-270deg";
+   TString nameDenLong7 = "DenLong270-315deg";
+   TString nameDenLong8 = "DenLong315-360deg";
+   
+   
+   TString nameRatLong1 = "RatLong0-45deg";
+   TString nameRatLong2 = "RatLong45-90deg";
+   TString nameRatLong3 = "RatLong90-135deg";
+   TString nameRatLong4 = "RatLong135-180deg";
+   TString nameRatLong5 = "RatLong180-225deg";
+   TString nameRatLong6 = "RatLong225-270deg";
+   TString nameRatLong7 = "RatLong270-315deg";
+   TString nameRatLong8 = "RatLong315-360deg";
+
+   fWeightNumOut1 = new TH1D(nameNumOut1.Data(),nameNumOut1.Data(),nbins,min,max);
+   fWeightNumOut2 = new TH1D(nameNumOut2.Data(),nameNumOut2.Data(),nbins,min,max);
+   fWeightNumOut3 = new TH1D(nameNumOut3.Data(),nameNumOut3.Data(),nbins,min,max);
+   fWeightNumOut4 = new TH1D(nameNumOut4.Data(),nameNumOut4.Data(),nbins,min,max);
+   fWeightNumOut5 = new TH1D(nameNumOut5.Data(),nameNumOut5.Data(),nbins,min,max);
+   fWeightNumOut6 = new TH1D(nameNumOut6.Data(),nameNumOut6.Data(),nbins,min,max);
+   fWeightNumOut7 = new TH1D(nameNumOut7.Data(),nameNumOut7.Data(),nbins,min,max);
+   fWeightNumOut8 = new TH1D(nameNumOut8.Data(),nameNumOut8.Data(),nbins,min,max);
+   
+   fWeightDenOut1 = new TH1D(nameDenOut1.Data(),nameDenOut1.Data(),nbins,min,max);
+   fWeightDenOut2 = new TH1D(nameDenOut2.Data(),nameDenOut2.Data(),nbins,min,max);
+   fWeightDenOut3 = new TH1D(nameDenOut3.Data(),nameDenOut3.Data(),nbins,min,max);
+   fWeightDenOut4 = new TH1D(nameDenOut4.Data(),nameDenOut4.Data(),nbins,min,max);
+   fWeightDenOut5 = new TH1D(nameDenOut5.Data(),nameDenOut5.Data(),nbins,min,max);
+   fWeightDenOut6 = new TH1D(nameDenOut6.Data(),nameDenOut6.Data(),nbins,min,max);
+   fWeightDenOut7 = new TH1D(nameDenOut7.Data(),nameDenOut7.Data(),nbins,min,max);
+   fWeightDenOut8 = new TH1D(nameDenOut8.Data(),nameDenOut8.Data(),nbins,min,max);
+   
+   fWeightRatOut1 = new TH1D(nameRatOut1.Data(),nameRatOut1.Data(),nbins,min,max);
+   fWeightRatOut2 = new TH1D(nameRatOut2.Data(),nameRatOut2.Data(),nbins,min,max);
+   fWeightRatOut3 = new TH1D(nameRatOut3.Data(),nameRatOut3.Data(),nbins,min,max);
+   fWeightRatOut4 = new TH1D(nameRatOut4.Data(),nameRatOut4.Data(),nbins,min,max);
+   fWeightRatOut5 = new TH1D(nameRatOut5.Data(),nameRatOut5.Data(),nbins,min,max);
+   fWeightRatOut6 = new TH1D(nameRatOut6.Data(),nameRatOut6.Data(),nbins,min,max);
+   fWeightRatOut7 = new TH1D(nameRatOut7.Data(),nameRatOut7.Data(),nbins,min,max);
+   fWeightRatOut8 = new TH1D(nameRatOut8.Data(),nameRatOut8.Data(),nbins,min,max);
+   
+   fWeightNumSide1 = new TH1D(nameNumSide1.Data(),nameNumSide1.Data(),nbins,min,max);
+   fWeightNumSide2 = new TH1D(nameNumSide2.Data(),nameNumSide2.Data(),nbins,min,max);
+   fWeightNumSide3 = new TH1D(nameNumSide3.Data(),nameNumSide3.Data(),nbins,min,max);
+   fWeightNumSide4 = new TH1D(nameNumSide4.Data(),nameNumSide4.Data(),nbins,min,max);
+   fWeightNumSide5 = new TH1D(nameNumSide5.Data(),nameNumSide5.Data(),nbins,min,max);
+   fWeightNumSide6 = new TH1D(nameNumSide6.Data(),nameNumSide6.Data(),nbins,min,max);
+   fWeightNumSide7 = new TH1D(nameNumSide7.Data(),nameNumSide7.Data(),nbins,min,max);
+   fWeightNumSide8 = new TH1D(nameNumSide8.Data(),nameNumSide8.Data(),nbins,min,max);
+   
+   fWeightDenSide1 = new TH1D(nameDenSide1.Data(),nameDenSide1.Data(),nbins,min,max);
+   fWeightDenSide2 = new TH1D(nameDenSide2.Data(),nameDenSide2.Data(),nbins,min,max);
+   fWeightDenSide3 = new TH1D(nameDenSide3.Data(),nameDenSide3.Data(),nbins,min,max);
+   fWeightDenSide4 = new TH1D(nameDenSide4.Data(),nameDenSide4.Data(),nbins,min,max);
+   fWeightDenSide5 = new TH1D(nameDenSide5.Data(),nameDenSide5.Data(),nbins,min,max);
+   fWeightDenSide6 = new TH1D(nameDenSide6.Data(),nameDenSide6.Data(),nbins,min,max);
+   fWeightDenSide7 = new TH1D(nameDenSide7.Data(),nameDenSide7.Data(),nbins,min,max);
+   fWeightDenSide8 = new TH1D(nameDenSide8.Data(),nameDenSide8.Data(),nbins,min,max);
+   
+   fWeightRatSide1 = new TH1D(nameRatSide1.Data(),nameRatSide1.Data(),nbins,min,max);
+   fWeightRatSide2 = new TH1D(nameRatSide2.Data(),nameRatSide2.Data(),nbins,min,max);
+   fWeightRatSide3 = new TH1D(nameRatSide3.Data(),nameRatSide3.Data(),nbins,min,max);
+   fWeightRatSide4 = new TH1D(nameRatSide4.Data(),nameRatSide4.Data(),nbins,min,max);
+   fWeightRatSide5 = new TH1D(nameRatSide5.Data(),nameRatSide5.Data(),nbins,min,max);
+   fWeightRatSide6 = new TH1D(nameRatSide6.Data(),nameRatSide6.Data(),nbins,min,max);
+   fWeightRatSide7 = new TH1D(nameRatSide7.Data(),nameRatSide7.Data(),nbins,min,max);
+   fWeightRatSide8 = new TH1D(nameRatSide8.Data(),nameRatSide8.Data(),nbins,min,max);
+   
+   fWeightNumLong1 = new TH1D(nameNumLong1.Data(),nameNumLong1.Data(),nbins,min,max);
+   fWeightNumLong2 = new TH1D(nameNumLong2.Data(),nameNumLong2.Data(),nbins,min,max);
+   fWeightNumLong3 = new TH1D(nameNumLong3.Data(),nameNumLong3.Data(),nbins,min,max);
+   fWeightNumLong4 = new TH1D(nameNumLong4.Data(),nameNumLong4.Data(),nbins,min,max);
+   fWeightNumLong5 = new TH1D(nameNumLong5.Data(),nameNumLong5.Data(),nbins,min,max);
+   fWeightNumLong6 = new TH1D(nameNumLong6.Data(),nameNumLong6.Data(),nbins,min,max);
+   fWeightNumLong7 = new TH1D(nameNumLong7.Data(),nameNumLong7.Data(),nbins,min,max);
+   fWeightNumLong8 = new TH1D(nameNumLong8.Data(),nameNumLong8.Data(),nbins,min,max);
+   
+   fWeightDenLong1 = new TH1D(nameDenLong1.Data(),nameDenLong1.Data(),nbins,min,max);
+   fWeightDenLong2 = new TH1D(nameDenLong2.Data(),nameDenLong2.Data(),nbins,min,max);
+   fWeightDenLong3 = new TH1D(nameDenLong3.Data(),nameDenLong3.Data(),nbins,min,max);
+   fWeightDenLong4 = new TH1D(nameDenLong4.Data(),nameDenLong4.Data(),nbins,min,max);
+   fWeightDenLong5 = new TH1D(nameDenLong5.Data(),nameDenLong5.Data(),nbins,min,max);
+   fWeightDenLong6 = new TH1D(nameDenLong6.Data(),nameDenLong6.Data(),nbins,min,max);
+   fWeightDenLong7 = new TH1D(nameDenLong7.Data(),nameDenLong7.Data(),nbins,min,max);
+   fWeightDenLong8 = new TH1D(nameDenLong8.Data(),nameDenLong8.Data(),nbins,min,max);
+   
+   fWeightRatLong1 = new TH1D(nameRatLong1.Data(),nameRatLong1.Data(),nbins,min,max);
+   fWeightRatLong2 = new TH1D(nameRatLong2.Data(),nameRatLong2.Data(),nbins,min,max);
+   fWeightRatLong3 = new TH1D(nameRatLong3.Data(),nameRatLong3.Data(),nbins,min,max);
+   fWeightRatLong4 = new TH1D(nameRatLong4.Data(),nameRatLong4.Data(),nbins,min,max);
+   fWeightRatLong5 = new TH1D(nameRatLong5.Data(),nameRatLong5.Data(),nbins,min,max);
+   fWeightRatLong6 = new TH1D(nameRatLong6.Data(),nameRatLong6.Data(),nbins,min,max);
+   fWeightRatLong7 = new TH1D(nameRatLong7.Data(),nameRatLong7.Data(),nbins,min,max);
+   fWeightRatLong8 = new TH1D(nameRatLong8.Data(),nameRatLong8.Data(),nbins,min,max);
+   
+   fWeightNumOut1->Sumw2();
+   fWeightNumOut2->Sumw2();
+     fWeightNumOut3->Sumw2();
+     fWeightNumOut4->Sumw2();
+     fWeightNumOut5->Sumw2();
+     fWeightNumOut6->Sumw2();
+     fWeightNumOut7->Sumw2();
+     fWeightNumOut8->Sumw2();
+
+     fWeightDenOut1->Sumw2();
+     fWeightDenOut2->Sumw2();
+     fWeightDenOut3->Sumw2();
+     fWeightDenOut4->Sumw2();
+     fWeightDenOut5->Sumw2();
+     fWeightDenOut6->Sumw2();
+     fWeightDenOut7->Sumw2();
+     fWeightDenOut8->Sumw2();
+   
+     fWeightRatOut1->Sumw2();
+     fWeightRatOut2->Sumw2();
+     fWeightRatOut3->Sumw2();
+     fWeightRatOut4->Sumw2();
+     fWeightRatOut5->Sumw2();
+     fWeightRatOut6->Sumw2();
+     fWeightRatOut7->Sumw2();
+     fWeightRatOut8->Sumw2();
+   
+
+     fWeightNumSide1->Sumw2();
+     fWeightNumSide2->Sumw2();
+     fWeightNumSide3->Sumw2();
+     fWeightNumSide4->Sumw2();
+     fWeightNumSide5->Sumw2();
+     fWeightNumSide6->Sumw2();
+     fWeightNumSide7->Sumw2();
+     fWeightNumSide8->Sumw2();
+
+     fWeightDenSide1->Sumw2();
+     fWeightDenSide2->Sumw2();
+     fWeightDenSide3->Sumw2();
+     fWeightDenSide4->Sumw2();
+     fWeightDenSide5->Sumw2();
+     fWeightDenSide6->Sumw2();
+     fWeightDenSide7->Sumw2();
+     fWeightDenSide8->Sumw2();
+   
+     fWeightRatSide1->Sumw2();
+     fWeightRatSide2->Sumw2();
+     fWeightRatSide3->Sumw2();
+     fWeightRatSide4->Sumw2();
+     fWeightRatSide5->Sumw2();
+     fWeightRatSide6->Sumw2();
+     fWeightRatSide7->Sumw2();
+     fWeightRatSide8->Sumw2();
+   
+     fWeightNumLong1->Sumw2();
+     fWeightNumLong2->Sumw2();
+     fWeightNumLong3->Sumw2();
+     fWeightNumLong4->Sumw2();
+     fWeightNumLong5->Sumw2();
+     fWeightNumLong6->Sumw2();
+     fWeightNumLong7->Sumw2();
+     fWeightNumLong8->Sumw2();
+
+     fWeightDenLong1->Sumw2();
+     fWeightDenLong2->Sumw2();
+     fWeightDenLong3->Sumw2();
+     fWeightDenLong4->Sumw2();
+     fWeightDenLong5->Sumw2();
+     fWeightDenLong6->Sumw2();
+     fWeightDenLong7->Sumw2();
+     fWeightDenLong8->Sumw2();
+   
+     fWeightRatLong1->Sumw2();
+     fWeightRatLong2->Sumw2();
+     fWeightRatLong3->Sumw2();
+     fWeightRatLong4->Sumw2();
+     fWeightRatLong5->Sumw2();
+     fWeightRatLong6->Sumw2();
+     fWeightRatLong7->Sumw2();
+     fWeightRatLong8->Sumw2();
+
+ }
+
+ TH1* AliHBTWeightashbtCorrFctn::GetResult()
+ {
+     return fWeightRatOut1;
+ }
diff --git a/HBTAN/AliHBTWeightashbtCorrFctn.h b/HBTAN/AliHBTWeightashbtCorrFctn.h
new file mode 100644 (file)
index 0000000..3a86fd9
--- /dev/null
@@ -0,0 +1,133 @@
+#ifndef ALIHBTWEIGHTASHBTCORRFCTN_H
+#define ALIHBTWEIGHTASHBTCORRFCTN_H
+
+///////////////////////////////////////////////////////
+//                                                   //
+// AliHBTashbtCorrFctn.h                           //
+//                                                   //
+// Class for calculating 3D ashbt correlation       //
+// functions                                         //
+//                                                   //
+///////////////////////////////////////////////////////
+
+#include "AliHBTFunction.h"
+
+
+class AliHBTWeightashbtCorrFctn: public AliHBTOnePairFctn1D
+{
+  public:
+   AliHBTWeightashbtCorrFctn(const char* name = "asejdzbitiCF", 
+                         const char* title= "asHBT Correlation Function");
+
+   AliHBTWeightashbtCorrFctn(const char* name, const char* title,
+                        Int_t nbins, Float_t maxXval, Float_t minXval);
+   AliHBTWeightashbtCorrFctn(const AliHBTWeightashbtCorrFctn& in);
+
+   virtual ~AliHBTWeightashbtCorrFctn();
+
+   void Init();
+   void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+   void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+
+   void WriteFunction();
+   
+   TH1*     GetResult();
+   
+ protected:
+
+   Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* partpair) 
+     {
+       return trackpair->GetQInv()-partpair->GetQInv();
+     }
+   
+   void BuildHistos(Int_t nbins, Float_t max, Float_t min);
+   
+   TH1D* fWeightNumOut1;
+   TH1D* fWeightNumOut2;
+   TH1D* fWeightNumOut3;
+   TH1D* fWeightNumOut4;
+   TH1D* fWeightNumOut5;
+   TH1D* fWeightNumOut6;
+   TH1D* fWeightNumOut7;
+   TH1D* fWeightNumOut8;
+
+   TH1D* fWeightDenOut1;
+   TH1D* fWeightDenOut2;
+   TH1D* fWeightDenOut3;
+   TH1D* fWeightDenOut4;
+   TH1D* fWeightDenOut5;
+   TH1D* fWeightDenOut6;
+   TH1D* fWeightDenOut7;
+   TH1D* fWeightDenOut8;
+   
+   TH1D* fWeightRatOut1;
+   TH1D* fWeightRatOut2;
+   TH1D* fWeightRatOut3;
+   TH1D* fWeightRatOut4;
+   TH1D* fWeightRatOut5;
+   TH1D* fWeightRatOut6;
+   TH1D* fWeightRatOut7;
+   TH1D* fWeightRatOut8;
+   
+
+   TH1D* fWeightNumSide1;
+   TH1D* fWeightNumSide2;
+   TH1D* fWeightNumSide3;
+   TH1D* fWeightNumSide4;
+   TH1D* fWeightNumSide5;
+   TH1D* fWeightNumSide6;
+   TH1D* fWeightNumSide7;
+   TH1D* fWeightNumSide8;
+
+   TH1D* fWeightDenSide1;
+   TH1D* fWeightDenSide2;
+   TH1D* fWeightDenSide3;
+   TH1D* fWeightDenSide4;
+   TH1D* fWeightDenSide5;
+   TH1D* fWeightDenSide6;
+   TH1D* fWeightDenSide7;
+   TH1D* fWeightDenSide8;
+   
+   TH1D* fWeightRatSide1;
+   TH1D* fWeightRatSide2;
+   TH1D* fWeightRatSide3;
+   TH1D* fWeightRatSide4;
+   TH1D* fWeightRatSide5;
+   TH1D* fWeightRatSide6;
+   TH1D* fWeightRatSide7;
+   TH1D* fWeightRatSide8;
+   
+   TH1D* fWeightNumLong1;
+   TH1D* fWeightNumLong2;
+   TH1D* fWeightNumLong3;
+   TH1D* fWeightNumLong4;
+   TH1D* fWeightNumLong5;
+   TH1D* fWeightNumLong6;
+   TH1D* fWeightNumLong7;
+   TH1D* fWeightNumLong8;
+
+   TH1D* fWeightDenLong1;
+   TH1D* fWeightDenLong2;
+   TH1D* fWeightDenLong3;
+   TH1D* fWeightDenLong4;
+   TH1D* fWeightDenLong5;
+   TH1D* fWeightDenLong6;
+   TH1D* fWeightDenLong7;
+   TH1D* fWeightDenLong8;
+   
+   TH1D* fWeightRatLong1;
+   TH1D* fWeightRatLong2;
+   TH1D* fWeightRatLong3;
+   TH1D* fWeightRatLong4;
+   TH1D* fWeightRatLong5;
+   TH1D* fWeightRatLong6;
+   TH1D* fWeightRatLong7;
+   TH1D* fWeightRatLong8;
+   
+
+  private:
+  
+    ClassDef(AliHBTWeightashbtCorrFctn,1)
+};
+
+#endif
diff --git a/HBTAN/AliHBTashbtCorrFctn.cxx b/HBTAN/AliHBTashbtCorrFctn.cxx
new file mode 100644 (file)
index 0000000..5c83d9a
--- /dev/null
@@ -0,0 +1,1041 @@
+#include "AliHBTashbtCorrFctn.h"
+#include <TH1.h>
+#include <Riostream.h>
+
+///////////////////////////////////////////////////////
+//                                                   //
+// AliHBTashbtCorrFctn.h                             //
+//                                                   //
+// Class for calculating 3D ashbt correlation        //
+// functions                                         //
+//                                                   //
+///////////////////////////////////////////////////////
+
+ClassImp(AliHBTashbtCorrFctn)
+
+AliHBTashbtCorrFctn::AliHBTashbtCorrFctn(const char* name, const char* title):
+ AliHBTOnePairFctn1D(name,title),
+    fNumOut1(0x0),
+    fNumOut2(0x0),
+    fNumOut3(0x0),
+    fNumOut4(0x0),
+    fNumOut5(0x0),
+    fNumOut6(0x0),
+    fNumOut7(0x0),
+    fNumOut8(0x0),
+
+    fDenOut1(0x0),
+    fDenOut2(0x0),
+    fDenOut3(0x0),
+    fDenOut4(0x0),
+    fDenOut5(0x0),
+    fDenOut6(0x0),
+    fDenOut7(0x0),
+    fDenOut8(0x0),
+   
+    fRatOut1(0x0),
+    fRatOut2(0x0),
+    fRatOut3(0x0),
+    fRatOut4(0x0),
+    fRatOut5(0x0),
+    fRatOut6(0x0),
+    fRatOut7(0x0),
+    fRatOut8(0x0),
+   
+
+    fNumSide1(0x0),
+    fNumSide2(0x0),
+    fNumSide3(0x0),
+    fNumSide4(0x0),
+    fNumSide5(0x0),
+    fNumSide6(0x0),
+    fNumSide7(0x0),
+    fNumSide8(0x0),
+
+    fDenSide1(0x0),
+    fDenSide2(0x0),
+    fDenSide3(0x0),
+    fDenSide4(0x0),
+    fDenSide5(0x0),
+    fDenSide6(0x0),
+    fDenSide7(0x0),
+    fDenSide8(0x0),
+   
+    fRatSide1(0x0),
+    fRatSide2(0x0),
+    fRatSide3(0x0),
+    fRatSide4(0x0),
+    fRatSide5(0x0),
+    fRatSide6(0x0),
+    fRatSide7(0x0),
+    fRatSide8(0x0),
+   
+    fNumLong1(0x0),
+    fNumLong2(0x0),
+    fNumLong3(0x0),
+    fNumLong4(0x0),
+    fNumLong5(0x0),
+    fNumLong6(0x0),
+    fNumLong7(0x0),
+    fNumLong8(0x0),
+
+    fDenLong1(0x0),
+    fDenLong2(0x0),
+    fDenLong3(0x0),
+    fDenLong4(0x0),
+    fDenLong5(0x0),
+    fDenLong6(0x0),
+    fDenLong7(0x0),
+    fDenLong8(0x0),
+   
+    fRatLong1(0x0),
+    fRatLong2(0x0),
+    fRatLong3(0x0),
+    fRatLong4(0x0),
+    fRatLong5(0x0),
+    fRatLong6(0x0),
+    fRatLong7(0x0),
+    fRatLong8(0x0)
+
+
+{
+//ctor
+}
+/******************************************************************/
+AliHBTashbtCorrFctn::AliHBTashbtCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval):
+ AliHBTOnePairFctn1D(name,title,nbins,maxXval,minXval),
+
+    fNumOut1(0x0),
+    fNumOut2(0x0),
+    fNumOut3(0x0),
+    fNumOut4(0x0),
+    fNumOut5(0x0),
+    fNumOut6(0x0),
+    fNumOut7(0x0),
+    fNumOut8(0x0),
+
+    fDenOut1(0x0),
+    fDenOut2(0x0),
+    fDenOut3(0x0),
+    fDenOut4(0x0),
+    fDenOut5(0x0),
+    fDenOut6(0x0),
+    fDenOut7(0x0),
+    fDenOut8(0x0),
+   
+    fRatOut1(0x0),
+    fRatOut2(0x0),
+    fRatOut3(0x0),
+    fRatOut4(0x0),
+    fRatOut5(0x0),
+    fRatOut6(0x0),
+    fRatOut7(0x0),
+    fRatOut8(0x0),
+   
+
+    fNumSide1(0x0),
+    fNumSide2(0x0),
+    fNumSide3(0x0),
+    fNumSide4(0x0),
+    fNumSide5(0x0),
+    fNumSide6(0x0),
+    fNumSide7(0x0),
+    fNumSide8(0x0),
+
+    fDenSide1(0x0),
+    fDenSide2(0x0),
+    fDenSide3(0x0),
+    fDenSide4(0x0),
+    fDenSide5(0x0),
+    fDenSide6(0x0),
+    fDenSide7(0x0),
+    fDenSide8(0x0),
+   
+    fRatSide1(0x0),
+    fRatSide2(0x0),
+    fRatSide3(0x0),
+    fRatSide4(0x0),
+    fRatSide5(0x0),
+    fRatSide6(0x0),
+    fRatSide7(0x0),
+    fRatSide8(0x0),
+   
+    fNumLong1(0x0),
+    fNumLong2(0x0),
+    fNumLong3(0x0),
+    fNumLong4(0x0),
+    fNumLong5(0x0),
+    fNumLong6(0x0),
+    fNumLong7(0x0),
+    fNumLong8(0x0),
+
+    fDenLong1(0x0),
+    fDenLong2(0x0),
+    fDenLong3(0x0),
+    fDenLong4(0x0),
+    fDenLong5(0x0),
+    fDenLong6(0x0),
+    fDenLong7(0x0),
+    fDenLong8(0x0),
+   
+    fRatLong1(0x0),
+    fRatLong2(0x0),
+    fRatLong3(0x0),
+    fRatLong4(0x0),
+    fRatLong5(0x0),
+    fRatLong6(0x0),
+    fRatLong7(0x0),
+    fRatLong8(0x0)
+
+
+{
+BuildHistos(nbins, maxXval, minXval);
+//ctor
+}
+
+/******************************************************************/
+AliHBTashbtCorrFctn::AliHBTashbtCorrFctn(const AliHBTashbtCorrFctn& in):
+ AliHBTOnePairFctn1D(in),
+    fNumOut1(0x0),
+    fNumOut2(0x0),
+    fNumOut3(0x0),
+    fNumOut4(0x0),
+    fNumOut5(0x0),
+    fNumOut6(0x0),
+    fNumOut7(0x0),
+    fNumOut8(0x0),
+
+    fDenOut1(0x0),
+    fDenOut2(0x0),
+    fDenOut3(0x0),
+    fDenOut4(0x0),
+    fDenOut5(0x0),
+    fDenOut6(0x0),
+    fDenOut7(0x0),
+    fDenOut8(0x0),
+   
+    fRatOut1(0x0),
+    fRatOut2(0x0),
+    fRatOut3(0x0),
+    fRatOut4(0x0),
+    fRatOut5(0x0),
+    fRatOut6(0x0),
+    fRatOut7(0x0),
+    fRatOut8(0x0),
+   
+
+    fNumSide1(0x0),
+    fNumSide2(0x0),
+    fNumSide3(0x0),
+    fNumSide4(0x0),
+    fNumSide5(0x0),
+    fNumSide6(0x0),
+    fNumSide7(0x0),
+    fNumSide8(0x0),
+
+    fDenSide1(0x0),
+    fDenSide2(0x0),
+    fDenSide3(0x0),
+    fDenSide4(0x0),
+    fDenSide5(0x0),
+    fDenSide6(0x0),
+    fDenSide7(0x0),
+    fDenSide8(0x0),
+   
+    fRatSide1(0x0),
+    fRatSide2(0x0),
+    fRatSide3(0x0),
+    fRatSide4(0x0),
+    fRatSide5(0x0),
+    fRatSide6(0x0),
+    fRatSide7(0x0),
+    fRatSide8(0x0),
+   
+    fNumLong1(0x0),
+    fNumLong2(0x0),
+    fNumLong3(0x0),
+    fNumLong4(0x0),
+    fNumLong5(0x0),
+    fNumLong6(0x0),
+    fNumLong7(0x0),
+    fNumLong8(0x0),
+
+    fDenLong1(0x0),
+    fDenLong2(0x0),
+    fDenLong3(0x0),
+    fDenLong4(0x0),
+    fDenLong5(0x0),
+    fDenLong6(0x0),
+    fDenLong7(0x0),
+    fDenLong8(0x0),
+   
+    fRatLong1(0x0),
+    fRatLong2(0x0),
+    fRatLong3(0x0),
+    fRatLong4(0x0),
+    fRatLong5(0x0),
+    fRatLong6(0x0),
+    fRatLong7(0x0),
+    fRatLong8(0x0)
+  
+
+ {
+//ctor
+}
+
+/******************************************************************/
+
+AliHBTashbtCorrFctn::~AliHBTashbtCorrFctn()
+{
+ //dtor
+    delete fNumOut1;
+    delete fNumOut2;
+    delete fNumOut3;
+    delete fNumOut4;
+    delete fNumOut5;
+    delete fNumOut6;
+    delete fNumOut7;
+    delete fNumOut8;
+
+    delete fDenOut1;
+    delete fDenOut2;
+    delete fDenOut3;
+    delete fDenOut4;
+    delete fDenOut5;
+    delete fDenOut6;
+    delete fDenOut7;
+    delete fDenOut8;
+   
+    delete fRatOut1;
+    delete fRatOut2;
+    delete fRatOut3;
+    delete fRatOut4;
+    delete fRatOut5;
+    delete fRatOut6;
+    delete fRatOut7;
+    delete fRatOut8;
+   
+
+    delete fNumSide1;
+    delete fNumSide2;
+    delete fNumSide3;
+    delete fNumSide4;
+    delete fNumSide5;
+    delete fNumSide6;
+    delete fNumSide7;
+    delete fNumSide8;
+
+    delete fDenSide1;
+    delete fDenSide2;
+    delete fDenSide3;
+    delete fDenSide4;
+    delete fDenSide5;
+    delete fDenSide6;
+    delete fDenSide7;
+    delete fDenSide8;
+   
+    delete fRatSide1;
+    delete fRatSide2;
+    delete fRatSide3;
+    delete fRatSide4;
+    delete fRatSide5;
+    delete fRatSide6;
+    delete fRatSide7;
+    delete fRatSide8;
+   
+    delete fNumLong1;
+    delete fNumLong2;
+    delete fNumLong3;
+    delete fNumLong4;
+    delete fNumLong5;
+    delete fNumLong6;
+    delete fNumLong7;
+    delete fNumLong8;
+
+    delete fDenLong1;
+    delete fDenLong2;
+    delete fDenLong3;
+    delete fDenLong4;
+    delete fDenLong5;
+    delete fDenLong6;
+    delete fDenLong7;
+    delete fDenLong8;
+   
+    delete fRatLong1;
+    delete fRatLong2;
+    delete fRatLong3;
+    delete fRatLong4;
+    delete fRatLong5;
+    delete fRatLong6;
+    delete fRatLong7;
+    delete fRatLong8; 
+
+}
+
+/******************************************************************/
+void AliHBTashbtCorrFctn::WriteFunction()
+{
+//out    
+   Double_t out1scale = Scale(fNumOut1,fDenOut1);
+   cout <<"out1scale = "<<out1scale<<endl;
+   fRatOut1->Divide(fNumOut1,fDenOut1,out1scale);
+   
+   Double_t out2scale = Scale(fNumOut2,fDenOut2);
+   cout <<"out2scale = "<<out2scale<<endl;
+   fRatOut2->Divide(fNumOut2,fDenOut2,out2scale);
+   
+   Double_t out3scale = Scale(fNumOut3,fDenOut3);
+   cout <<"out3scale = "<<out3scale<<endl;
+   fRatOut3->Divide(fNumOut3,fDenOut3,out3scale);
+   
+   Double_t out4scale = Scale(fNumOut4,fDenOut4);
+   cout <<"out4scale = "<<out4scale<<endl;
+   fRatOut4->Divide(fNumOut4,fDenOut4,out4scale);
+   
+   Double_t out5scale = Scale(fNumOut5,fDenOut5);
+   cout <<"out5scale = "<<out5scale<<endl;
+   fRatOut5->Divide(fNumOut5,fDenOut5,out5scale);
+   
+   Double_t out6scale = Scale(fNumOut6,fDenOut6);
+   cout <<"out6scale = "<<out6scale<<endl;
+   fRatOut6->Divide(fNumOut6,fDenOut6,out6scale);
+   
+   Double_t out7scale = Scale(fNumOut7,fDenOut7);
+   cout <<"out7scale = "<<out7scale<<endl;
+   fRatOut7->Divide(fNumOut7,fDenOut7,out7scale);
+   
+   Double_t out8scale = Scale(fNumOut8,fDenOut8);
+   cout <<"out8scale = "<<out8scale<<endl;
+   fRatOut8->Divide(fNumOut8,fDenOut8,out8scale);
+
+   //side
+   Double_t side1scale = Scale(fNumSide1,fDenSide1);
+   cout <<"side1scale = "<<side1scale<<endl;
+   fRatSide1->Divide(fNumSide1,fDenSide1,side1scale);
+   
+   Double_t side2scale = Scale(fNumSide2,fDenSide2);
+   cout <<"side2scale = "<<side2scale<<endl;
+   fRatSide2->Divide(fNumSide2,fDenSide2,side2scale);
+   
+   Double_t side3scale = Scale(fNumSide3,fDenSide3);
+   cout <<"side3scale = "<<side3scale<<endl;
+   fRatSide3->Divide(fNumSide3,fDenSide3,side3scale);
+   
+   Double_t side4scale = Scale(fNumSide4,fDenSide4);
+   cout <<"side4scale = "<<side4scale<<endl;
+   fRatSide4->Divide(fNumSide4,fDenSide4,side4scale);
+   
+   Double_t side5scale = Scale(fNumSide5,fDenSide5);
+   cout <<"side5scale = "<<side5scale<<endl;
+   fRatSide5->Divide(fNumSide5,fDenSide5,side5scale);
+   
+   Double_t side6scale = Scale(fNumSide6,fDenSide6);
+   cout <<"side6scale = "<<side6scale<<endl;
+   fRatSide6->Divide(fNumSide6,fDenSide6,side6scale);
+   
+   Double_t side7scale = Scale(fNumSide7,fDenSide7);
+   cout <<"side7scale = "<<side7scale<<endl;
+   fRatSide7->Divide(fNumSide7,fDenSide7,side7scale);
+   
+   Double_t side8scale = Scale(fNumSide8,fDenSide8);
+   cout <<"side8scale = "<<side8scale<<endl;
+   fRatSide8->Divide(fNumSide8,fDenSide8,side8scale);
+   
+//long
+   Double_t long1scale = Scale(fNumLong1,fDenLong1);
+   cout <<"long1scale = "<<long1scale<<endl;
+   fRatLong1->Divide(fNumLong1,fDenLong1,long1scale);
+   
+   Double_t long2scale = Scale(fNumLong2,fDenLong2);
+   cout <<"long2scale = "<<long2scale<<endl;
+   fRatLong2->Divide(fNumLong2,fDenLong2,long2scale);
+   
+   Double_t long3scale = Scale(fNumLong3,fDenLong3);
+   cout <<"long3scale = "<<long3scale<<endl;
+   fRatLong3->Divide(fNumLong3,fDenLong3,long3scale);
+   
+   Double_t long4scale = Scale(fNumLong4,fDenLong4);
+   cout <<"long4scale = "<<long4scale<<endl;
+   fRatLong4->Divide(fNumLong4,fDenLong4,long4scale);
+   
+   Double_t long5scale = Scale(fNumLong5,fDenLong5);
+   cout <<"long5scale = "<<long5scale<<endl;
+   fRatLong5->Divide(fNumLong5,fDenLong5,long5scale);
+   
+   Double_t long6scale = Scale(fNumLong6,fDenLong6);
+   cout <<"long6scale = "<<long6scale<<endl;
+   fRatLong6->Divide(fNumLong6,fDenLong6,long6scale);
+   
+   Double_t long7scale = Scale(fNumLong7,fDenLong7);
+   cout <<"long7scale = "<<long7scale<<endl;
+   fRatLong7->Divide(fNumLong7,fDenLong7,long7scale);
+   
+   Double_t long8scale = Scale(fNumLong8,fDenLong8);
+   cout <<"long8scale = "<<long8scale<<endl;
+   fRatLong8->Divide(fNumLong8,fDenLong8,long8scale);
+
+        fNumOut1->Write();
+     fNumOut2->Write();
+     fNumOut3->Write();
+     fNumOut4->Write();
+     fNumOut5->Write();
+     fNumOut6->Write();
+     fNumOut7->Write();
+     fNumOut8->Write();
+
+     fDenOut1->Write();
+     fDenOut2->Write();
+     fDenOut3->Write();
+     fDenOut4->Write();
+     fDenOut5->Write();
+     fDenOut6->Write();
+     fDenOut7->Write();
+     fDenOut8->Write();
+   
+     fRatOut1->Write();
+     fRatOut2->Write();
+     fRatOut3->Write();
+     fRatOut4->Write();
+     fRatOut5->Write();
+     fRatOut6->Write();
+     fRatOut7->Write();
+     fRatOut8->Write();
+   
+
+     fNumSide1->Write();
+     fNumSide2->Write();
+     fNumSide3->Write();
+     fNumSide4->Write();
+     fNumSide5->Write();
+     fNumSide6->Write();
+     fNumSide7->Write();
+     fNumSide8->Write();
+
+     fDenSide1->Write();
+     fDenSide2->Write();
+     fDenSide3->Write();
+     fDenSide4->Write();
+     fDenSide5->Write();
+     fDenSide6->Write();
+     fDenSide7->Write();
+     fDenSide8->Write();
+   
+     fRatSide1->Write();
+     fRatSide2->Write();
+     fRatSide3->Write();
+     fRatSide4->Write();
+     fRatSide5->Write();
+     fRatSide6->Write();
+     fRatSide7->Write();
+     fRatSide8->Write();
+   
+     fNumLong1->Write();
+     fNumLong2->Write();
+     fNumLong3->Write();
+     fNumLong4->Write();
+     fNumLong5->Write();
+     fNumLong6->Write();
+     fNumLong7->Write();
+     fNumLong8->Write();
+
+     fDenLong1->Write();
+     fDenLong2->Write();
+     fDenLong3->Write();
+     fDenLong4->Write();
+     fDenLong5->Write();
+     fDenLong6->Write();
+     fDenLong7->Write();
+     fDenLong8->Write();
+   
+     fRatLong1->Write();
+     fRatLong2->Write();
+     fRatLong3->Write();
+     fRatLong4->Write();
+     fRatLong5->Write();
+     fRatLong6->Write();
+     fRatLong7->Write();
+     fRatLong8->Write(); 
+
+}
+
+//-------------------------------------
+void AliHBTashbtCorrFctn::ProcessSameEventParticles(AliHBTPair* pair)
+{
+    //Fills the numerator using pair from the same event
+    pair = CheckPair(pair);
+    if(pair == 0x0) return;
+   Double_t rplane=0.;   //reaction plane angle - 2 B determined
+   Double_t phi=(pair->Particle1()->Phi()+pair->Particle2()->Phi())/2.-rplane; //deltaphi bo nie mam nic innego pod reka
+   phi=phi*360/(2*TMath::Pi());
+   Double_t qout=pair->GetQOutLCMS();
+   Double_t qside=pair->GetQSideLCMS();
+   Double_t qlong=pair->GetQLongLCMS();
+   
+   if((phi>=0.) && (phi <45.))
+     {
+       fNumOut1->Fill(qout);
+       fNumSide1->Fill(qside);
+       fNumLong1->Fill(qlong);
+     }
+   else if((phi>=45.) && (phi <90.))
+     {
+       fNumOut2->Fill(qout);
+       fNumSide2->Fill(qside);
+       fNumLong2->Fill(qlong);
+     }
+   else if((phi>=90.) && (phi <135.))
+     {
+       fNumOut3->Fill(qout);
+       fNumSide3->Fill(qside);
+       fNumLong3->Fill(qlong);
+     }
+   else if((phi>=135.) && (phi <180.))
+     {
+       fNumOut4->Fill(qout);
+       fNumSide4->Fill(qside);
+       fNumLong4->Fill(qlong);
+     }
+   else if((phi>=180.) && (phi <225.))
+     {
+       fNumOut5->Fill(qout);
+       fNumSide5->Fill(qside);
+       fNumLong5->Fill(qlong);
+     }
+   else if((phi>=225.) && (phi <270.))
+     {
+       fNumOut6->Fill(qout);
+       fNumSide6->Fill(qside);
+       fNumLong6->Fill(qlong);
+     }
+   else if((phi>=270.) && (phi <315.))
+     {
+       fNumOut7->Fill(qout);
+       fNumSide7->Fill(qside);
+       fNumLong7->Fill(qlong);
+     }
+   else if((phi>=315.) && (phi <360.))
+     {
+       fNumOut8->Fill(qout);
+       fNumSide8->Fill(qside);
+       fNumLong8->Fill(qlong);
+     }
+
+   
+}
+
+/****************************************************************/
+void AliHBTashbtCorrFctn::Init()
+{
+     fNumOut1->Reset();
+     fNumOut2->Reset();
+     fNumOut3->Reset();
+     fNumOut4->Reset();
+     fNumOut5->Reset();
+     fNumOut6->Reset();
+     fNumOut7->Reset();
+     fNumOut8->Reset();
+
+     fDenOut1->Reset();
+     fDenOut2->Reset();
+     fDenOut3->Reset();
+     fDenOut4->Reset();
+     fDenOut5->Reset();
+     fDenOut6->Reset();
+     fDenOut7->Reset();
+     fDenOut8->Reset();
+   
+     fRatOut1->Reset();
+     fRatOut2->Reset();
+     fRatOut3->Reset();
+     fRatOut4->Reset();
+     fRatOut5->Reset();
+     fRatOut6->Reset();
+     fRatOut7->Reset();
+     fRatOut8->Reset();
+   
+
+     fNumSide1->Reset();
+     fNumSide2->Reset();
+     fNumSide3->Reset();
+     fNumSide4->Reset();
+     fNumSide5->Reset();
+     fNumSide6->Reset();
+     fNumSide7->Reset();
+     fNumSide8->Reset();
+
+     fDenSide1->Reset();
+     fDenSide2->Reset();
+     fDenSide3->Reset();
+     fDenSide4->Reset();
+     fDenSide5->Reset();
+     fDenSide6->Reset();
+     fDenSide7->Reset();
+     fDenSide8->Reset();
+   
+     fRatSide1->Reset();
+     fRatSide2->Reset();
+     fRatSide3->Reset();
+     fRatSide4->Reset();
+     fRatSide5->Reset();
+     fRatSide6->Reset();
+     fRatSide7->Reset();
+     fRatSide8->Reset();
+   
+     fNumLong1->Reset();
+     fNumLong2->Reset();
+     fNumLong3->Reset();
+     fNumLong4->Reset();
+     fNumLong5->Reset();
+     fNumLong6->Reset();
+     fNumLong7->Reset();
+     fNumLong8->Reset();
+
+     fDenLong1->Reset();
+     fDenLong2->Reset();
+     fDenLong3->Reset();
+     fDenLong4->Reset();
+     fDenLong5->Reset();
+     fDenLong6->Reset();
+     fDenLong7->Reset();
+     fDenLong8->Reset();
+   
+     fRatLong1->Reset();
+     fRatLong2->Reset();
+     fRatLong3->Reset();
+     fRatLong4->Reset();
+     fRatLong5->Reset();
+     fRatLong6->Reset();
+     fRatLong7->Reset();
+     fRatLong8->Reset(); 
+   
+
+ }
+/****************************************************************/
+
+
+void AliHBTashbtCorrFctn::ProcessDiffEventParticles(AliHBTPair* pair)
+{
+
+      Double_t rplane=0.;   //reaction plane angle - 2 B determined
+   Double_t phi=(pair->Particle1()->Phi()+pair->Particle2()->Phi())/2.-rplane; //deltaphi bo nie mam nic innego pod reka
+   phi=phi*360/(2*TMath::Pi());
+   Double_t qout=pair->GetQOutLCMS();
+   Double_t qside=pair->GetQSideLCMS();
+   Double_t qlong=pair->GetQLongLCMS();
+   
+   if((phi>=0.) && (phi <45.))
+     {
+       fDenOut1->Fill(qout);
+       fDenSide1->Fill(qside);
+       fDenLong1->Fill(qlong);
+     }
+   else if((phi>=45.) && (phi <90.))
+     {
+       fDenOut2->Fill(qout);
+       fDenSide2->Fill(qside);
+       fDenLong2->Fill(qlong);
+     }
+   else if((phi>=90.) && (phi <135.))
+     {
+       fDenOut3->Fill(qout);
+       fDenSide3->Fill(qside);
+       fDenLong3->Fill(qlong);
+     }
+   else if((phi>=135.) && (phi <180.))
+     {
+       fDenOut4->Fill(qout);
+       fDenSide4->Fill(qside);
+       fDenLong4->Fill(qlong);
+     }
+   else if((phi>=180.) && (phi <225.))
+     {
+       fDenOut5->Fill(qout);
+       fDenSide5->Fill(qside);
+       fDenLong5->Fill(qlong);
+     }
+   else if((phi>=225.) && (phi <270.))
+     {
+       fDenOut6->Fill(qout);
+       fDenSide6->Fill(qside);
+       fDenLong6->Fill(qlong);
+     }
+   else if((phi>=270.) && (phi <315.))
+     {
+       fDenOut7->Fill(qout);
+       fDenSide7->Fill(qside);
+       fDenLong7->Fill(qlong);
+     }
+   else if((phi>=315.) && (phi <360.))
+     {
+       fDenOut8->Fill(qout);
+       fDenSide8->Fill(qside);
+       fDenLong8->Fill(qlong);
+     }
+
+}
+
+
+/******************************************************************/
+
+void AliHBTashbtCorrFctn::BuildHistos(Int_t nbins, Float_t max, Float_t min)
+{
+    
+   
+   TString nameNumOut1 = "NumOut0-45deg";
+   TString nameNumOut2 = "NumOut45-90deg";
+   TString nameNumOut3 = "NumOut90-135deg";
+   TString nameNumOut4 = "NumOut135-180deg";
+   TString nameNumOut5 = "NumOut180-225deg";
+   TString nameNumOut6 = "NumOut225-270deg";
+   TString nameNumOut7 = "NumOut270-315deg";
+   TString nameNumOut8 = "NumOut315-360deg";
+   
+   
+   TString nameDenOut1 = "DenOut0-45deg";
+   TString nameDenOut2 = "DenOut45-90deg";
+   TString nameDenOut3 = "DenOut90-135deg";
+   TString nameDenOut4 = "DenOut135-180deg";
+   TString nameDenOut5 = "DenOut180-225deg";
+   TString nameDenOut6 = "DenOut225-270deg";
+   TString nameDenOut7 = "DenOut270-315deg";
+   TString nameDenOut8 = "DenOut315-360deg";
+   
+   
+   TString nameRatOut1 = "RatOut0-45deg";
+   TString nameRatOut2 = "RatOut45-90deg";
+   TString nameRatOut3 = "RatOut90-135deg";
+   TString nameRatOut4 = "RatOut135-180deg";
+   TString nameRatOut5 = "RatOut180-225deg";
+   TString nameRatOut6 = "RatOut225-270deg";
+   TString nameRatOut7 = "RatOut270-315deg";
+   TString nameRatOut8 = "RatOut315-360deg";
+   
+   TString nameNumSide1 = "NumSide0-45deg";
+   TString nameNumSide2 = "NumSide45-90deg";
+   TString nameNumSide3 = "NumSide90-135deg";
+   TString nameNumSide4 = "NumSide135-180deg";
+   TString nameNumSide5 = "NumSide180-225deg";
+   TString nameNumSide6 = "NumSide225-270deg";
+   TString nameNumSide7 = "NumSide270-315deg";
+   TString nameNumSide8 = "NumSide315-360deg";
+   
+   
+   TString nameDenSide1 = "DenSide0-45deg";
+   TString nameDenSide2 = "DenSide45-90deg";
+   TString nameDenSide3 = "DenSide90-135deg";
+   TString nameDenSide4 = "DenSide135-180deg";
+   TString nameDenSide5 = "DenSide180-225deg";
+   TString nameDenSide6 = "DenSide225-270deg";
+   TString nameDenSide7 = "DenSide270-315deg";
+   TString nameDenSide8 = "DenSide315-360deg";
+   
+   
+   TString nameRatSide1 = "RatSide0-45deg";
+   TString nameRatSide2 = "RatSide45-90deg";
+   TString nameRatSide3 = "RatSide90-135deg";
+   TString nameRatSide4 = "RatSide135-180deg";
+   TString nameRatSide5 = "RatSide180-225deg";
+   TString nameRatSide6 = "RatSide225-270deg";
+   TString nameRatSide7 = "RatSide270-315deg";
+   TString nameRatSide8 = "RatSide315-360deg";
+   
+   TString nameNumLong1 = "NumLong0-45deg";
+   TString nameNumLong2 = "NumLong45-90deg";
+   TString nameNumLong3 = "NumLong90-135deg";
+   TString nameNumLong4 = "NumLong135-180deg";
+   TString nameNumLong5 = "NumLong180-225deg";
+   TString nameNumLong6 = "NumLong225-270deg";
+   TString nameNumLong7 = "NumLong270-315deg";
+   TString nameNumLong8 = "NumLong315-360deg";
+   
+   
+   TString nameDenLong1 = "DenLong0-45deg";
+   TString nameDenLong2 = "DenLong45-90deg";
+   TString nameDenLong3 = "DenLong90-135deg";
+   TString nameDenLong4 = "DenLong135-180deg";
+   TString nameDenLong5 = "DenLong180-225deg";
+   TString nameDenLong6 = "DenLong225-270deg";
+   TString nameDenLong7 = "DenLong270-315deg";
+   TString nameDenLong8 = "DenLong315-360deg";
+   
+   
+   TString nameRatLong1 = "RatLong0-45deg";
+   TString nameRatLong2 = "RatLong45-90deg";
+   TString nameRatLong3 = "RatLong90-135deg";
+   TString nameRatLong4 = "RatLong135-180deg";
+   TString nameRatLong5 = "RatLong180-225deg";
+   TString nameRatLong6 = "RatLong225-270deg";
+   TString nameRatLong7 = "RatLong270-315deg";
+   TString nameRatLong8 = "RatLong315-360deg";
+
+   fNumOut1 = new TH1D(nameNumOut1.Data(),nameNumOut1.Data(),nbins,min,max);
+   fNumOut2 = new TH1D(nameNumOut2.Data(),nameNumOut2.Data(),nbins,min,max);
+   fNumOut3 = new TH1D(nameNumOut3.Data(),nameNumOut3.Data(),nbins,min,max);
+   fNumOut4 = new TH1D(nameNumOut4.Data(),nameNumOut4.Data(),nbins,min,max);
+   fNumOut5 = new TH1D(nameNumOut5.Data(),nameNumOut5.Data(),nbins,min,max);
+   fNumOut6 = new TH1D(nameNumOut6.Data(),nameNumOut6.Data(),nbins,min,max);
+   fNumOut7 = new TH1D(nameNumOut7.Data(),nameNumOut7.Data(),nbins,min,max);
+   fNumOut8 = new TH1D(nameNumOut8.Data(),nameNumOut8.Data(),nbins,min,max);
+   
+   fDenOut1 = new TH1D(nameDenOut1.Data(),nameDenOut1.Data(),nbins,min,max);
+   fDenOut2 = new TH1D(nameDenOut2.Data(),nameDenOut2.Data(),nbins,min,max);
+   fDenOut3 = new TH1D(nameDenOut3.Data(),nameDenOut3.Data(),nbins,min,max);
+   fDenOut4 = new TH1D(nameDenOut4.Data(),nameDenOut4.Data(),nbins,min,max);
+   fDenOut5 = new TH1D(nameDenOut5.Data(),nameDenOut5.Data(),nbins,min,max);
+   fDenOut6 = new TH1D(nameDenOut6.Data(),nameDenOut6.Data(),nbins,min,max);
+   fDenOut7 = new TH1D(nameDenOut7.Data(),nameDenOut7.Data(),nbins,min,max);
+   fDenOut8 = new TH1D(nameDenOut8.Data(),nameDenOut8.Data(),nbins,min,max);
+   
+   fRatOut1 = new TH1D(nameRatOut1.Data(),nameRatOut1.Data(),nbins,min,max);
+   fRatOut2 = new TH1D(nameRatOut2.Data(),nameRatOut2.Data(),nbins,min,max);
+   fRatOut3 = new TH1D(nameRatOut3.Data(),nameRatOut3.Data(),nbins,min,max);
+   fRatOut4 = new TH1D(nameRatOut4.Data(),nameRatOut4.Data(),nbins,min,max);
+   fRatOut5 = new TH1D(nameRatOut5.Data(),nameRatOut5.Data(),nbins,min,max);
+   fRatOut6 = new TH1D(nameRatOut6.Data(),nameRatOut6.Data(),nbins,min,max);
+   fRatOut7 = new TH1D(nameRatOut7.Data(),nameRatOut7.Data(),nbins,min,max);
+   fRatOut8 = new TH1D(nameRatOut8.Data(),nameRatOut8.Data(),nbins,min,max);
+   
+   fNumSide1 = new TH1D(nameNumSide1.Data(),nameNumSide1.Data(),nbins,min,max);
+   fNumSide2 = new TH1D(nameNumSide2.Data(),nameNumSide2.Data(),nbins,min,max);
+   fNumSide3 = new TH1D(nameNumSide3.Data(),nameNumSide3.Data(),nbins,min,max);
+   fNumSide4 = new TH1D(nameNumSide4.Data(),nameNumSide4.Data(),nbins,min,max);
+   fNumSide5 = new TH1D(nameNumSide5.Data(),nameNumSide5.Data(),nbins,min,max);
+   fNumSide6 = new TH1D(nameNumSide6.Data(),nameNumSide6.Data(),nbins,min,max);
+   fNumSide7 = new TH1D(nameNumSide7.Data(),nameNumSide7.Data(),nbins,min,max);
+   fNumSide8 = new TH1D(nameNumSide8.Data(),nameNumSide8.Data(),nbins,min,max);
+   
+   fDenSide1 = new TH1D(nameDenSide1.Data(),nameDenSide1.Data(),nbins,min,max);
+   fDenSide2 = new TH1D(nameDenSide2.Data(),nameDenSide2.Data(),nbins,min,max);
+   fDenSide3 = new TH1D(nameDenSide3.Data(),nameDenSide3.Data(),nbins,min,max);
+   fDenSide4 = new TH1D(nameDenSide4.Data(),nameDenSide4.Data(),nbins,min,max);
+   fDenSide5 = new TH1D(nameDenSide5.Data(),nameDenSide5.Data(),nbins,min,max);
+   fDenSide6 = new TH1D(nameDenSide6.Data(),nameDenSide6.Data(),nbins,min,max);
+   fDenSide7 = new TH1D(nameDenSide7.Data(),nameDenSide7.Data(),nbins,min,max);
+   fDenSide8 = new TH1D(nameDenSide8.Data(),nameDenSide8.Data(),nbins,min,max);
+   
+   fRatSide1 = new TH1D(nameRatSide1.Data(),nameRatSide1.Data(),nbins,min,max);
+   fRatSide2 = new TH1D(nameRatSide2.Data(),nameRatSide2.Data(),nbins,min,max);
+   fRatSide3 = new TH1D(nameRatSide3.Data(),nameRatSide3.Data(),nbins,min,max);
+   fRatSide4 = new TH1D(nameRatSide4.Data(),nameRatSide4.Data(),nbins,min,max);
+   fRatSide5 = new TH1D(nameRatSide5.Data(),nameRatSide5.Data(),nbins,min,max);
+   fRatSide6 = new TH1D(nameRatSide6.Data(),nameRatSide6.Data(),nbins,min,max);
+   fRatSide7 = new TH1D(nameRatSide7.Data(),nameRatSide7.Data(),nbins,min,max);
+   fRatSide8 = new TH1D(nameRatSide8.Data(),nameRatSide8.Data(),nbins,min,max);
+   
+   fNumLong1 = new TH1D(nameNumLong1.Data(),nameNumLong1.Data(),nbins,min,max);
+   fNumLong2 = new TH1D(nameNumLong2.Data(),nameNumLong2.Data(),nbins,min,max);
+   fNumLong3 = new TH1D(nameNumLong3.Data(),nameNumLong3.Data(),nbins,min,max);
+   fNumLong4 = new TH1D(nameNumLong4.Data(),nameNumLong4.Data(),nbins,min,max);
+   fNumLong5 = new TH1D(nameNumLong5.Data(),nameNumLong5.Data(),nbins,min,max);
+   fNumLong6 = new TH1D(nameNumLong6.Data(),nameNumLong6.Data(),nbins,min,max);
+   fNumLong7 = new TH1D(nameNumLong7.Data(),nameNumLong7.Data(),nbins,min,max);
+   fNumLong8 = new TH1D(nameNumLong8.Data(),nameNumLong8.Data(),nbins,min,max);
+   
+   fDenLong1 = new TH1D(nameDenLong1.Data(),nameDenLong1.Data(),nbins,min,max);
+   fDenLong2 = new TH1D(nameDenLong2.Data(),nameDenLong2.Data(),nbins,min,max);
+   fDenLong3 = new TH1D(nameDenLong3.Data(),nameDenLong3.Data(),nbins,min,max);
+   fDenLong4 = new TH1D(nameDenLong4.Data(),nameDenLong4.Data(),nbins,min,max);
+   fDenLong5 = new TH1D(nameDenLong5.Data(),nameDenLong5.Data(),nbins,min,max);
+   fDenLong6 = new TH1D(nameDenLong6.Data(),nameDenLong6.Data(),nbins,min,max);
+   fDenLong7 = new TH1D(nameDenLong7.Data(),nameDenLong7.Data(),nbins,min,max);
+   fDenLong8 = new TH1D(nameDenLong8.Data(),nameDenLong8.Data(),nbins,min,max);
+   
+   fRatLong1 = new TH1D(nameRatLong1.Data(),nameRatLong1.Data(),nbins,min,max);
+   fRatLong2 = new TH1D(nameRatLong2.Data(),nameRatLong2.Data(),nbins,min,max);
+   fRatLong3 = new TH1D(nameRatLong3.Data(),nameRatLong3.Data(),nbins,min,max);
+   fRatLong4 = new TH1D(nameRatLong4.Data(),nameRatLong4.Data(),nbins,min,max);
+   fRatLong5 = new TH1D(nameRatLong5.Data(),nameRatLong5.Data(),nbins,min,max);
+   fRatLong6 = new TH1D(nameRatLong6.Data(),nameRatLong6.Data(),nbins,min,max);
+   fRatLong7 = new TH1D(nameRatLong7.Data(),nameRatLong7.Data(),nbins,min,max);
+   fRatLong8 = new TH1D(nameRatLong8.Data(),nameRatLong8.Data(),nbins,min,max);
+   
+   fNumOut1->Sumw2();
+   fNumOut2->Sumw2();
+     fNumOut3->Sumw2();
+     fNumOut4->Sumw2();
+     fNumOut5->Sumw2();
+     fNumOut6->Sumw2();
+     fNumOut7->Sumw2();
+     fNumOut8->Sumw2();
+
+     fDenOut1->Sumw2();
+     fDenOut2->Sumw2();
+     fDenOut3->Sumw2();
+     fDenOut4->Sumw2();
+     fDenOut5->Sumw2();
+     fDenOut6->Sumw2();
+     fDenOut7->Sumw2();
+     fDenOut8->Sumw2();
+   
+     fRatOut1->Sumw2();
+     fRatOut2->Sumw2();
+     fRatOut3->Sumw2();
+     fRatOut4->Sumw2();
+     fRatOut5->Sumw2();
+     fRatOut6->Sumw2();
+     fRatOut7->Sumw2();
+     fRatOut8->Sumw2();
+   
+
+     fNumSide1->Sumw2();
+     fNumSide2->Sumw2();
+     fNumSide3->Sumw2();
+     fNumSide4->Sumw2();
+     fNumSide5->Sumw2();
+     fNumSide6->Sumw2();
+     fNumSide7->Sumw2();
+     fNumSide8->Sumw2();
+
+     fDenSide1->Sumw2();
+     fDenSide2->Sumw2();
+     fDenSide3->Sumw2();
+     fDenSide4->Sumw2();
+     fDenSide5->Sumw2();
+     fDenSide6->Sumw2();
+     fDenSide7->Sumw2();
+     fDenSide8->Sumw2();
+   
+     fRatSide1->Sumw2();
+     fRatSide2->Sumw2();
+     fRatSide3->Sumw2();
+     fRatSide4->Sumw2();
+     fRatSide5->Sumw2();
+     fRatSide6->Sumw2();
+     fRatSide7->Sumw2();
+     fRatSide8->Sumw2();
+   
+     fNumLong1->Sumw2();
+     fNumLong2->Sumw2();
+     fNumLong3->Sumw2();
+     fNumLong4->Sumw2();
+     fNumLong5->Sumw2();
+     fNumLong6->Sumw2();
+     fNumLong7->Sumw2();
+     fNumLong8->Sumw2();
+
+     fDenLong1->Sumw2();
+     fDenLong2->Sumw2();
+     fDenLong3->Sumw2();
+     fDenLong4->Sumw2();
+     fDenLong5->Sumw2();
+     fDenLong6->Sumw2();
+     fDenLong7->Sumw2();
+     fDenLong8->Sumw2();
+   
+     fRatLong1->Sumw2();
+     fRatLong2->Sumw2();
+     fRatLong3->Sumw2();
+     fRatLong4->Sumw2();
+     fRatLong5->Sumw2();
+     fRatLong6->Sumw2();
+     fRatLong7->Sumw2();
+     fRatLong8->Sumw2();
+
+ }
+
+ TH1* AliHBTashbtCorrFctn::GetResult()
+ {
+     return fRatOut1;
+ }
diff --git a/HBTAN/AliHBTashbtCorrFctn.h b/HBTAN/AliHBTashbtCorrFctn.h
new file mode 100644 (file)
index 0000000..18fb8ef
--- /dev/null
@@ -0,0 +1,129 @@
+#ifndef ALIHBTASHBTCORRFCTN_H
+#define ALIHBTASHBTCORRFCTN_H
+
+///////////////////////////////////////////////////////
+//                                                   //
+// AliHBTashbtCorrFctn.h                           //
+//                                                   //
+// Class for calculating 3D ashbt correlation       //
+// functions                                         //
+//                                                   //
+///////////////////////////////////////////////////////
+
+#include "AliHBTFunction.h"
+
+
+class AliHBTashbtCorrFctn: public AliHBTOnePairFctn1D
+{
+  public:
+   AliHBTashbtCorrFctn(const char* name = "asejdzbitiCF", 
+                         const char* title= "asHBT Correlation Function");
+
+   AliHBTashbtCorrFctn(const char* name, const char* title,
+                        Int_t nbins, Float_t maxXval, Float_t minXval);
+   AliHBTashbtCorrFctn(const AliHBTashbtCorrFctn& in);
+
+   virtual ~AliHBTashbtCorrFctn();
+
+   void Init();
+   void ProcessSameEventParticles(AliHBTPair* pair);
+   void ProcessDiffEventParticles(AliHBTPair* pair);
+
+   void WriteFunction();
+   
+   TH1*     GetResult();
+   
+ protected:
+
+   Double_t GetValue(AliHBTPair* pair) const {return pair->GetQInv();}
+   void BuildHistos(Int_t nbins, Float_t max, Float_t min);
+   
+   TH1D* fNumOut1;
+   TH1D* fNumOut2;
+   TH1D* fNumOut3;
+   TH1D* fNumOut4;
+   TH1D* fNumOut5;
+   TH1D* fNumOut6;
+   TH1D* fNumOut7;
+   TH1D* fNumOut8;
+
+   TH1D* fDenOut1;
+   TH1D* fDenOut2;
+   TH1D* fDenOut3;
+   TH1D* fDenOut4;
+   TH1D* fDenOut5;
+   TH1D* fDenOut6;
+   TH1D* fDenOut7;
+   TH1D* fDenOut8;
+   
+   TH1D* fRatOut1;
+   TH1D* fRatOut2;
+   TH1D* fRatOut3;
+   TH1D* fRatOut4;
+   TH1D* fRatOut5;
+   TH1D* fRatOut6;
+   TH1D* fRatOut7;
+   TH1D* fRatOut8;
+   
+
+   TH1D* fNumSide1;
+   TH1D* fNumSide2;
+   TH1D* fNumSide3;
+   TH1D* fNumSide4;
+   TH1D* fNumSide5;
+   TH1D* fNumSide6;
+   TH1D* fNumSide7;
+   TH1D* fNumSide8;
+
+   TH1D* fDenSide1;
+   TH1D* fDenSide2;
+   TH1D* fDenSide3;
+   TH1D* fDenSide4;
+   TH1D* fDenSide5;
+   TH1D* fDenSide6;
+   TH1D* fDenSide7;
+   TH1D* fDenSide8;
+   
+   TH1D* fRatSide1;
+   TH1D* fRatSide2;
+   TH1D* fRatSide3;
+   TH1D* fRatSide4;
+   TH1D* fRatSide5;
+   TH1D* fRatSide6;
+   TH1D* fRatSide7;
+   TH1D* fRatSide8;
+   
+   TH1D* fNumLong1;
+   TH1D* fNumLong2;
+   TH1D* fNumLong3;
+   TH1D* fNumLong4;
+   TH1D* fNumLong5;
+   TH1D* fNumLong6;
+   TH1D* fNumLong7;
+   TH1D* fNumLong8;
+
+   TH1D* fDenLong1;
+   TH1D* fDenLong2;
+   TH1D* fDenLong3;
+   TH1D* fDenLong4;
+   TH1D* fDenLong5;
+   TH1D* fDenLong6;
+   TH1D* fDenLong7;
+   TH1D* fDenLong8;
+   
+   TH1D* fRatLong1;
+   TH1D* fRatLong2;
+   TH1D* fRatLong3;
+   TH1D* fRatLong4;
+   TH1D* fRatLong5;
+   TH1D* fRatLong6;
+   TH1D* fRatLong7;
+   TH1D* fRatLong8;
+   
+
+  private:
+  
+    ClassDef(AliHBTashbtCorrFctn,1)
+};
+
+#endif