- Timestamp:
- 02/15/09 23:12:04 (16 years ago)
- Location:
- trunk/MagicSoft/Mars
- Files:
-
- 30 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/Changelog
r9342 r9343 20 20 2009/02/15 Thomas Bretz 21 21 22 * ceres.rc: 23 - added the MAGIC I high gain pulse as example 24 25 * sponde.cc: 26 - redirect root error handler 27 - added new option to force on-time fit 28 29 * datacenter/scripts/runcorsika: 30 - added a comment 31 - remove empty dat file after corsika finished 32 33 * mbase/MLog.cc: 34 - added several more log-levels to handling root's error handler 35 36 * mbase/MPrint.cc: 37 - flush buffer before printing 38 - set output level to all 39 40 * melectronics/MPulseShape.h: 41 - let clone also clone the spline 42 43 * mfileio/MWriteRootFile.cc: 44 - don't output title if empty 45 46 * mhflux/MHAlpha.cc: 47 - removed erronornously comittet SetSumw2 48 - don't output the numbe rof excess events vs time 49 50 * mhflux/MHEffectiveOnTime.[h,cc]: 51 - added new data mebers to store the result of the overall-fit 52 which is now done in Finalize 53 - output the results of the effective on-time fit as inf2 54 - increased clas version accordingly 55 56 * mjobs/MJSimulation.[h,cc]: 57 - simplified setting up the file structure 58 59 * mjobs/MJSpectrum.[h,cc]: 60 - added the possibility to force a new on-time fit. 61 - a MHEffectiveOnTime histogram is now always displayed 62 for manual cross checks 63 64 * mjobs/MJStar.cc: 65 - added MSrcPosCam for Monte Carlos to output 66 22 67 * mpointing/MSrcPosCalc.cc: 23 68 - ignore the WobbleMode from the MMcCorsikaRunHeader … … 46 91 - support changing geometries (conversion factors) reading 47 92 a new geometry from a run header 93 - increased class version by one 48 94 49 95 * mhflux/MMcSpectrumWeight.cc: 50 96 - replaced Form by MString::Format 97 51 98 - made sure that nobody is mixing different energy-range monte 52 99 carlos and normalizes by integral (to be implemented) -
trunk/MagicSoft/Mars/NEWS
r9342 r9343 76 76 displayes the MSrcPosCam data from the input star-files. Unfortunately, 77 77 this containes was never written to the star-files yet. 78 79 * A new Tab 'OnTime' is available which is an effective on-time 80 fit as in star but for all data. This is mainly for manual cross-check 81 of the effective on-time 82 83 * In some circumstances it might be necessary to re-calculate the 84 eff. on-time from the fit in the new tab, e.g. when a zenith distance 85 cut was made in ganymed. This can now be forced by ''--force-ontimefit'' 78 86 79 87 -
trunk/MagicSoft/Mars/ceres.rc
r9336 r9343 196 196 #MSimReadout.fConversionFactor: 1 197 197 198 # The number of sampling points is almost irrelevant because they 199 # are equidistant, i.e. calculated and no search is necessary. 200 # Nevertheless, you must make sure that there are enough points 201 # to sample the function accuratly enough. 202 #MPulseShape.Function.Name: 3.51308*exp(-1.4105*(exp(-0.5*x)+0.310942*x)) + 4.33521e-3*exp(-1.4105*(exp(-0.5*x)+6.09265e-3*x)) 203 #MPulseShape.Function.Npx: 250 204 #MPulseShape.Function.Xmin: -5 205 #MPulseShape.Function.Xmax: 45 -
trunk/MagicSoft/Mars/datacenter/scripts/runcorsika
r9336 r9343 92 92 echo "MAXPRT 0" 93 93 # Suppress file with partciles reaching ground (DATnnnnnn) 94 # FIXME: Should we make this switchable by the database? 94 95 echo "PAROUT F F" 95 96 # Don't write a database file … … 183 184 printinputcard | ./cc6501p-linux >> $logfile 2>&1 184 185 186 rm -f $outpath/dat`printf %06d $corsikarunno` 187 185 188 check1=$? 186 189 -
trunk/MagicSoft/Mars/manalysis/MMcCalibrationUpdate.h
r8354 r9343 20 20 { 21 21 private: 22 Bool_t CheckRunType(MParList *pList) const;23 22 Int_t PreProcess(MParList *pList); 24 23 Int_t Process(); -
trunk/MagicSoft/Mars/mbase/MLog.cc
r9336 r9343 1 1 /* ======================================================================== *\ 2 ! $Name: not supported by cvs2svn $:$Id: MLog.cc,v 1.6 3 2009-02-15 13:24:59tbretz Exp $2 ! $Name: not supported by cvs2svn $:$Id: MLog.cc,v 1.64 2009-02-15 23:00:34 tbretz Exp $ 3 3 ! -------------------------------------------------------------------------- 4 4 ! … … 834 834 // annoying errors in case of a log-scale set too early 835 835 if (level==kError && !strcmp(location, "THistPainter::PaintInit")) 836 level=kInfo ;836 level=kInfo+2; 837 837 838 838 gLog << std::flush; … … 841 841 842 842 if (level >= kInfo) 843 gLog << inf; 843 gLog << inf; 844 if (level==kInfo+1) 845 gLog << inf2; 846 if (level==kInfo+2) 847 gLog << inf3; 844 848 if (level >= kWarning) 845 849 gLog << warn; -
trunk/MagicSoft/Mars/mbase/MPrint.cc
r5715 r9343 149 149 Int_t MPrint::Process() 150 150 { 151 gLog << flush << all; 151 152 if (TestBit(kSeparator)) 152 153 gLog.Separator() << endl; -
trunk/MagicSoft/Mars/mbase/MTaskList.cc
r9037 r9343 584 584 fTasksProcess.Clear(); 585 585 while ((task=(MTask*)Next())) 586 if (task->IsA()==MTask::Class() || task->Overwrites Process())586 if (task->IsA()==MTask::Class() || task->Overwrites("Process")) 587 587 fTasksProcess.Add(task); 588 588 … … 621 621 while ((task=(MTask*)Next())) 622 622 { 623 // Supress output if not necessary 624 if (!task->Overwrites("ReInit")) 625 continue; 626 623 627 *fLog << all << task->GetName() << "... " << flush; 624 628 -
trunk/MagicSoft/Mars/melectronics/MPulseShape.h
r9312 r9343 12 12 { 13 13 private: 14 MSpline3 *fSpline; // !Spline to describe the pulse shape14 MSpline3 *fSpline; // Spline to describe the pulse shape 15 15 16 16 TString fFileName; // File name of a file describing the pulse shape -
trunk/MagicSoft/Mars/mfileio/MWriteRootFile.cc
r9328 r9343 159 159 } 160 160 161 *fLog << inf3 << "New file '" << name << "' <Title=" << title << "> created." << endl; 161 *fLog << inf3 << "New file '" << name << "' "; 162 if (!TString(title).IsNull()) 163 *fLog << "<Title=" << title << "> "; 164 *fLog << "created." << endl; 162 165 163 166 file->SetOption(option); // IMPORTANT! -
trunk/MagicSoft/Mars/mhflux/MHEffectiveOnTime.cc
r9303 r9343 88 88 // + Double_t fTotalTime; 89 89 // 90 // Class version 4: 91 // ---------------- 92 // + Double_t fEffOnTime; //[s] On time as fitted from the DeltaT distribution 93 // + Double_t fEffOnTimeErr; //[s] On time error as fitted from the DeltaT distribution 90 94 // 91 95 // ========================================================================== … … 301 305 MHEffectiveOnTime::MHEffectiveOnTime(const char *name, const char *title) 302 306 : fPointPos(0), fTime(0), fParam(0), fIsFinalized(kFALSE), 303 fNumEvents(200*60), fFirstBin(3), fTotalTime(-1) 307 fNumEvents(200*60), fFirstBin(3), fTotalTime(-1), 308 fEffOnTime(-1), fEffOnTimeErr(0) 304 309 //fNumEvents(2*60), fFirstBin(1) 305 310 { … … 479 484 fTotalTime = 0; 480 485 486 fEffOnTime = -1; 487 fEffOnTimeErr = 0; 488 481 489 return kTRUE; 482 490 } … … 714 722 fTime->Plus1ns(); 715 723 716 *fLog << fLastTime << ": Val=" << res[0] << " Err=" << res[1] << endl;724 *fLog << inf2 << fLastTime << ": Val=" << res[0] << " Err=" << res[1] << endl; 717 725 } 718 726 … … 780 788 FitThetaBins(); 781 789 FitTimeBin(); 790 791 792 TH1D *h = fH2DeltaT.ProjectionX("FinalizeProjDeltaT", -1, -1, "E"); 793 Double_t res[7]; 794 if (FitH(h, res)) 795 { 796 fEffOnTime = res[0]; 797 fEffOnTimeErr = res[1]; 798 } 799 delete h; 800 782 801 783 802 fIsFinalized = kTRUE; -
trunk/MagicSoft/Mars/mhflux/MHEffectiveOnTime.h
r9153 r9343 50 50 UInt_t fFirstBin; // For bin for fit 51 51 52 Double_t fTotalTime; //[s] Total time accumulated from run-header 52 Double_t fTotalTime; //[s] Total time accumulated from run-header 53 Double_t fEffOnTime; //[s] On time as fitted from the DeltaT distribution 54 Double_t fEffOnTimeErr; //[s] On time error as fitted from the DeltaT distribution 53 55 54 56 // MHEffectiveOnTime … … 81 83 // Getter 82 84 Double_t GetTotalTime() const { return fTotalTime; } 85 Double_t GetEffOnTime() const { return fEffOnTime; } 83 86 84 87 const TH1D &GetHEffOnTheta() const { return fHThetaEffOn; } -
trunk/MagicSoft/Mars/mimage/MHHillas.cc
r9340 r9343 19 19 ! Author(s): Wolfgang Wittek 2002 <mailto:wittek@mppmu.mpg.de> 20 20 ! 21 ! Copyright: MAGIC Software Development, 2000-200 421 ! Copyright: MAGIC Software Development, 2000-2009 22 22 ! 23 23 ! … … 29 29 // 30 30 // This class contains histograms for the source independent image parameters 31 // 32 // ClassVersion 2: 33 // --------------- 34 // - fMm2Deg 35 // - fUseMmScale 31 36 // 32 37 ///////////////////////////////////////////////////////////////////////////// -
trunk/MagicSoft/Mars/mimage/MHHillas.h
r9340 r9343 54 54 //Int_t DistancetoPrimitive(Int_t px, Int_t py) { return 0; } 55 55 56 ClassDef(MHHillas, 1) // Container which holds histograms for the source independent image parameters56 ClassDef(MHHillas, 2) // Container which holds histograms for the source independent image parameters 57 57 }; 58 58 -
trunk/MagicSoft/Mars/mimage/MHHillasExt.cc
r9340 r9343 34 34 // + fHSlopeL 35 35 // 36 // ClassVersion 3: 37 // --------------- 38 // - fMm2Deg 39 // - fUseMmScale 40 // 36 41 ///////////////////////////////////////////////////////////////////////////// 37 42 #include "MHHillasExt.h" -
trunk/MagicSoft/Mars/mimage/MHHillasExt.h
r9340 r9343 44 44 void Draw(Option_t *opt=NULL); 45 45 46 ClassDef(MHHillasExt, 2) // Container which holds histograms for the extended hillas parameters46 ClassDef(MHHillasExt, 3) // Container which holds histograms for the extended hillas parameters 47 47 }; 48 48 -
trunk/MagicSoft/Mars/mimage/MHHillasSrc.cc
r9340 r9343 18 18 ! Author(s): Thomas Bretz 2001 <mailto:tbretz@uni-sw.gwdg.de> 19 19 ! 20 ! Copyright: MAGIC Software Development, 2000-200 120 ! Copyright: MAGIC Software Development, 2000-2009 21 21 ! 22 22 ! … … 28 28 // 29 29 // This class contains histograms for every Hillas parameter 30 // 31 // ClassVersion 2: 32 // --------------- 33 // - fMm2Deg 34 // - fUseMmScale 30 35 // 31 36 /////////////////////////////////////////////////////////////////////// -
trunk/MagicSoft/Mars/mimage/MHHillasSrc.h
r9340 r9343 46 46 47 47 48 ClassDef(MHHillasSrc, 1) // Container which holds histograms for the source dependant parameters48 ClassDef(MHHillasSrc, 2) // Container which holds histograms for the source dependant parameters 49 49 }; 50 50 -
trunk/MagicSoft/Mars/mimage/MHNewImagePar.cc
r9340 r9343 19 19 ! Author(s): Thomas Bretz, 04/2003 <mailto:tbretz@astro.uni-wuerzburg.de> 20 20 ! 21 ! Copyright: MAGIC Software Development, 2000-200 621 ! Copyright: MAGIC Software Development, 2000-2009 22 22 ! 23 23 ! … … 29 29 // 30 30 // 31 // Version 2:31 // ClassVersion 2: 32 32 // ---------- 33 33 // + TH1F fHistConcCOG; // [ratio] concentration around the center of gravity (all pixels) 34 34 // + TH1F fHistConcCore; // [ratio] concentration of signals inside ellipse (used pixels) 35 // 36 // ClassVersion 3: 37 // --------------- 38 // - fMm2Deg 39 // - fUseMmScale 35 40 // 36 41 //////////////////////////////////////////////////////////////////////////// -
trunk/MagicSoft/Mars/mimage/MHNewImagePar.h
r9340 r9343 61 61 void Paint(Option_t *opt=""); 62 62 63 ClassDef(MHNewImagePar, 2) // Histograms of new image parameters63 ClassDef(MHNewImagePar, 3) // Histograms of new image parameters 64 64 }; 65 65 -
trunk/MagicSoft/Mars/mimage/MHNewImagePar2.cc
r9340 r9343 18 18 ! Author(s): Thomas Bretz, 03/2005 <mailto:tbretz@astro.uni-wuerzburg.de> 19 19 ! 20 ! Copyright: MAGIC Software Development, 2000-200 520 ! Copyright: MAGIC Software Development, 2000-2009 21 21 ! 22 22 ! … … 26 26 // 27 27 // MHNewImagePar2 28 // 29 // ClassVersion 2: 30 // --------------- 31 // - fMm2Deg 32 // - fUseMmScale 28 33 // 29 34 //////////////////////////////////////////////////////////////////////////// -
trunk/MagicSoft/Mars/mimage/MHNewImagePar2.h
r9341 r9343 28 28 void Draw(Option_t *opt=""); 29 29 30 ClassDef(MHNewImagePar2, 1) // Histograms of new image parameters30 ClassDef(MHNewImagePar2, 2) // Histograms of new image parameters 31 31 }; 32 32 -
trunk/MagicSoft/Mars/mimage/MHVsSize.cc
r9341 r9343 19 19 ! Author(s): Wolfgang Wittek 2002 <mailto:wittek@mppmu.mpg.de> 20 20 ! 21 ! Copyright: MAGIC Software Development, 2000-200 421 ! Copyright: MAGIC Software Development, 2000-2009 22 22 ! 23 23 ! … … 29 29 // 30 30 // This class contains histograms for the source independent image parameters 31 // 32 // ClassVersion 2: 33 // --------------- 34 // - fMm2Deg 35 // - fUseMmScale 31 36 // 32 37 ///////////////////////////////////////////////////////////////////////////// -
trunk/MagicSoft/Mars/mimage/MHVsSize.h
r9341 r9343 40 40 void Draw(Option_t *opt=NULL); 41 41 42 ClassDef(MHVsSize, 1) // Container which holds histograms for image parameters vs size42 ClassDef(MHVsSize, 2) // Container which holds histograms for image parameters vs size 43 43 }; 44 44 -
trunk/MagicSoft/Mars/mjobs/MJSimulation.cc
r9336 r9343 209 209 } 210 210 211 void MJSimulation::SetupCommonFileStructure(MWriteRootFile &write) const 212 { 213 // Common run headers 214 write.AddContainer("MCorsikaRunHeader", "RunHeaders", kFALSE); 215 write.AddContainer("MRawRunHeader", "RunHeaders"); 216 write.AddContainer("MGeomCam", "RunHeaders"); 217 write.AddContainer("MMcRunHeader", "RunHeaders"); 218 219 // Common events 220 write.AddContainer("MCorsikaEvtHeader", "Events", kFALSE); 221 write.AddContainer("MRawEvtHeader", "Events"); 222 write.AddContainer("MMcEvt", "Events"); 223 } 224 211 225 Bool_t MJSimulation::Process(const MArgs &args) 212 226 { … … 429 443 write3b.SetName("WriteCamMC"); 430 444 431 write1a.AddContainer("MCorsikaEvtHeader", "Events", kFALSE);432 write1a.AddContainer("MPhotonEvent", "Events");433 434 write2a.AddContainer("MCorsikaRunHeader", "RunHeaders", kFALSE); 435 write2a.AddContainer("MRawRunHeader", "RunHeaders");436 write 2a.AddContainer("MGeomCam", "RunHeaders");437 write2a.AddContainer("MSignalCam", "Events"); 438 write2a.AddContainer("MRawEvtHeader", "Events", kFALSE);445 SetupCommonFileStructure(write1a); 446 SetupCommonFileStructure(write2a); 447 SetupCommonFileStructure(write3a); 448 449 // R: Dedicated file structureedicated events 450 write1a.AddContainer("MPhotonEvent", "Events"); 451 452 // I: Dedicated file structureedicated events 439 453 write2a.AddContainer("MPedPhotFromExtractorRndm", "RunHeaders"); // FIXME: Needed for the signal files to be display in MARS 440 write2a.AddContainer("MMcRunHeader", "RunHeaders"); 441 /* Monte Carlo Headers 442 write.AddContainer("MMcRunHeader", "RunHeaders", kFALSE); 443 write.AddContainer("MMcFadcHeader", "RunHeaders", kFALSE); 444 write.AddContainer("MMcTrigHeader", "RunHeaders", kFALSE); 445 write.AddContainer("MMcConfigRunHeader", "RunHeaders", kFALSE); 446 write.AddContainer("MMcCorsikaRunHeader", "RunHeaders", kFALSE); 447 // Monte Carlo 448 write.AddContainer("MMcEvt", "Events", kFALSE); 449 write.AddContainer("MMcTrig", "Events", kFALSE); 450 */// Data tree 451 //write.AddContainer("MPedPhotFromExtractor", "Events"); 452 //write.AddContainer("MPedPhotFromExtractorRndm", "Events"); 453 //write.AddContainer("MTime", "Events", kFALSE); 454 //write.AddContainer("MRawEvtHeader", "Events"); 455 //write.AddContainer("MTriggerPattern", "Events"); 456 457 write3a.AddContainer("MRawEvtData", "Events"); 458 write3a.AddContainer("MRawRunHeader", "RunHeaders"); 459 write3a.AddContainer("MGeomCam", "RunHeaders"); 460 write3a.AddContainer("MRawEvtHeader", "Events", kFALSE); 461 //write3.AddContainer("MPedestalCam", "RunHeaders", kFALSE); 462 write3a.AddContainer("MMcRunHeader", "RunHeaders"); 463 write3a.AddContainer("MMcCorsikaRunHeader", "RunHeaders", kFALSE); 464 write3a.AddContainer("ElectronicNoise", "RunHeaders", kFALSE); 465 write3a.AddContainer("MMcEvt", "Events", kFALSE); 466 467 write1b.AddContainer("MMcEvtBasic", "OriginalMC"); 468 write2b.AddContainer("MMcEvtBasic", "OriginalMC"); 469 write3b.AddContainer("MMcEvtBasic", "OriginalMC"); 454 write2a.AddContainer("MSignalCam", "Events"); 455 456 // D: Dedicated file structureedicated events 457 write3a.AddContainer("ElectronicNoise", "RunHeaders"); 458 write3a.AddContainer("MRawEvtData", "Events"); 459 460 // Basic MC data 461 write1b.AddContainer("MMcEvtBasic", "OriginalMC"); 462 write2b.AddContainer("MMcEvtBasic", "OriginalMC"); 463 write3b.AddContainer("MMcEvtBasic", "OriginalMC"); 470 464 471 465 // ------------------------------------------------------------------- -
trunk/MagicSoft/Mars/mjobs/MJSimulation.h
r9317 r9343 9 9 class MArgs; 10 10 class MParList; 11 class MWriteRootFile; 11 12 12 13 class MJSimulation : public MJob … … 22 23 23 24 void SetupHist(MHn &hist) const; 25 void SetupCommonFileStructure(MWriteRootFile &write) const; 24 26 25 27 public: -
trunk/MagicSoft/Mars/mjobs/MJSpectrum.cc
r9335 r9343 64 64 65 65 // Spectrum 66 #include "../mhflux/MAlphaFitter.h" 67 #include "../mhflux/MHAlpha.h" 68 #include "../mhflux/MHCollectionArea.h" 69 #include "../mhflux/MHEnergyEst.h" 70 #include "../mhflux/MMcSpectrumWeight.h" 66 #include "MAlphaFitter.h" 67 #include "MHAlpha.h" 68 #include "MHCollectionArea.h" 69 #include "MHEnergyEst.h" 70 #include "MMcSpectrumWeight.h" 71 #include "MHEffectiveOnTime.h" 71 72 72 73 // Eventloop … … 91 92 MJSpectrum::MJSpectrum(const char *name, const char *title) 92 93 : fCutQ(0), fCut0(0),fCut1(0), fCut2(0), fCut3(0), fCutS(0), 93 fEstimateEnergy(0), fCalcHadronness(0), fCalcDisp(0), fForceTheta(kFALSE) 94 fEstimateEnergy(0), fCalcHadronness(0), fCalcDisp(0), 95 fForceTheta(kFALSE), fForceRunTime(kFALSE), fForceOnTimeFit(kFALSE) 94 96 { 95 97 fName = name ? name : "MJSpectrum"; … … 296 298 return -1; 297 299 300 // We don't have to proceed. We later overwrite the result anyway 301 if (fForceOnTimeFit) 302 return 0; 303 298 304 const Double_t ufl = vstime->GetBinContent(0); 299 305 const Double_t ofl = vstime->GetBinContent(vstime->GetNbinsX()+1); … … 750 756 MFillH fill2(Form("HistE [%s]", cls.Data()), "", "FillHistE"); 751 757 758 // Fill a new MHEffectiveOnTime. It can either be used to 759 // re-calculate the on-time or just for manual cross check 760 MFillH fillT("MHEffectiveOnTime", "MTime", "FillOnTime"); 761 fillT.SetNameTab("OnTime"); 762 752 763 MFDataMember f0("DataType.fVal", '<', 0.5, "FilterOffData"); 753 764 MFDataMember f1("DataType.fVal", '>', 0.5, "FilterOnData"); … … 755 766 fill1.SetFilter(&f0); 756 767 fill2.SetFilter(&f1); 768 fillT.SetFilter(&f1); 757 769 758 770 tlist.AddToList(&read); 759 771 //tlist.AddToList(&taskenv0); // not necessary, stored in file! 760 772 //tlist.AddToList(&taskenv1); // not necessary, stored in file! 773 tlist.AddToList(&f1); 774 tlist.AddToList(&fillT); 761 775 tlist.AddToList(fCutS); 762 776 tlist.AddToList(&taskenv2); 763 777 tlist.AddToList(&f0); 764 tlist.AddToList(&f1);765 778 tlist.AddToList(&fill1); 766 779 tlist.AddToList(&fill2); … … 1545 1558 // Read from the ganymed file 1546 1559 TH1D htheta, size; 1547 constFloat_t ontime = ReadInput(plist, htheta, size);1560 Float_t ontime = ReadInput(plist, htheta, size); 1548 1561 if (ontime<0) 1549 1562 { … … 1562 1575 } 1563 1576 plist.AddToList(&bins2); // For later use in MC processing 1577 1578 // -------------- Fill excess events versus energy --------------- 1579 1580 TH1D excess; 1581 1582 if (fForceOnTimeFit) 1583 { 1584 // Refill excess histogram to determine the excess events 1585 // If we use the eff. on-time fit we have to loop over the data first 1586 // This is not really desired, because if something is wrong with 1587 // the Monte Carlos the program runs quite long before it fails 1588 if (!Refill(plist, excess)) 1589 return kFALSE; 1590 1591 // Print the setup and result of the MAlphaFitter, print used cuts 1592 PrintSetup(fit); 1593 1594 // ------------ On user request redo eff. on-time fit ------------ 1595 const MHEffectiveOnTime *htime = (MHEffectiveOnTime*)plist.FindObject("MHEffectiveOnTime"); 1596 if (!htime) 1597 { 1598 // This should never happen, bt you never know 1599 *fLog << err; 1600 *fLog << "ERROR - Use of new effective on-time fit requested for on-time determination," << endl; 1601 *fLog << " but MHEffectiveOnTime not found in parameter list... aborting." << endl; 1602 return kFALSE; 1603 } 1604 1605 const TH1D &h = htime->GetHEffOnTheta(); 1606 /* 1607 if (!htime->IsConsistent() || h.GetNbinsX()!=htheta.GetNbinsX()) 1608 { 1609 *fLog << err << "ERROR - Effective on-time from newly filles MHEffectiveOnTime (Tab='OnTime) invalid... aborting." << endl; 1610 return kFALSE; 1611 }*/ 1612 1613 *fLog << inf; 1614 *fLog << "Using eff. on-time from new MHEffectiveOnTime (see also 'OnTime')" << endl; 1615 *fLog << " Orig. value: " << ontime << "s" << endl; 1616 1617 // Copy ontime from newly filled and fitted eff on-time histogram 1618 ontime = htime->GetEffOnTime(); 1619 1620 *fLog << " New value: " << ontime << "s" << endl; 1621 1622 h.Copy(htheta); // Copy contents of newly filled hist into on-time vs. theta 1623 htheta.SetName("Theta"); // Copy overwrites the name needed in DisplayResult 1624 htheta.SetDirectory(0); // Remove from global directory added by SetName 1625 } 1626 1627 // --------------------------------------------------------------- 1564 1628 1565 1629 // Initialize weighting to a new spectrum as defined in the resource file … … 1612 1676 return kFALSE; 1613 1677 1614 // -------------- Fill excess events versus energy ---------------1615 1616 1678 // Refill excess histogram to determine the excess events 1617 TH1D excess; 1618 if (!Refill(plist, excess)) 1619 return kFALSE; 1620 1621 // Print the setup and result of the MAlphaFitter, print used cuts 1622 PrintSetup(fit); 1623 1679 if (!fForceOnTimeFit) 1680 { 1681 if (!Refill(plist, excess)) 1682 return kFALSE; 1683 1684 // Print the setup and result of the MAlphaFitter, print used cuts 1685 PrintSetup(fit); 1686 } 1624 1687 1625 1688 // ------------------------- Final loop -------------------------- … … 1768 1831 fillsp.SetWeight(); 1769 1832 1770 // Try to find the class used to determine the signal!1771 1833 // FIXME: To be done: A task checking the lower 1% after the lower 1772 1834 // energy limit! … … 1789 1851 return kFALSE; 1790 1852 par->SetVal(2); 1853 1854 // Not really necessary but for sanity 1855 TObject *cam = plist.FindObject("MSrcPosCam"); 1856 if (cam) 1857 cam->Clear(); 1791 1858 1792 1859 tlist2.AddToList(&read); -
trunk/MagicSoft/Mars/mjobs/MJSpectrum.h
r9335 r9343 38 38 Bool_t fForceTheta; 39 39 Bool_t fForceRunTime; 40 Bool_t fForceOnTimeFit; 40 41 41 42 // Setup Histograms … … 76 77 void ForceTheta(Bool_t b=kTRUE) { fForceTheta=b; } 77 78 void ForceRunTime(Bool_t b=kTRUE) { fForceRunTime=b; } 79 void ForceOnTimeFit(Bool_t b=kTRUE) { fForceOnTimeFit=b; } 78 80 79 81 void SetEnergyEstimator(const MTask *task); -
trunk/MagicSoft/Mars/mjobs/MJStar.cc
r9332 r9343 334 334 write.AddContainer("MMcEvt", "Events"); 335 335 write.AddContainer("MMcTrig", "Events", kFALSE); 336 write.AddContainer("MSrcPosCam", "Events"); 336 337 // Monte Carlo Run Headers 337 338 write.AddContainer("MMcRunHeader", "RunHeaders"); -
trunk/MagicSoft/Mars/sponde.cc
r9276 r9343 50 50 gLog << " -b Batch mode (no graphical output to screen)" << endl<<endl; 51 51 gLog << " Operation Mode:" << endl; 52 gLog << " --force-theta Force execution even with non-fitting theta distributions." << endl; 53 gLog << " --force-runtime Force usage of runtime instead of eff. observation time." << endl; 52 gLog << " --force-theta Force execution even with non-fitting theta" << endl; 53 gLog << " distributions." << endl; 54 gLog << " --force-runtime Force usage of runtime instead of effective" << endl; 55 gLog << " observation time from fit in star." << endl; 56 gLog << " --force-ontimefit Force usage of effective on-time from a new fit to" << endl; 57 gLog << " the time-stamps (overwrites --force-runtime)." << endl; 54 58 gLog << endl; 55 59 gLog << " Options:" << endl; … … 95 99 return 0xff; 96 100 101 MLog::RedirectErrorHandler(MLog::kColor); 102 97 103 // 98 104 // Evaluate arguments … … 129 135 const Bool_t kForceTheta = arg.HasOnlyAndRemove("--force-theta"); 130 136 const Bool_t kForceRunTime = arg.HasOnlyAndRemove("--force-runtime"); 137 const Bool_t kForceOnTimeFit= arg.HasOnlyAndRemove("--force-ontimefit"); 131 138 132 139 // … … 254 261 job.ForceTheta(kForceTheta); 255 262 job.ForceRunTime(kForceRunTime); 263 job.ForceOnTimeFit(kForceOnTimeFit); 256 264 257 265 if (!job.Process(seq))
Note:
See TracChangeset
for help on using the changeset viewer.