Changeset 7009
- Timestamp:
- 05/10/05 14:41:37 (20 years ago)
- Location:
- trunk/MagicSoft/Mars/mmuon
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/mmuon/MHMuonPar.cc
r6984 r7009 206 206 fHistBroad.Draw(); 207 207 } 208 /*209 TH1 *MHMuonPar::GetHistByName(const TString name)210 {211 if (name.Contains("Radius", TString::kIgnoreCase))212 return &fHistRadius;213 if (name.Contains("ArcWidth", TString::kIgnoreCase))214 return &fHistArcWidth;215 return NULL;216 }217 */ -
trunk/MagicSoft/Mars/mmuon/MHMuonPar.h
r6979 r7009 19 19 { 20 20 private: 21 TH1F fHistRadius; // 22 TH1F fHistArcWidth; // 21 TH1F fHistRadius; // Radius 22 TH1F fHistArcWidth; // ArcWidth 23 23 24 TProfile fHistBroad; // Ar ea of used pixels25 TProfile fHistSize; // [ratio] concentration ratio: sum of the two highest pixels / fSize24 TProfile fHistBroad; // ArcWidth/Radius Vs Radius 25 TProfile fHistSize; // MuonSize Vs Radius 26 26 27 27 MMuonSearchPar *fMuonSearchPar; //! … … 36 36 Bool_t Fill(const MParContainer *par, const Stat_t w=1); 37 37 38 //TH1 *GetHistByName(const TString name);39 40 38 const TH1F& GetHistRadius() const { return fHistRadius; } 41 39 const TH1F& GetHistArcWidth() const { return fHistArcWidth; } … … 45 43 void Draw(Option_t *opt=""); 46 44 47 ClassDef(MHMuonPar, 1) // Histograms of new image parameters45 ClassDef(MHMuonPar, 1) 48 46 }; 49 47 -
trunk/MagicSoft/Mars/mmuon/MHSingleMuon.cc
r7003 r7009 16 16 ! 17 17 ! 18 ! Author(s): Keiichi Mase, 10/2004 18 19 ! Author(s): Markus Meyer, 02/2005 <mailto:meyer@astro.uni-wuerzburg.de> 19 20 ! Author(s): Thomas Bretz, 04/2005 <mailto:tbretz@astro.uni-wuerzburg.de> … … 28 29 // MHSingleMuon 29 30 // 30 // This class is a histogram class for a displaying muonparameters. 31 // The folowing histgrams will be plotted: 32 // - Radius (TH1F) 33 // - ArcWidth (TH1F) 31 // This class is a histogram class for displaying the radial (fHistWidth) 32 // and the azimuthal (fHistPhi) intensity distribution for one muon. 33 // You can retrieve the histogram (TH1F) using the function GetHistPhi() 34 // or GetHistWidth(). 35 // From these histograms the fraction of the ring segment (ArcPhi) and the 36 // Width of the muon ring (ArcWidth) is calculated. 37 // 38 // First, the radius and center of the ring has to be calculted by 39 // MMuonSearchParCalc 40 // After that the histograms has to be filled in the following way: 41 // 42 // MFillH fillmuon("MHSingleMuon", "", "FillMuon"); 43 // 44 // The allowed region to estimate ArcPhi is a certain margin around the 45 // radius. The default value is 0.2 deg (60mm). If the estimated radius 46 // of the arc is 1.0 deg, the pixel contents in the radius range from 47 // 0.8 deg to 1.2 deg are fill in the histogram. 48 // 49 // For ArcPhi only bins over a certain threshold are supposed to be part 50 // of the ring. 51 // For ArcWidth, the same algorithm is used to determine the fit region 52 // for a gaussian fit to the radial intensity distribution. The ArcWidth 53 // is defined as the sigma value of the gaussian fit. 54 // 55 // The binning of the histograms can be changed in the following way: 56 // 57 // MBinning bins1("BinningMuonWidth"); 58 // MBinning bins2("BinningArcPhi"); 59 // bins1.SetEdges(28, 0.3, 1.7); 60 // bins2.SetEdges(20, -180,180); 61 // plist.AddToList(&bins1); 62 // plist.AddToList(&bins2); 63 // 64 // The values for the thresholds and the margin are saved in MMuonSetup. 65 // They can be easily changed in star.rc. 66 // 67 // Please have in mind, that changes in this basic parameters will change 68 // your results!! 34 69 // 35 70 // Inputcontainer: 36 71 // - MGeomCam 37 72 // - MMuonSearchPar 38 // - MMuonCalibPar73 // 39 74 // 40 75 //////////////////////////////////////////////////////////////////////////// … … 319 354 f1.SetParameter(0, fHistWidth.GetMaximumBin()); 320 355 f1.SetParameter(1, fHistWidth.GetBinCenter(m)); 321 f1.SetParameter(2, (endfitval-startfitval)/2); 356 // f1.SetParameter(2, (endfitval-startfitval)/2); 357 f1.SetParameter(2, 0.1); 322 358 323 359 // options : N do not store the function, do not draw … … 338 374 // -------------------------------------------------------------------------- 339 375 // 340 // 376 // An impact parameter is calculated by fitting the histogram of photon 341 377 // distribution along the circle with a theoritical model. 342 378 // (See G. Vacanti et. al., Astroparticle Physics 2, 1994, 1-11. 343 379 // The function (6) is used here.) 344 380 // 345 // By default this calculation is suppressed because this calculation is381 // By default this calculation is suppressed because this calculation is 346 382 // very time consuming. If you want to calculate an impact parameter, 347 383 // you can call the function of EnableImpactCalc(). -
trunk/MagicSoft/Mars/mmuon/MHSingleMuon.h
r6996 r7009 41 41 const TH1F &GetHistWidth() const { return fHistWidth; } 42 42 43 ClassDef(MHSingleMuon, 1) // Histograms of new image parameters43 ClassDef(MHSingleMuon, 1) 44 44 }; 45 45 -
trunk/MagicSoft/Mars/mmuon/MMuonCalibPar.cc
r6994 r7009 61 61 void MMuonCalibPar::Reset() 62 62 { 63 fArcLength = -1.;63 // fArcLength = -1.; 64 64 fArcPhi = -1.; 65 65 fArcWidth = -1.; … … 67 67 fChiArcWidth = -1.; 68 68 fMuonSize = 0.; 69 fEstImpact = -1.;69 // fEstImpact = -1.; 70 70 fPeakPhi = 0.; 71 71 } … … 75 75 *fLog << all; 76 76 *fLog << "Muon Parameters (" << GetName() << ")" << endl; 77 *fLog << " - Arc Length [deg] = " << fArcLength << endl;77 // *fLog << " - Arc Length [deg] = " << fArcLength << endl; 78 78 *fLog << " - Arc Phi [deg] = " << fArcPhi << endl; 79 79 *fLog << " - Arc Width [deg] = " << fArcWidth << endl; 80 80 *fLog << " - Chi Arc Phi [x2/ndf]= " << fChiArcPhi << endl; 81 81 *fLog << " - Chi Arc Width [x2/ndf]= " << fChiArcWidth << endl; 82 *fLog << " - Est. I. P. [m] = " << fEstImpact << endl;82 // *fLog << " - Est. I. P. [m] = " << fEstImpact << endl; 83 83 *fLog << " - Size of muon [phe] = " << fMuonSize << endl; 84 84 *fLog << " - Peak Phi [deg] = " << fPeakPhi << endl; -
trunk/MagicSoft/Mars/mmuon/MMuonCalibPar.h
r6979 r7009 16 16 { 17 17 private: 18 Float_t fArcLength; // An arc length of a muon along the arc [deg.]18 // Float_t fArcLength; // An arc length of a muon along the arc [deg.] 19 19 Float_t fArcPhi; // A opening angle of a muon arc [deg.] 20 20 Float_t fArcWidth; // A width of a muon [deg.] (1 sigma of gaussian fit) … … 22 22 Float_t fChiArcWidth; // A chisquare value of the cosine fit for arc wid 23 23 Float_t fMuonSize; // A SIZE of muon which is defined as a SIZE around the estimated circle 24 Float_t fEstImpact; // An estimated impact parameter from the photon distribution along the arc image24 // Float_t fEstImpact; // An estimated impact parameter from the photon distribution along the arc image 25 25 //Bool_t fUseUnmap; // This is a flag to know the Unmapped pixels are used. Refer to the class of MImgCleanStd 26 26 Float_t fPeakPhi; // The angle which indicates the peak position in the estimated circle … … 32 32 void Reset(); 33 33 34 Float_t GetArcLength() const { return fArcLength; }34 // Float_t GetArcLength() const { return fArcLength; } 35 35 Float_t GetArcPhi() const { return fArcPhi; } 36 36 Float_t GetArcWidth() const { return fArcWidth; } … … 38 38 Float_t GetChiArcWidth() const { return fChiArcWidth; } 39 39 Float_t GetMuonSize() const { return fMuonSize; } 40 Float_t GetEstImpact() const { return fEstImpact; }40 // Float_t GetEstImpact() const { return fEstImpact; } 41 41 //Bool_t IsUseUnmap() const { return fUseUnmap; } 42 42 Float_t GetPeakPhi() const { return fPeakPhi; } 43 // TH1F *GetHistPhi() { return fHistPhi; }44 // TH1F *GetHistWidth() { return fHistWidth; }45 43 46 void SetArcLength(Float_t len) { fArcLength = len; }44 // void SetArcLength(Float_t len) { fArcLength = len; } 47 45 void SetArcPhi(Float_t phi) { fArcPhi = phi; } 48 46 void SetArcWidth(Float_t wid) { fArcWidth = wid; } … … 50 48 void SetChiArcWidth(Float_t chi) { fChiArcWidth = chi; } 51 49 void SetMuonSize(Float_t size) { fMuonSize = size; } 52 void SetEstImpact(Float_t impact) { fEstImpact = impact; }50 // void SetEstImpact(Float_t impact) { fEstImpact = impact; } 53 51 //void SetUseUnmap() { fUseUnmap = kTRUE; } 54 52 void SetPeakPhi(Float_t phi) { fPeakPhi = phi; } -
trunk/MagicSoft/Mars/mmuon/MMuonSearchPar.cc
r6979 r7009 30 30 // Storage Container for muon 31 31 // 32 // This class is the container for muon parameters. Actually, the calculation 33 // is done here. Muons are searched by fitting the image with a circle. 34 // (This function will be called by using the class of MMuonSearchParCalc.) 35 // This container especially holds the information of the results of the 36 // search (fit of a image by a circle). 32 // This class is the container for muon parameters. The calculation 33 // of Radius and center of the ring is done here. 34 // Muons are searched by fitting the image with a circle. 37 35 // 38 36 // In order to use further information of muons such as the width of arcs, 39 // the arc length along it, the muons size. Use the infomation stored in 40 // MMuonCalibPar. The information will be available by using the task of 37 // the size of the fraction of the ring and the muons size, use the 38 // infomation stored in 39 // 40 // MMuonCalibPar. 41 // 42 // The information will be available by using the task of 43 // 41 44 // MMuonCalibParCalc. 42 //43 // --- How to search muons ---44 // (This information is a little bit technical. You can skip to read if you45 // don't need the technical information.)46 //47 // 1. A temporal center position of a circle is determined by using48 // the Hillas parameters. Assumed that the center position will be on the49 // line which is perpendicular to the longitudinal image axis and the50 // distance from the gravity center of the image to the center position of51 // a ring is approximately 1 deg. (corresponding to the Cherenkov angle.).52 // Therefore, we will have two candidates of the center positions.53 //54 // 2. Find the ring radius which gives the minimum RMS between the camera55 // images and the estimated circle.56 //57 // 3. Select one temporal position which gives smaller RMS as a true temporal58 // center position.59 //60 // 4. Changing the center position of a circle on the camera plane from the61 // determined temporal center position, find the position which gives the62 // minimum RMS of the fit.63 45 // 64 46 // -
trunk/MagicSoft/Mars/mmuon/MMuonSearchParCalc.cc
r6979 r7009 30 30 // Task to calculate the muon parameters 31 31 // 32 // This class search for muons and store the information into the container 33 // of MMuonSearchPar. The actual calculation is done in the class of 34 // MMuonSearchPar. Please see the manual. 35 // 36 // In order to use further information of muons such as the width of arcs, 37 // the arc length along it, the muons size. Use the infomation stored in 38 // MMuonCalibPar. The information will be available by using the task of 39 // MMuonCalibParCalc. 32 // This class search for muons and store the information into the container 33 // of MMuonSearchPar. Please see the manual for more information. 40 34 // 41 35 // -
trunk/MagicSoft/Mars/mmuon/MMuonSetup.cc
r6986 r7009 28 28 // 29 29 // Storage Container for setup parameter for the muon analysis 30 // 31 // - margin 32 // - ThresholdArcWidth 33 // - ThresholdArcPhi 30 34 // 31 35 ///////////////////////////////////////////////////////////////////////////// -
trunk/MagicSoft/Mars/mmuon/MMuonSetup.h
r6986 r7009 9 9 { 10 10 private: 11 Float_t fMargin; // [deg] margin to evaluate muons. The defaut value is 60 mm, corresponding to 0.2 deg. This value can be changed by using the function of SetMargin12 Float_t fThresholdArcPhi; // [phe] The threshold value to define arc phi13 Float_t fThresholdArcWidth; // [phe] The threshold value to define arc width11 Float_t fMargin; // [deg] margin to evaluate muons. The defaut value is 0.2 deg (60mm) 12 Float_t fThresholdArcPhi; // [phe] The threshold value to define ArcPhi 13 Float_t fThresholdArcWidth; // [phe] The threshold value to define ArcWidth 14 14 15 15 Int_t ReadEnv(const TEnv &env, TString prefix, Bool_t print);
Note:
See TracChangeset
for help on using the changeset viewer.