Changeset 2725
- Timestamp:
- 12/19/03 15:41:03 (21 years ago)
- Location:
- trunk/MagicSoft/Mars
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/Changelog
r2723 r2725 4 4 5 5 -*-*- END OF LINE -*-*- 6 7 2003/12/19: Markus Gaug, Michele Doro 8 9 * manalysis/MExtractSignal.[h,cc] 10 * manalysis/MCalibrate.[h,cc] 11 * manalysis/MCalibrationCalc.[h,cc] 12 * manalysis/MCalibrationPix.[h,cc] 13 14 - Treatment of the conversion factors between HI Gain and Lo Gain 15 is now done in the MCalibrationPix. 16 17 MExtractSignal does not convert anymore, but MCalibrate searches 18 the conversion factor from MCalibrationPix. 19 This allows for different conversion factors for every pixel. 6 20 7 21 2003/12/18: Abelardo Moralejo -
trunk/MagicSoft/Mars/manalysis/MCalibrate.cc
r2720 r2725 44 44 45 45 #include "MCalibrate.h" 46 #include "MCalibrationConfig.h" 46 47 47 48 #include "MLog.h" … … 137 138 MCalibrationPix &pix = (*fCalibrations)[pixid]; 138 139 140 139 141 if (pix.IsBlindPixelMethodValid()) 140 142 { 141 143 MExtractedSignalPix &sig = (*fSignals)[pixid]; 142 144 143 Bool_t logain = sig.IsLoGainUsed();144 145 145 Float_t signal; 146 if (logain) 147 signal = sig.GetExtractedSignalLoGain(); 146 Float_t signalErr = 0.; 147 148 if (sig.IsLoGainUsed()) 149 { 150 signal = sig.GetExtractedSignalLoGain()*pix.GetConversionHiLo(); 151 signalErr = signal*pix.GetConversionHiLoError(); 152 } 148 153 else 149 signal = sig.GetExtractedSignalHiGain(); 150 151 154 { 155 signal = sig.GetExtractedSignalHiGain(); 156 } 157 152 158 // Float_t calibrationConvertionFactor = pix.GetMeanConversionFFactorMethod(); 153 Float_t calibrationConversionFactor = pix.GetMeanConversionBlindPixelMethod();159 Float_t calibrationConversionFactor = pix.GetMeanConversionBlindPixelMethod(); 154 160 Float_t calibrationConversionFactorError = pix.GetErrorConversionBlindPixelMethod(); 155 161 156 162 157 Float_t nphot = signal*calibrationConversionFactor; 158 Float_t nphoterr = signal*calibrationConversionFactorError;; 159 160 fCerPhotEvt->AddPixel(pixid, nphot, nphoterr); 163 Float_t nphot = signal*calibrationConversionFactor; 164 165 Float_t nphotErr = signal*calibrationConversionFactorError*signal*calibrationConversionFactorError; 166 nphotErr += signalErr*signalErr*calibrationConversionFactor*calibrationConversionFactor; 167 nphotErr = TMath::Sqrt(nphotErr); 168 169 fCerPhotEvt->AddPixel(pixid, nphot, nphotErr); 161 170 } 162 171 else -
trunk/MagicSoft/Mars/manalysis/MCalibrate.h
r2691 r2725 30 30 MExtractedSignalCam *fSignals; // Integrated charge in FADCs counts 31 31 MCerPhotEvt *fCerPhotEvt; // Cerenkov Photon Event used for calculation 32 33 Int_t PreProcess(MParList *pList); 34 Int_t Process(); 32 33 Float_t fConversionHiLo; 34 35 Int_t PreProcess(MParList *pList); 36 Int_t Process(); 35 37 36 38 public: … … 38 40 MCalibrate(const char *name=NULL, const char *title=NULL); 39 41 42 void SetConversionHiLo(Float_t conv) { fConversionHiLo = conv; } 43 40 44 ClassDef(MCalibrate, 0) // Task to calculate cerenkov photons using calibration constants 41 45 }; -
trunk/MagicSoft/Mars/manalysis/MCalibrationCalc.cc
r2699 r2725 124 124 SETBIT(fFlags, kUseBlindPixelFit); 125 125 SETBIT(fFlags, kUsePinDiodeFit); 126 126 127 } 127 128 … … 271 272 // FIXME: In the future need a much more sophisticated one!!! 272 273 // 273 274 274 275 while (pixel.Next()) 275 276 { … … 308 309 Float_t sumhi = sig.GetExtractedSignalHiGain(); 309 310 Float_t sumlo = sig.GetExtractedSignalLoGain(); 310 Bool_t logain = sig.IsLoGainUsed();311 312 311 Float_t mtime = sig.GetMeanArrivalTime(); 313 312 … … 356 355 << pixid << " signal = " << sumhi << " event Nr: " << fEvents << endl; 357 356 358 if ( logain)357 if (sig.IsLoGainUsed()) 359 358 { 360 359 -
trunk/MagicSoft/Mars/manalysis/MCalibrationCalc.h
r2699 r2725 46 46 Byte_t fFlags; // Flag for the fits used 47 47 48 48 Float_t fConversionHiLo; 49 49 50 enum { kUseTimeFits, kUseBlindPixelFit, kUsePinDiodeFit }; 50 51 … … 74 75 75 76 void SetPulserColor(PulserColor_t color) { fColor = color; } 77 78 void SetConversionHiLo(Float_t conv) { fConversionHiLo = conv; } 76 79 77 80 ClassDef(MCalibrationCalc, 1) // Task to fill the Calibration Containers from raw data -
trunk/MagicSoft/Mars/manalysis/MCalibrationPix.cc
r2719 r2725 83 83 fTitle = title ? title : "Container of the MHCalibrationPixels and the fit results"; 84 84 85 // 86 // At the moment, we don't have a database, yet, 87 // so we get it from the configuration file 88 // 89 fConversionHiLo = gkConversionHiLo; 90 fConversionHiLoError = gkConversionHiLoError; 91 85 92 fHist = new MHCalibrationPixel("MHCalibrationPixel","Calibration Histograms Pixel "); 86 93 … … 124 131 // 8) Calculate the errors of the F-Factor method 125 132 // 126 // The fit is declared as valid, if:133 // The fit is declared valid (fFitValid = kTRUE), if: 127 134 // 128 135 // 1) Pixel has a fitted charge greater than 3*PedRMS … … 131 138 // 4) Pixel has a charge sigma bigger than its Pedestal RMS 132 139 // 5) If FitTimes is used, 133 // the mean arrival time is at least 1. 5 slices from the edge140 // the mean arrival time is at least 1.0 slices from the used edge slices 134 141 // 135 // The F-Factor method is declared asvalid, if:136 // 137 // 1) Pixel is FitValid142 // The conversion factor after the F-Factor method is declared valid, if: 143 // 144 // 1) fFitValid is kTRUE 138 145 // 2) Conversion Factor is bigger than 0. 139 146 // 3) The error of the conversion factor is smaller than 10% … … 142 149 { 143 150 151 // 152 // 1) Return if the charge distribution is already succesfully fitted 153 // 144 154 if (fHist->IsFitOK()) 145 155 return kTRUE; 146 156 157 // 158 // 2) Set a lower Fit range according to 1.5 Pedestal RMS in order to avoid 159 // possible remaining cosmics to spoil the fit. 160 // 147 161 if (fPed && fPedRms) 148 162 fHist->SetLowerFitRange(1.5*fPedRms); … … 150 164 *fLog << warn << "Cannot set lower fit range: Pedestals not available" << endl; 151 165 166 // 167 // 3) Decide if the LoGain Histogram is fitted or the HiGain Histogram 168 // 152 169 if (fHist->UseLoGain()) 153 170 { 154 171 155 172 SetHiGainSaturation(); 156 173 174 // 175 // 4) Fit the Lo Gain histograms with a Gaussian 176 // 157 177 if(!fHist->FitChargeLoGain()) 158 178 { 159 179 *fLog << warn << "Could not fit Lo Gain charges of pixel " << fPixId << endl; 180 // 181 // 5) In case of failure print out the fit results 182 // 160 183 fHist->PrintChargeFitResult(); 161 184 } … … 163 186 else 164 187 { 188 // 189 // 4) Fit the Hi Gain histograms with a Gaussian 190 // 165 191 if(!fHist->FitChargeHiGain()) 166 192 { 167 193 *fLog << warn << "Could not fit Hi Gain charges of pixel " << fPixId << endl; 194 // 195 // 5) In case of failure print out the fit results 196 // 168 197 fHist->PrintChargeFitResult(); 169 198 } … … 171 200 172 201 202 // 203 // 6) Retrieve the results and store them in this class 204 // 173 205 fCharge = fHist->GetChargeMean(); 174 206 fErrCharge = fHist->GetChargeMeanErr(); … … 187 219 fFitted = kTRUE; 188 220 189 if ( (fCharge > 3.*GetPedRms()) && 190 (fErrCharge > 0.) && 191 (fHist->IsFitOK()) && 192 (fSigmaCharge > fPedRms) && 193 (fTime > fHist->GetTimeLowerFitRange()+1.) && 194 (fTime < fHist->GetTimeUpperFitRange()-1.) ) 195 fFitValid = kTRUE; 196 197 // 198 // Apply the F-Factor Method 221 222 if (fHiGainSaturation) 223 { 224 if ( (fCharge > 0.3*GetPedRms()) && 225 (fErrCharge > 0.) && 226 (fHist->IsFitOK()) && 227 (fSigmaCharge > fPedRms/fConversionHiLo) && 228 (fTime > fHist->GetTimeLowerFitRange()+1.) && 229 (fTime < fHist->GetTimeUpperFitRange()-1.) ) 230 fFitValid = kTRUE; 231 } 232 else 233 { 234 if ( (fCharge > 3.*GetPedRms()) && 235 (fErrCharge > 0.) && 236 (fHist->IsFitOK()) && 237 (fSigmaCharge > fPedRms) && 238 (fTime > fHist->GetTimeLowerFitRange()+1.) && 239 (fTime < fHist->GetTimeUpperFitRange()-1.) ) 240 fFitValid = kTRUE; 241 } 242 243 // 244 // 7) Calculate the number of photo-electrons after the F-Factor method 245 // 8) Calculate the errors of the F-Factor method 199 246 // 200 247 if ((fPed > 0.) && (fPedRms > 0.)) … … 204 251 // Square all variables in order to avoid applications of square root 205 252 // 206 const Float_t chargesquare = fCharge*fCharge; 207 const Float_t chargessquarerelerrsquare = 4.*fErrCharge*fErrCharge/chargesquare; 208 209 const Float_t sigmasquare = fSigmaCharge*fSigmaCharge; 210 const Float_t sigmasquareerr = 2.*fErrSigmaCharge*fSigmaCharge; 211 212 const Float_t pedrmssquare = fPedRms*fPedRms; 213 const Float_t pedrmssquareerr = 2.*fErrPedRms*fPedRms; 214 215 const Float_t elecrmssquare = fElectronicPedRms*fElectronicPedRms; 216 const Float_t elecrmssquareerr = 2.*fErrElectronicPedRms*fElectronicPedRms; 217 218 const Float_t conversionsquare = gkConversionHiLo *gkConversionHiLo; 219 const Float_t conversionsquareerr = 2.*gkConversionHiLoError*gkConversionHiLo; 220 221 const Float_t ffactorrelerrsquare = fFactorError * fFactorError / fFactor / fFactor; 222 223 Float_t rsigmasquarerelerrsquare = 0.; 224 Float_t pheffactorrelerrsquare = 0.; 253 // First the relative error squares 254 // 255 const Float_t chargeSquare = fCharge* fCharge; 256 const Float_t chargeSquareRelErrSquare = 4.*fErrCharge*fErrCharge / chargeSquare; 257 258 const Float_t fFactorRelErrSquare = fFactorError * fFactorError / (fFactor * fFactor); 259 // 260 // Now the absolute error squares 261 // 262 const Float_t sigmaSquare = fSigmaCharge* fSigmaCharge; 263 const Float_t sigmaSquareErrSquare = 4.*fErrSigmaCharge*fErrSigmaCharge * sigmaSquare; 264 265 const Float_t elecRmsSquare = fElectronicPedRms* fElectronicPedRms; 266 const Float_t elecRmsSquareErrSquare = 4.*fErrElectronicPedRms*fErrElectronicPedRms * elecRmsSquare; 267 268 Float_t pedRmsSquare = fPedRms* fPedRms; 269 Float_t pedRmsSquareErrSquare = 4.*fErrPedRms*fErrPedRms * pedRmsSquare; 225 270 226 271 if (fHiGainSaturation) 227 272 { 228 273 229 274 // 230 275 // We do not know the Lo Gain Pedestal RMS, so we have to retrieve it … … 233 278 // We extract the pure NSB contribution: 234 279 // 235 Float_t nsb square = pedrmssquare - elecrmssquare;236 Float_t nsb squareerrsquare = pedrmssquareerr * pedrmssquareerr +237 elecrmssquareerr * elecrmssquareerr;238 239 if (nsb square < 0.)240 nsb square = 0.;280 Float_t nsbSquare = pedRmsSquare - elecRmsSquare; 281 Float_t nsbSquareRelErrSquare = (pedRmsSquareErrSquare + elecRmsSquareErrSquare) 282 / (nsbSquare * nsbSquare) ; 283 284 if (nsbSquare < 0.) 285 nsbSquare = 0.; 241 286 242 287 // … … 244 289 // add it quadratically to the electronic noise 245 290 // 246 Float_t logainrmssquare = nsbsquare/conversionsquare + elecrmssquare; 247 Float_t logainrmssquareerrsquare = nsbsquareerrsquare/conversionsquare/conversionsquare 248 + elecrmssquareerr * elecrmssquareerr 249 + conversionsquareerr*conversionsquareerr 250 / (conversionsquare*conversionsquare) 251 / (conversionsquare*conversionsquare); 252 // 253 // Calculate the reduced sigma with the new "Pedestal RMS" 254 // 255 fRSigmaSquare = sigmasquare - logainrmssquare; 256 rsigmasquarerelerrsquare = (sigmasquareerr * sigmasquareerr + logainrmssquareerrsquare) 257 / (fRSigmaSquare * fRSigmaSquare); 258 259 if (fRSigmaSquare > 0.) 260 { 261 fPheFFactorMethod = fFactor * chargesquare / fRSigmaSquare; 262 pheffactorrelerrsquare = ffactorrelerrsquare 263 + chargessquarerelerrsquare 264 + rsigmasquarerelerrsquare ; 265 } 291 const Float_t conversionSquare = fConversionHiLo *fConversionHiLo; 292 const Float_t conversionSquareRelErrSquare = 4.*fConversionHiLoError*fConversionHiLoError/conversionSquare; 293 294 // 295 // Calculate the new "Pedestal RMS" 296 // 297 const Float_t convertedNsbSquare = nsbSquare / conversionSquare; 298 const Float_t convertedNsbSquareErrSquare = (nsbSquareRelErrSquare + conversionSquareRelErrSquare) 299 * convertedNsbSquare * convertedNsbSquare; 300 301 pedRmsSquare = convertedNsbSquare + elecRmsSquare; 302 pedRmsSquareErrSquare = convertedNsbSquareErrSquare + elecRmsSquareErrSquare; 266 303 267 304 } /* if (fHiGainSaturation) */ 268 else 305 306 // 307 // Calculate the reduced sigmas 308 // 309 fRSigmaSquare = sigmaSquare - pedRmsSquare; 310 if (fRSigmaSquare <= 0.) 269 311 { 270 fRSigmaSquare = sigmasquare - pedrmssquare; 271 rsigmasquarerelerrsquare = ( sigmasquareerr * sigmasquareerr 272 + pedrmssquareerr * pedrmssquareerr) 273 / (fRSigmaSquare * fRSigmaSquare); 274 275 fPheFFactorMethod = fFactor * chargesquare / fRSigmaSquare; 276 // 277 // We first calculate the squared relative error in order to save the 278 // TMath::Sqrt 279 // 280 pheffactorrelerrsquare = ( ffactorrelerrsquare 281 + chargessquarerelerrsquare 282 + rsigmasquarerelerrsquare ); 283 284 285 } /* if (fHiGainSaturation) */ 286 287 288 if (fPheFFactorMethod <= 0.) 289 { 290 *fLog << warn << "Cannot apply F-Factor calibration: Number of PhE smaller than 0 in pixel " 312 *fLog << warn << "Cannot apply F-Factor calibration: Reduced Sigma smaller than 0 in pixel " 291 313 << fPixId << endl; 314 if (fHiGainSaturation) 315 ApplyLoGainConversion(); 292 316 return kFALSE; 293 317 } 294 295 fConversionFFactorMethod = fPheFFactorMethod / fCharge ; 296 fConversionErrorFFactorMethod = fConversionFFactorMethod * 297 ( pheffactorrelerrsquare + 298 (fErrCharge * fErrCharge / chargesquare ) ); 299 300 fPheFFactorMethodError = TMath::Sqrt(pheffactorrelerrsquare) * fPheFFactorMethod; 301 302 if ( IsFitValid() && 303 (fConversionFFactorMethod > 0.) && 318 319 const Float_t rSigmaSquareRelErrSquare = (sigmaSquareErrSquare + pedRmsSquareErrSquare) 320 / (fRSigmaSquare * fRSigmaSquare) ; 321 322 // 323 // Calculate the number of phe's from the F-Factor method 324 // (independent on Hi Gain or Lo Gain) 325 // 326 fPheFFactorMethod = fFactor * chargeSquare / fRSigmaSquare; 327 328 const Float_t pheFFactorRelErrSquare = fFactorRelErrSquare 329 + chargeSquareRelErrSquare 330 + rSigmaSquareRelErrSquare ; 331 332 fPheFFactorMethodError = TMath::Sqrt(pheFFactorRelErrSquare) * fPheFFactorMethod; 333 334 // 335 // Calculate the conversion factors 336 // 337 if (fHiGainSaturation) 338 ApplyLoGainConversion(); 339 340 const Float_t chargeRelErrSquare = fErrCharge*fErrCharge / (fCharge * fCharge); 341 342 fConversionFFactorMethod = fPheFFactorMethod / fCharge ; 343 fConversionErrorFFactorMethod = ( pheFFactorRelErrSquare + chargeRelErrSquare ) 344 * fConversionFFactorMethod * fConversionFFactorMethod; 345 346 if ( IsFitValid() && 347 (fConversionFFactorMethod > 0.) && 304 348 (fConversionErrorFFactorMethod/fConversionFFactorMethod < 0.1) ) 305 349 fFFactorMethodValid = kTRUE; 306 350 307 351 308 352 } /* if ((fPed > 0.) && (fPedRms > 0.)) */ 309 353 310 354 return kTRUE; 355 356 } 357 358 359 void MCalibrationPix::ApplyLoGainConversion() 360 { 361 362 const Float_t chargeRelErrSquare = fErrCharge*fErrCharge 363 /( fCharge * fCharge); 364 const Float_t sigmaRelErrSquare = fErrSigmaCharge*fErrSigmaCharge 365 /( fSigmaCharge * fSigmaCharge); 366 const Float_t conversionRelErrSquare = fConversionHiLoError*fConversionHiLoError 367 /(fConversionHiLo * fConversionHiLo); 368 369 fCharge *= fConversionHiLo; 370 fErrCharge = TMath::Sqrt(chargeRelErrSquare + conversionRelErrSquare) * fCharge; 371 372 fSigmaCharge *= fConversionHiLo; 373 fErrSigmaCharge = TMath::Sqrt(sigmaRelErrSquare + conversionRelErrSquare) * fSigmaCharge; 311 374 312 375 } -
trunk/MagicSoft/Mars/manalysis/MCalibrationPix.h
r2719 r2725 12 12 private: 13 13 14 Int_t fPixId; // the pixel Id14 Int_t fPixId; // the pixel Id 15 15 16 Float_t fCharge; // The mean reduced charge after the fit17 Float_t fErrCharge; // The error of reduced mean charge after the fit18 Float_t fSigmaCharge; // The sigma of the mean charge after the fit19 Float_t fErrSigmaCharge; // The error of the sigma of the mean charge after the fit20 Float_t fRSigmaSquare; // The reduced squares of sigmas after the fit21 Float_t fChargeProb; // The probability of the fit function16 Float_t fCharge; // The mean reduced charge after the fit 17 Float_t fErrCharge; // The error of reduced mean charge after the fit 18 Float_t fSigmaCharge; // The sigma of the mean charge after the fit 19 Float_t fErrSigmaCharge; // The error of the sigma of the mean charge after the fit 20 Float_t fRSigmaSquare; // The reduced squares of sigmas after the fit 21 Float_t fChargeProb; // The probability of the fit function 22 22 23 Float_t fPed; // The mean pedestal (from MPedestalPix)24 Float_t fPedRms; // The pedestal RMS (from MPedestalPix)25 Float_t fErrPedRms; // The error of the pedestal RMS (from MPedestalPix)26 Float_t fElectronicPedRms; // The pure electronic component of the RMS27 Float_t fErrElectronicPedRms; // The error of the pure electronic component of the RMS23 Float_t fPed; // The mean pedestal (from MPedestalPix) 24 Float_t fPedRms; // The pedestal RMS (from MPedestalPix) 25 Float_t fErrPedRms; // The error of the pedestal RMS (from MPedestalPix) 26 Float_t fElectronicPedRms; // The pure electronic component of the RMS 27 Float_t fErrElectronicPedRms; // The error of the pure electronic component of the RMS 28 28 29 Float_t fTime; // The mean arrival time after the fit30 Float_t fSigmaTime; // The error of the mean arrival time after the fit31 Float_t fTimeChiSquare; // The probability of the fit function29 Float_t fTime; // The mean arrival time after the fit 30 Float_t fSigmaTime; // The error of the mean arrival time after the fit 31 Float_t fTimeChiSquare; // The probability of the fit function 32 32 33 Float_t fFactor; // The laboratory F-factor34 Float_t fFactorError; // The laboratory F-factor Error35 Float_t fPheFFactorMethod; // The number of Phe's calculated after the F-factor method36 Float_t fPheFFactorMethodError; // The error on the number of Phe's calculated after the F-factor method33 Float_t fFactor; // The laboratory F-factor 34 Float_t fFactorError; // The laboratory F-factor Error 35 Float_t fPheFFactorMethod; // The number of Phe's calculated (F-factor method) 36 Float_t fPheFFactorMethodError; // The error on the number of Phe's calculated (F-factor method) 37 37 38 Float_t fConversionFFactorMethod; // The conversion factor to Ph's calculated after the F-factor method39 Float_t fConversionBlindPixelMethod; // The conversion factor to Ph's calculated after the Blind Pixel method40 Float_t fConversionPINDiodeMethod; // The conversion factor to Ph's calculated after the PIN Diode method38 Float_t fConversionFFactorMethod; // The conversion factor to Phe's (F-factor method) 39 Float_t fConversionBlindPixelMethod; // The conversion factor to Ph's (Blind Pixel method) 40 Float_t fConversionPINDiodeMethod; // The conversion factor to Ph's (PIN Diode method) 41 41 42 Float_t fConversionErrorFFactorMethod; // The conversion factor to Phe's calculated after the F-factor method43 Float_t fConversionErrorBlindPixelMethod; // The conversion factor to Phe's calculated after the Blind Pixel method44 Float_t fConversionErrorPINDiodeMethod; // The conversion factor to Phe's calculated after the PIN Diode method42 Float_t fConversionErrorFFactorMethod; // The error of the conversion factor to Phe's (F-factor method) 43 Float_t fConversionErrorBlindPixelMethod; // The error of the conversion factor to Ph's (Blind Pixel method) 44 Float_t fConversionErrorPINDiodeMethod; // The error of the conversion factor to Ph's (PIN Diode method) 45 45 46 Float_t fConversionSigmaFFactorMethod; // The conversion factor to Ph's calculated after the F-factor method47 Float_t fConversionSigmaBlindPixelMethod; // The conversion factor to Ph's calculated after the Blind Pixel method48 Float_t fConversionSigmaPINDiodeMethod; // The conversion factor to Phd's calculated after the PIN Diode method46 Float_t fConversionSigmaFFactorMethod; // The sigma of conversion factor to Ph's (F-factor method) 47 Float_t fConversionSigmaBlindPixelMethod; // The conversion factor to Ph's (Blind Pixel method) 48 Float_t fConversionSigmaPINDiodeMethod; // The conversion factor to Phd's (PIN Diode method) 49 49 50 Bool_t fHiGainSaturation; // Is Lo-Gain used at all? 50 Float_t fConversionHiLo; // The conversion factor between Hi Gain and Lo Gain 51 Float_t fConversionHiLoError; // The error of the conversion factor between Hi Gain and Lo Gain 52 53 Bool_t fHiGainSaturation; // Is Lo-Gain used at all? 51 54 52 55 Bool_t fFitValid; … … 81 84 82 85 void SetPedestal(Float_t ped, Float_t pedrms); 83 void SetHiGainSaturation() { fHiGainSaturation = kTRUE; fHist->SetUseLoGain(); }86 void SetHiGainSaturation() { fHiGainSaturation = kTRUE; fHist->SetUseLoGain(); } 84 87 88 void ApplyLoGainConversion(); 89 90 void SetConversionHiLo(Float_t c) { fConversionHiLo = c; } 91 void SetConversionHiLoError(Float_t e) { fConversionHiLoError = e; } 92 93 Float_t GetConversionHiLo() { return fConversionHiLo; } 94 Float_t GetConversionHiLoError() { return fConversionHiLoError; } 95 85 96 void SetConversionFFactorMethod(Float_t c, Float_t err, Float_t sig) 86 97 { … … 136 147 void SetFitValid() { fFitValid = kTRUE; } 137 148 void SetFitted() { fFitted = kTRUE; } 138 void SetBlindPixelMethodValid( ) { fBlindPixelMethodValid = kTRUE; }139 void SetFFactorMethodValid( ) { fFFactorMethodValid = kTRUE; }140 void SetPINDiodeMethodValid( ) { fPINDiodeMethodValid = kTRUE; }149 void SetBlindPixelMethodValid(Bool_t b=kTRUE) { fBlindPixelMethodValid = b; } 150 void SetFFactorMethodValid(Bool_t b=kTRUE) { fFFactorMethodValid = b; } 151 void SetPINDiodeMethodValid(Bool_t b=kTRUE) { fPINDiodeMethodValid = b; } 141 152 142 153 Int_t GetPixId() const { return fPixId; } -
trunk/MagicSoft/Mars/manalysis/MExtractSignal.cc
r2715 r2725 59 59 const char *name, const char *title) 60 60 : fNumHiGainSamples(last-first+1), fNumLoGainSamples(last-first+1), 61 fSaturationLimit(254) , fConversionHiLo(10.)61 fSaturationLimit(254) 62 62 { 63 63 … … 215 215 pix.SetExtractedSignal((Float_t)sumHi - pedes*(Float_t)fNumHiGainSamples, 216 216 pedrms*fSqrtHiGainSamples, 217 ((Float_t)sumLo - pedes*(Float_t)fNumLoGainSamples) *fConversionHiLo,217 ((Float_t)sumLo - pedes*(Float_t)fNumLoGainSamples), 218 218 pedrms*fSqrtLoGainSamples 219 219 ); -
trunk/MagicSoft/Mars/manalysis/MExtractSignal.h
r2715 r2725 41 41 42 42 Byte_t fSaturationLimit; 43 Float_t fConversionHiLo;44 43 45 44 Bool_t ReInit(MParList *pList); … … 50 49 public: 51 50 52 MExtractSignal(const Byte_t first=4, const Byte_t last=9, const Byte_t logainshift=1, const char *name=NULL, const char *title=NULL); 51 MExtractSignal(const Byte_t first=4, const Byte_t last=9, 52 const Byte_t logainshift=1, 53 const char *name=NULL, const char *title=NULL); 53 54 54 55 void SetSaturationLimit(Byte_t lim) { fSaturationLimit = lim; } 55 void SetConversionHiLo(Float_t con) { fConversionHiLo = con; }56 56 57 57 ClassDef(MExtractSignal, 0) // Task to fill the Extracted Signal Containers from raw data
Note:
See TracChangeset
for help on using the changeset viewer.