Changeset 5505
- Timestamp:
- 11/29/04 18:46:05 (20 years ago)
- Location:
- trunk/MagicSoft/Mars
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/Changelog
r5502 r5505 34 34 - fixed documentation of data members 35 35 - Introduced setter and getter for name of weights file 36 - modified way to use the NoiseCalculation(). Now more compatible 37 with MPedCalcFromLoGain 36 38 37 39 * msignal/MExtractFixedWindowPeakSearch.cc -
trunk/MagicSoft/Mars/mpedestal/MPedCalcFromLoGain.cc
r5504 r5505 137 137 138 138 #include "MExtractTimeAndCharge.h" 139 #include "MExtractTimeAndChargeDigitalFilter.h" 139 140 140 141 #include "MParList.h" … … 245 246 SetExtractWindow(fExtractor->GetHiGainFirst(),(Int_t)fExtractor->GetNumHiGainSamples()); 246 247 lastavailable = losamples-1; 248 if (fExtractor->InheritsFrom("MExtractTimeAndChargeDigitalFilter")) 249 { 250 MExtractTimeAndChargeDigitalFilter* df = (MExtractTimeAndChargeDigitalFilter*)fExtractor; 251 if (!df->IsWeightsSet()) 252 if (!df->ReadWeightsFile(df->GetNameWeightsFile())) 253 return kFALSE; 254 } 247 255 } 248 256 … … 438 446 const Bool_t logainabflag = (pixel->HasABFlag() + pixel->GetNumHiGainSamples()) & 0x1; 439 447 Float_t dummy; 440 fExtractor->FindTimeAndCharge LoGain(logain,sum,dummy,dummy,dummy,sat,ped,logainabflag);448 fExtractor->FindTimeAndChargeHiGain(logain,logain,sum,dummy,dummy,dummy,sat,ped,logainabflag); 441 449 } 442 450 -
trunk/MagicSoft/Mars/mpedestal/MPedCalcPedRun.cc
r5504 r5505 122 122 123 123 #include "MExtractTimeAndCharge.h" 124 #include "MExtractTimeAndChargeDigitalFilter.h" 124 125 125 126 #include "MParList.h" … … 204 205 205 206 if (fExtractor) 206 SetExtractWindow(fExtractor->GetHiGainFirst(),(Int_t)fExtractor->GetNumHiGainSamples()); 207 207 { 208 SetExtractWindow(fExtractor->GetHiGainFirst(),(Int_t)fExtractor->GetNumHiGainSamples()); 209 if (fExtractor->InheritsFrom("MExtractTimeAndChargeDigitalFilter")) 210 { 211 MExtractTimeAndChargeDigitalFilter* df = (MExtractTimeAndChargeDigitalFilter*)fExtractor; 212 if (!df->IsWeightsSet()) 213 if (!df->ReadWeightsFile(df->GetNameWeightsFile())) 214 return kFALSE; 215 } 216 } 217 208 218 MExtractPedestal::ReInit(pList); 209 219 … … 318 328 } 319 329 330 320 331 void MPedCalcPedRun::CalcExtractor( MRawEvtPixelIter *pixel, Float_t &sum, MPedestalPix &ped) 321 332 { -
trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.cc
r5504 r5505 91 91 // 92 92 MExtractTimeAndChargeDigitalFilter::MExtractTimeAndChargeDigitalFilter(const char *name, const char *title) 93 : fWeightsSet(kFALSE) 93 : fWeightsSet(kFALSE), fRandomIter(0) 94 94 { 95 95 fName = name ? name : "MExtractTimeAndChargeDigitalFilter"; … … 188 188 Int_t MExtractTimeAndChargeDigitalFilter::PreProcess(MParList *pList) 189 189 { 190 191 190 if (!fWeightsSet) 192 191 if (!ReadWeightsFile(fNameWeightsFile)) … … 223 222 void MExtractTimeAndChargeDigitalFilter::InitArrays() 224 223 { 225 fHiGainSignal.Set(fHiGainLast - fHiGainFirst + 1 + fHiLoLast); 226 fLoGainSignal.Set(fLoGainLast - fLoGainFirst + 1); 224 Int_t range = (Int_t)(fHiGainLast - fHiGainFirst + 1 + fHiLoLast); 225 fHiGainSignal.Set(range); 226 range = (Int_t)(fLoGainLast - fLoGainFirst + 1); 227 fLoGainSignal.Set(range); 227 228 } 228 229 … … 237 238 238 239 Int_t range = fHiGainLast - fHiGainFirst + 1; 240 239 241 const Byte_t *end = ptr + range; 240 242 Byte_t *p = ptr; … … 305 307 return; 306 308 309 // 310 // Slide with a window of size fWindowSizeHiGain over the sample 311 // and multiply the entries with the corresponding weights 312 // 313 if (IsNoiseCalculation()) 314 { 315 if (fRandomIter == 10) 316 fRandomIter = 0; 317 for (Int_t ids=0; ids < fWindowSizeHiGain; ids++) 318 { 319 const Int_t idx = fBinningResolutionHiGain*ids + fRandomIter; 320 sum += fAmpWeightsHiGain [idx]*fHiGainSignal[ids]; 321 } 322 fRandomIter++; 323 return; 324 } 325 307 326 Float_t time_sum = 0.; 308 327 Float_t fmax = 0.; … … 330 349 } 331 350 332 // if (IsNoiseCalculation()) return;333 334 351 if (sum>fmax) 335 352 { … … 373 390 { 374 391 const Int_t idx = fBinningResolutionHiGain*sample + fBinningResolutionHalfHiGain + t_iter; 375 const Int_t ids = IsNoiseCalculation() ? sample :max_p + sample;392 const Int_t ids = max_p + sample; 376 393 377 const Float_t pex = ids < 0 ? 0. : 378 ( ids > range ? 0. : fHiGainSignal[ids]); 394 const Float_t pex = ids < 0 ? 0. : ( ids > range ? 0. : fHiGainSignal[ids]); 379 395 sum += fAmpWeightsHiGain [idx]*pex; 380 396 time_sum += fTimeWeightsHiGain[idx]*pex; … … 436 452 } 437 453 454 // 455 // Slide with a window of size fWindowSizeHiGain over the sample 456 // and multiply the entries with the corresponding weights 457 // 458 if (IsNoiseCalculation()) 459 { 460 for (Int_t ids=0; ids < fWindowSizeLoGain; ids++) 461 { 462 const Int_t idx = fBinningResolutionHiGain*ids + fRandomIter; 463 sum += fAmpWeightsLoGain [idx]*fLoGainSignal[ids]; 464 } 465 return; 466 } 467 438 468 Float_t time_sum = 0.; 439 469 Float_t fmax = 0.; … … 503 533 { 504 534 const Int_t idx = fBinningResolutionLoGain*sample + fBinningResolutionHalfLoGain + t_iter; 505 const Int_t ids = (IsNoiseCalculation()) ? sample : max_p + sample;; 506 const Float_t pex = ids < 0 ? 0. : 507 ( ids > range ? 0. : fLoGainSignal[ids]); 535 const Int_t ids = max_p + sample;; 536 const Float_t pex = ids < 0 ? 0. : ( ids > range ? 0. : fLoGainSignal[ids]); 508 537 sum += fAmpWeightsLoGain [idx]*pex; 509 538 time_sum += fTimeWeightsLoGain[idx]*pex; -
trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.h
r5504 r5505 50 50 TString fNameWeightsFile; // Name of the weights file 51 51 Bool_t fWeightsSet; // Flag if weights have alreayd been set 52 52 UInt_t fRandomIter; // Counter used to randomize weights for noise calculation 53 53 54 Bool_t ReInit(MParList *pList); 54 55 Int_t PreProcess(MParList *pList); … … 87 88 88 89 void Print(Option_t *o="") const; 89 90 91 Bool_t IsWeightsSet() const { return fWeightsSet; } 92 90 93 void FindTimeAndChargeHiGain(Byte_t *firstused, Byte_t *logain, Float_t &sum, Float_t &dsum, 91 94 Float_t &time, Float_t &dtime, -
trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeSlidingWindow.cc
r5504 r5505 187 187 void MExtractTimeAndChargeSlidingWindow::InitArrays() 188 188 { 189 fHiGainSignal.Set(fHiGainLast - fHiGainFirst + 1 + fHiLoLast); 190 fLoGainSignal.Set(fLoGainLast - fLoGainFirst + 1); 189 Int_t range = (Int_t)(fHiGainLast - fHiGainFirst + 1 + fHiLoLast); 190 fHiGainSignal.Set(range); 191 range = (Int_t)(fLoGainLast - fLoGainFirst + 1); 192 fLoGainSignal.Set(range); 191 193 } 192 194
Note:
See TracChangeset
for help on using the changeset viewer.