Changeset 4241 for trunk/MagicSoft/Mars
- Timestamp:
- 05/30/04 13:49:30 (20 years ago)
- Location:
- trunk/MagicSoft/Mars
- Files:
-
- 2 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/Changelog
r4235 r4241 18 18 19 19 -*-*- END OF LINE -*-*- 20 21 2004/05/30: Markus Gaug 22 23 * mcalib/MCalibrationQEPix.[h,cc] 24 - added more documentation (plots) 25 - separated calls for light guides eff. , QE, and coll. eff. 26 20 27 21 28 2004/05/28: Markus Gaug -
trunk/MagicSoft/Mars/mcalib/MCalibrationQEPix.cc
r4223 r4241 101 101 // 40. 0.236 102 102 // 60. 0.234 103 // (from D.Paneque et al., NIM A 504, 2003, 109-115 103 // (from D.Paneque et al., NIM A 504, 2003, 109-115, see following figure with the 104 // photon spectra at 2200 m altitude:) 105 // 106 //Begin_Html 107 /* 108 <img src="images/Photon_spectrum.png"> 109 */ 110 //End_Html 104 111 // 105 112 // * PMT photoelectron collection efficiency: 0.9 … … 144 151 /* 145 152 <img src="images/JuergensMeasurementWithCosThetaCurve.png"> 153 */ 154 //End_Html 155 // 156 // The Quantum efficiencies for individual colours have been taken from: 157 // D. Paneque et al., A Method to enhance the sensitivity of photomultipliers 158 // of air Cherenkov Telescopes, NIM A 504, 2003, 109-115 159 // (see following figure) 160 // 161 //Begin_Html 162 /* 163 <img src="images/QE_Paneque.png"> 146 164 */ 147 165 //End_Html … … 178 196 const Float_t MCalibrationQEPix::gkDefaultAverageQEErr = 0.02 ; 179 197 const Float_t MCalibrationQEPix::gkPMTCollectionEff = 0.90 ; 180 const Float_t MCalibrationQEPix::gkLightGuidesEff = 0.94 ;181 198 const Float_t MCalibrationQEPix::gkPMTCollectionEffErr = 0.01 ; 182 const Float_t MCalibrationQEPix::gkLightGuidesEffErr = 0.03 ; 199 const Float_t MCalibrationQEPix::gkLightGuidesEffGreen = 0.94 ; 200 const Float_t MCalibrationQEPix::gkLightGuidesEffGreenErr = 0.03 ; 201 const Float_t MCalibrationQEPix::gkLightGuidesEffBlue = 0.94 ; 202 const Float_t MCalibrationQEPix::gkLightGuidesEffBlueErr = 0.03 ; 203 const Float_t MCalibrationQEPix::gkLightGuidesEffUV = 0.94 ; 204 const Float_t MCalibrationQEPix::gkLightGuidesEffUVErr = 0.03 ; 205 const Float_t MCalibrationQEPix::gkLightGuidesEffCT1 = 0.94 ; 206 const Float_t MCalibrationQEPix::gkLightGuidesEffCT1Err = 0.03 ; 183 207 // -------------------------------------------------------------------------- 184 208 // … … 224 248 if (IsBlindPixelMethodValid (col)) 225 249 { 226 const Float_t newavqe = GetQEBlindPixel(col) / GetDefaultQE (col) ; 227 const Float_t newavqevar = ( GetQEBlindPixelRelVar(col) + GetDefaultQERelVar(col) ) * newavqe * newavqe; 250 const Float_t newavqe = GetQEBlindPixel (col) / GetDefaultQE (col) 251 / GetLightGuidesEff (col) / GetPMTCollectionEff(); 252 const Float_t newavqevar = ( GetQEBlindPixelRelVar(col) + GetDefaultQERelVar(col) 253 + GetLightGuidesEffRelVar(col) + GetPMTCollectionEffRelVar() ) 254 * newavqe * newavqe; 228 255 const Float_t weight = 1./newavqevar; 229 256 … … 246 273 if (IsCombinedMethodValid (col)) 247 274 { 248 const Float_t newavqe = GetQECombined(col) / GetDefaultQE (col) ; 249 const Float_t newavqevar = ( GetQECombinedRelVar(col) + GetDefaultQERelVar(col) ) * newavqe * newavqe; 275 const Float_t newavqe = GetQECombined(col) / GetDefaultQE (col) 276 / GetLightGuidesEff (col) / GetPMTCollectionEff(); 277 const Float_t newavqevar = ( GetQECombinedRelVar(col) + GetDefaultQERelVar(col) 278 + GetLightGuidesEffRelVar(col) + GetPMTCollectionEffRelVar() ) 279 * newavqe * newavqe; 250 280 const Float_t weight = 1./newavqevar; 251 281 wav += newavqe * weight; … … 268 298 if (IsFFactorMethodValid (col)) 269 299 { 270 const Float_t newavqe = GetQEFFactor(col) / GetDefaultQE (col) ; 271 const Float_t newavqevar = ( GetQEFFactorRelVar(col) + GetDefaultQERelVar(col) ) * newavqe * newavqe; 300 const Float_t newavqe = GetQEFFactor(col) / GetDefaultQE (col) 301 / GetLightGuidesEff (col) / GetPMTCollectionEff(); 302 const Float_t newavqevar = ( GetQEFFactorRelVar(col) + GetDefaultQERelVar(col) 303 + GetLightGuidesEffRelVar(col) + GetPMTCollectionEffRelVar() ) 304 * newavqe * newavqe; 272 305 const Float_t weight = 1./newavqevar; 273 306 … … 293 326 if (IsPINDiodeMethodValid (col)) 294 327 { 295 const Float_t newavqe = GetQEPINDiode(col) / GetDefaultQE (col) ; 296 const Float_t newavqevar = ( GetQEPINDiodeRelVar(col) + GetDefaultQERelVar(col) ) * newavqe * newavqe; 328 const Float_t newavqe = GetQEPINDiode(col) / GetDefaultQE (col) 329 / GetLightGuidesEff (col) / GetPMTCollectionEff(); 330 const Float_t newavqevar = ( GetQEPINDiodeRelVar(col) + GetDefaultQERelVar(col) 331 + GetLightGuidesEffRelVar(col) + GetPMTCollectionEffRelVar() ) 332 * newavqe * newavqe; 297 333 const Float_t weight = 1./newavqevar; 298 334 wav += newavqe *weight; … … 394 430 // 395 431 // Return the average Default QE (depending on zenith angle) 432 // FIXME: The zenith angle dependency is not yet implemented 396 433 // 397 434 const Float_t MCalibrationQEPix::GetAverageQE( const Float_t zenith ) const … … 404 441 // 405 442 // Return the relative variance of the average Default QE (depending on zenith angle) 443 // FIXME: The zenith angle dependency is not yet implemented 406 444 // 407 445 const Float_t MCalibrationQEPix::GetAverageQERelVar( const Float_t zenith ) const … … 413 451 // 414 452 // Return the relative variance of the average normalization (Blind Pixel Method) 453 // FIXME: The zenith angle dependency is not yet implemented 415 454 // 416 455 const Float_t MCalibrationQEPix::GetAvNormBlindPixelRelVar( ) const … … 422 461 // 423 462 // Return the relative variance of the average normalization (Combined Method) 463 // FIXME: The zenith angle dependency is not yet implemented 424 464 // 425 465 const Float_t MCalibrationQEPix::GetAvNormCombinedRelVar( ) const … … 440 480 // 441 481 // Return the relative variance of the average normalization (PIN Diode Method) 482 // FIXME: The zenith angle dependency is not yet implemented 442 483 // 443 484 const Float_t MCalibrationQEPix::GetAvNormPINDiodeRelVar( ) const … … 455 496 { 456 497 case MCalibrationCam::kGREEN: 457 return gkDefaultQEGreen * gkPMTCollectionEff * gkLightGuidesEff;498 return gkDefaultQEGreen; 458 499 break; 459 500 case MCalibrationCam::kBLUE: 460 return gkDefaultQEBlue * gkPMTCollectionEff * gkLightGuidesEff;501 return gkDefaultQEBlue; 461 502 break; 462 503 case MCalibrationCam::kUV: 463 return gkDefaultQEUV * gkPMTCollectionEff * gkLightGuidesEff;504 return gkDefaultQEUV; 464 505 break; 465 506 case MCalibrationCam::kCT1: 466 return gkDefaultQECT1 * gkPMTCollectionEff * gkLightGuidesEff;507 return gkDefaultQECT1; 467 508 break; 468 509 default: 469 return gkDefaultQECT1 * gkPMTCollectionEff * gkLightGuidesEff;510 return gkDefaultQECT1; 470 511 break; 471 512 } … … 479 520 Float_t MCalibrationQEPix::GetDefaultQERelVar( const MCalibrationCam::PulserColor_t col ) const 480 521 { 481 482 Float_t collpluslgrelvar = gkPMTCollectionEffErr * gkPMTCollectionEffErr483 / gkPMTCollectionEff / gkPMTCollectionEff;484 485 collpluslgrelvar += gkLightGuidesEffErr * gkLightGuidesEffErr486 / gkLightGuidesEff / gkLightGuidesEffErr;487 522 488 523 switch (col) 489 524 { 490 525 case MCalibrationCam::kGREEN: 491 return collpluslgrelvar +gkDefaultQEGreenErr * gkDefaultQEGreenErr / (gkDefaultQEGreen * gkDefaultQEGreen );526 return gkDefaultQEGreenErr * gkDefaultQEGreenErr / (gkDefaultQEGreen * gkDefaultQEGreen ); 492 527 break; 493 528 case MCalibrationCam::kBLUE: 494 return collpluslgrelvar +gkDefaultQEBlueErr * gkDefaultQEBlueErr / (gkDefaultQEBlue * gkDefaultQEBlue );529 return gkDefaultQEBlueErr * gkDefaultQEBlueErr / (gkDefaultQEBlue * gkDefaultQEBlue ); 495 530 break; 496 531 case MCalibrationCam::kUV: 497 return collpluslgrelvar +gkDefaultQEUVErr * gkDefaultQEUVErr / (gkDefaultQEUV * gkDefaultQEUV );532 return gkDefaultQEUVErr * gkDefaultQEUVErr / (gkDefaultQEUV * gkDefaultQEUV ); 498 533 break; 499 534 case MCalibrationCam::kCT1: 500 return collpluslgrelvar +gkDefaultQECT1Err * gkDefaultQECT1Err / (gkDefaultQECT1 * gkDefaultQECT1 );535 return gkDefaultQECT1Err * gkDefaultQECT1Err / (gkDefaultQECT1 * gkDefaultQECT1 ); 501 536 break; 502 537 default: 503 return collpluslgrelvar +gkDefaultQECT1Err * gkDefaultQECT1Err / (gkDefaultQECT1 * gkDefaultQECT1 );538 return gkDefaultQECT1Err * gkDefaultQECT1Err / (gkDefaultQECT1 * gkDefaultQECT1 ); 504 539 break; 505 540 } 506 541 return -1.; 507 542 } 543 544 // ------------------------------------------------------------------------------ 545 // 546 // Get the light guides efficiency depending on the pulser colour "col" 547 // FIXME: Lacking detailed measurement, these number are not yet available 548 // for the individual colours and therefore, only one same number is 549 // returned, namely gkLightGuidesEff 550 // 551 Float_t MCalibrationQEPix::GetLightGuidesEff( const MCalibrationCam::PulserColor_t col ) const 552 { 553 switch (col) 554 { 555 case MCalibrationCam::kGREEN: 556 return gkLightGuidesEffGreen; 557 break; 558 case MCalibrationCam::kBLUE: 559 return gkLightGuidesEffBlue; 560 break; 561 case MCalibrationCam::kUV: 562 return gkLightGuidesEffUV; 563 break; 564 case MCalibrationCam::kCT1: 565 return gkLightGuidesEffCT1; 566 break; 567 default: 568 return gkLightGuidesEffCT1; 569 break; 570 } 571 return -1.; 572 } 573 574 // ------------------------------------------------------------------------------ 575 // 576 // Get the relative variance of the light guides efficiency depending on the 577 // pulser colour "col" 578 // FIXME: Lacking detailed measurement, these number are not yet available 579 // for the individual colours and therefore, only one same number is 580 // returned, namely gkLightGuidesEffErr^2 / gkLightGuidesEff^2 581 // 582 Float_t MCalibrationQEPix::GetLightGuidesEffRelVar( const MCalibrationCam::PulserColor_t col ) const 583 { 584 585 switch (col) 586 { 587 case MCalibrationCam::kGREEN: 588 return gkLightGuidesEffGreenErr * gkLightGuidesEffGreenErr / gkLightGuidesEffGreen / gkLightGuidesEffGreen; 589 break; 590 case MCalibrationCam::kBLUE: 591 return gkLightGuidesEffBlueErr * gkLightGuidesEffBlueErr / gkLightGuidesEffBlue / gkLightGuidesEffBlue; 592 break; 593 case MCalibrationCam::kUV: 594 return gkLightGuidesEffUVErr * gkLightGuidesEffUVErr / gkLightGuidesEffUV / gkLightGuidesEffUV; 595 break; 596 case MCalibrationCam::kCT1: 597 return gkLightGuidesEffCT1Err * gkLightGuidesEffCT1Err / gkLightGuidesEffCT1 / gkLightGuidesEffCT1; 598 break; 599 default: 600 return gkLightGuidesEffCT1Err * gkLightGuidesEffCT1Err / gkLightGuidesEffCT1 / gkLightGuidesEffCT1; 601 break; 602 } 603 return -1.; 604 } 605 606 // ------------------------------------------------------------------------------ 607 // 608 // Get the light guides efficiency for Cherenkov spectra, 609 // depending on the zenith angle of the telescope 610 // FIXME: Lacking detailed measurement, these number are not yet available 611 // for the individual colours and therefore, only one same number is 612 // returned, namely gkLightGuidesEffBlue 613 // 614 Float_t MCalibrationQEPix::GetLightGuidesEff( const Float_t zenith ) const 615 { 616 return gkLightGuidesEffBlue; 617 } 618 619 620 // ------------------------------------------------------------------------------ 621 // 622 // Get the relative variance of the light guides efficiency for Cherenkov spectra 623 // depending on the zenith angle of the telescope 624 // FIXME: Lacking detailed measurement, these number are not yet available 625 // for the individual colours and therefore, only one same number is 626 // returned, namely gkLightGuidesEffBlueErr^2 / gkLightGuidesBlueEff^2 627 // 628 Float_t MCalibrationQEPix::GetLightGuidesEffRelVar( const Float_t zenith ) const 629 { 630 return gkLightGuidesEffBlueErr * gkLightGuidesEffBlueErr / gkLightGuidesEffBlue / gkLightGuidesEffBlue; 631 } 632 633 508 634 509 635 // ------------------------------------------------------------------------------ … … 848 974 return ( GetAvNormPINDiodeRelVar() + GetAverageQERelVar(zenith)) 849 975 * GetQECascadesPINDiode(zenith) * GetQECascadesPINDiode(zenith); 976 } 977 978 // ----------------------------------------------------------------- 979 // 980 // Return the overall collection efficiency of the PMT 981 // 982 Float_t MCalibrationQEPix::GetPMTCollectionEff() const 983 { 984 return gkPMTCollectionEff; 985 } 986 987 // ----------------------------------------------------------------- 988 // 989 // Return the relative variance of the collection efficiency of the PMT 990 // 991 Float_t MCalibrationQEPix::GetPMTCollectionEffRelVar() const 992 { 993 return gkPMTCollectionEffErr * gkPMTCollectionEffErr / gkPMTCollectionEff / gkPMTCollectionEff; 850 994 } 851 995 -
trunk/MagicSoft/Mars/mcalib/MCalibrationQEPix.h
r4223 r4241 30 30 static const Float_t gkDefaultQEUVErr; //! Uncertainty Def. QE at 370 nm (now set to: 0.07) 31 31 static const Float_t gkDefaultQECT1Err; //! Uncertainty Def. QE at 370 nm (now set to: 0.07) 32 static const Float_t gkLightGuidesEffGreen; //! Default Light guides efficiency at 520 nm 33 static const Float_t gkLightGuidesEffGreenErr; //! Uncertainty Def. Light guides efficiency at 520 nm 34 static const Float_t gkLightGuidesEffBlue; //! Default Light guides efficiency at 460 nm 35 static const Float_t gkLightGuidesEffBlueErr; //! Uncertainty Def. Light guides efficiency at 460 nm 36 static const Float_t gkLightGuidesEffUV; //! Default Light guides efficiency at 370 nm 37 static const Float_t gkLightGuidesEffUVErr; //! Uncertainty Def. Light guides efficiency at 370 nm 38 static const Float_t gkLightGuidesEffCT1; //! Default Light guides efficiency at 370 nm 39 static const Float_t gkLightGuidesEffCT1Err; //! Uncertainty Def. Light guides efficiency at 370 nm 32 40 static const Float_t gkPMTCollectionEff; //! Default Collection efficiency of the PMTs 33 static const Float_t gkLightGuidesEff; //! Default overall Light guides efficiency34 41 static const Float_t gkPMTCollectionEffErr; //! Uncertainty Def. Collection efficiency of the PMTs (0.01) 35 static const Float_t gkLightGuidesEffErr; //! Uncertainty Def.overall Light guides efficiency (0.03)36 42 37 43 TArrayF fQEBlindPixel; // Calibrated QEs (Blind Pixel Method) … … 71 77 const Float_t GetAvNormFFactorRelVar() const; 72 78 const Float_t GetAvNormPINDiodeRelVar() const; 73 79 74 80 public: 75 81 … … 89 95 Float_t GetDefaultQE ( const MCalibrationCam::PulserColor_t col ) const; 90 96 Float_t GetDefaultQERelVar ( const MCalibrationCam::PulserColor_t col ) const; 97 Float_t GetLightGuidesEff ( const MCalibrationCam::PulserColor_t col ) const; 98 Float_t GetLightGuidesEffRelVar ( const MCalibrationCam::PulserColor_t col ) const; 99 Float_t GetLightGuidesEff ( const Float_t zenith=0.) const; 100 Float_t GetLightGuidesEffRelVar ( const Float_t zenith=0.) const; 91 101 Float_t GetQEBlindPixel ( const MCalibrationCam::PulserColor_t col ) const; 92 102 Float_t GetQEBlindPixelErr ( const MCalibrationCam::PulserColor_t col ) const; … … 113 123 Float_t GetQEPINDiodeErr ( const MCalibrationCam::PulserColor_t col ) const; 114 124 Float_t GetQEPINDiodeRelVar ( const MCalibrationCam::PulserColor_t col ) const; 125 Float_t GetPMTCollectionEff() const; 126 Float_t GetPMTCollectionEffRelVar() const; 115 127 116 128 Bool_t IsAverageQEBlindPixelAvailable () const; … … 160 172 Bool_t UpdatePINDiodeMethod (); 161 173 162 ClassDef(MCalibrationQEPix, 2) // Container Quantum Efficieny Calibration Results Pixel174 ClassDef(MCalibrationQEPix, 3) // Container Quantum Efficieny Calibration Results Pixel 163 175 }; 164 176
Note:
See TracChangeset
for help on using the changeset viewer.