Changeset 3081 for trunk/MagicSoft/Mars/mcalib/MHCalibrationPixel.cc
- Timestamp:
- 02/10/04 16:10:52 (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/mcalib/MHCalibrationPixel.cc
r3075 r3081 61 61 const Int_t MHCalibrationPixel::fNDFLimit = 5; 62 62 63 const Axis_t MHCalibrationPixel::fMinFreq = 0.; 64 const Int_t MHCalibrationPixel::fPSDNbins = 50; 63 const Int_t MHCalibrationPixel::fPSDNbins = 30; 65 64 66 65 // -------------------------------------------------------------------------- … … 268 267 fPSDHiGain = fourier.PowerSpectrumDensity(fHiGains); 269 268 270 Int_t entries;271 TArrayF *array;272 273 const Double_t max_freq = (fChargeSigma > 0.) ? fChargeSigma*0.2 : 2.;274 const Double_t min_freq = 0.;275 276 269 if (IsUseLoGain()) 277 { 278 fHPSD = new TH1F(Form("%s%d","HPSD",fPixId), 279 Form("%s%s","Power Spectrum Density Projection ","LoGain"), 280 fPSDNbins,min_freq,max_freq); 281 282 array = fPSDLoGain; 283 } 270 fHPSD = MH::ProjectArray(fPSDLoGain, fPSDNbins, 271 Form("%s%d","PSDProjection",fPixId), 272 Form("%s%d","Power Spectrum Density Projection LoGain ",fPixId)); 284 273 else 285 { 286 287 fHPSD = new TH1F(Form("%s%d","HPSD",fPixId), 288 Form("%s%s","Power Spectrum Density Projection ","HiGain"), 289 fPSDNbins,min_freq,max_freq); 290 291 array = fPSDHiGain; 292 } 293 294 entries = array->GetSize(); 295 296 for (Int_t i=0;i<entries;i++) 297 fHPSD->Fill(array->At(i)); 274 fHPSD = MH::ProjectArray(fPSDHiGain, fPSDNbins, 275 Form("%s%d","PSDProjection",fPixId), 276 Form("%s%d","Power Spectrum Density Projection HiGain ",fPixId)); 298 277 299 278 // 300 279 // First guesses for the fit (should be as close to reality as possible, 301 280 // 302 const Double_t area_guess = entries*10.; 303 304 fPSDExpFit = new TF1(Form("%s%d","PSDExpFit",fPixId),"[0]*exp(-[1]*x)",0.,1.); 305 306 fPSDExpFit->SetParameters(area_guess,10.); 307 fPSDExpFit->SetParNames("Area","slope"); 308 fPSDExpFit->SetParLimits(0,0.,20.*area_guess); 309 fPSDExpFit->SetParLimits(1,0.,30.); 310 fPSDExpFit->SetRange(min_freq,max_freq); 281 const Double_t xmax = fHPSD->GetXaxis()->GetXmax(); 282 283 fPSDExpFit = new TF1(Form("%s%d","PSDExpFit",fPixId),"exp([0]-[1]*x)",0.,xmax); 284 285 const Double_t slope_guess = (TMath::Log(fHPSD->GetEntries())+1.)/xmax; 286 const Double_t offset_guess = slope_guess*xmax; 287 288 fPSDExpFit->SetParameters(offset_guess, slope_guess); 289 fPSDExpFit->SetParNames("Offset","Slope"); 290 fPSDExpFit->SetParLimits(0,offset_guess/2.,2.*offset_guess); 291 fPSDExpFit->SetParLimits(1,slope_guess/2.,2.*slope_guess); 292 fPSDExpFit->SetRange(0.,xmax); 311 293 312 294 fHPSD->Fit(fPSDExpFit,"RQL0");
Note:
See TracChangeset
for help on using the changeset viewer.