Changeset 7358
- Timestamp:
- 09/21/05 14:26:45 (19 years ago)
- Location:
- trunk/MagicSoft/Mars
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/Changelog
r7357 r7358 18 18 19 19 -*-*- END OF LINE -*-*- 20 2005/09/21 Thomas Bretz 21 22 * datacenter/macros/plotdb.C: 23 - changed some resolution values 24 25 * mfileio/MWriteRootFile.cc: 26 - added a FIXME comment 27 28 * mhvstime/MHSectorVsTime.h: 29 - added new function GetGraph 30 - increased version number (increase was forgotten some time ago) 31 32 * mimage/MImgCleanStd.cc: 33 - added some comments 34 - replaced IsPixelUsed/Core(int) by [int].IsPixelUsed/Core for 35 acceleration (some obsolete range checks are skipped) 36 - now the core status is explicily set in any case 37 - removed an obsolete range check in the ring cleaning 38 - the range checks became obsolete because with the new format 39 all pixels must exist. 40 41 * mjobs/MDataSet.cc: 42 - sort the sequence numbers instead of the file names (the file 43 name sort might be biased due to different paths) 44 45 * mjobs/MJob.[h,cc]: 46 - new ststic functions: SortArray 47 48 * mjobs/MSequence.cc: 49 - sort run-numbers as the sequences are sorted in MDataSet 50 51 52 20 53 2005/09/20 Daniela Dorner 21 54 -
trunk/MagicSoft/Mars/NEWS
r7355 r7358 30 30 two types of pedestal in callisto got exchanged. The bug only effects 31 31 the first seconds of data of each sequence. 32 33 - ganymed: The sequences were still not sorted correctly in any case, 34 because they were sorted by the full qualified path name. Now they 35 are sorted by their sequence number. 32 36 33 37 -
trunk/MagicSoft/Mars/datacenter/macros/plotdb.C
r7142 r7358 292 292 //from signal*.root 293 293 plot.SetDescription("Mean Pedestal RMS inner Camera;\\sigma_{P,I} [phe]", "PedRmsI"); 294 plot.Plot("Calibration.fMeanPedRmsInner", 0, 3.5, 0. 1);294 plot.Plot("Calibration.fMeanPedRmsInner", 0, 3.5, 0.05); 295 295 //from star*.root 296 296 //muon … … 303 303 //imgpar 304 304 plot.SetDescription("Mean Number of Islands after cleaning;N [#]", "NumIsl"); 305 plot.Plot("Star.fMeanNumberIslands", 0.5, 4.5, 0. 1);305 plot.Plot("Star.fMeanNumberIslands", 0.5, 4.5, 0.01); 306 306 plot.SetDescription("Measures effective on time;T_{eff} [s]", "EffOn"); 307 plot.Plot("Star.fEffOnTime", 0, 10000, 60);307 plot.Plot("Star.fEffOnTime", 0, 10000, 150); 308 308 plot.SetDescription("Datarate [Hz]", "Rate"); 309 309 plot.Plot("Star.fDataRate", 0, 600, 10); … … 323 323 //from signal*.root 324 324 plot.SetDescription("Mean Pedestal RMS outer Camera;\\sigma_{P,O} [phe]", "PedRmsO"); 325 plot.Plot("Calibration.fMeanPedRmsOuter", 0, 4.0, 0. 1);325 plot.Plot("Calibration.fMeanPedRmsOuter", 0, 4.0, 0.05); 326 326 } 327 327 -
trunk/MagicSoft/Mars/mfileio/MWriteRootFile.cc
r6994 r7358 711 711 return kTRUE; 712 712 713 // FIXME: THIS IS EMITTED FOR ALL CONSEQUTIVE EVENTS! 713 714 *fLog << warn << endl; 714 715 *fLog << "WARNING - MWriteRootFile: Root's TTree/TFile has opened a new file" << endl; -
trunk/MagicSoft/Mars/mhvstime/MHSectorVsTime.h
r7223 r7358 71 71 // Getter 72 72 TH1 *GetHistByName(const TString name="") const; 73 //TGraph *GetGraph() { return fGraph; }73 TGraph *GetGraph() { return fGraph; } 74 74 75 75 // TObject … … 80 80 void Paint(Option_t *o=NULL); 81 81 82 ClassDef(MHSectorVsTime, 1) // Histogram to sum camera events82 ClassDef(MHSectorVsTime, 2) // Histogram to sum camera events 83 83 }; 84 84 85 85 #endif 86 87 88 -
trunk/MagicSoft/Mars/mimage/MImgCleanStd.cc
r7208 r7358 377 377 for (UInt_t idx=0; idx<npixevt; idx++) 378 378 { 379 // The default for pixels is "used" set by 380 // MParContainer::Reset before processing 379 381 if (data[idx]>fCleanLvl1) 380 382 continue; 381 383 384 // Setting a pixel to unused if it is unmapped would overwrite 385 // the unmapped-status. Therefor this pixels are excluded. 382 386 MSignalPix &pix = (*fEvt)[idx]; 383 387 if (!pix.IsPixelUnmapped()) … … 401 405 for (UInt_t idx=0; idx<npixevt; idx++) 402 406 { 407 // Exclude all unused (this includes all unmapped) pixels 403 408 MSignalPix &pix = (*fEvt)[idx]; 404 409 if (!pix.IsPixelUsed()) … … 416 421 const Int_t idx2 = gpix.GetNeighbor(j); 417 422 418 // when you find an used neighbor, break the loop 419 if (fEvt->IsPixelUsed(idx2)) 423 // when you find an used neighbor (this excludes unused 424 // and unmapped pixels) break the loop 425 if ((*fEvt)[idx2].IsPixelUsed()) 420 426 { 421 427 hasNeighbor = kTRUE; … … 424 430 } 425 431 426 if (hasNeighbor == kFALSE) 427 { 428 if (!fKeepSinglePixels) 429 pix.SetPixelUnused(); 430 size += pix.GetNumPhotons(); 431 n++; 432 } 433 } 434 432 // If the pixel has at least one core-neighbor 433 // go on with the next pixel 434 if (hasNeighbor) 435 continue; 436 437 // If the pixel has no neighbors and the single pixels 438 // should not be kept turn the used- into an unused-status 439 if (!fKeepSinglePixels) 440 pix.SetPixelUnused(); 441 442 // count size and number of single core-pixels 443 size += pix.GetNumPhotons(); 444 n++; 445 } 446 447 // Now turn the used-status into the core-status 448 // (FIXME: A more intelligent handling of used/core in clean step1/2 449 // would make this loop obsolete!) 435 450 for (UInt_t idx=0; idx<npixevt; idx++) 436 451 { 437 452 MSignalPix &pix = (*fEvt)[idx]; 438 if (pix.IsPixelUsed()) 439 pix.SetPixelCore(); 453 pix.SetPixelCore(pix.IsPixelUsed()); 440 454 } 441 455 … … 458 472 const Int_t idx2 = gpix.GetNeighbor(j); 459 473 460 if (!fEvt->IsPixelCore(idx2)) 474 // Check if the neighbor pixel is a core pixel. (Rem: Unampped 475 // pixels are never assigned the core-pixel status) 476 if (!(*fEvt)[idx2].IsPixelCore()) 461 477 continue; 462 478 … … 475 491 // If a value<2 for fCleanRings is used, no CleanStep4 is done. 476 492 // 477 void MImgCleanStd::CleanStep4(UShort_t r, Int_t idx /*MSignalPix &pix*/)493 void MImgCleanStd::CleanStep4(UShort_t r, Int_t idx) 478 494 { 479 495 MSignalPix &pix = (*fEvt)[idx]; … … 490 506 // and tell to which ring it belongs to. 491 507 // 492 MGeomPix &gpix 508 MGeomPix &gpix = (*fCam)[idx]; 493 509 494 510 const Int_t nnmax = gpix.GetNumNeighbors(); … … 498 514 const Int_t idx2 = gpix.GetNeighbor(j); 499 515 500 MSignalPix *npix = fEvt->GetPixById(idx2);501 if (!npix || !npix->IsPixelUsed() || npix->GetRing()>r-1 )516 const MSignalPix &npix = (*fEvt)[idx2]; 517 if (!npix.IsPixelUsed() || npix.GetRing()>r-1 ) 502 518 continue; 503 519 -
trunk/MagicSoft/Mars/mjobs/MDataSet.cc
r7349 r7358 86 86 87 87 #include "MRead.h" 88 #include "MJob.h" 88 89 #include "MAstro.h" 89 90 #include "MDirIter.h" … … 139 140 runs.Remove(0, runs.First(num)+num.Length()); 140 141 } 142 143 MJob::SortArray(data); 141 144 } 142 145 … … 175 178 // For the synchronization we must make sure, that all sequences are 176 179 // in the correct order... 177 list.Sort();180 // list.Sort(); 178 181 } 179 182 … … 298 301 // Filenames MUST begin with an appropriate string which allow 299 302 // to order them correctly in time! 300 files.Sort();303 // files.Sort(); 301 304 302 305 if (gLog.GetDebugLevel()>4) -
trunk/MagicSoft/Mars/mjobs/MJob.cc
r7099 r7358 359 359 return path; 360 360 } 361 362 void MJob::SortArray(TArrayI &arr) 363 { 364 TArrayI idx(arr.GetSize()); 365 TArrayI srt(arr); 366 367 TMath::Sort(arr.GetSize(), srt.GetArray(), idx.GetArray(), kFALSE); 368 369 for (int i=0; i<arr.GetSize(); i++) 370 arr[i] = srt[idx[i]]; 371 } -
trunk/MagicSoft/Mars/mjobs/MJob.h
r7096 r7358 77 77 78 78 static TString ExpandPath(TString fname); 79 static void SortArray(TArrayI &arr); 79 80 80 81 ClassDef(MJob, 0) // Bas class for Jobs -
trunk/MagicSoft/Mars/mjobs/MSequence.cc
r7349 r7358 130 130 #include "MLogManip.h" 131 131 132 #include "MJob.h" 132 133 #include "MAstro.h" 133 134 #include "MString.h" … … 194 195 runs.Remove(0, runs.First(num)+num.Length()); 195 196 } 197 198 MJob::SortArray(data); 196 199 } 197 200
Note:
See TracChangeset
for help on using the changeset viewer.