Changeset 1417
- Timestamp:
- 07/16/02 16:02:48 (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/macros/flux.C
r1294 r1417 49 49 // - a dummy energy estimator is provided // 50 50 // - migration matrices are generated // 51 // - a kind of effective collection areas are calculated//51 // - dummy effective collection areas are used // 52 52 // // 53 53 ////////////////////////////////////////////////////////////////////////////// … … 74 74 75 75 //-------------------------------------------------------------- 76 // Setup binning for the histograms 77 // 76 // Setup the binning for the histograms 77 // 78 79 //............................................................... 80 // These are NOT the binnings for the flux determination 81 78 82 MBinning binswidth("BinningWidth"); 79 binswidth.SetEdges(100, 0, 1); // 100 bins from 0 to 1deg83 binswidth.SetEdges(100, 0, 0.5); // 100 bins from 0 to 0.5 deg 80 84 81 85 MBinning binslength("BinningLength"); 82 86 binslength.SetEdges(100, 0, 1); // 100 bins from 0 to 1 deg 83 87 88 MBinning binscamera("BinningCamera"); 89 binscamera.SetEdges(90, -2.25, 2.25); // 90 bins from -2.25 to 2.25 deg 90 84 91 MBinning binsdist("BinningDist"); 85 binsdist.SetEdges( 100, 0, 2); // 100 bins from 0 to 2deg92 binsdist.SetEdges(90, 0, 2.25); // 90 bins from 0 to 2.25 deg 86 93 87 94 MBinning binsalpha("BinningAlpha"); 88 binsalpha.SetEdges(45, -90, 90); 95 binsalpha.SetEdges(100, -100, 100); 96 97 MBinning binsasym("BinningAsym"); 98 binsasym.SetEdges(100, -0.5, 0.5); // 100 bins from -0.5 to 0.5 deg 99 100 MBinning binsasymn("BinningAsymn"); 101 binsasymn.SetEdges(100, -0.005, 0.005); // 100 bins from -0.005 to 0.005 deg 102 103 MBinning binsm3long("BinningM3Long"); 104 binsm3long.SetEdges(100, -0.5, 0.5); // 100 bins from -0.5 to 0.5 deg 105 106 MBinning binsm3trans("BinningM3Trans"); 107 binsm3trans.SetEdges(100, -0.5, 0.5); // 100 bins from -0.5 to 0.5 deg 108 109 //............................................................... 110 // These ARE the binnings for the flux determination 111 112 MBinning binsalphaflux("BinningAlphaFlux"); 113 binsalphaflux.SetEdges(100, 0, 100); 89 114 90 115 MBinning binse("BinningE"); … … 113 138 parlist.AddToList(&binswidth); 114 139 parlist.AddToList(&binslength); 140 parlist.AddToList(&binscamera); 141 115 142 parlist.AddToList(&binsdist); 116 143 117 144 parlist.AddToList(&binsalpha); 145 146 parlist.AddToList(&binsasym); 147 parlist.AddToList(&binsasymn); 148 parlist.AddToList(&binsm3long); 149 parlist.AddToList(&binsm3trans); 150 151 parlist.AddToList(&binsalphaflux); 118 152 parlist.AddToList(&binse); 119 153 parlist.AddToList(&binstheta); … … 131 165 // MReadMarsFile reader("Events", "~/data/Gamma*.root"); 132 166 133 //MReadMarsFile reader("Events", "/hd31/rkb/Camera/mpi/Gamma*.root");134 //reader.AddFile("/hd31/rkb/Camera/mpi/prot_N_*.root");135 136 // next 2 statements added137 167 MReadMarsFile reader("Events"); 168 169 //reader.AddFile("/hd31/rkb/Camera/mpi/Gamma*.root"); 170 //reader.AddFile("/hd31/rkb/Camera/mpi/prot_N_*.root"); 171 //reader.AddFile("/hd31/rkb/Camera/mpi/prot_NS_*.root"); 172 //reader.AddFile("protondata/gamma_10_n*.root"); 138 173 reader.AddFile("protondata/gamma_10_cn*.root"); 139 174 140 175 reader.EnableBranch("MMcEvt.fTheta"); 176 177 //..................................... 178 // filters 179 MFTriggerLvl1 lvl1; 141 180 142 181 //..................................... … … 145 184 146 185 //..................................... 147 // collection area148 MMcCollectionAreaCalc acalc;149 150 186 MMcPedestalCopy pcopy; 151 187 MMcPedestalNSBAdd pnsb; … … 157 193 // source independent image parameters 158 194 MHillasCalc hcalc; 195 MHillasExt hext; 196 parlist.AddToList(&hext); 159 197 160 198 //..................................... … … 170 208 // migration matrix (MC) 171 209 MFillH eestetrue("MHMcEnergyMigration", "HillasSrc"); 172 173 174 //..................................... 175 // plots of width and length210 eestetrue.SetTitle("Task to determine the migration matrix for the energy"); 211 212 //..................................... 213 // plots of source independent parameters (length, width, delta, size, center) 176 214 MFillH hfill1h("MHHillas", "MHillas"); 215 hfill1h.SetTitle("Task to plot the source independent image parameters"); 216 hfill1h.SetFilter(&lvl1); 217 218 MFillH hfill1x("MHHillasExt", "MHillas"); 219 hfill1x.SetTitle("Task to plot the extended image parameters"); 220 hfill1x.SetFilter(&lvl1); 221 222 //..................................... 223 // plots of source dependent parameters (alpha, dist) 224 MFillH hfill2s("HSource [MHHillasSrc]", "HillasSrc"); 225 hfill2s.SetTitle("Task to plot the source dependent image parameters (Source)"); 226 hfill2s.SetFilter(&lvl1); 227 MFillH hfill2a("HAntiSource [MHHillasSrc]", "HillasAntiSrc"); 228 hfill2a.SetTitle("Task to plot the source dependent image parameters (AntiSource)"); 229 hfill2a.SetFilter(&lvl1); 177 230 178 231 //..................................... 179 232 // star map 180 233 MFillH hfill1m("MHStarMap", "MHillas"); 181 182 //..................................... 183 // plots of alpha and dist 184 MFillH hfill2s("HSource [MHHillasSrc]", "HillasSrc"); 185 MFillH hfill2a("HAntiSource [MHHillasSrc]", "HillasAntiSrc"); 186 187 //..................................... 188 // filters 189 MFTriggerLvl1 lvl1; 190 234 hfill1m.SetTitle("Task to plot the Star map"); 235 236 //..................................... 191 237 const Float_t alpha0 = 15; // [deg] 192 238 MFAlpha fsrc ("HillasSrc", '>', alpha0); 239 fsrc.SetTitle("Task to check alphaSrc > alpha0"); 240 193 241 MFAlpha fasrc("HillasAntiSrc", '>', alpha0); 242 fasrc.SetTitle("Task to check alphaAntiSrc > alpha0"); 194 243 195 244 //..................................... … … 197 246 // (<Theta>, Theta) 198 247 MFillH fillthetabartime ("ThetabarTime [MHThetabarTime]", "MMcEvt"); 248 fillthetabartime.SetTitle("Task to plot <Theta> vs time"); 199 249 // fillthetabartime.SetFilter(&lvl1); 250 200 251 MFillH fillthetabartheta("ThetabarTheta [MHThetabarTheta]", "MMcEvt"); 252 fillthetabartheta.SetTitle("Task to plot <Theta> vs theta"); 201 253 // fillthetabartheta.SetFilter(&lvl1); 202 254 … … 205 257 // (Delta(time), Theta) 206 258 MFillH filldtimetime ("EffOnTime [MHTimeDiffTime]", "MMcEvt"); 259 filldtimetime.SetTitle("Task to plot Delta(time) vs time"); 207 260 // filldtime.SetFilter(&lvl1); 261 208 262 MFillH filldtimetheta("EffOnTheta [MHTimeDiffTheta]", "MMcEvt"); 263 filldtimetheta.SetTitle("Task to plot Delta(time) vs theta"); 209 264 // fillontheta.SetFilter(&lvl1); 210 265 211 266 //..................................... 212 267 // 3-D plots (alpha, E_est, time) 213 MFillH fillsptime ("FluxSrcTime [MHAlphaEnergyTime]", "HillasSrc"); 268 MFillH fillsptime ("SrcTime [MHAlphaEnergyTime]", "HillasSrc"); 269 fillsptime.SetTitle("Task for 3D plots (alpha, E_est, time) (Source)"); 214 270 fillsptime.SetFilter(&fasrc); 215 MFillH fillasptime ("FluxASrcTime [MHAlphaEnergyTime]", "HillasAntiSrc"); 271 272 MFillH fillasptime ("ASrcTime [MHAlphaEnergyTime]", "HillasAntiSrc"); 273 fillasptime.SetTitle("Task for 3D plots (alpha, E_est, time) (AntiSource)"); 216 274 fillasptime.SetFilter(&fsrc); 217 275 218 276 //..................................... 219 277 // 3-D plots (alpha, E_est, Theta) 220 MFillH fillsptheta ("FluxSrcTheta [MHAlphaEnergyTheta]", "HillasSrc"); 278 MFillH fillsptheta ("SrcTheta [MHAlphaEnergyTheta]", "HillasSrc"); 279 fillsptheta.SetTitle("Task for 3D plots (alpha, E_est, Theta) (Source)"); 221 280 fillsptheta.SetFilter(&fasrc); 222 MFillH fillasptheta("FluxASrcTheta [MHAlphaEnergyTheta]", "HillasAntiSrc"); 281 282 MFillH fillasptheta("ASrcTheta [MHAlphaEnergyTheta]", "HillasAntiSrc"); 283 fillasptheta.SetTitle("Task for 3D plots (alpha, E_est, Theta) (AntiSource)"); 223 284 fillasptheta.SetFilter(&fsrc); 224 285 … … 237 298 // 238 299 tasklist.AddToList(&reader); 300 301 tasklist.AddToList(&lvl1); 239 302 tasklist.AddToList(&rand); 240 241 tasklist.AddToList(&acalc);242 303 243 304 tasklist.AddToList(&pcopy); … … 246 307 tasklist.AddToList(&clean); 247 308 tasklist.AddToList(&blind); 309 248 310 tasklist.AddToList(&hcalc); 311 249 312 tasklist.AddToList(&hsrc1); 250 313 tasklist.AddToList(&hsrc2); … … 253 316 254 317 tasklist.AddToList(&hfill1h); 318 tasklist.AddToList(&hfill1x); 319 255 320 tasklist.AddToList(&hfill1m); 256 321 tasklist.AddToList(&hfill2s); … … 263 328 tasklist.AddToList(&filldtimetheta); 264 329 265 // tasklist.AddToList(&lvl1); 330 266 331 267 332 // tasklist.AddToList(&fethetaall); … … 296 361 tasklist.PrintStatistics(10); 297 362 298 /* 299 parlist.FindObject("HSource")->DrawClone();; 300 parlist.FindObject("MHHillas")->DrawClone(); 301 */ 302 /* 303 parlist.FindObject("MHStarMap")->DrawClone(); 304 */ 305 /* 306 parlist.FindObject("HAntiSource")->DrawClone(); 307 */ 308 /* 309 parlist.FindObject("MHMcCollectionArea")->DrawClone(); 363 364 MHHillas *mhhillas = (MHHillas*)parlist.FindObject("MHHillas"); 365 mhhillas->SetTitle("Source indep. image parameters"); 366 mhhillas->DrawClone(); 367 368 369 370 MHHillasExt *mhhillasext = (MHHillasExt*)parlist.FindObject("MHHillasExt"); 371 mhhillasext->SetTitle("Extended image parameters"); 372 mhhillasext->DrawClone(); 373 374 375 MHHillasSrc *hsource = (MHHillasSrc*)parlist.FindObject("HSource"); 376 hsource->SetTitle("Source dependent image parameters (Source)"); 377 hsource->DrawClone(); 378 379 MHHillasSrc *hantisource = (MHHillasSrc*)parlist.FindObject("HAntiSource"); 380 hantisource->SetTitle("Source dependent image parameters (AntiSource)"); 381 hantisource->DrawClone(); 382 383 384 /* 385 parlist.FindObject("MHStarMap")->DrawClone(); 310 386 */ 311 387 … … 313 389 // average Theta versus time 314 390 // and versus Theta 391 // This is needed for selecting later the right collection area 392 // (at the right Theta) for each bin in time or Theta 315 393 // 316 394 MHThetabarTime *bartime = (MHThetabarTime*)parlist.FindObject("ThetabarTime"); 317 395 MHThetabarTheta *bartheta = (MHThetabarTheta*)parlist.FindObject("ThetabarTheta"); 318 396 319 /* 397 /* 320 398 bartime->DrawClone(); 321 399 bartheta->DrawClone(); 322 400 */ 323 401 324 325 //----------------------------------------------------------------------326 // this is something like the collection area327 // as a function of time328 // and as a function of Theta329 /*330 MHEnergyTime &alltime = *(MHEnergyTime*)parlist.FindObject("AllTime");331 MHEnergyTime &seltime = *(MHEnergyTime*)parlist.FindObject("SelTime");332 MHEnergyTime collareatime;333 collareatime.Divide(&seltime, &alltime);334 335 MHEnergyTheta &alltheta = *(MHEnergyTheta*)parlist.FindObject("AllTheta");336 MHEnergyTheta &seltheta = *(MHEnergyTheta*)parlist.FindObject("SelTheta");337 MHEnergyTheta collareatheta;338 collareatheta.Divide(&seltheta, &alltheta);339 */340 341 402 //---------------------------------------------------------------------- 342 403 // Effective on time … … 348 409 MHTimeDiffTime *dtimetime = (MHTimeDiffTime*)parlist.FindObject("EffOnTime"); 349 410 MHTimeDiffTheta *dtimetheta = (MHTimeDiffTheta*)parlist.FindObject("EffOnTheta"); 411 350 412 /* 351 413 dtimetime->DrawClone(); … … 355 417 356 418 //.................................... 357 // calculate effective on time for different intervals in time419 // calculate effective on time for different intervals in Time 358 420 // and for different intervals in Theta 359 MHEffOnTimeTime effontime; 360 MHEffOnTimeTheta effontheta; 421 422 char *varnametime; 423 varnametime = "Time"; 424 char *unittime; 425 unittime = "[ s]"; 426 MHEffOnTime effontime(varnametime, unittime); 427 428 char *varnametheta; 429 varnametheta = "Theta"; 430 char *unittheta; 431 unittheta = "[ \\circ]"; 432 MHEffOnTime effontheta(varnametheta, unittheta); 433 361 434 effontime.SetupFill(&parlist); 362 435 effontheta.SetupFill(&parlist); 363 436 364 effontime.Calc(dtimetime->GetHist()); 365 effontheta.Calc(dtimetheta->GetHist()); 366 367 // plot effective on time versus time 437 438 // Draw == 0 don't draw the individual distributions of time differences 439 // != 0 draw them 440 Bool_t Draw=kFALSE; 441 effontime.Calc (dtimetime->GetHist(), Draw); 442 effontheta.Calc(dtimetheta->GetHist(),Draw); 443 444 445 // plot effective on time versus Time 368 446 // and versus Theta 369 447 /* 370 448 effontime.DrawClone(); 371 449 effontheta.DrawClone(); 372 373 374 450 */ 451 452 453 //====================================================================== 454 // 455 // A : fully differential plots (Alpha, E-est, Var) 456 // 375 457 //---------------------------------------------------------------------- 376 458 // 3D-plots of alpha, E_est and time … … 379 461 // and relative to the anti-source position 380 462 381 MHAlphaEnergyTime *evtsptime = (MHAlphaEnergyTime*)parlist.FindObject("FluxSrcTime"); 382 MHAlphaEnergyTime *evtasptime = (MHAlphaEnergyTime*)parlist.FindObject("FluxASrcTime"); 383 MHAlphaEnergyTheta *evtsptheta = (MHAlphaEnergyTheta*)parlist.FindObject("FluxSrcTheta"); 384 MHAlphaEnergyTheta *evtasptheta = (MHAlphaEnergyTheta*)parlist.FindObject("FluxASrcTheta"); 385 386 /* this test shows that the addresses 387 'evtsptime' and '&evtspobj' are identical 388 MHAlphaEnergyTime &evtspobj = *(MHAlphaEnergyTime*)parlist.FindObject("FluxSrcTime"); 389 cout << "evtsptime = " << evtsptime << endl; 390 cout << "&evtspobj = " << &evtspobj << endl; 463 MHAlphaEnergyTime *evtsptime = (MHAlphaEnergyTime*)parlist.FindObject("SrcTime"); 464 MHAlphaEnergyTime *evtasptime = (MHAlphaEnergyTime*)parlist.FindObject("ASrcTime"); 465 MHAlphaEnergyTheta *evtsptheta = (MHAlphaEnergyTheta*)parlist.FindObject("SrcTheta"); 466 MHAlphaEnergyTheta *evtasptheta = (MHAlphaEnergyTheta*)parlist.FindObject("ASrcTheta"); 467 468 469 /* 470 evtsptime->SetTitle("Source : 3D-plot Al-En-time, alpha\_{asp} .gt. alpha\_0"); 471 evtsptime->DrawClone(); 472 evtasptime->SetTitle("AntiSource : 3D-plot Al-En-time, alpha\_{sp} .gt. alpha\_0"); 473 evtasptime->DrawClone(); 474 475 evtsptheta->SetTitle("Source : 3D-plot Al-En-Theta, alpha\_{asp} .gt. alpha\_0"); 476 evtsptheta->DrawClone(); 477 evtasptheta->SetTitle("AntiSource : 3D-plot Al-En-Theta, alpha\_{sp} .gt. alpha\_0"); 478 evtasptheta->DrawClone(); 391 479 */ 392 393 /* 394 evtsptime->SetTitle("3D-plot Al-En-time, alpha\_{asp} .gt. alpha\_0"); 395 evtsptime->DrawClone(); 396 evtasptime->SetTitle("3D-plot Al-En-time, alpha\_{sp} .gt. alpha\_0"); 397 evtasptime->DrawClone(); 398 399 evtsptheta->SetTitle("3D-plot Al-En-Theta, alpha\_{asp} .gt. alpha\_0"); 400 evtsptheta->DrawClone(); 401 evtasptheta->SetTitle("3D-plot Al-En-Theta, alpha\_{sp} .gt. alpha\_0"); 402 evtasptheta->DrawClone(); 403 */ 404 405 480 406 481 //---------------------------------------------------------------------- 407 482 // Difference between source and antisource (= 'gamma' sample) 408 483 // for 3D-plots of alpha, E_est and time 409 484 // and of alpha, E_est and Theta 410 411 MHAlphaEnergyTime gammatime("Al-En-time","3D-plot Al-En-time"); 412 MHAlphaEnergyTheta gammatheta("Al-En-Theta","3D-plot Al-En-Theta"); 413 414 gammatime.SetupFill(&parlist); 415 gammatime.Subtract(evtsptime, evtasptime); 416 gammatheta.SetupFill(&parlist); 417 gammatheta.Subtract(evtsptheta, evtasptheta); 418 419 420 /* 421 gammatime.SetTitle("3D-plot Al-En-time for \'gamma\' sample"); 422 gammatime.DrawClone(); 423 424 gammatheta.SetTitle("3D-plot Al-En-Theta for \'gamma\' sample"); 425 gammatheta.DrawClone(); 426 */ 485 // 3rd and 4th argument are name and title of the resulting histogram 486 487 MHGamma gamma; 488 489 Bool_t Draw = kFALSE; 490 TH3D *hsubtime = gamma.Subtract( evtsptime->GetHist(), 491 evtasptime->GetHist(), 492 "Al-En-time", "3D-plot of Alpha,E-est,time", Draw); 493 494 TH3D *hsubtheta = gamma.Subtract( evtsptheta->GetHist(), 495 evtasptheta->GetHist(), 496 "Al-En-time", "3D-plot of Alpha,E-est,Theta", Draw); 497 427 498 428 499 //---------------------------------------------------------------------- … … 431 502 // or E_est and Theta 432 503 433 Axis_t lo = -10;434 Axis_t up = 10; 435 436 // TH2D &evttime = *gammatime.GetAlphaProjection (lo, up);437 // TH2D &evttheta = *gammatheta.GetAlphaProjection(lo, up);438 439 TH2D *evttime = gammatime.DrawAlphaProjection (lo, up);440 TH2D *evttheta = gammatheta.DrawAlphaProjection(lo, up);441 504 Axis_t lo = 0; // [deg] 505 Axis_t up = 10; // [deg] 506 Bool_t Draw = kFALSE; 507 const TH2D &evttime = *(gamma.GetAlphaProjection(hsubtime, 508 lo, up, Draw)); 509 510 const TH2D &evttheta = *(gamma.GetAlphaProjection(hsubtheta, 511 lo, up, Draw)); 512 442 513 443 514 //---------------------------------------------------------------------- 444 515 // plot migration matrix: E-true E-est Theta 445 516 446 parlist.FindObject("MHMcEnergyMigration")->DrawClone(); 517 518 /* 519 MHMcEnergyMigration *migrationmatrix = 520 (MHMcEnergyMigration*)parlist.FindObject("MHMcEnergyMigration"); 521 migrationmatrix->SetTitle("Migration matrix");; 522 migrationmatrix->DrawClone(); 523 */ 524 525 526 //---------------------------------------------------------------------- 527 // determine gamma flux from distributions of E-est : 528 // - do unfolding to get the distributions in E-unfold 529 // - divide by bin width in energy 530 // effective ontime and 531 // effective collection area 532 // to get the absolute gamma flux 533 534 //............................................. 535 // get flux spectrum for different bins in Time 536 // 537 // use dummy histogram *aeff which eventually will contain 538 // the effective collection area as a function of Etrue and Theta 539 TH2D aeff; 540 541 // arguments of MHFlux constructor are : 542 // - 2D histogram containing the no.of gammas as a function of 543 // E-est and Var 544 // - name of variable Var ("Time" or "Theta") 545 // - units of variable Var ( "[s]" or "[\\circ]") 546 547 // Draw == kTRUE draw the no.of photons vs. E-est 548 // for the individual bins of the variable Var 549 Bool_t Draw=kTRUE; 550 MHFlux fluxtime(evttime, Draw, "Time", " [ s]"); 551 fluxtime.Unfold(Draw); 552 fluxtime.CalcFlux(effontime.GetHist(), bartime.GetHist(), 553 &aeff, Draw); 554 555 fluxtime.DrawClone(); 556 557 558 559 //.............................................. 560 // get flux spectrum for different bins in Theta 561 Bool_t Draw=kTRUE; 562 MHFlux fluxtheta(evttheta, Draw, "Theta", " [ \\circ]"); 563 fluxtheta.Unfold(Draw); 564 fluxtheta.CalcFlux(effontheta.GetHist(), bartheta.GetHist(), 565 &aeff, Draw); 566 567 fluxtheta.DrawClone(); 568 569 570 return; 571 //---------------------------------------------------------------------- 572 573 574 //====================================================================== 575 // 576 // B : plots integrated over E-est 577 // 578 //---------------------------------------------------------------------- 579 // integrate 3D-plot of (alpha, E_est and Time) over E-est 580 // to get 2D-plot of (alpha, Time) 581 582 Draw = kFALSE; 583 TH2D *evttimesp = evtsptime.IntegrateEest ("AlphaSP vs. Time", Draw); 584 TH2D *evttimeasp = evtasptime.IntegrateEest("AlphaASP vs. Time",Draw); 585 586 587 //====================================================================== 588 // 589 // C : plots integrated over Time 590 // 591 //---------------------------------------------------------------------- 592 // integrate 3D-plot of (alpha, E_est and Time) over the Time 593 // to get 2D-plot of (alpha, E_est) 594 595 Draw = kFALSE; 596 TH2D *evteestsp = evtsptime.IntegrateTime ("AlphaSP vs. E-est", Draw); 597 TH2D *evteestasp = evtasptime.IntegrateTime("AlphaASP vs. E-est",Draw); 598 599 600 601 //====================================================================== 602 // 603 // D : plots integrated over E-est and Time 604 // 605 606 //---------------------------------------------------------------------- 607 // integrate 3D-plot of (alpha, E_est and Time) over E-est and Time 608 // to get 1D-plot of (alpha) 609 610 Draw = kFALSE; 611 TH1D *evtalphasp = evtsptime.IntegrateEestTime ("AlphaSP", Draw); 612 TH1D *evtalphaasp = evtasptime.IntegrateEestTime("AlphaASP",Draw); 613 614 //---------------------------------------------------------------------- 615 // list of tasks for processing 616 617 cout << " " << endl; 618 cout << "List of tasks for processing :" << endl; 619 cout << "==============================" << endl; 620 cout << " " << endl; 621 622 // was folgt geht nicht : 623 624 // Error: Function Next() is not defined in current scope FILE:macros/flux.C LINE:636 625 626 //while ( (task=(MTask*)Next()) ) 627 //{ 628 // cout << tasklist.GetName() << " : " << tasklist.GetTitle() << endl; 629 //} 447 630 448 631 return; 449 632 450 //---------------------------------------------------------------------- 451 for (int i=1; i<=binstime.GetNumBins(); i++) 452 { 453 if (effontime.GetHist()->GetBinContent(i)==0) 454 continue; 455 456 TH1D &hist = *evttime.ProjectionX("Number of Gammas vs. EnergyEst for a fixed time", i, i); 457 458 /* UNFOLDING */ 459 460 //hist->Divide(collareatime); 461 hist.Scale(1./effontime.GetHist()->GetBinContent(i)); 462 463 for (int j=1; j<=binse.GetNumBins(); j++) 464 hist.SetBinContent(j, hist.GetBinContent(j)/hist.GetBinWidth(j)); 465 466 hist.SetName("Flux"); 467 hist.SetTitle("Flux[Gammas/s/m^2/GeV] vs. EnergyTrue for a fixed Time"); 468 469 char n[100]; 470 sprintf(n, "Canv%d", j); 471 c= new TCanvas(n, "Title"); 472 /* 473 hist.DrawCopy(); 474 */ 475 } 476 477 delete &evttime; 478 delete &evttheta; 479 480 return; 481 482 // ------------------------------------------ 483 484 MHMcCollectionArea carea; 485 TH1D *collareatime = carea.GetHist(); // FIXME! 486 TH1D *collareatheta = carea.GetHist(); // FIXME! 633 //====================================================================== 487 634 } 488 635 //===========================================================================
Note:
See TracChangeset
for help on using the changeset viewer.