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()