| 1 | /* ======================================================================== *\
|
|---|
| 2 | !
|
|---|
| 3 | ! *
|
|---|
| 4 | ! * This file is part of MARS, the MAGIC Analysis and Reconstruction
|
|---|
| 5 | ! * Software. It is distributed to you in the hope that it can be a useful
|
|---|
| 6 | ! * and timesaving tool in analysing Data of imaging Cerenkov telescopes.
|
|---|
| 7 | ! * It is distributed WITHOUT ANY WARRANTY.
|
|---|
| 8 | ! *
|
|---|
| 9 | ! * Permission to use, copy, modify and distribute this software and its
|
|---|
| 10 | ! * documentation for any purpose is hereby granted without fee,
|
|---|
| 11 | ! * provided that the above copyright notice appear in all copies and
|
|---|
| 12 | ! * that both that copyright notice and this permission notice appear
|
|---|
| 13 | ! * in supporting documentation. It is provided "as is" without express
|
|---|
| 14 | ! * or implied warranty.
|
|---|
| 15 | ! *
|
|---|
| 16 | !
|
|---|
| 17 | !
|
|---|
| 18 | ! Author(s): Alessio Piccioli, 04/2004 <mailto:alessio.piccioli@pi.infn.it>
|
|---|
| 19 | ! Author(s): Antonio Stamerra, 04/2004 <mailto:antonio.stamerra@pi.infn.it>
|
|---|
| 20 | !
|
|---|
| 21 | ! Copyright: MAGIC Software Development, 2000-2004
|
|---|
| 22 | !
|
|---|
| 23 | !
|
|---|
| 24 | \* ======================================================================== */
|
|---|
| 25 |
|
|---|
| 26 | ///////////////////////////////////////////////////////////////////////////
|
|---|
| 27 | //
|
|---|
| 28 | // first_ana.C
|
|---|
| 29 | // =============
|
|---|
| 30 | //
|
|---|
| 31 | // This macro produces a ON/OFF plot using the alpha HillasSrc branch
|
|---|
| 32 | // taken from an analysis file produced by the AnalisiHillas.C macro
|
|---|
| 33 | // The significance of excess events is also computed (simple calculation,
|
|---|
| 34 | // no Li-Ma)
|
|---|
| 35 | //
|
|---|
| 36 | ///////////////////////////////////////////////////////////////////////////
|
|---|
| 37 |
|
|---|
| 38 |
|
|---|
| 39 | Float_t degTomm ( Float_t deg ) {
|
|---|
| 40 | return deg / 57.29577951 * 17000 ;
|
|---|
| 41 | }
|
|---|
| 42 |
|
|---|
| 43 | Int_t first_ana ( Char_t *fNameOn = "crab.root" , Char_t *fNameOff = "offcrab.root" , Float_t minsize = 1000 , Float_t minWdeg = 0.00 , Float_t maxWdeg = 0.125 , Float_t minLdeg = 0.0 , Float_t maxLdeg = 0.26 , Float_t minDdeg = 0.2 , Float_t maxDdeg = 0.8 ) {
|
|---|
| 44 |
|
|---|
| 45 | TFile *fileOn = new TFile ( fNameOn , "READ" ) ;
|
|---|
| 46 | TFile *fileOff = new TFile ( fNameOff , "READ" ) ;
|
|---|
| 47 |
|
|---|
| 48 | TTree *treeOn = (TTree *) fileOn -> Get ( "Parameters" ) ;
|
|---|
| 49 | TTree *treeOff = (TTree *) fileOff -> Get ( "Parameters" ) ;
|
|---|
| 50 |
|
|---|
| 51 | TString title ;
|
|---|
| 52 |
|
|---|
| 53 | title = "Abs(Alpha) plot ON-Source" ;
|
|---|
| 54 | TH1D *absalphaOn = new TH1D ( "absalphaOn" , title , 9 , 0 , 90 ) ;
|
|---|
| 55 |
|
|---|
| 56 | title = "Abs(Alpha) plot ON-Source" ;
|
|---|
| 57 | TH1D *absalphaOff = new TH1D ( "absalphaOff" , title , 9 , 0 , 90 ) ;
|
|---|
| 58 |
|
|---|
| 59 | TString scut ;
|
|---|
| 60 | scut = "MHillas.fSize>" ;
|
|---|
| 61 | scut += minsize ;
|
|---|
| 62 | cout << "CUT ON SIZE: " << scut << endl ;
|
|---|
| 63 | TCut Scut = scut ;
|
|---|
| 64 |
|
|---|
| 65 | scut = "" ;
|
|---|
| 66 | scut += degTomm(minWdeg) ;
|
|---|
| 67 | scut += " < MHillas.fWidth && MHillas.fWidth < " ;
|
|---|
| 68 | scut += degTomm(maxWdeg) ;
|
|---|
| 69 | cout << "CUT ON WIDTH: " << scut << endl ;
|
|---|
| 70 | TCut Wcut = scut ;
|
|---|
| 71 |
|
|---|
| 72 | scut = "" ;
|
|---|
| 73 | scut += degTomm(minLdeg) ;
|
|---|
| 74 | scut += " < MHillas.fLength && MHillas.fLength < " ;
|
|---|
| 75 | scut += degTomm(maxLdeg) ;
|
|---|
| 76 | cout << "CUT ON LENGTH: " << scut << endl ;
|
|---|
| 77 | TCut Lcut = scut ;
|
|---|
| 78 |
|
|---|
| 79 | scut = "" ;
|
|---|
| 80 | scut += degTomm(minDdeg) ;
|
|---|
| 81 | scut += " < MHillasSrc.fDist && MHillasSrc.fDist < " ;
|
|---|
| 82 | scut += degTomm(maxDdeg) ;
|
|---|
| 83 | cout << "CUT ON DIST: " << scut << endl ;
|
|---|
| 84 | TCut Dcut = scut ;
|
|---|
| 85 |
|
|---|
| 86 | treeOn -> Draw ( "abs(MHillasSrc.fAlpha)>>absalphaOn" , Scut && Wcut && Lcut && Dcut ) ;
|
|---|
| 87 | treeOff -> Draw ( "abs(MHillasSrc.fAlpha)>>absalphaOff" , Scut && Wcut && Lcut && Dcut ) ;
|
|---|
| 88 | Double_t alpha = absalphaOn -> Integral ( 4 , 9 ) / absalphaOff -> Integral ( 4 , 9 ) ;
|
|---|
| 89 | Double_t evoff = absalphaOff -> Integral ( 1 , 3 ) ;
|
|---|
| 90 |
|
|---|
| 91 | absalphaOff -> Scale ( alpha ) ;
|
|---|
| 92 |
|
|---|
| 93 | Double_t fakeMax = absalphaOn -> GetMaximum ( ) ;
|
|---|
| 94 | fakeMax *= 1.1 ;
|
|---|
| 95 |
|
|---|
| 96 | Double_t fakeMin = absalphaOn -> GetMinimum ( ) ;
|
|---|
| 97 | fakeMin *= 0.8 ;
|
|---|
| 98 |
|
|---|
| 99 | TH2D *fake = new TH2D ( "fake" , "Mrk421 Sample B (ON/OFF) 15/02/2004" , 100 , 0 , 90 , 100 , fakeMin , fakeMax ) ;
|
|---|
| 100 | fake -> GetXaxis ( ) -> SetTitle ( "Parameter Alpha (deg)" ) ;
|
|---|
| 101 | fake -> GetYaxis ( ) -> SetTitle ( "NUmber of Events" ) ;
|
|---|
| 102 | fake -> GetYaxis ( ) -> SetTitleOffset ( 1.3 ) ;
|
|---|
| 103 | fake -> SetStats ( 0 ) ;
|
|---|
| 104 |
|
|---|
| 105 | TCanvas *c = new TCanvas ( "c" , "Alpha Canvas" , 800 , 600 ) ;
|
|---|
| 106 | c -> SetGridx ( ) ;
|
|---|
| 107 | c -> SetGridy ( ) ;
|
|---|
| 108 |
|
|---|
| 109 | absalphaOn -> SetMarkerStyle ( 22 ) ;
|
|---|
| 110 | absalphaOn -> SetMarkerSize ( 2.7 ) ;
|
|---|
| 111 | absalphaOff -> SetFillStyle ( 1001 ) ;
|
|---|
| 112 | absalphaOff -> SetFillColor ( 3 ) ;
|
|---|
| 113 |
|
|---|
| 114 | fake -> Draw ( ) ;
|
|---|
| 115 | absalphaOff -> Draw ( "SAME" ) ;
|
|---|
| 116 | absalphaOn -> Draw ( "SAMEE1" ) ;
|
|---|
| 117 |
|
|---|
| 118 | Double_t evon = absalphaOn -> Integral ( 1 , 3 ) ;
|
|---|
| 119 |
|
|---|
| 120 | cout << endl << "EntriesON:" << absalphaOn -> GetEntries ( ) ;
|
|---|
| 121 | cout << endl << "EntriesOFF:" << absalphaOff -> GetEntries ( ) ;
|
|---|
| 122 | cout << endl << "ON:" << evon << " OFF:" << evoff << " EXCESS:" << evon-evoff*alpha << " SIGMA:" << (evon-evoff*alpha)/TMath::Sqrt(evoff)/alpha << endl << endl ;
|
|---|
| 123 |
|
|---|
| 124 | }
|
|---|
| 125 |
|
|---|