Changeset 435 for trunk/MagicSoft/Simulation/Detector/Camera/camera.cxx
- Timestamp:
- 09/21/00 12:47:33 (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Simulation/Detector/Camera/camera.cxx
r408 r435 21 21 // 22 22 // $RCSfile: camera.cxx,v $ 23 // $Revision: 1.1 0$24 // $Author: MagicSol$25 // $Date: 2000-0 7-04 14:10:20$23 // $Revision: 1.11 $ 24 // $Author: harald $ 25 // $Date: 2000-09-21 11:47:33 $ 26 26 // 27 27 //////////////////////////////////////////////////////////////////////// … … 62 62 #include "MMcEvt.h" 63 63 #include "MMcTrig.hxx" 64 #include "MHeaderTrig.hxx" 64 65 65 66 /*!@" … … 437 438 438 439 int ntrigger = 0; //@< number of triggers in the whole file 440 int btrigger = 0; //@< trigger flag 439 441 int ithrescount; //@< counter for loop over threshold trigger 440 442 int imulticount; //@< counter for loop over multiplicity trigger 441 443 int itopocount; //@< counter for loop over topology trigger 444 int icontrigger; //@< number of trigger conditions to be analised 445 UShort_t numPix; //@< number of sets of fadc written counts 446 442 447 float fpixelthres[TRIGGER_PIXELS]; 443 448 … … 533 538 Trigger_Loop = get_Trigger_Loop(&Trigger_loop_lthres, &Trigger_loop_uthres, &Trigger_loop_lmult, &Trigger_loop_umult, &Trigger_loop_ltop, &Trigger_loop_utop); 534 539 540 icontrigger =(Trigger_loop_uthres-Trigger_loop_lthres+1)* 541 (Trigger_loop_umult-Trigger_loop_lmult+1)* 542 (Trigger_loop_utop-Trigger_loop_ltop+1); 543 535 544 if (!Trigger_Loop){ 536 545 get_Trigger_Single (&Trigger_threshold, &Trigger_multiplicity, &Trigger_topology); 546 icontrigger=1; 537 547 } 538 548 … … 675 685 MTrigger Trigger(Trigger_gate_length, Trigger_response_ampl, Trigger_response_fwhm); //@< A instance of the Class MTrigger 676 686 677 MMcTrig *McTrig = new MMcTrig() ; 687 // Initialise McTrig information class if we want to save trigger informtion 688 689 MMcTrig **McTrig; 690 MHeaderTrig **HeaderTrig; 691 692 if (Write_McTrig){ 693 694 McTrig = new MMcTrig * [icontrigger]; 695 696 for (i=0;i<icontrigger;i++) { 697 McTrig[i] = new MMcTrig(); 698 } 699 700 HeaderTrig = new MHeaderTrig * [icontrigger]; 701 702 for (i=0;i<icontrigger;i++) { 703 HeaderTrig[i] = new MHeaderTrig(); 704 } 705 } 678 706 679 707 MFadc fadc ; //@< A instance of the Class MFadc … … 682 710 // Prepare the raw data output 683 711 684 MRawEvt *Evt = new MRawEvt() ; 712 MRawEvt **Evt; 713 714 if (Write_RawEvt) { 715 Evt = new MRawEvt * [icontrigger]; 716 717 for (i=0;i<icontrigger;i++) { 718 Evt[i] = new MRawEvt(); 719 } 720 } 721 685 722 MMcEvt *McEvt = new MMcEvt (); 686 723 … … 691 728 TFile outfile_temp ( rootname , "RECREATE" ); 692 729 693 730 Int_t bsize=128000; Int_t split=1; 731 732 // create a Tree for the Header Event 733 TTree HeaderTree("HeaderTree","Header of Run"); 734 735 // define branches of Header Tree 736 737 char help[4]; 738 739 if(!Trigger_Loop && Write_McTrig){ 740 741 HeaderTree.Branch("MHeaderTrig","MHeaderTrig", 742 &HeaderTrig[0], bsize, split); 743 } 744 if (Trigger_Loop && Write_McTrig){ 745 for(char branchname[10],i=0;i<icontrigger;i++){ 746 747 sprintf(help,"%i",i+1); 748 strcpy (branchname, "MHeaderTrig"); 749 strcat (branchname, & help[0]); 750 strcat (branchname, "."); 751 HeaderTree.Branch(branchname,"MHeaderTrig", 752 &HeaderTrig[i], bsize, split); 753 } 754 } 755 756 // Fill branches 757 758 if(!Trigger_Loop && Write_McTrig){ 759 760 HeaderTrig[0]->SetTopology((Short_t) Trigger_topology); 761 HeaderTrig[0]->SetMultiplicity((Short_t) Trigger_multiplicity); 762 for(i=0;i<TRIGGER_PIXELS;i++){ 763 fpixelthres[i]=(Float_t)Trigger_threshold; 764 } 765 HeaderTrig[0]->SetThreshold( fpixelthres); 766 767 } 768 if(Trigger_Loop && Write_McTrig){ 769 770 for (int iconcount=0,ithrescount=0;ithrescount<=Trigger_loop_uthres-Trigger_loop_lthres;ithrescount++){ 771 for (imulticount=0;imulticount<=Trigger_loop_umult-Trigger_loop_lmult;imulticount++){ 772 for(itopocount=0;itopocount<=Trigger_loop_utop-Trigger_loop_ltop;itopocount++){ 773 HeaderTrig[iconcount]->SetTopology((Short_t) itopocount+Trigger_loop_ltop); 774 HeaderTrig[iconcount]->SetMultiplicity((Short_t) imulticount+Trigger_loop_lmult); 775 for(i=0;i<TRIGGER_PIXELS;i++){ 776 fpixelthres[i]=(Float_t)(ithrescount+Trigger_loop_lthres); 777 } 778 HeaderTrig[iconcount]->SetThreshold( fpixelthres); 779 iconcount++; 780 } 781 } 782 } 783 } 784 785 // Fill the Header Tree with the current leaves of each branch 786 HeaderTree.Fill() ; 787 788 694 789 // create a Tree for the Event data stream 695 790 TTree EvtTree("EvtTree","Events of Run"); 696 791 697 Int_t bsize=128000; Int_t split=1; 792 if (Write_McEvt){ 793 794 EvtTree.Branch("MMcEvt","MMcEvt", 795 &McEvt, bsize, split); 796 } 698 797 699 798 if(!Trigger_Loop){ 700 799 701 EvtTree.Branch("MRawEvt","MRawEvt", 702 &Evt, bsize, split); 703 } 704 705 EvtTree.Branch("MMcEvt","MMcEvt", 706 &McEvt, bsize, split); 707 708 EvtTree.Branch("MMcTrig","MMcTrig", 709 &McTrig, bsize, split); 710 711 712 // create a Tree for the Event data stream 713 TTree EvtTree_loop("EvtTree","Events of Run"); 800 if (Write_RawEvt){ 801 EvtTree.Branch("MRawEvt","MRawEvt", 802 &Evt[0], bsize, split); 803 } 804 if (Write_McTrig){ 805 EvtTree.Branch("MMcTrig","MMcTrig", 806 &McTrig[0], bsize, split); 807 } 808 } 809 else{ 810 if (Write_McTrig){ 811 for(char branchname[10],i=0;i<icontrigger;i++){ 812 813 sprintf(help,"%i",i+1); 814 strcpy (branchname, "MMcTrig"); 815 strcat (branchname, & help[0]); 816 strcat (branchname, "."); 817 EvtTree.Branch(branchname,"MMcTrig", 818 &McTrig[i], bsize, split); 819 } 820 } 821 } 714 822 715 823 if (Trigger_Loop && Write_RawEvt){ 716 717 EvtTree_loop.Branch("MRawEvt","MRawEvt", 718 &Evt, bsize, split); 719 720 EvtTree_loop.Branch("MMcEvt","MMcEvt", 721 &McEvt, bsize, split); 722 723 EvtTree_loop.Branch("MMcTrig","MMcTrig", 724 &McTrig, bsize, split); 725 824 for(char branchname[10],i=0;i<icontrigger;i++){ 825 826 sprintf(help,"%i",i+1); 827 strcpy (branchname, "MRawEvt"); 828 strcat (branchname, & help[0]); 829 strcat (branchname, "."); 830 EvtTree.Branch(branchname,"MRawEvt", 831 &Evt[i], bsize, split); 832 } 726 833 } 727 834 … … 853 960 if(!isA( flag, FLAG_START_OF_RUN )){ 854 961 855 //We write some trigger information in data file before exit856 857 datafile<<ntshow<<" event(s), with a total of "<<ntcph<<" C.photons"<<endl;858 if (Trigger_Loop){859 datafile<<"Fraction of triggers: "<<endl;860 for (ithrescount=Trigger_loop_lthres;ithrescount<=Trigger_loop_uthres;ithrescount++){861 for (imulticount=Trigger_loop_lmult;imulticount<=Trigger_loop_umult;imulticount++){862 for(itopocount=Trigger_loop_ltop;itopocount<=Trigger_loop_utop;itopocount++){863 datafile<<"Thres "<<ithrescount<<", Multi "<<imulticount<<", Topo"<<itopocount<<": ";864 datafile<<((float)ntriggerloop[ithrescount-Trigger_loop_lthres][imulticount-Trigger_loop_lmult][itopocount-Trigger_loop_ltop] / ((float)ntshow) * 100.0)<<"% ("<<ntriggerloop[ithrescount-Trigger_loop_lthres][imulticount-Trigger_loop_lmult][itopocount-Trigger_loop_ltop]<<" out of "<<ntshow<<")"<<endl;865 }866 }867 }868 }869 else{870 datafile<<"Fraction of triggers: "<<((float)ntrigger) / ((float)ntshow) * 100.0<<" ("<<ntrigger<<" out of "<<ntshow<<" )"<<endl;871 }872 962 // We exit 873 error( SIGNATURE, "Expected start of run flag, but found: %s\n", flag ); 963 //error( SIGNATURE, "Expected start of run flag, but found: %s\n", flag ); 964 // We break the main loop 965 cout<<"Warning: Expected start of run flag, but found:"<<flag<<endl; 966 cout<<" We break the main loop"<<endl; 967 break; 874 968 } 875 969 else { // found start of run … … 1064 1158 1065 1159 cout << "Total number of phes: " << inumphe <<endl; 1160 1066 1161 1067 1162 //++++++++++++++++++++++++++++++++++++++++++++++++++ … … 1084 1179 // 1085 1180 Trigger.ElecNoise() ; 1181 1086 1182 fadc.ElecNoise() ; 1087 1183 1088 1184 // We study several trigger conditons 1089 1185 if(Trigger_Loop){ 1090 1186 // Loop over trigger threshold 1091 for (i threscount=Trigger_loop_lthres;ithrescount<=Trigger_loop_uthres;ithrescount++){1187 for (int iconcount=0,ithrescount=Trigger_loop_lthres;ithrescount<=Trigger_loop_uthres;ithrescount++){ 1092 1188 for (i=0;i<TRIGGER_PIXELS;i++) 1093 1189 fpixelthres[i]=(float) ithrescount; … … 1103 1199 // CHANNEL_THRESHOLD. 1104 1200 // 1201 1202 // Set trigger flags to zero 1203 Lev1=Lev2=0; 1204 btrigger=0; 1105 1205 1106 1206 // loop over multiplicity of trigger configuration … … 1110 1210 1111 1211 Lev0=(Short_t) Trigger.ZeroLevel(); 1112 if (Lev0>0 || Write_All_Images){ 1113 Lev1=Lev2=0; 1114 1212 if (Lev0>0 || Write_All_Images || btrigger){ 1213 1115 1214 // loop over topologies 1116 1215 for(itopocount=Trigger_loop_ltop;itopocount<=Trigger_loop_utop;itopocount++){ 1216 Lev1=Lev2=0; 1217 1117 1218 if(itopocount==0 && imulticount>7) continue; 1118 1219 if(itopocount==2 && imulticount<3) continue; 1119 1220 Trigger.SetTopology(itopocount); 1120 1221 Trigger.ClearFirst(); 1121 1222 1122 1223 // 1123 1224 // Start the First Level Trigger simulation 1124 1225 // 1125 McTrig->SetFirstLevel (Lev1=Trigger.FirstLevel()); 1226 Lev1=Trigger.FirstLevel(); 1227 if (Write_McTrig) 1228 McTrig[iconcount]->SetFirstLevel (Lev1); 1126 1229 if(Lev1>0) { 1230 btrigger= 1; 1127 1231 ntriggerloop[ithrescount-Trigger_loop_lthres][imulticount-Trigger_loop_lmult][itopocount-Trigger_loop_ltop]++; 1128 McTrig->SetTopology(itopocount);1129 McTrig->SetMultiplicity(imulticount);1130 McTrig->SetThreshold(fpixelthres);1131 1232 } 1132 if(Lev1==0 && Write_All_Images){ 1133 McTrig->SetTopology(itopocount); 1134 McTrig->SetMultiplicity(imulticount); 1135 McTrig->SetThreshold(fpixelthres); 1233 1234 if(Lev1==0 && (Write_All_Images || btrigger)){ 1235 btrigger= 1; 1136 1236 Lev1=1; 1137 1237 } 1238 numPix=0; 1138 1239 for (Int_t ii=0;ii<Lev1;ii++){ 1139 McTrig->SetTime(Trigger.GetFirstLevelTime(ii)); 1140 McTrig->SetPixel(Trigger.GetFirstLevelPixel(ii)); 1240 if (Write_McTrig) 1241 McTrig[iconcount]->SetTime(Trigger.GetFirstLevelTime(ii),ii+1); 1242 if (Write_McTrig) 1243 McTrig[iconcount]->SetPixel(Trigger.GetFirstLevelPixel(ii),ii+1); 1244 1245 // 1246 // fill inside the class fadc the member output 1247 // 1248 1141 1249 fadc.TriggeredFadc(Trigger.GetFirstLevelTime(ii)); 1142 1143 // fill pixel information 1144 1145 for(i=0;i<iMAXNUMPIX;i++){ 1146 for (j=0;j<SLICES_MFADC;j++){ 1147 fadcValues[j]=fadc.GetFadcSignal(i,j); 1148 } 1149 } 1150 1250 1151 1251 if( Write_RawEvt ){ 1152 1252 // … … 1154 1254 // 1155 1255 1156 Evt->FillHeader ( (UShort_t) (ntshow + nshow) , 20 ) ; 1157 1256 Evt[iconcount]->FillHeader ( (UInt_t) (ntshow + nshow),(Float_t) (nshow*10000+iconcount*100+ii),0 ); 1158 1257 // fill pixel information 1159 1160 Evt->FillPixel(i,fadcValues); 1161 1162 // 1163 // fill the MMcEvt with all information 1164 // 1165 1166 McEvt->Fill( (UShort_t) mcevth.get_primary() , 1167 mcevth.get_energy(), 1168 mcevth.get_theta(), 1169 mcevth.get_phi(), 1170 mcevth.get_core(), 1171 mcevth.get_coreX(), 1172 mcevth.get_coreY(), 1173 impactD, 1174 ulli, ulli, 1175 (UShort_t) ncph, 1176 ulli, 1177 (UShort_t) ncph) ; 1178 // We don not count phtons out of the camera. 1179 1180 // 1181 // write it out to the file outfile 1182 // 1183 1184 EvtTree_loop.Fill() ; 1185 1186 // clear all 1187 Evt->Clear() ; 1188 McEvt->Clear() ; 1258 for(i=0;i<ct_NPixels;i++){ 1259 for (j=0;j<SLICES_MFADC;j++){ 1260 fadcValues[j]=fadc.GetFadcSignal(i,j); 1261 } 1262 Evt[iconcount]->FillPixel(i+1000*ii,&numPix,fadcValues); 1263 } 1189 1264 } 1190 1265 } 1191 1266 // 1192 // fill the MMcEvt with all information1267 // Increase counter of analised trigger conditions 1193 1268 // 1194 1195 McEvt->Fill( (UShort_t) mcevth.get_primary() , 1196 mcevth.get_energy(), 1197 mcevth.get_theta(), 1198 mcevth.get_phi(), 1199 mcevth.get_core(), 1200 mcevth.get_coreX(), 1201 mcevth.get_coreY(), 1202 impactD, 1203 ulli, ulli, 1204 (UShort_t) ncph, 1205 ulli, 1206 (UShort_t) ncph) ; 1207 1208 EvtTree.Fill() ; 1209 1210 McTrig->Clear() ; 1269 iconcount++; 1211 1270 } 1212 1271 } 1213 else break; 1272 else{ 1273 break; 1274 } 1214 1275 } 1276 if (!btrigger) break; 1277 } 1278 if (btrigger){ 1279 1280 // 1281 // fill the MMcEvt with all information 1282 // 1283 1284 if (Write_McEvt) { 1285 McEvt->Fill( (UShort_t) mcevth.get_primary() , 1286 mcevth.get_energy(), 1287 mcevth.get_theta(), 1288 mcevth.get_phi(), 1289 mcevth.get_core(), 1290 mcevth.get_coreX(), 1291 mcevth.get_coreY(), 1292 impactD, 1293 ulli, ulli, 1294 (UShort_t) ncph, 1295 ulli, 1296 (UShort_t) ncph) ; 1297 } 1298 // Fill the Tree with the current leaves of each branch 1299 i=EvtTree.Fill() ; 1300 1301 // Clear the branches 1302 if(Write_McTrig){ 1303 for(i=0;i<icontrigger;i++){ 1304 McTrig[i]->Clear() ; 1305 } 1306 } 1307 if( Write_RawEvt ){ 1308 for(i=0;i<icontrigger;i++){ 1309 Evt[i]->Clear() ; 1310 } 1311 } 1312 if (Write_McEvt) 1313 McEvt->Clear() ; 1215 1314 } 1216 1315 } … … 1245 1344 1246 1345 if ( Lev0 > 0 || Write_All_Images) { 1247 McTrig->SetFirstLevel (Lev1= Trigger.FirstLevel()); 1346 Lev1= Trigger.FirstLevel(); 1347 if (Write_McTrig) 1348 McTrig[0]->SetFirstLevel (Lev1); 1248 1349 } 1249 1350 if (Lev1>0){ … … 1253 1354 Lev1=1; 1254 1355 } 1255 McTrig->SetTopology(Trigger.GetTopology()); 1256 McTrig->SetMultiplicity(Trigger.GetMultiplicity()); 1257 for(i=0;i<TRIGGER_PIXELS;i++){ 1258 fpixelthres[i]=Trigger.GetThreshold(i); 1259 } 1260 McTrig->SetThreshold(fpixelthres); 1261 1356 1357 numPix=0; 1262 1358 for(Int_t ii=0;ii<Lev1;ii++){ 1263 1359 // Loop over different level one triggers 1360 1361 // 1362 // fill inside class fadc the member output 1363 // 1264 1364 fadc.TriggeredFadc(Trigger.GetFirstLevelTime(ii)); 1265 McTrig->SetTime(Trigger.GetFirstLevelTime(ii)); 1266 McTrig->SetPixel(Trigger.GetFirstLevelPixel(ii)); 1267 1268 // 1269 // Fill the header of this event 1270 // 1271 1272 Evt->FillHeader ( (UShort_t) (ntshow + nshow) , 20 ) ; 1273 1274 // fill pixel information 1275 1276 for(i=0;i<iMAXNUMPIX;i++){ 1277 for (j=0;j<SLICES_MFADC;j++){ 1278 fadcValues[j]=fadc.GetFadcSignal(i,j); 1365 1366 if (Write_McTrig) 1367 McTrig[0]->SetTime(Trigger.GetFirstLevelTime(ii),ii+1); 1368 1369 if (Write_McTrig) 1370 McTrig[0]->SetPixel(Trigger.GetFirstLevelPixel(ii),ii+1); 1371 1372 // Fill Evt information 1373 1374 if (Write_RawEvt){ 1375 1376 // 1377 // Fill the header of this event 1378 // 1379 1380 Evt[0]->FillHeader ( (UShort_t) (ntshow + nshow) , 20 ) ; 1381 1382 // fill pixel information 1383 1384 for(i=0;i<ct_NPixels;i++){ 1385 for (j=0;j<SLICES_MFADC;j++){ 1386 fadcValues[j]=fadc.GetFadcSignal(i,j); 1387 } 1388 Evt[0]->FillPixel(i,&numPix,fadcValues); 1279 1389 } 1280 Evt->FillPixel(i,fadcValues); 1281 } 1282 1390 } 1283 1391 // 1284 1392 // fill the MMcEvt with all information 1285 1393 // 1286 1394 1287 McEvt->Fill( (UShort_t) mcevth.get_primary() , 1288 mcevth.get_energy(), 1289 mcevth.get_theta(), 1290 mcevth.get_phi(), 1291 mcevth.get_core(), 1292 mcevth.get_coreX(), 1293 mcevth.get_coreY(), 1294 impactD, 1295 ulli, ulli, 1296 (UShort_t) ncph, 1297 ulli, 1298 (UShort_t) ncph) ; 1299 1395 if (Write_McEvt){ 1396 McEvt->Fill( (UShort_t) mcevth.get_primary() , 1397 mcevth.get_energy(), 1398 mcevth.get_theta(), 1399 mcevth.get_phi(), 1400 mcevth.get_core(), 1401 mcevth.get_coreX(), 1402 mcevth.get_coreY(), 1403 impactD, 1404 ulli, ulli, 1405 (UShort_t) ncph, 1406 ulli, 1407 (UShort_t) ncph) ; 1408 } 1300 1409 // We don not count photons out of the camera. 1301 1410 … … 1327 1436 1328 1437 // clear all 1329 Evt->Clear() ;1330 McEvt->Clear() ;1438 if (Write_RawEvt) Evt[0]->Clear() ; 1439 if (Write_McEvt) McEvt->Clear() ; 1331 1440 } 1332 McTrig->Clear() ;1441 if (Write_McTrig) McTrig[0]->Clear() ; 1333 1442 } 1334 1443 … … 1383 1492 log(SIGNATURE, "End of file . . .\n"); 1384 1493 still_in_loop = FALSE; 1385 1494 1386 1495 if ((! Data_From_STDIN) && ( !feof(inputfile) )){ 1387 1496 … … 1394 1503 1395 1504 } 1505 1506 fread( flag, SIZE_OF_FLAGS, 1, inputfile ); 1396 1507 1397 1508 } // end if found end of file 1398 1509 } // end if found end of run 1399 1400 fread( flag, SIZE_OF_FLAGS, 1, inputfile );1401 1510 1402 1511 } // end if else found start of run … … 1407 1516 //-- 1408 1517 1518 HeaderTree.Write() ; 1409 1519 EvtTree.Write() ; 1410 1520 outfile_temp.Write() ; … … 1416 1526 1417 1527 TFile outfile ( rootname , "RECREATE" ); 1528 HeaderTree.Write() ; 1418 1529 EvtTree.Write() ; 1419 1530 outfile.Write() ; 1420 1531 outfile.Close() ; 1421 1532 1422 if(Trigger_Loop && Write_RawEvt){1423 //++1424 // put the Event to the special root file1425 //--1426 TFile outfile_loop( rootname_loop , "RECREATE" );1427 EvtTree_loop.Write() ;1428 outfile_loop.Write() ;1429 1430 outfile_loop.Close() ;1431 }1432 1533 // close input file 1433 1534 … … 2352 2453 b = pcam->dpixdiameter_cm / 2. * pcam->dpixsizefactor[ipixnum]; 2353 2454 a = pcam->dpixdiameter_cm / sqrt(3.) * pcam->dpixsizefactor[ipixnum]; 2354 c = 1. - 1./sqrt(3.); 2455 c = 1./sqrt(3.); 2456 2355 2457 if((ipixnum < 0)||(ipixnum >= pcam->inumpixels)){ 2356 2458 fprintf(stderr, "Error in bpoint_is_in_pix: invalid pixel number %d\n", ipixnum); … … 2543 2645 cx = photon.get_x(); 2544 2646 cy = photon.get_y(); 2545 2647 2546 2648 // get wavelength 2547 2649 … … 2573 2675 } 2574 2676 } 2575 2677 2576 2678 if(ipixnum==-1){// the photon is in none of the pixels 2577 2679 … … 2585 2687 continue; 2586 2688 } 2587 2689 2690 if(ipixnum==0) {// the phton is in the central pixel, which is not used for trigger 2691 // read next CPhoton 2692 2693 fread ( flag, SIZE_OF_FLAGS, 1, sp ); 2694 2695 // go to beginning of loop, the photon is lost 2696 continue; 2697 } 2588 2698 //+++ 2589 2699 // QE simulation … … 2596 2706 // check if wl is inside table; outside the table, QE is assumed to be zero 2597 2707 2708 2598 2709 if((wl < qept[0][0]) || (wl > qept[0][pointsQE-1])){ 2599 2710 … … 2619 2730 2620 2731 qe = lin_interpol(qept[0][k-1], qept[1][k-1], qept[0][k], qept[1][k], wl) / 100.0; 2621 2732 2622 2733 // if random > quantum efficiency, reject it 2623 2624 if ( RandomNumber> qe ) {2734 2735 if ( (RandomNumber) > qe ) { 2625 2736 2626 2737 // cout << " lost\n"; 2627 2738 2628 2739 // read next Photon 2629 2740 … … 2955 3066 // 2956 3067 // $Log: not supported by cvs2svn $ 3068 // Revision 1.10 2000/07/04 14:10:20 MagicSol 3069 // Some changes have been done in the root output file. The RawEvt tree is only 3070 // stored in the single trigger mode. 3071 // The trigger input parameters are also given by the general input card. 3072 // The diffuse NSB and the star NSB have been decoupled. Now the contribution of 3073 // each one can be studied seperately. 3074 // 2957 3075 // Revision 1.9 2000/06/13 13:25:24 blanch 2958 3076 // The multiple arrays have been replaced, since they do not work
Note:
See TracChangeset
for help on using the changeset viewer.