13 #include "FairRootManager.h"
21 #include "FairRunAna.h"
22 #include "FairRuntimeDb.h"
23 #include "FairBaseParSet.h"
24 #include "FairGeoVolume.h"
26 #include "FairGeoTransform.h"
27 #include "FairGeoVector.h"
28 #include "FairGeoMedium.h"
29 #include "FairGeoNode.h"
33 #include "TParticlePDG.h"
34 #include "TDatabasePDG.h"
36 #include "TGeoManager.h"
89 cout <<
" ---------- INITIALIZATION ------------" << endl;
92 FairRootManager* ioman = FairRootManager::Instance();
94 cout <<
"-E- PndDrcHitProducerReal::Init: "
95 <<
"RootManager not instantiated!" << endl;
99 fMCArray = (TClonesArray*) ioman->GetObject(
"MCTrack");
101 cout <<
"-W- PndDrcRecoLookupMap::Init: "
102 <<
"No MCTrack array!" << endl;
109 cout <<
"-W- PndDrcHitProducerReal::Init: "
110 <<
"No DrcBarPoint array!" << endl;
115 fPDPointArray = (TClonesArray*) ioman->GetObject(
"DrcPDPoint");
117 cout <<
"-W- PndDrcAna::Init: "
118 <<
"No DrcPDPoint array!" << endl;
123 fHitArray =
new TClonesArray(
"PndDrcHit");
130 cout <<
"-I- PndDrcHitProducerReal: Intialization successfull" << endl;
138 if ( !
fHitArray ) Fatal(
"Exec",
"No HitArray");
140 if ( !
fPDHitArray ) Fatal(
"Exec",
"No Photon HitArray");
155 cout <<
" ----------------- DRC Hit Producer --------------------" << endl;
156 cout <<
" Number of input MC points in the bar: "<<
fBarPointArray->GetEntries()<<endl;
173 pt->Momentum(MomBar);
181 if (
fVerbose >0) cout <<
"Beta not calculated " << endl;
184 if (pt->
GetThetaC() != -1. && beta > 1/1.47){
220 fDPosHit.SetXYZ(fDPosXHit,fDPosYHit,fDPosZHit);
225 sigma=0.001*(3.21659E-01 + 7.48416E-02*theta - 9.87561E-05*theta*theta - 2.47129E-06*theta*theta*
theta);
226 }
else if(theta>=45. && theta<90.){
227 sigma=0.001*(3.21659E-01 + 7.48416E-02*theta - 9.87561E-05*theta*theta - 2.47129E-06*theta*theta*
theta);
228 }
else if(theta>=90.){
229 sigma=0.001*( 2.34224e+01-3.52791e-01*theta+1.64046e-03*theta*theta-7.57365e-07*theta*theta*
theta);
231 sigma=sigma+0.00873*
exp(-MomBar.Mag()/0.4614);
252 cout <<
" Number of Photon MC Points in Photon Detector Plane : "<<
fPDPointArray->GetEntries()<<endl;
255 Double_t lambda_min,lambda_max,lambda_step;
262 Double_t lambda_min_tr,lambda_max_tr,lambda_step_tr, angle_step_tr;
263 Int_t lambda_points_tr;
265 SetPhotonTransportEff(lambda_min_tr,lambda_max_tr,lambda_step_tr,angle_step_tr, lambda_points_tr,TransportEfficiency);
275 Int_t trID= Ppt->GetTrackID();
284 Int_t NbouncesX, NbouncesY;
286 NumberOfBounces(StartVertex, PphoInit, &NbouncesX, &NbouncesY, &angleX, &angleY);
299 if (lambda >= lambda_min && lambda < lambda_max) {
300 Int_t ilambda=(Int_t)((lambda-lambda_min)/lambda_step);
316 if (lambda >= lambda_min_tr && lambda < lambda_max_tr) {
317 Int_t ilambda=(Int_t)((lambda-lambda_min_tr)/lambda_step_tr);
318 Int_t iangleX =(Int_t)(angleX/angle_step_tr);
319 Int_t iangleY =(Int_t)(angleY/angle_step_tr);
326 Double_t ReflectionProbX = TransportEfficiency[ilambda+ iangleX*lambda_points_tr];
327 Double_t ReflectionProbY = TransportEfficiency[ilambda+ iangleY*lambda_points_tr];
328 TotalTrProb = pow(ReflectionProbX, (Int_t)NbouncesX)*pow(ReflectionProbY, (Int_t)NbouncesY);
361 point.SetXYZ(xP,yP,0.);
364 if(phiP < 0.){phiP = 360. + point.Phi()/3.1415*180.;}
367 if(phiP > 0. && phiP < 86.4){
370 if(phiP > 93.6 && phiP < 266.4){
373 if(phiP > 273.6 && phiP < 360.){
376 if(phiP > 86.4 && phiP < 93.6){
379 if(phiP > 266.4 && phiP < 273.6){
384 vhit.SetXYZ(xP, yP, 0.);
385 vhit.RotateZ(-phi_rot/180.*
fpi);
391 hitbar.SetXYZ(yHit_bar, -xHit_bar, 0.);
395 if(hitbar.Phi() <
fdphi/2./180.*3.1415 && hitbar.Phi() > -
fdphi/2./180.*3.1415){
396 vhit.SetXYZ(yHit_bar, -xHit_bar, 0.);
397 vhit.RotateZ(phi_rot/180.*
fpi);
419 fDPosPDHit.SetXYZ(fDPosXPDHit,fDPosYPDHit,fDPosZPDHit);
447 startBar.SetXYZ(start.X(), start.Y(), start.Z());
449 startBar.RotateZ(-PhiRot/180.*
fpi);
455 PphoB.RotateZ(-PhiRot/180.*
fpi);
459 if(dir.Theta() < 3.1415/2.){
462 if(dir.Theta() >= 3.1415/2.){
463 Z0 = -(startBar.Z() -
fzup);
466 X0 = Z0*tan(PphoB.Theta())*
cos(PphoB.Phi());
467 Y0 = Z0*tan(PphoB.Theta())*
sin(PphoB.Phi());
502 up_down.SetXYZ(0.,1.,0.);
504 left_right.SetXYZ(1.,0.,0.);
505 Double_t angle1 = PphoB.Angle(left_right);
506 if(angle1 >
fpi/2.){angle1 =
fpi - PphoB.Angle(left_right);}
507 Double_t angle2 = PphoB.Angle(up_down);
508 if(angle2 >
fpi/2.){angle2 =
fpi - PphoB.Angle(up_down);}
518 hit.SetXYZ(xx,yy,0.);
520 if(startPhi < 0.){startPhi = 360. + hit.Phi()*180./
fpi;}
524 if(startPhi >= 0. && startPhi < 90.){
527 if(startPhi >= 90. && startPhi < 270.){
530 if(startPhi >= 270. && startPhi < 360.){
542 if(print){std::cout<<
"n = "<<n<<
", NN = "<<*NN<<
", x0 = "<<x0<<
", a = "<<a<<std::endl;}
544 if(x0 < 0.){x1 = x0 - (n+1)*a;}
545 if(print){std::cout<<
"xy = "<< x1<<std::endl;}
547 if((m/2. - TMath::Floor(m/2.)) == 0.) {
548 if(print){std::cout<<
"odd==0"<<std::endl;}
549 if(x0 >= 0. && x1 + xEn <= a){xK = x1 + xEn;}
550 if(x0 >= 0. && x1 + xEn > a){xK = 2*a - x1 - xEn; n = 1. +
n;}
551 if(x0 < 0. && x1 + xEn >= 0.){xK = a - (x1 + xEn); n = -1. -
n;}
552 if(x0 < 0. && x1 + xEn < 0.) {xK = a + x1 + xEn; n = -
n;}
553 if(print){std::cout<<
"xK = "<< xK<<
", n = "<<n<<std::endl;}
557 if((m/2. - TMath::Floor(m/2.)) != 0.) {
558 if(print){std::cout<<
"even!=0"<<std::endl;}
559 if(x0 >= 0. && x1 + xEn <= a){xK = a - (x1 + xEn);}
560 if(x0 >= 0. && x1 + xEn > a){xK = x1 + xEn -
a; n = 1. +
n;}
561 if(x0 < 0. && x1 + xEn >= 0.){xK = x1 + xEn; n = -1. -
n;}
562 if(x0 < 0. && x1 + xEn < 0.) {xK = - (x1 + xEn); n = -
n;}
563 if(print){std::cout<<
"xK = "<< xK<<
", n = "<<n<<std::endl;}
579 Int_t size = clref.GetEntriesFast();
580 return new(clref[size])
PndDrcHit(detID, detID,
595 Int_t size = clrefPD.GetEntriesFast();
618 fEfficiency[0] = 0.1;
619 fEfficiency[1] = 0.12;
620 fEfficiency[2] = 0.13;
621 fEfficiency[3] = 0.15;
622 fEfficiency[4] = 0.18;
623 fEfficiency[5] = 0.2;
624 fEfficiency[6] = 0.22;
625 fEfficiency[7] = 0.24;
626 fEfficiency[8] = 0.26;
627 fEfficiency[9] = 0.28;
628 fEfficiency[10] = 0.29;
629 fEfficiency[11] = 0.288;
630 fEfficiency[12] = 0.286;
631 fEfficiency[13] = 0.284;
632 fEfficiency[14] = 0.282;
633 fEfficiency[15] = 0.28;
634 fEfficiency[16] = 0.26;
635 fEfficiency[17] = 0.24;
636 fEfficiency[18] = 0.2;
637 fEfficiency[19] = 0.17;
638 fEfficiency[20] = 0.15;
639 fEfficiency[21] = 0.13;
640 fEfficiency[22] = 0.1;
641 fEfficiency[23] = 0.09;
642 fEfficiency[24] = 0.07;
643 fEfficiency[25] = 0.06;
644 fEfficiency[26] = 0.05;
645 fEfficiency[27] = 0.04;
646 fEfficiency[28] = 0.03;
647 fEfficiency[29] = 0.02;
648 fEfficiency[30] = 0.015;
649 fEfficiency[31] = 0.01;
650 fEfficiency[32] = 0.005;
651 fEfficiency[33] = 0.002;
652 fEfficiency[34] = 0.001;
653 fEfficiency[35] = 0.;
656 cout <<
"ERROR: photocathode type not specified" << endl;
681 cout <<
"ERROR: photocathode type not specified" << endl;
702 Float_t credibleLimit=280.;
709 fEfficiency[0]= 231.84;
710 fEfficiency[1]= 615.36;
711 fEfficiency[2]= 657.4;
712 fEfficiency[3]= 258.78;
713 fEfficiency[4]= 9839.92;
714 fEfficiency[5]= 44.67;
715 fEfficiency[6]= 67.87;
716 fEfficiency[7]= 51.01;
717 fEfficiency[8]= 41.49;
718 fEfficiency[9]= 5.36;
719 fEfficiency[10]= 49.4;
720 fEfficiency[11]= 2.13;
721 fEfficiency[12]= 35.49;
722 fEfficiency[13]= 8.66;
723 fEfficiency[14]= 5.03;
724 fEfficiency[15]= 7.51;
725 fEfficiency[16]= 13.27;
726 fEfficiency[17]= 18.71;
727 fEfficiency[18]= 3.92;
728 fEfficiency[19]= 3.66;
729 fEfficiency[20]= 8.2;
730 fEfficiency[21]= 0.56;
731 fEfficiency[22]= 7.68;
732 fEfficiency[23]= 2.87;
733 fEfficiency[24]= 10.06;
734 fEfficiency[25]= 3.47;
735 fEfficiency[26]= 3.39;
736 fEfficiency[27]= 6.99;
737 fEfficiency[28]= 6.01;
738 fEfficiency[29]= 4.92;
739 fEfficiency[30]= 6.25;
740 fEfficiency[31]= 5.97;
741 fEfficiency[32]= 6.92;
742 fEfficiency[33]= 8.29;
743 fEfficiency[34]= 10.45;
744 fEfficiency[35]= 8.68;
745 fEfficiency[36]= 8.6;
746 fEfficiency[37]= 9.79;
747 fEfficiency[38]= 11.76;
748 fEfficiency[39]= 9.53;
749 fEfficiency[40]= 10.98;
750 fEfficiency[41]= 9.9;
751 fEfficiency[42]= 10.97;
752 fEfficiency[43]= 11.31;
753 fEfficiency[44]= 10.88;
754 fEfficiency[45]= 10.78;
755 fEfficiency[46]= 12.16;
756 fEfficiency[47]= 12.38;
757 fEfficiency[48]= 12.37;
758 fEfficiency[49]= 13.04;
759 fEfficiency[50]= 12.36;
760 fEfficiency[51]= 13.18;
761 fEfficiency[52]= 13.7;
762 fEfficiency[53]= 13.85;
763 fEfficiency[54]= 13.66;
764 fEfficiency[55]= 13.98;
765 fEfficiency[56]= 14.55;
766 fEfficiency[57]= 14.93;
767 fEfficiency[58]= 14.82;
768 fEfficiency[59]= 14.97;
769 fEfficiency[60]= 14.98;
770 fEfficiency[61]= 15.14;
771 fEfficiency[62]= 15.35;
772 fEfficiency[63]= 15.37;
773 fEfficiency[64]= 15.43;
774 fEfficiency[65]= 15.49;
775 fEfficiency[66]= 15.59;
776 fEfficiency[67]= 15.84;
777 fEfficiency[68]= 15.84;
778 fEfficiency[69]= 15.92;
779 fEfficiency[70]= 16.01;
780 fEfficiency[71]= 16.22;
781 fEfficiency[72]= 16.41;
782 fEfficiency[73]= 16.42;
783 fEfficiency[74]= 16.52;
784 fEfficiency[75]= 16.86;
785 fEfficiency[76]= 17.1;
786 fEfficiency[77]= 17.17;
787 fEfficiency[78]= 17.22;
788 fEfficiency[79]= 17.46;
789 fEfficiency[80]= 17.79;
790 fEfficiency[81]= 17.99;
791 fEfficiency[82]= 18.13;
792 fEfficiency[83]= 18.33;
793 fEfficiency[84]= 18.34;
794 fEfficiency[85]= 18.53;
795 fEfficiency[86]= 18.72;
796 fEfficiency[87]= 18.95;
797 fEfficiency[88]= 19.02;
798 fEfficiency[89]= 19.15;
799 fEfficiency[90]= 19.28;
800 fEfficiency[91]= 19.45;
801 fEfficiency[92]= 19.66;
802 fEfficiency[93]= 19.69;
803 fEfficiency[94]= 19.77;
804 fEfficiency[95]= 19.73;
805 fEfficiency[96]= 19.95;
806 fEfficiency[97]= 19.98;
807 fEfficiency[98]= 20.17;
808 fEfficiency[99]= 20.29;
809 fEfficiency[100]=20.33;
810 fEfficiency[101]=20.37;
811 fEfficiency[102]=20.47;
812 fEfficiency[103]=20.48;
813 fEfficiency[104]=20.57;
814 fEfficiency[105]=20.75;
815 fEfficiency[106]=20.8;
816 fEfficiency[107]=20.84;
817 fEfficiency[108]=20.86;
818 fEfficiency[109]=20.88;
819 fEfficiency[110]=21.0;
820 fEfficiency[111]=21.06;
821 fEfficiency[112]=21.0;
822 fEfficiency[113]=21.06;
823 fEfficiency[114]=21.06;
824 fEfficiency[115]=21.04;
825 fEfficiency[116]=21.1;
826 fEfficiency[117]=21.14;
827 fEfficiency[118]=21.08;
828 fEfficiency[119]=21.17;
829 fEfficiency[120]=21.3;
830 fEfficiency[121]=21.38;
831 fEfficiency[122]=21.49;
832 fEfficiency[123]=21.58;
833 fEfficiency[124]=21.69;
834 fEfficiency[125]=21.77;
835 fEfficiency[126]=21.87;
836 fEfficiency[127]=22.02;
837 fEfficiency[128]=22.13;
838 fEfficiency[129]=22.29;
839 fEfficiency[130]=22.35;
840 fEfficiency[131]=22.45;
841 fEfficiency[132]=22.53;
842 fEfficiency[133]=22.55;
843 fEfficiency[134]=22.64;
844 fEfficiency[135]=22.67;
845 fEfficiency[136]=22.73;
846 fEfficiency[137]=22.74;
847 fEfficiency[138]=22.71;
848 fEfficiency[139]=22.79;
849 fEfficiency[140]=22.76;
850 fEfficiency[141]=22.77;
851 fEfficiency[142]=22.76;
852 fEfficiency[143]=22.75;
853 fEfficiency[144]=22.78;
854 fEfficiency[145]=22.7;
855 fEfficiency[146]=22.68;
856 fEfficiency[147]=22.72;
857 fEfficiency[148]=22.66;
858 fEfficiency[149]=22.64;
859 fEfficiency[150]=22.7;
860 fEfficiency[151]=22.67;
861 fEfficiency[152]=22.71;
862 fEfficiency[153]=22.67;
863 fEfficiency[154]=22.75;
864 fEfficiency[155]=22.77;
865 fEfficiency[156]=22.83;
866 fEfficiency[157]=22.84;
867 fEfficiency[158]=22.93;
868 fEfficiency[159]=22.97;
869 fEfficiency[160]=23.0;
870 fEfficiency[161]=23.08;
871 fEfficiency[162]=23.16;
872 fEfficiency[163]=23.27;
873 fEfficiency[164]=23.25;
874 fEfficiency[165]=23.37;
875 fEfficiency[166]=23.44;
876 fEfficiency[167]=23.49;
877 fEfficiency[168]=23.55;
878 fEfficiency[169]=23.52;
879 fEfficiency[170]=23.58;
880 fEfficiency[171]=23.64;
881 fEfficiency[172]=23.63;
882 fEfficiency[173]=23.58;
883 fEfficiency[174]=23.64;
884 fEfficiency[175]=23.63;
885 fEfficiency[176]=23.62;
886 fEfficiency[177]=23.64;
887 fEfficiency[178]=23.63;
888 fEfficiency[179]=23.66;
889 fEfficiency[180]=23.59;
890 fEfficiency[181]=23.59;
891 fEfficiency[182]=23.56;
892 fEfficiency[183]=23.58;
893 fEfficiency[184]=23.63;
894 fEfficiency[185]=23.57;
895 fEfficiency[186]=23.66;
896 fEfficiency[187]=23.62;
897 fEfficiency[188]=23.67;
898 fEfficiency[189]=23.64;
899 fEfficiency[190]=23.54;
900 fEfficiency[191]=23.57;
901 fEfficiency[192]=23.51;
902 fEfficiency[193]=23.53;
903 fEfficiency[194]=23.45;
904 fEfficiency[195]=23.3;
905 fEfficiency[196]=23.41;
906 fEfficiency[197]=23.25;
907 fEfficiency[198]=23.21;
908 fEfficiency[199]=23.08;
909 fEfficiency[200]=23.01;
910 fEfficiency[201]=22.92;
911 fEfficiency[202]=22.9;
912 fEfficiency[203]=22.76;
913 fEfficiency[204]=22.76;
914 fEfficiency[205]=22.61;
915 fEfficiency[206]=22.53;
916 fEfficiency[207]=22.48;
917 fEfficiency[208]=22.39;
918 fEfficiency[209]=22.29;
919 fEfficiency[210]=22.24;
920 fEfficiency[211]=22.2;
921 fEfficiency[212]=22.12;
922 fEfficiency[213]=22.07;
923 fEfficiency[214]=21.96;
924 fEfficiency[215]=21.89;
925 fEfficiency[216]=21.87;
926 fEfficiency[217]=21.76;
927 fEfficiency[218]=21.74;
928 fEfficiency[219]=21.58;
929 fEfficiency[220]=21.49;
930 fEfficiency[221]=21.48;
931 fEfficiency[222]=21.37;
932 fEfficiency[223]=21.29;
933 fEfficiency[224]=21.2;
934 fEfficiency[225]=21.17;
935 fEfficiency[226]=21.03;
936 fEfficiency[227]=20.98;
937 fEfficiency[228]=20.92;
938 fEfficiency[229]=20.85;
939 fEfficiency[230]=20.76;
940 fEfficiency[231]=20.69;
941 fEfficiency[232]=20.58;
942 fEfficiency[233]=20.56;
943 fEfficiency[234]=20.47;
944 fEfficiency[235]=20.37;
945 fEfficiency[236]=20.32;
946 fEfficiency[237]=20.24;
947 fEfficiency[238]=20.13;
948 fEfficiency[239]=20.08;
949 fEfficiency[240]=19.9;
950 fEfficiency[241]=19.84;
951 fEfficiency[242]=19.77;
952 fEfficiency[243]=19.69;
953 fEfficiency[244]=19.63;
954 fEfficiency[245]=19.51;
955 fEfficiency[246]=19.41;
956 fEfficiency[247]=19.27;
957 fEfficiency[248]=19.06;
958 fEfficiency[249]=19.01;
959 fEfficiency[250]=18.87;
960 fEfficiency[251]=18.7;
961 fEfficiency[252]=18.49;
962 fEfficiency[253]=18.41;
963 fEfficiency[254]=18.17;
964 fEfficiency[255]=17.98;
965 fEfficiency[256]=17.84;
966 fEfficiency[257]=17.69;
967 fEfficiency[258]=17.5;
968 fEfficiency[259]=17.25;
969 fEfficiency[260]=17.15;
970 fEfficiency[261]=16.98;
971 fEfficiency[262]=16.79;
972 fEfficiency[263]=16.66;
973 fEfficiency[264]=16.48;
974 fEfficiency[265]=16.32;
975 fEfficiency[266]=16.19;
976 fEfficiency[267]=16.02;
977 fEfficiency[268]=15.88;
978 fEfficiency[269]=15.77;
979 fEfficiency[270]=15.67;
980 fEfficiency[271]=15.5;
981 fEfficiency[272]=15.39;
982 fEfficiency[273]=15.23;
983 fEfficiency[274]=15.09;
984 fEfficiency[275]=15.04;
985 fEfficiency[276]=14.92;
986 fEfficiency[277]=14.75;
987 fEfficiency[278]=14.7;
988 fEfficiency[279]=14.5;
989 fEfficiency[280]=14.45;
990 fEfficiency[281]=14.34;
991 fEfficiency[282]=14.25;
992 fEfficiency[283]=14.16;
993 fEfficiency[284]=14.13;
994 fEfficiency[285]=14.0;
995 fEfficiency[286]=13.92;
996 fEfficiency[287]=13.84;
997 fEfficiency[288]=13.76;
998 fEfficiency[289]=13.73;
999 fEfficiency[290]=13.61;
1000 fEfficiency[291]=13.54;
1001 fEfficiency[292]=13.52;
1002 fEfficiency[293]=13.45;
1003 fEfficiency[294]=13.41;
1004 fEfficiency[295]=13.39;
1005 fEfficiency[296]=13.31;
1006 fEfficiency[297]=13.22;
1007 fEfficiency[298]=13.17;
1008 fEfficiency[299]=13.13;
1009 fEfficiency[300]=13.06;
1010 fEfficiency[301]=13.2;
1011 fEfficiency[302]=13.09;
1012 fEfficiency[303]=12.97;
1013 fEfficiency[304]=12.92;
1014 fEfficiency[305]=12.73;
1015 fEfficiency[306]=12.65;
1016 fEfficiency[307]=12.4;
1017 fEfficiency[308]=12.22;
1018 fEfficiency[309]=12.02;
1019 fEfficiency[310]=11.79;
1020 fEfficiency[311]=11.59;
1021 fEfficiency[312]=11.33;
1022 fEfficiency[313]=11.03;
1023 fEfficiency[314]=10.68;
1024 fEfficiency[315]=10.46;
1025 fEfficiency[316]=10.14;
1026 fEfficiency[317]=9.88;
1027 fEfficiency[318]=9.62;
1028 fEfficiency[319]=9.36;
1029 fEfficiency[320]=9.14;
1030 fEfficiency[321]=8.87;
1031 fEfficiency[322]=8.63;
1032 fEfficiency[323]=8.51;
1033 fEfficiency[324]=8.24;
1034 fEfficiency[325]=8.07;
1035 fEfficiency[326]=7.88;
1036 fEfficiency[327]=7.77;
1037 fEfficiency[328]=7.65;
1038 fEfficiency[329]=7.52;
1039 fEfficiency[330]=7.35;
1040 fEfficiency[331]=7.27;
1041 fEfficiency[332]=7.21;
1042 fEfficiency[333]=7.1;
1043 fEfficiency[334]=6.92;
1044 fEfficiency[335]=6.89;
1045 fEfficiency[336]=6.79;
1046 fEfficiency[337]=6.74;
1047 fEfficiency[338]=6.56;
1048 fEfficiency[339]=6.54;
1049 fEfficiency[340]=6.5;
1050 fEfficiency[341]=6.39;
1051 fEfficiency[342]=6.33;
1052 fEfficiency[343]=6.25;
1053 fEfficiency[344]=6.27;
1054 fEfficiency[345]=6.14;
1055 fEfficiency[346]=6.06;
1056 fEfficiency[347]=6.04;
1057 fEfficiency[348]=6.01;
1058 fEfficiency[349]=5.91;
1059 fEfficiency[350]=5.89;
1060 fEfficiency[351]=5.79;
1061 fEfficiency[352]=5.75;
1062 fEfficiency[353]=5.75;
1063 fEfficiency[354]=5.67;
1064 fEfficiency[355]=5.61;
1065 fEfficiency[356]=5.51;
1066 fEfficiency[357]=5.52;
1067 fEfficiency[358]=5.43;
1068 fEfficiency[359]=5.43;
1069 fEfficiency[360]=5.34;
1070 fEfficiency[361]=5.31;
1071 fEfficiency[362]=5.35;
1072 fEfficiency[363]=5.23;
1073 fEfficiency[364]=5.2;
1074 fEfficiency[365]=5.14;
1075 fEfficiency[366]=5.11;
1076 fEfficiency[367]=5.11;
1077 fEfficiency[368]=5.01;
1078 fEfficiency[369]=4.98;
1079 fEfficiency[370]=4.93;
1080 fEfficiency[371]=4.99;
1081 fEfficiency[372]=4.89;
1082 fEfficiency[373]=4.82;
1083 fEfficiency[374]=4.87;
1084 fEfficiency[375]=4.8;
1085 fEfficiency[376]=4.7;
1086 fEfficiency[377]=4.65;
1087 fEfficiency[378]=4.65;
1088 fEfficiency[379]=4.61;
1089 fEfficiency[380]=4.49;
1090 fEfficiency[381]=4.56;
1091 fEfficiency[382]=4.44;
1092 fEfficiency[383]=4.42;
1093 fEfficiency[384]=4.44;
1094 fEfficiency[385]=4.35;
1095 fEfficiency[386]=4.35;
1096 fEfficiency[387]=4.27;
1097 fEfficiency[388]=4.29;
1098 fEfficiency[389]=4.19;
1099 fEfficiency[390]=4.13;
1100 fEfficiency[391]=4.08;
1101 fEfficiency[392]=4.02;
1102 fEfficiency[393]=4.07;
1103 fEfficiency[394]=3.92;
1104 fEfficiency[395]=3.95;
1105 fEfficiency[396]=3.88;
1106 fEfficiency[397]=3.82;
1107 fEfficiency[398]=3.86;
1108 fEfficiency[399]=3.74;
1109 fEfficiency[400]=3.71;
1110 fEfficiency[401]=3.66;
1111 fEfficiency[402]=3.72;
1112 fEfficiency[403]=3.62;
1113 fEfficiency[404]=3.55;
1114 fEfficiency[405]=3.56;
1115 fEfficiency[406]=3.57;
1116 fEfficiency[407]=3.45;
1117 fEfficiency[408]=3.38;
1118 fEfficiency[409]=3.36;
1119 fEfficiency[410]=3.36;
1120 fEfficiency[411]=3.28;
1121 fEfficiency[412]=3.25;
1122 fEfficiency[413]=3.19;
1123 fEfficiency[414]=3.26;
1124 fEfficiency[415]=3.13;
1125 fEfficiency[416]=3.17;
1126 fEfficiency[417]=3.15;
1127 fEfficiency[418]=3.04;
1128 fEfficiency[419]=2.98;
1129 fEfficiency[420]=2.93;
1130 fEfficiency[421]=2.98;
1131 fEfficiency[422]=2.9;
1132 fEfficiency[423]=2.89;
1133 fEfficiency[424]=2.9;
1134 fEfficiency[425]=2.81;
1135 fEfficiency[426]=2.74;
1136 fEfficiency[427]=2.81;
1137 fEfficiency[428]=2.68;
1138 fEfficiency[429]=2.73;
1139 fEfficiency[430]=2.7;
1140 fEfficiency[431]=2.57;
1141 fEfficiency[432]=2.58;
1142 fEfficiency[433]=2.55;
1143 fEfficiency[434]=2.55;
1144 fEfficiency[435]=2.37;
1145 fEfficiency[436]=2.39;
1146 fEfficiency[437]=2.39;
1147 fEfficiency[438]=2.44;
1148 fEfficiency[439]=2.37;
1149 fEfficiency[440]=2.26;
1150 fEfficiency[441]=2.27;
1151 fEfficiency[442]=2.27;
1152 fEfficiency[443]=2.23;
1153 fEfficiency[444]=2.26;
1154 fEfficiency[445]=2.14;
1155 fEfficiency[446]=2.08;
1156 fEfficiency[447]=2.15;
1157 fEfficiency[448]=2.06;
1158 fEfficiency[449]=2.09;
1159 fEfficiency[450]=2.04;
1160 fEfficiency[451]=2.0;
1161 fEfficiency[452]=1.95;
1162 fEfficiency[453]=2.02;
1163 fEfficiency[454]=1.87;
1164 fEfficiency[455]=1.9;
1165 fEfficiency[456]=1.8;
1166 fEfficiency[457]=1.87;
1167 fEfficiency[458]=1.85;
1168 fEfficiency[459]=1.87;
1169 fEfficiency[460]=1.81;
1170 fEfficiency[461]=1.86;
1171 fEfficiency[462]=1.74;
1172 fEfficiency[463]=1.74;
1173 fEfficiency[464]=1.63;
1174 fEfficiency[465]=1.59;
1175 fEfficiency[466]=1.5;
1176 fEfficiency[467]=1.5;
1177 fEfficiency[468]=1.44;
1178 fEfficiency[469]=1.47;
1179 fEfficiency[470]=1.32;
1180 fEfficiency[471]=1.24;
1181 fEfficiency[472]=1.28;
1182 fEfficiency[473]=1.19;
1183 fEfficiency[474]=1.21;
1184 fEfficiency[475]=1.21;
1185 fEfficiency[476]=1.1;
1186 fEfficiency[477]=1.1;
1187 fEfficiency[478]=1.05;
1188 fEfficiency[479]=1.06;
1189 fEfficiency[480]=0.94;
1190 fEfficiency[481]=0.92;
1191 fEfficiency[482]=0.87;
1192 fEfficiency[483]=0.92;
1193 fEfficiency[484]=0.81;
1194 fEfficiency[485]=0.86;
1195 fEfficiency[486]=0.78;
1196 fEfficiency[487]=0.77;
1197 fEfficiency[488]=0.8;
1198 fEfficiency[489]=0.67;
1199 fEfficiency[490]=0.7;
1200 fEfficiency[491]=0.81;
1201 fEfficiency[492]=0.61;
1202 fEfficiency[493]=0.64;
1203 fEfficiency[494]=0.71;
1204 fEfficiency[495]=0.66;
1205 fEfficiency[496]=0.67;
1206 fEfficiency[497]=0.68;
1207 fEfficiency[498]=0.69;
1208 fEfficiency[499]=0.68;
1209 fEfficiency[500]=0.73;
1212 for (Int_t iBin=0;iBin<501;iBin++)
1214 if (iBin<(Int_t)(credibleLimit-fLambdaMin))
1216 fEfficiency[iBin]=0.;
1220 fEfficiency[iBin]=fEfficiency[iBin]/100.;
1227 cout <<
"ERROR: photocathode type not specified" << endl;
1233 fEfficiency[0] = 0.;
1253 fEfficiency[0] = 0.020;
1254 fEfficiency[1] = 0.050;
1255 fEfficiency[2] = 0.110;
1256 fEfficiency[3] = 0.170;
1257 fEfficiency[4] = 0.225;
1258 fEfficiency[5] = 0.260;
1259 fEfficiency[6] = 0.275;
1260 fEfficiency[7] = 0.290;
1261 fEfficiency[8] = 0.310;
1262 fEfficiency[9] = 0.305;
1263 fEfficiency[10] = 0.302;
1264 fEfficiency[11] = 0.290;
1265 fEfficiency[12] = 0.279;
1266 fEfficiency[13] = 0.268;
1267 fEfficiency[14] = 0.262;
1268 fEfficiency[15] = 0.250;
1269 fEfficiency[16] = 0.240;
1270 fEfficiency[17] = 0.225;
1271 fEfficiency[18] = 0.210;
1272 fEfficiency[19] = 0.195;
1273 fEfficiency[20] = 0.178;
1274 fEfficiency[21] = 0.170;
1275 fEfficiency[22] = 0.155;
1276 fEfficiency[23] = 0.130;
1277 fEfficiency[24] = 0.112;
1278 fEfficiency[25] = 0.085;
1279 fEfficiency[26] = 0.066;
1280 fEfficiency[27] = 0.055;
1281 fEfficiency[28] = 0.040;
1282 fEfficiency[29] = 0.030;
1283 fEfficiency[30] = 0.025;
1284 fEfficiency[31] = 0.018;
1285 fEfficiency[32] = 0.010;
1288 cout <<
"ERROR: photocathode type not specified" << endl;
1294 fEfficiency[0] = 0.;
1312 fAngleStep =
fpi/2./20.;
1316 TF1 *d1 =
new TF1(
"d1",
"sqrt(1 + ([0]*x^2/(x^2-[1]^2)) + ([2]*x^2/(x^2-[3]^2)) + ([4]*x^2/(x^2-[5]^2)))",fLambdaMin/1000.,fLambdaMax/1000.);
1317 d1->SetParameters(0.696, 0.068, 0.407, 0.116, 0.897, 9.896);
1320 TF2* d3 =
new TF2(
"d3",
"1. - pow(4.*3.14159*cos(y)*[0]*d1/x,2)",fLambdaMin/1000.,fLambdaMax/1000., 0.,
fpi/2.);
1325 for(
int iang=0; iang<21; iang++){
1326 for(
int ilam=0; ilam< 38; ilam++){
1327 fEfficiency[iang * 38 + ilam] = d3->Eval(fLambdaMin/1000.+ilam*0.01, iang*
fpi/2./20.);
1339 cout <<
"ERROR: photocathode type not specified" << endl;
1350 xHit= pixelDim/2. + pixelDim*((Int_t)(xPoint/pixelDim));
1352 xHit= -pixelDim/2. + pixelDim*((Int_t)(xPoint/pixelDim));
1355 yHit= pixelDim/2. + pixelDim*((Int_t)(yPoint/pixelDim));
1357 yHit= -pixelDim/2. + pixelDim*((Int_t)(yPoint/pixelDim));
1369 xHit= pixelDim/2. + pixelDim*((Int_t)(xPoint/pixelDim));
1371 xHit= -pixelDim/2. + pixelDim*((Int_t)(xPoint/pixelDim));
1374 yHit= pixelDimY/2. + pixelDimY*((Int_t)(yPoint/pixelDimY));
1376 yHit= -pixelDimY/2. + pixelDimY*((Int_t)(yPoint/pixelDimY));
1384 dt=gRandom->Gaus(0,sigt);
1393 cout <<
"-I- PndDrcHitProducerReal: Finish" << endl;
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
friend F32vec4 cos(const F32vec4 &a)
TClonesArray * fPDHitArray
TClonesArray * fPDPointArray
void SetPhotonDetEff(Double_t &lambda_min, Double_t &lambda_max, Double_t &lambda_step, Double_t efficiency[])
friend F32vec4 exp(const F32vec4 &a)
void Smear(Double_t &time, Double_t sigt)
Double_t lambda(Double_t x, Double_t y, Double_t z)
friend F32vec4 sqrt(const F32vec4 &a)
static T Sqrt(const T &x)
void SetPhotonDetEffNew(Double_t &lambda_min, Double_t &lambda_max, Double_t &lambda_step, Double_t efficiency[])
friend F32vec4 sin(const F32vec4 &a)
void FindDrcHitPosition(Double_t xPoint, Double_t yPoint, Double_t &xHit, Double_t &yHit, Int_t &pmtID)
TVector3 GetMomentum() const
virtual InitStatus Init()
Double_t GetThetaC() const
void SetPhotonTransportEff(Double_t &, Double_t &, Double_t &, Double_t &, Int_t &, Double_t fEfficiency[])
void SetPhotonDetEffOld(Double_t &lambda_min, Double_t &lambda_max, Double_t &lambda_step, Double_t efficiency[])
TString pt(TString pts, TString exts="px py pz")
TClonesArray * fBarPointArray
void SetFakeDetEff(Double_t &lambda_min, Double_t &lambda_max, Double_t &lambda_step, Double_t efficiency[])
void NumberOfBounces(TVector3, TVector3, Int_t *, Int_t *, Double_t *, Double_t *)
PndGeoDrc * fGeo
Basic geometry data of barrel DRC.
friend F32vec4 fabs(const F32vec4 &a)
PndDrcPDHit * AddPDHit(Int_t detID, TVector3 posPDHit, TVector3 dPosPDHit, Double_t time, Double_t timeThreshold, Int_t index1)
virtual void Exec(Option_t *option)
Double_t FindPhiRot(Double_t, Double_t)
int hit(Int_t nEvents=0, TString inFile="sim.root", TString parFile="par.root", TString inDigi="digi.root", TString outFile="hit.root", Int_t timeBased=0)
void ProcessPhotonPoint()
PndDrcHit * AddHit(Int_t detID, TVector3 posHit, TVector3 dPosHit, Double_t thetaC, Double_t errThetaC, Int_t index)
Double_t fPackingFraction
TVector3 GetStartVertex() const
Double_t FindOutPoint(Double_t, Double_t, Double_t, Double_t *, Bool_t)
void FindDrcHitPositionTilt(Double_t xPoint, Double_t yPoint, Double_t &xHit, Double_t &yHit, Int_t &pmtID)
virtual ~PndDrcHitProducerReal()