- Timestamp:
- 04/24/02 12:29:54 (23 years ago)
- Location:
- trunk/MagicSoft/Mars/mhist
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/mhist/MHAlphaEnergyTheta.cc
r1227 r1292 26 26 ////////////////////////////////////////////////////////////////////////////// 27 27 // // 28 // MHAlphaEnergyTheta 28 // MHAlphaEnergyTheta // 29 29 // // 30 // 3D-histogram in alpha, E-est and Theta // 30 31 // // 31 32 ////////////////////////////////////////////////////////////////////////////// … … 34 35 35 36 #include <TCanvas.h> 37 38 #include <math.h> 36 39 37 40 #include "MMcEvt.hxx" … … 49 52 // -------------------------------------------------------------------------- 50 53 // 51 // Default Constructor. It sets name and title only. Typically you won't 52 // need to change this. 54 // Default Constructor. It sets name and title of the histogram. 53 55 // 54 56 MHAlphaEnergyTheta::MHAlphaEnergyTheta(const char *name, const char *title) … … 62 64 fHist.SetDirectory(NULL); 63 65 64 fHist.GetXaxis()->SetTitle("\\alpha [\\circ]"); 65 fHist.GetYaxis()->SetTitle("E_{est} [GeV]"); 66 fHist.GetZaxis()->SetTitle("\\Theta [\\circ]"); 67 } 68 66 fHist.SetTitle("3D-plot of alpha, E-est, Theta"); 67 fHist.SetXTitle("\\alpha [\\circ]"); 68 fHist.SetYTitle("E-est [GeV] "); 69 fHist.SetZTitle("\\Theta [\\circ]"); 70 } 71 72 // -------------------------------------------------------------------------- 73 // 74 // Set binnings and prepare filling of the histogram 75 // 69 76 Bool_t MHAlphaEnergyTheta::SetupFill(const MParList *plist) 70 77 { … … 94 101 SetBinning(&fHist, binsalpha, binsenergy, binstheta); 95 102 103 fHist.Sumw2(); 104 96 105 return kTRUE; 97 106 } 98 107 108 // -------------------------------------------------------------------------- 109 // 110 // Fill the histogram 111 // 99 112 Bool_t MHAlphaEnergyTheta::Fill(const MParContainer *par) 100 113 { … … 106 119 } 107 120 121 // -------------------------------------------------------------------------- 122 // 123 // Draw the histogram 124 // 108 125 void MHAlphaEnergyTheta::Draw(Option_t *opt) 109 126 { 110 127 if (!gPad) 111 MakeDefCanvas("AlphaEnergyTheta", "Distrib of alpha, E, Theta");128 MakeDefCanvas("AlphaEnergyTheta", fTitle); 112 129 113 130 gPad->Divide(2,2); … … 116 133 117 134 gPad->cd(1); 118 h = fHist.Project3D("x"); 135 h = fHist.Project3D("expro"); 136 137 h->SetTitle("Distribution of \\alpha [\\circ]"); 138 h->SetXTitle("\\alpha [\\circ]"); 139 h->SetYTitle("Counts"); 140 119 141 h->Draw(opt); 120 142 h->SetBit(kCanDelete); 121 143 122 144 gPad->cd(2); 123 h = fHist.Project3D("y"); 124 h->Draw(opt); 125 h->SetBit(kCanDelete); 145 h = fHist.Project3D("eypro"); 146 147 h->SetTitle("Distribution of E-est [GeV]"); 148 h->SetXTitle("E-est [GeV] "); 149 h->SetYTitle("Counts"); 150 151 h->Draw(opt); 152 h->SetBit(kCanDelete); 153 gPad->SetLogx(); 126 154 127 155 gPad->cd(3); 128 h = fHist.Project3D("z"); 156 h = fHist.Project3D("ezpro"); 157 158 h->SetTitle("Distribution of \\Theta [\\circ]"); 159 h->SetXTitle("\\Theta [\\circ]"); 160 h->SetYTitle("Counts"); 161 129 162 h->Draw(opt); 130 163 h->SetBit(kCanDelete); … … 137 170 } 138 171 172 // -------------------------------------------------------------------------- 173 // 174 // Draw copies of the histogram 175 // 139 176 TObject *MHAlphaEnergyTheta::DrawClone(Option_t *opt) const 140 177 { 141 TCanvas *c = MakeDefCanvas("AlphaEnergyTheta", "Distrib of alpha, E, Theta");142 c ->Divide(2, 2);178 TCanvas &c = *MakeDefCanvas("AlphaEnergyTheta", fTitle); 179 c.Divide(2, 2); 143 180 144 181 gROOT->SetSelectedPad(NULL); 145 182 146 //147 // FIXME: ProjectionX,Y is not const within root148 //149 183 TH1 *h; 150 184 151 c->cd(1); 152 h = ((TH3*)(&fHist))->Project3D("x"); 153 h->Draw(opt); 154 h->SetBit(kCanDelete); 155 156 c->cd(2); 157 h = ((TH3*)(&fHist))->Project3D("y"); 158 h->Draw(opt); 159 h->SetBit(kCanDelete); 160 161 c->cd(3); 162 h = ((TH3*)(&fHist))->Project3D("z"); 163 h->Draw(opt); 164 h->SetBit(kCanDelete); 165 166 c->cd(4); 185 c.cd(1); 186 h = ((TH3*)(&fHist))->Project3D("expro"); 187 188 h->SetTitle("Distribution of \\alpha [\\circ]"); 189 h->SetXTitle("\\alpha [\\circ]"); 190 h->SetYTitle("Counts"); 191 192 h->Draw(opt); 193 h->SetBit(kCanDelete); 194 195 c.cd(2); 196 h = ((TH3*)(&fHist))->Project3D("eypro"); 197 198 h->SetTitle("Distribution of E-est [GeV]"); 199 h->SetXTitle("E-est [GeV] "); 200 h->SetYTitle("Counts"); 201 202 h->Draw(opt); 203 h->SetBit(kCanDelete); 204 gPad->SetLogx(); 205 206 c.cd(3); 207 h = ((TH3*)(&fHist))->Project3D("ezpro"); 208 209 h->SetTitle("Distribution of \\Theta [\\circ]"); 210 h->SetXTitle("\\Theta [\\circ]"); 211 h->SetYTitle("Counts"); 212 213 h->Draw(opt); 214 h->SetBit(kCanDelete); 215 216 c.cd(4); 167 217 ((TH3&)fHist).DrawCopy(opt); 168 218 169 c->Modified(); 170 c->Update(); 171 172 return c; 173 } 174 175 void MHAlphaEnergyTheta::Substract(const TH3D *h1, const TH3D *h2) 176 { 177 MH::SetBinning(&fHist, (TH1*)h1); 178 179 fHist.Sumw2(); 219 c.Modified(); 220 c.Update(); 221 222 return &c; 223 } 224 225 // -------------------------------------------------------------------------- 226 // 227 // Calculate the histogram as the difference of two histograms : 228 // fHist(gamma) = h1(source) - h2(antisource) 229 // 230 void MHAlphaEnergyTheta::Subtract(const TH3D *h1, const TH3D *h2) 231 { 232 // MH::SetBinning(&fHist, (TH1*)h1); 233 234 // fHist.Sumw2(); 180 235 fHist.Add((TH1*)h1, (TH1*)h2, 1, -1); // Root: FIXME 181 236 } 182 237 183 void MHAlphaEnergyTheta::SetAlphaRange(Axis_t lo, Axis_t up) 184 { 238 239 // -------------------------------------------------------------------------- 240 // 241 // Integrate fHist(gamma) in the alpha range (lo, up) 242 // 243 TH2D *MHAlphaEnergyTheta::GetAlphaProjection(Axis_t lo, Axis_t up) 244 { 245 if (up < lo) 246 { 247 *fLog << err << fName << ": Alpha projection not possible: lo=" << lo << " up=" << up << endl; 248 return NULL; 249 } 250 185 251 TAxis &axe = *fHist.GetXaxis(); 186 252 187 // 188 // FIXME: ROOT Binning??? of projection 189 // root 3.02: SetRangeUser 190 #if ROOT_VERSION_CODE < ROOT_VERSION(3,02,06) 191 axe.SetRange(axe.FindFixBin(lo), axe.FindFixBin(up)); 192 #else 193 axe.SetRangeUser(lo, up); 194 #endif 195 } 196 197 TH2D *MHAlphaEnergyTheta::GetAlphaProjection(Axis_t lo, Axis_t up) 198 { 199 SetAlphaRange(lo, up); 200 return (TH2D*)fHist.Project3D("yz"); 201 } 253 Int_t ilo = axe.FindFixBin(lo); 254 Int_t iup = axe.FindFixBin(up); 255 256 const Double_t epslo1 = lo-axe.GetBinLowEdge(ilo); 257 const Double_t epslo2 = axe.GetBinUpEdge(ilo)-lo; 258 259 const Double_t epsup1 = up-axe.GetBinLowEdge(iup); 260 const Double_t epsup2 = axe.GetBinUpEdge(iup)-up; 261 262 const Double_t epslo = epslo1<epslo2 ? epslo1 : epslo2; 263 const Double_t epsup = epsup1<epsup2 ? epsup1 : epsup2; 264 265 if (epslo1>epslo2) 266 ilo++; 267 268 if (epsup1<epsup2) 269 iup--; 270 271 if (epslo>0.01*axe.GetBinWidth(ilo) || epsup>0.01*axe.GetBinWidth(iup)) 272 { 273 *fLog << err << fName << ": binning is not adequate for the requested projection:" << endl; 274 *fLog << "Please specify a lower or upper limit which is not more than 1% away from a bin edge" << endl; 275 *fLog << " epslo = " << epslo << endl; 276 *fLog << " epsup = " << epsup << endl; 277 *fLog << " dwl = " << axe.GetBinWidth(ilo) << endl; 278 *fLog << " dwu = " << axe.GetBinWidth(iup) << endl; 279 return NULL; 280 } 281 282 axe.SetRange(ilo, iup); 283 284 TH2D &h2D = *(TH2D *)fHist.Project3D("ezypro"); 285 286 h2D.SetTitle("2D-plot of Theta vs. E-est"); 287 h2D.SetXTitle("E-est [GeV] "); 288 h2D.SetYTitle("\\Theta [\\circ]"); 289 290 return &h2D; 291 } 292 293 // -------------------------------------------------------------------------- 294 // 295 // Draw the integrated histogram 296 // 297 TH2D *MHAlphaEnergyTheta::DrawAlphaProjection(Axis_t lo, Axis_t up, Option_t *opt) 298 { 299 TH2D *h2D = GetAlphaProjection(lo, up); 300 301 if (!h2D) 302 return NULL; 303 304 char txt[100]; 305 sprintf(txt, "No.of Gammas vs. E-est and Theta (%.1f < alpha < %.1f deg)", lo, up); 306 307 // TCanvas *c = MakeDefCanvas("AlphaEnergyTheta", "2D histogram of gamma signal in energy and theta"); 308 TCanvas &c = *MakeDefCanvas("AlphaEnergyTheta", txt); 309 310 c.Divide(2, 2); 311 312 gROOT->SetSelectedPad(NULL); 313 314 TH1 *h; 315 316 c.cd(1); 317 h = h2D->ProjectionX("Eest", -1, 9999, "E"); 318 h->SetTitle("Distribution of E-est [GeV]"); 319 h->SetXTitle("E-est [GeV] "); 320 h->SetYTitle("Counts"); 321 322 h->Draw(opt); 323 h->SetBit(kCanDelete); 324 gPad->SetLogx(); 325 326 c.cd(2); 327 h = h2D->ProjectionY("theta", -1, 9999, "E"); 328 h->SetTitle("Distribution of \\Theta [\\circ]"); 329 h->SetXTitle("\\Theta [\\circ]"); 330 h->SetYTitle("Counts"); 331 332 h->Draw(opt); 333 h->SetBit(kCanDelete); 334 335 c.cd(3); 336 337 h2D->DrawCopy(opt); 338 gPad->SetLogx(); 339 340 c.Modified(); 341 c.Update(); 342 343 return h2D; 344 } 345 346 347 348 349 350 351 352 353 354 355 356 -
trunk/MagicSoft/Mars/mhist/MHAlphaEnergyTheta.h
r1211 r1292 5 5 #include "MH.h" 6 6 #endif 7 7 8 #ifndef ROOT_TH3 8 9 #include "TH3.h" 10 #endif 11 12 #ifndef ROOT_TH2 13 #include "TH2.h" 9 14 #endif 10 15 … … 25 30 TH3D fHist; 26 31 27 void SetAlphaRange(Axis_t lo, Axis_t up);28 29 32 public: 30 33 MHAlphaEnergyTheta(const char *name=NULL, const char *title=NULL); … … 39 42 TObject *DrawClone(Option_t *option="") const; 40 43 41 void Sub stract(const TH3D *h1, const TH3D *h2);42 void Sub stract(const MHAlphaEnergyTheta *h1, const MHAlphaEnergyTheta *h2)44 void Subtract(const TH3D *h1, const TH3D *h2); 45 void Subtract(const MHAlphaEnergyTheta *h1, const MHAlphaEnergyTheta *h2) 43 46 { 44 Sub stract(h1->GetHist(), h2->GetHist());47 Subtract(h1->GetHist(), h2->GetHist()); 45 48 } 46 49 50 TH2D *DrawAlphaProjection(Axis_t lo, Axis_t up, Option_t *opt=""); 47 51 TH2D *GetAlphaProjection(Axis_t lo, Axis_t up); 48 52 49 ClassDef(MHAlphaEnergyTheta, 1) // Histogram to store a 3-Dimhistogram in alpha, Energy and theta53 ClassDef(MHAlphaEnergyTheta, 1) //3D-histogram in alpha, Energy and theta 50 54 }; 51 55 -
trunk/MagicSoft/Mars/mhist/MHAlphaEnergyTime.cc
r1227 r1292 28 28 // MHAlphaEnergyTime // 29 29 // // 30 // 3D-histogram in alpha, E-est and time // 30 31 // // 31 32 ////////////////////////////////////////////////////////////////////////////// … … 34 35 35 36 #include <TCanvas.h> 37 38 #include <math.h> 36 39 37 40 #include "MHillasSrc.h" … … 50 53 // -------------------------------------------------------------------------- 51 54 // 52 // Default Constructor. It sets name and title only. Typically you won't 53 // need to change this. 54 // 55 #include <iostream.h> 55 // Default Constructor. It sets name and title of the histogram. 56 // 56 57 MHAlphaEnergyTime::MHAlphaEnergyTime(const char *name, const char *title) 57 58 : fHist() … … 65 66 fHist.SetDirectory(NULL); 66 67 67 fHist.GetXaxis()->SetTitle("\\alpha [\\circ]"); 68 fHist.GetYaxis()->SetTitle("E_{est} [GeV]"); 69 fHist.GetZaxis()->SetTitle("t [s]"); 70 } 71 68 fHist.SetTitle("3D-plot of alpha, E-est, time"); 69 fHist.SetXTitle("\\alpha [\\circ]"); 70 fHist.SetYTitle("E-est [GeV] "); 71 fHist.SetZTitle("time [s]"); 72 } 73 74 // -------------------------------------------------------------------------- 75 // 76 // Set binnings and prepare filling of the histogram 77 // 72 78 Bool_t MHAlphaEnergyTime::SetupFill(const MParList *plist) 73 79 { … … 102 108 } 103 109 110 // -------------------------------------------------------------------------- 111 // 112 // Fill the histogram 113 // 104 114 Bool_t MHAlphaEnergyTime::Fill(const MParContainer *par) 105 115 { … … 110 120 } 111 121 122 // -------------------------------------------------------------------------- 123 // 124 // Draw the histogram 125 // 112 126 void MHAlphaEnergyTime::Draw(Option_t *opt) 113 127 { 114 128 if (!gPad) 115 MakeDefCanvas("AlphaEnergyTime", "Distrib of alpha, E, t");129 MakeDefCanvas("AlphaEnergyTime", fTitle); 116 130 117 131 gPad->Divide(2,2); … … 120 134 121 135 gPad->cd(1); 122 h = fHist.Project3D("x"); 136 h = fHist.Project3D("ex"); 137 138 h->SetTitle("Distribution of \\alpha [\\circ]"); 139 h->SetXTitle("\\alpha [\\circ]"); 140 h->SetYTitle("Counts"); 141 123 142 h->Draw(opt); 124 143 h->SetBit(kCanDelete); 125 144 126 145 gPad->cd(2); 127 h = fHist.Project3D("y"); 128 h->Draw(opt); 129 h->SetBit(kCanDelete); 146 h = fHist.Project3D("ey"); 147 148 h->SetTitle("Distribution of E-est [GeV]"); 149 h->SetXTitle("E-est [GeV] "); 150 h->SetYTitle("Counts"); 151 152 h->Draw(opt); 153 h->SetBit(kCanDelete); 154 gPad->SetLogx(); 130 155 131 156 gPad->cd(3); 132 h = fHist.Project3D("z"); 157 h = fHist.Project3D("ez"); 158 159 h->SetTitle("Distribution of time [s]"); 160 h->SetXTitle("time [s]"); 161 h->SetYTitle("Counts"); 162 133 163 h->Draw(opt); 134 164 h->SetBit(kCanDelete); … … 139 169 gPad->Modified(); 140 170 gPad->Update(); 141 } 142 171 172 } 173 174 // -------------------------------------------------------------------------- 175 // 176 // Draw copies of the histogram 177 // 143 178 TObject *MHAlphaEnergyTime::DrawClone(Option_t *opt) const 144 179 { 145 TCanvas *c = MakeDefCanvas("AlphaEnergyTime", "Distrib of alpha, E, t"); 146 c->Divide(2, 2); 180 TCanvas &c = *MakeDefCanvas("AlphaEnergyTime", fTitle); 181 182 c.Divide(2, 2); 147 183 148 184 gROOT->SetSelectedPad(NULL); 149 185 150 //151 // FIXME: ProjectionX,Y is not const within root152 //153 186 TH1 *h; 154 187 155 c->cd(1); 156 h = ((TH3D*)(&fHist))->Project3D("x"); 157 h->Draw(opt); 158 h->SetBit(kCanDelete); 159 160 c->cd(2); 161 h = ((TH3D*)(&fHist))->Project3D("y"); 162 h->Draw(opt); 163 h->SetBit(kCanDelete); 164 165 c->cd(3); 166 h = ((TH3D*)(&fHist))->Project3D("z"); 167 h->Draw(opt); 168 h->SetBit(kCanDelete); 169 170 c->cd(4); 188 c.cd(1); 189 h = ((TH3D*)(&fHist))->Project3D("ex"); 190 191 h->SetTitle("Distribution of \\alpha [\\circ]"); 192 h->SetXTitle("\\alpha [\\circ]"); 193 h->SetYTitle("Counts"); 194 195 h->Draw(opt); 196 h->SetBit(kCanDelete); 197 198 c.cd(2); 199 h = ((TH3D*)(&fHist))->Project3D("ey"); 200 201 h->SetTitle("Distribution of E-est [GeV]"); 202 h->SetXTitle("E-est [GeV] "); 203 h->SetYTitle("Counts"); 204 205 h->Draw(opt); 206 h->SetBit(kCanDelete); 207 gPad->SetLogx(); 208 209 c.cd(3); 210 h = ((TH3D*)(&fHist))->Project3D("ez"); 211 212 h->SetTitle("Distribution of time [s]"); 213 h->SetXTitle("time [s]"); 214 h->SetYTitle("Counts"); 215 216 h->Draw(opt); 217 h->SetBit(kCanDelete); 218 219 c.cd(4); 171 220 ((TH3D&)fHist).DrawCopy(opt); 172 221 173 c->Modified(); 174 c->Update(); 175 176 return c; 177 } 178 179 void MHAlphaEnergyTime::Substract(const TH3D *h1, const TH3D *h2) 180 { 181 MH::SetBinning(&fHist, (TH1*)h1); 182 183 fHist.Sumw2(); 222 c.Modified(); 223 c.Update(); 224 225 return &c; 226 } 227 228 // -------------------------------------------------------------------------- 229 // 230 // Calculate the histogram as the difference of two histograms : 231 // fHist(gamma) = h1(source) - h2(antisource) 232 // 233 void MHAlphaEnergyTime::Subtract(const TH3D *h1, const TH3D *h2) 234 { 235 // MH::SetBinning(&fHist, (TH1*)h1); 236 237 // fHist.Sumw2(); 184 238 fHist.Add((TH1*)h1, (TH1*)h2, 1, -1); // ROOT: FIXME! 185 239 } 186 240 187 void MHAlphaEnergyTime::SetAlphaRange(Axis_t lo, Axis_t up) 188 { 241 // -------------------------------------------------------------------------- 242 // 243 // Integrate fHist(gamma) in the alpha range (lo, up) 244 // 245 TH2D *MHAlphaEnergyTime::GetAlphaProjection(Axis_t lo, Axis_t up) 246 { 247 if (up < lo) 248 { 249 *fLog << err << fName << ": Alpha projection not possible: lo=" << lo << " up=" << up << endl; 250 return NULL; 251 } 252 189 253 TAxis &axe = *fHist.GetXaxis(); 190 254 191 // 192 // FIXME: ROOT Binning??? of projection 193 // root 3.02: SetRangeUser 194 axe.SetRange(axe.FindFixBin(lo), axe.FindFixBin(up)); 195 } 196 197 TH2D *MHAlphaEnergyTime::GetAlphaProjection(Axis_t lo, Axis_t up) 198 { 199 SetAlphaRange(lo, up); 200 return (TH2D*)fHist.Project3D("yz"); 201 } 255 Int_t ilo = axe.FindFixBin(lo); 256 Int_t iup = axe.FindFixBin(up); 257 258 const Double_t epslo1 = lo-axe.GetBinLowEdge(ilo); 259 const Double_t epslo2 = axe.GetBinUpEdge(ilo)-lo; 260 261 const Double_t epsup1 = up-axe.GetBinLowEdge(iup); 262 const Double_t epsup2 = axe.GetBinUpEdge(iup)-up; 263 264 const Double_t epslo = epslo1<epslo2 ? epslo1 : epslo2; 265 const Double_t epsup = epsup1<epsup2 ? epsup1 : epsup2; 266 267 if (epslo1>epslo2) 268 ilo++; 269 270 if (epsup1<epsup2) 271 iup--; 272 273 if (epslo>0.01*axe.GetBinWidth(ilo) || epsup>0.01*axe.GetBinWidth(iup)) 274 { 275 *fLog << err << fName << ": binning is not adequate for the requested projection:" << endl; 276 *fLog << "Please specify a lower or upper limit which is not more than 1% away from a bin edge" << endl; 277 *fLog << " epslo = " << epslo << endl; 278 *fLog << " epsup = " << epsup << endl; 279 *fLog << " dwl = " << axe.GetBinWidth(ilo) << endl; 280 *fLog << " dwu = " << axe.GetBinWidth(iup) << endl; 281 return NULL; 282 } 283 284 axe.SetRange(ilo, iup); 285 286 TH2D &h2D = *(TH2D *)fHist.Project3D("ezy"); 287 288 h2D.SetTitle("2D-plot of time vs. E-est"); 289 h2D.SetXTitle("E-est [GeV] "); 290 h2D.SetYTitle("time [s]"); 291 292 return &h2D; 293 } 294 295 //--------------------------------------------------------- 296 // 297 // Draw the projected histogram 298 // 299 TH2D *MHAlphaEnergyTime::DrawAlphaProjection(Axis_t lo, Axis_t up, Option_t *opt) 300 { 301 TH2D *h2D = GetAlphaProjection(lo, up); 302 303 if (!h2D) 304 return NULL; 305 306 char txt[100]; 307 sprintf(txt, "No.of Gammas vs. E-est and Time (%.1f < alpha < %.1f deg)", lo, up); 308 309 // TCanvas *c = MakeDefCanvas("AlphaEnergyTime", "2D histogram of gamma signal in energy and time"); 310 TCanvas &c = *MakeDefCanvas("AlphaEnergyTime", txt); 311 312 c.Divide(2, 2); 313 314 gROOT->SetSelectedPad(NULL); 315 316 TH1 *h; 317 318 c.cd(1); 319 h = h2D->ProjectionX("Eest", -1, 9999, "E"); 320 h->SetTitle("Distribution of E-est [GeV]"); 321 h->SetXTitle("E-est [GeV] "); 322 h->SetYTitle("Counts"); 323 324 h->Draw(opt); 325 h->SetBit(kCanDelete); 326 gPad->SetLogx(); 327 328 c.cd(2); 329 h = h2D->ProjectionY("time", -1, 9999, "E"); 330 h->SetTitle("Distribution of time [s]"); 331 h->SetXTitle("time [s]"); 332 h->SetYTitle("Counts"); 333 334 h->Draw(opt); 335 h->SetBit(kCanDelete); 336 337 c.cd(3); 338 339 h2D->DrawCopy(opt); 340 gPad->SetLogx(); 341 342 c.Modified(); 343 c.Update(); 344 345 return h2D; 346 } 347 -
trunk/MagicSoft/Mars/mhist/MHAlphaEnergyTime.h
r1211 r1292 5 5 #include "MH.h" 6 6 #endif 7 7 8 #ifndef ROOT_TH3 8 9 #include "TH3.h" 10 #endif 11 12 #ifndef ROOT_TH2 13 #include "TH2.h" 9 14 #endif 10 15 … … 24 29 TH3D fHist; 25 30 26 void SetAlphaRange(Axis_t lo, Axis_t up);27 31 28 32 public: … … 38 42 TObject *DrawClone(Option_t *option="") const; 39 43 40 void Sub stract(const TH3D *h1, const TH3D *h2);41 void Sub stract(const MHAlphaEnergyTime *h1, const MHAlphaEnergyTime *h2)44 void Subtract(const TH3D *h1, const TH3D *h2); 45 void Subtract(const MHAlphaEnergyTime *h1, const MHAlphaEnergyTime *h2) 42 46 { 43 Sub stract(h1->GetHist(), h2->GetHist());47 Subtract(h1->GetHist(), h2->GetHist()); 44 48 } 45 49 50 TH2D *DrawAlphaProjection(Axis_t lo, Axis_t up, Option_t *opt=""); 46 51 TH2D *GetAlphaProjection(Axis_t lo, Axis_t up); 47 52 48 ClassDef(MHAlphaEnergyTime, 1) // Histogram to store a 3-Dimhistogram in alpha, Energy and time53 ClassDef(MHAlphaEnergyTime, 1) //3D-histogram in alpha, Energy and time 49 54 }; 50 55 51 56 #endif 52 57 58 59 60 61 62 -
trunk/MagicSoft/Mars/mhist/MHEffOnTimeTheta.h
r1213 r1292 16 16 { 17 17 private: 18 TH1D fHist; 18 TH1D fHEffOn; 19 TH1D fHChi2; 20 TH1D fHN0del; 21 TH1D fHLambda; 19 22 20 23 public: … … 24 27 virtual Bool_t Fill(const MParContainer *par); 25 28 26 const TH1D *GetHist() { return &fH ist; }27 const TH1D *GetHist() const { return &fH ist; }29 const TH1D *GetHist() { return &fHEffOn; } 30 const TH1D *GetHist() const { return &fHEffOn; } 28 31 29 32 void Calc(TH2D *hist); … … 32 35 TObject *DrawClone(Option_t *option="") const; 33 36 34 ClassDef(MHEffOnTimeTheta, 1) // Histogram to store a 3-Dim histogram in alpha, Energy and time37 ClassDef(MHEffOnTimeTheta, 1) //1D-plot of Delta t vs. Theta 35 38 }; 36 39 37 40 #endif 38 41 42
Note:
See TracChangeset
for help on using the changeset viewer.