1 #include "AliHBTashbtCorrFctn.h"
5 ///////////////////////////////////////////////////////
7 // AliHBTashbtCorrFctn.h //
9 // Class for calculating 3D ashbt correlation //
12 ///////////////////////////////////////////////////////
14 ClassImp(AliHBTashbtCorrFctn)
16 AliHBTashbtCorrFctn::AliHBTashbtCorrFctn(const char* name, const char* title):
17 AliHBTOnePairFctn1D(name,title),
104 /******************************************************************/
105 AliHBTashbtCorrFctn::AliHBTashbtCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval):
106 AliHBTOnePairFctn1D(name,title,nbins,maxXval,minXval),
192 BuildHistos(nbins, maxXval, minXval);
196 /******************************************************************/
197 AliHBTashbtCorrFctn::AliHBTashbtCorrFctn(const AliHBTashbtCorrFctn& in):
198 AliHBTOnePairFctn1D(in),
286 /******************************************************************/
288 AliHBTashbtCorrFctn::~AliHBTashbtCorrFctn()
375 /******************************************************************/
376 void AliHBTashbtCorrFctn::WriteFunction()
379 Double_t out1scale = Scale(fNumOut1,fDenOut1);
380 cout <<"out1scale = "<<out1scale<<endl;
381 fRatOut1->Divide(fNumOut1,fDenOut1,out1scale);
383 Double_t out2scale = Scale(fNumOut2,fDenOut2);
384 cout <<"out2scale = "<<out2scale<<endl;
385 fRatOut2->Divide(fNumOut2,fDenOut2,out2scale);
387 Double_t out3scale = Scale(fNumOut3,fDenOut3);
388 cout <<"out3scale = "<<out3scale<<endl;
389 fRatOut3->Divide(fNumOut3,fDenOut3,out3scale);
391 Double_t out4scale = Scale(fNumOut4,fDenOut4);
392 cout <<"out4scale = "<<out4scale<<endl;
393 fRatOut4->Divide(fNumOut4,fDenOut4,out4scale);
395 Double_t out5scale = Scale(fNumOut5,fDenOut5);
396 cout <<"out5scale = "<<out5scale<<endl;
397 fRatOut5->Divide(fNumOut5,fDenOut5,out5scale);
399 Double_t out6scale = Scale(fNumOut6,fDenOut6);
400 cout <<"out6scale = "<<out6scale<<endl;
401 fRatOut6->Divide(fNumOut6,fDenOut6,out6scale);
403 Double_t out7scale = Scale(fNumOut7,fDenOut7);
404 cout <<"out7scale = "<<out7scale<<endl;
405 fRatOut7->Divide(fNumOut7,fDenOut7,out7scale);
407 Double_t out8scale = Scale(fNumOut8,fDenOut8);
408 cout <<"out8scale = "<<out8scale<<endl;
409 fRatOut8->Divide(fNumOut8,fDenOut8,out8scale);
412 Double_t side1scale = Scale(fNumSide1,fDenSide1);
413 cout <<"side1scale = "<<side1scale<<endl;
414 fRatSide1->Divide(fNumSide1,fDenSide1,side1scale);
416 Double_t side2scale = Scale(fNumSide2,fDenSide2);
417 cout <<"side2scale = "<<side2scale<<endl;
418 fRatSide2->Divide(fNumSide2,fDenSide2,side2scale);
420 Double_t side3scale = Scale(fNumSide3,fDenSide3);
421 cout <<"side3scale = "<<side3scale<<endl;
422 fRatSide3->Divide(fNumSide3,fDenSide3,side3scale);
424 Double_t side4scale = Scale(fNumSide4,fDenSide4);
425 cout <<"side4scale = "<<side4scale<<endl;
426 fRatSide4->Divide(fNumSide4,fDenSide4,side4scale);
428 Double_t side5scale = Scale(fNumSide5,fDenSide5);
429 cout <<"side5scale = "<<side5scale<<endl;
430 fRatSide5->Divide(fNumSide5,fDenSide5,side5scale);
432 Double_t side6scale = Scale(fNumSide6,fDenSide6);
433 cout <<"side6scale = "<<side6scale<<endl;
434 fRatSide6->Divide(fNumSide6,fDenSide6,side6scale);
436 Double_t side7scale = Scale(fNumSide7,fDenSide7);
437 cout <<"side7scale = "<<side7scale<<endl;
438 fRatSide7->Divide(fNumSide7,fDenSide7,side7scale);
440 Double_t side8scale = Scale(fNumSide8,fDenSide8);
441 cout <<"side8scale = "<<side8scale<<endl;
442 fRatSide8->Divide(fNumSide8,fDenSide8,side8scale);
446 Double_t long1scale = Scale(fNumLong1,fDenLong1);
447 cout <<"long1scale = "<<long1scale<<endl;
448 fRatLong1->Divide(fNumLong1,fDenLong1,long1scale);
450 Double_t long2scale = Scale(fNumLong2,fDenLong2);
451 cout <<"long2scale = "<<long2scale<<endl;
452 fRatLong2->Divide(fNumLong2,fDenLong2,long2scale);
454 Double_t long3scale = Scale(fNumLong3,fDenLong3);
455 cout <<"long3scale = "<<long3scale<<endl;
456 fRatLong3->Divide(fNumLong3,fDenLong3,long3scale);
458 Double_t long4scale = Scale(fNumLong4,fDenLong4);
459 cout <<"long4scale = "<<long4scale<<endl;
460 fRatLong4->Divide(fNumLong4,fDenLong4,long4scale);
462 Double_t long5scale = Scale(fNumLong5,fDenLong5);
463 cout <<"long5scale = "<<long5scale<<endl;
464 fRatLong5->Divide(fNumLong5,fDenLong5,long5scale);
466 Double_t long6scale = Scale(fNumLong6,fDenLong6);
467 cout <<"long6scale = "<<long6scale<<endl;
468 fRatLong6->Divide(fNumLong6,fDenLong6,long6scale);
470 Double_t long7scale = Scale(fNumLong7,fDenLong7);
471 cout <<"long7scale = "<<long7scale<<endl;
472 fRatLong7->Divide(fNumLong7,fDenLong7,long7scale);
474 Double_t long8scale = Scale(fNumLong8,fDenLong8);
475 cout <<"long8scale = "<<long8scale<<endl;
476 fRatLong8->Divide(fNumLong8,fDenLong8,long8scale);
562 //-------------------------------------
563 void AliHBTashbtCorrFctn::ProcessSameEventParticles(AliHBTPair* pair)
565 //Fills the numerator using pair from the same event
566 pair = CheckPair(pair);
567 if(pair == 0x0) return;
569 Double_t rplane=0.; //reaction plane angle - 2 B determined
570 Double_t phi=(pair->Particle1()->Phi()+pair->Particle2()->Phi())/2.-rplane; //deltaphi bo nie mam nic innego pod reka
571 phi=phi*360/(2*TMath::Pi());
572 Double_t qout=pair->GetQOutLCMS();
573 Double_t qside=pair->GetQSideLCMS();
574 Double_t qlong=pair->GetQLongLCMS();
576 if((phi>=0.) && (phi <45.))
578 fNumOut1->Fill(qout);
579 fNumSide1->Fill(qside);
580 fNumLong1->Fill(qlong);
582 else if((phi>=45.) && (phi <90.))
584 fNumOut2->Fill(qout);
585 fNumSide2->Fill(qside);
586 fNumLong2->Fill(qlong);
588 else if((phi>=90.) && (phi <135.))
590 fNumOut3->Fill(qout);
591 fNumSide3->Fill(qside);
592 fNumLong3->Fill(qlong);
594 else if((phi>=135.) && (phi <180.))
596 fNumOut4->Fill(qout);
597 fNumSide4->Fill(qside);
598 fNumLong4->Fill(qlong);
600 else if((phi>=180.) && (phi <225.))
602 fNumOut5->Fill(qout);
603 fNumSide5->Fill(qside);
604 fNumLong5->Fill(qlong);
606 else if((phi>=225.) && (phi <270.))
608 fNumOut6->Fill(qout);
609 fNumSide6->Fill(qside);
610 fNumLong6->Fill(qlong);
612 else if((phi>=270.) && (phi <315.))
614 fNumOut7->Fill(qout);
615 fNumSide7->Fill(qside);
616 fNumLong7->Fill(qlong);
618 else if((phi>=315.) && (phi <360.))
620 fNumOut8->Fill(qout);
621 fNumSide8->Fill(qside);
622 fNumLong8->Fill(qlong);
628 /****************************************************************/
629 void AliHBTashbtCorrFctn::Init()
715 /****************************************************************/
718 void AliHBTashbtCorrFctn::ProcessDiffEventParticles(AliHBTPair* pair)
721 Double_t rplane=0.; //reaction plane angle - 2 B determined
722 Double_t phi=(pair->Particle1()->Phi()+pair->Particle2()->Phi())/2.-rplane; //deltaphi bo nie mam nic innego pod reka
723 phi=phi*360/(2*TMath::Pi());
724 Double_t qout=pair->GetQOutLCMS();
725 Double_t qside=pair->GetQSideLCMS();
726 Double_t qlong=pair->GetQLongLCMS();
728 if((phi>=0.) && (phi <45.))
730 fDenOut1->Fill(qout);
731 fDenSide1->Fill(qside);
732 fDenLong1->Fill(qlong);
734 else if((phi>=45.) && (phi <90.))
736 fDenOut2->Fill(qout);
737 fDenSide2->Fill(qside);
738 fDenLong2->Fill(qlong);
740 else if((phi>=90.) && (phi <135.))
742 fDenOut3->Fill(qout);
743 fDenSide3->Fill(qside);
744 fDenLong3->Fill(qlong);
746 else if((phi>=135.) && (phi <180.))
748 fDenOut4->Fill(qout);
749 fDenSide4->Fill(qside);
750 fDenLong4->Fill(qlong);
752 else if((phi>=180.) && (phi <225.))
754 fDenOut5->Fill(qout);
755 fDenSide5->Fill(qside);
756 fDenLong5->Fill(qlong);
758 else if((phi>=225.) && (phi <270.))
760 fDenOut6->Fill(qout);
761 fDenSide6->Fill(qside);
762 fDenLong6->Fill(qlong);
764 else if((phi>=270.) && (phi <315.))
766 fDenOut7->Fill(qout);
767 fDenSide7->Fill(qside);
768 fDenLong7->Fill(qlong);
770 else if((phi>=315.) && (phi <360.))
772 fDenOut8->Fill(qout);
773 fDenSide8->Fill(qside);
774 fDenLong8->Fill(qlong);
780 /******************************************************************/
782 void AliHBTashbtCorrFctn::BuildHistos(Int_t nbins, Float_t max, Float_t min)
786 TString nameNumOut1 = "NumOut0-45deg";
787 TString nameNumOut2 = "NumOut45-90deg";
788 TString nameNumOut3 = "NumOut90-135deg";
789 TString nameNumOut4 = "NumOut135-180deg";
790 TString nameNumOut5 = "NumOut180-225deg";
791 TString nameNumOut6 = "NumOut225-270deg";
792 TString nameNumOut7 = "NumOut270-315deg";
793 TString nameNumOut8 = "NumOut315-360deg";
796 TString nameDenOut1 = "DenOut0-45deg";
797 TString nameDenOut2 = "DenOut45-90deg";
798 TString nameDenOut3 = "DenOut90-135deg";
799 TString nameDenOut4 = "DenOut135-180deg";
800 TString nameDenOut5 = "DenOut180-225deg";
801 TString nameDenOut6 = "DenOut225-270deg";
802 TString nameDenOut7 = "DenOut270-315deg";
803 TString nameDenOut8 = "DenOut315-360deg";
806 TString nameRatOut1 = "RatOut0-45deg";
807 TString nameRatOut2 = "RatOut45-90deg";
808 TString nameRatOut3 = "RatOut90-135deg";
809 TString nameRatOut4 = "RatOut135-180deg";
810 TString nameRatOut5 = "RatOut180-225deg";
811 TString nameRatOut6 = "RatOut225-270deg";
812 TString nameRatOut7 = "RatOut270-315deg";
813 TString nameRatOut8 = "RatOut315-360deg";
815 TString nameNumSide1 = "NumSide0-45deg";
816 TString nameNumSide2 = "NumSide45-90deg";
817 TString nameNumSide3 = "NumSide90-135deg";
818 TString nameNumSide4 = "NumSide135-180deg";
819 TString nameNumSide5 = "NumSide180-225deg";
820 TString nameNumSide6 = "NumSide225-270deg";
821 TString nameNumSide7 = "NumSide270-315deg";
822 TString nameNumSide8 = "NumSide315-360deg";
825 TString nameDenSide1 = "DenSide0-45deg";
826 TString nameDenSide2 = "DenSide45-90deg";
827 TString nameDenSide3 = "DenSide90-135deg";
828 TString nameDenSide4 = "DenSide135-180deg";
829 TString nameDenSide5 = "DenSide180-225deg";
830 TString nameDenSide6 = "DenSide225-270deg";
831 TString nameDenSide7 = "DenSide270-315deg";
832 TString nameDenSide8 = "DenSide315-360deg";
835 TString nameRatSide1 = "RatSide0-45deg";
836 TString nameRatSide2 = "RatSide45-90deg";
837 TString nameRatSide3 = "RatSide90-135deg";
838 TString nameRatSide4 = "RatSide135-180deg";
839 TString nameRatSide5 = "RatSide180-225deg";
840 TString nameRatSide6 = "RatSide225-270deg";
841 TString nameRatSide7 = "RatSide270-315deg";
842 TString nameRatSide8 = "RatSide315-360deg";
844 TString nameNumLong1 = "NumLong0-45deg";
845 TString nameNumLong2 = "NumLong45-90deg";
846 TString nameNumLong3 = "NumLong90-135deg";
847 TString nameNumLong4 = "NumLong135-180deg";
848 TString nameNumLong5 = "NumLong180-225deg";
849 TString nameNumLong6 = "NumLong225-270deg";
850 TString nameNumLong7 = "NumLong270-315deg";
851 TString nameNumLong8 = "NumLong315-360deg";
854 TString nameDenLong1 = "DenLong0-45deg";
855 TString nameDenLong2 = "DenLong45-90deg";
856 TString nameDenLong3 = "DenLong90-135deg";
857 TString nameDenLong4 = "DenLong135-180deg";
858 TString nameDenLong5 = "DenLong180-225deg";
859 TString nameDenLong6 = "DenLong225-270deg";
860 TString nameDenLong7 = "DenLong270-315deg";
861 TString nameDenLong8 = "DenLong315-360deg";
864 TString nameRatLong1 = "RatLong0-45deg";
865 TString nameRatLong2 = "RatLong45-90deg";
866 TString nameRatLong3 = "RatLong90-135deg";
867 TString nameRatLong4 = "RatLong135-180deg";
868 TString nameRatLong5 = "RatLong180-225deg";
869 TString nameRatLong6 = "RatLong225-270deg";
870 TString nameRatLong7 = "RatLong270-315deg";
871 TString nameRatLong8 = "RatLong315-360deg";
873 fNumOut1 = new TH1D(nameNumOut1.Data(),nameNumOut1.Data(),nbins,min,max);
874 fNumOut2 = new TH1D(nameNumOut2.Data(),nameNumOut2.Data(),nbins,min,max);
875 fNumOut3 = new TH1D(nameNumOut3.Data(),nameNumOut3.Data(),nbins,min,max);
876 fNumOut4 = new TH1D(nameNumOut4.Data(),nameNumOut4.Data(),nbins,min,max);
877 fNumOut5 = new TH1D(nameNumOut5.Data(),nameNumOut5.Data(),nbins,min,max);
878 fNumOut6 = new TH1D(nameNumOut6.Data(),nameNumOut6.Data(),nbins,min,max);
879 fNumOut7 = new TH1D(nameNumOut7.Data(),nameNumOut7.Data(),nbins,min,max);
880 fNumOut8 = new TH1D(nameNumOut8.Data(),nameNumOut8.Data(),nbins,min,max);
882 fDenOut1 = new TH1D(nameDenOut1.Data(),nameDenOut1.Data(),nbins,min,max);
883 fDenOut2 = new TH1D(nameDenOut2.Data(),nameDenOut2.Data(),nbins,min,max);
884 fDenOut3 = new TH1D(nameDenOut3.Data(),nameDenOut3.Data(),nbins,min,max);
885 fDenOut4 = new TH1D(nameDenOut4.Data(),nameDenOut4.Data(),nbins,min,max);
886 fDenOut5 = new TH1D(nameDenOut5.Data(),nameDenOut5.Data(),nbins,min,max);
887 fDenOut6 = new TH1D(nameDenOut6.Data(),nameDenOut6.Data(),nbins,min,max);
888 fDenOut7 = new TH1D(nameDenOut7.Data(),nameDenOut7.Data(),nbins,min,max);
889 fDenOut8 = new TH1D(nameDenOut8.Data(),nameDenOut8.Data(),nbins,min,max);
891 fRatOut1 = new TH1D(nameRatOut1.Data(),nameRatOut1.Data(),nbins,min,max);
892 fRatOut2 = new TH1D(nameRatOut2.Data(),nameRatOut2.Data(),nbins,min,max);
893 fRatOut3 = new TH1D(nameRatOut3.Data(),nameRatOut3.Data(),nbins,min,max);
894 fRatOut4 = new TH1D(nameRatOut4.Data(),nameRatOut4.Data(),nbins,min,max);
895 fRatOut5 = new TH1D(nameRatOut5.Data(),nameRatOut5.Data(),nbins,min,max);
896 fRatOut6 = new TH1D(nameRatOut6.Data(),nameRatOut6.Data(),nbins,min,max);
897 fRatOut7 = new TH1D(nameRatOut7.Data(),nameRatOut7.Data(),nbins,min,max);
898 fRatOut8 = new TH1D(nameRatOut8.Data(),nameRatOut8.Data(),nbins,min,max);
900 fNumSide1 = new TH1D(nameNumSide1.Data(),nameNumSide1.Data(),nbins,min,max);
901 fNumSide2 = new TH1D(nameNumSide2.Data(),nameNumSide2.Data(),nbins,min,max);
902 fNumSide3 = new TH1D(nameNumSide3.Data(),nameNumSide3.Data(),nbins,min,max);
903 fNumSide4 = new TH1D(nameNumSide4.Data(),nameNumSide4.Data(),nbins,min,max);
904 fNumSide5 = new TH1D(nameNumSide5.Data(),nameNumSide5.Data(),nbins,min,max);
905 fNumSide6 = new TH1D(nameNumSide6.Data(),nameNumSide6.Data(),nbins,min,max);
906 fNumSide7 = new TH1D(nameNumSide7.Data(),nameNumSide7.Data(),nbins,min,max);
907 fNumSide8 = new TH1D(nameNumSide8.Data(),nameNumSide8.Data(),nbins,min,max);
909 fDenSide1 = new TH1D(nameDenSide1.Data(),nameDenSide1.Data(),nbins,min,max);
910 fDenSide2 = new TH1D(nameDenSide2.Data(),nameDenSide2.Data(),nbins,min,max);
911 fDenSide3 = new TH1D(nameDenSide3.Data(),nameDenSide3.Data(),nbins,min,max);
912 fDenSide4 = new TH1D(nameDenSide4.Data(),nameDenSide4.Data(),nbins,min,max);
913 fDenSide5 = new TH1D(nameDenSide5.Data(),nameDenSide5.Data(),nbins,min,max);
914 fDenSide6 = new TH1D(nameDenSide6.Data(),nameDenSide6.Data(),nbins,min,max);
915 fDenSide7 = new TH1D(nameDenSide7.Data(),nameDenSide7.Data(),nbins,min,max);
916 fDenSide8 = new TH1D(nameDenSide8.Data(),nameDenSide8.Data(),nbins,min,max);
918 fRatSide1 = new TH1D(nameRatSide1.Data(),nameRatSide1.Data(),nbins,min,max);
919 fRatSide2 = new TH1D(nameRatSide2.Data(),nameRatSide2.Data(),nbins,min,max);
920 fRatSide3 = new TH1D(nameRatSide3.Data(),nameRatSide3.Data(),nbins,min,max);
921 fRatSide4 = new TH1D(nameRatSide4.Data(),nameRatSide4.Data(),nbins,min,max);
922 fRatSide5 = new TH1D(nameRatSide5.Data(),nameRatSide5.Data(),nbins,min,max);
923 fRatSide6 = new TH1D(nameRatSide6.Data(),nameRatSide6.Data(),nbins,min,max);
924 fRatSide7 = new TH1D(nameRatSide7.Data(),nameRatSide7.Data(),nbins,min,max);
925 fRatSide8 = new TH1D(nameRatSide8.Data(),nameRatSide8.Data(),nbins,min,max);
927 fNumLong1 = new TH1D(nameNumLong1.Data(),nameNumLong1.Data(),nbins,min,max);
928 fNumLong2 = new TH1D(nameNumLong2.Data(),nameNumLong2.Data(),nbins,min,max);
929 fNumLong3 = new TH1D(nameNumLong3.Data(),nameNumLong3.Data(),nbins,min,max);
930 fNumLong4 = new TH1D(nameNumLong4.Data(),nameNumLong4.Data(),nbins,min,max);
931 fNumLong5 = new TH1D(nameNumLong5.Data(),nameNumLong5.Data(),nbins,min,max);
932 fNumLong6 = new TH1D(nameNumLong6.Data(),nameNumLong6.Data(),nbins,min,max);
933 fNumLong7 = new TH1D(nameNumLong7.Data(),nameNumLong7.Data(),nbins,min,max);
934 fNumLong8 = new TH1D(nameNumLong8.Data(),nameNumLong8.Data(),nbins,min,max);
936 fDenLong1 = new TH1D(nameDenLong1.Data(),nameDenLong1.Data(),nbins,min,max);
937 fDenLong2 = new TH1D(nameDenLong2.Data(),nameDenLong2.Data(),nbins,min,max);
938 fDenLong3 = new TH1D(nameDenLong3.Data(),nameDenLong3.Data(),nbins,min,max);
939 fDenLong4 = new TH1D(nameDenLong4.Data(),nameDenLong4.Data(),nbins,min,max);
940 fDenLong5 = new TH1D(nameDenLong5.Data(),nameDenLong5.Data(),nbins,min,max);
941 fDenLong6 = new TH1D(nameDenLong6.Data(),nameDenLong6.Data(),nbins,min,max);
942 fDenLong7 = new TH1D(nameDenLong7.Data(),nameDenLong7.Data(),nbins,min,max);
943 fDenLong8 = new TH1D(nameDenLong8.Data(),nameDenLong8.Data(),nbins,min,max);
945 fRatLong1 = new TH1D(nameRatLong1.Data(),nameRatLong1.Data(),nbins,min,max);
946 fRatLong2 = new TH1D(nameRatLong2.Data(),nameRatLong2.Data(),nbins,min,max);
947 fRatLong3 = new TH1D(nameRatLong3.Data(),nameRatLong3.Data(),nbins,min,max);
948 fRatLong4 = new TH1D(nameRatLong4.Data(),nameRatLong4.Data(),nbins,min,max);
949 fRatLong5 = new TH1D(nameRatLong5.Data(),nameRatLong5.Data(),nbins,min,max);
950 fRatLong6 = new TH1D(nameRatLong6.Data(),nameRatLong6.Data(),nbins,min,max);
951 fRatLong7 = new TH1D(nameRatLong7.Data(),nameRatLong7.Data(),nbins,min,max);
952 fRatLong8 = new TH1D(nameRatLong8.Data(),nameRatLong8.Data(),nbins,min,max);
1038 TH1* AliHBTashbtCorrFctn::GetResult()