source: trunk/MagicSoft/Mars/mtemp/mucm/macros/OptimizeSuperCuts.C@ 6315

Last change on this file since 6315 was 6315, checked in by marcos, 20 years ago
*** empty log message ***
File size: 4.3 KB
Line 
1/*############################################################################
2 #
3 # How to use:
4 #
5 # - 1. From a hillas file select a training subsample, for a given size
6 # range, with will be write into a MHMatrix. The the matrix will be read
7 # and the optimization will start.
8 # Once you've created the matrix you can set to false GenerateTrainMatrix
9 # and start directly the optimization from reading the matrix.
10 #
11 # - 2. It is recomended to start optimazing the static cuts and then, the
12 # dinanical cuts, this can be done:
13 # -seting in 'TString initParams' the name of the previous optimization
14 # results.
15 # -and using the the funtion MMyFindSuperCuts.SetOptimizationMode(Mode)
16 #
17 # The supercuts function used is:
18 #
19 # Length_low = par[0]*S1 + par[1]*S2 +par[2]*ZA +par[3]*dist*dist
20 # Length_up = par[4]*S1 + par[5]*S2 +par[6]*ZA +par[7]*dist*dist
21 # ....
22 # and simiar with: Width, Dist,Asym, Conc, Leakage
23 #
24 # where S1 = log(size)-log(LowerSizeCut)
25 # S2 = S1*S1
26 # ZA = cos(theta/kRad2Deg) - 1;
27 #
28 # NOTE: Currently with neglect ZA depence, so we put ZA = 0;
29 # -----
30 #
31 # The optimization modes are:
32 #
33 # Mode 0 = optimize only supercuts params,i.e.
34 # only optimaze par0, par4, par8,..
35 # 1 = optimize only dynamical params, i.e.
36 # all but par0, par4, par8
37 # other = optimize all the params at the same time.
38 #
39 #
40 # Warning: Some times Minuit fails to converge, or its take too long. Then,
41 # it's better to try again with diferent nuumber of parameter,
42 # initial values or stepsizes.
43 #
44 # author: Marcos Lopez
45 # email: marcos@gae.ucm.es
46 ###########################################################################*/
47
48
49Bool_t GenerateTrainMatrix = kTRUE;
50
51void OptimizeSuperCuts()
52{
53
54 // --- Input -----------------------------------------
55
56 Int_t Mode = 0;
57 Double_t SizeCutLow = 2000;
58 Double_t SizeCutUp = 1e7;
59
60 // Hillas file
61 TString datafile = "~/MAGIC/data/Period022/2004_10_10/CrabNebula_20041010_6_30-25.hillas.root";
62
63 // Intermediate file to speed up otpimization (from the original hillas
64 //file, a given number of events in a given size cut range will be stored
65 //in a MHatrix)
66 TString matrixfile = "SC_matrix.150k.root"; // matrix with the
67
68 // Output file where the supercuts parameters wiil be saved
69 TString outfile = "SC.150k.Above2000.root";
70
71
72 // File with the starting supercuts parameters (if any)
73 //
74 //TString initParams="~/MAGIC/results/SuperCutsParams/AllDynCutsParams_Above2000ph.150k.CrabNebula_20041010_6_30-25.root";
75 TString initParams="";
76
77 // Number of train events to use from hillas file
78 Int_t howmany = 150000;
79
80 MH3 h3("");
81
82
83 //
84 // fStepsizes
85 // if == 0.0 the parameter will be fixed in the minimization
86 // != 0.0 initial step sizes for the parameters
87 //
88 TArrayD fStepsizes(48);
89
90 // LengthUp
91 fStepsizes[0] = 0.1;
92 fStepsizes[1] = 0.1;
93 fStepsizes[2] = 0.1;
94 fStepsizes[3] = 0.1;
95 // LengthLo
96 fStepsizes[4] = 0.1;
97 fStepsizes[5] = 0.1;
98 fStepsizes[6] = 0.1;
99 fStepsizes[7] = 0.1;
100 // WidthUp
101 fStepsizes[8] = 0.1;
102 fStepsizes[9] = 0.1;
103 fStepsizes[10] = 0.1;
104 fStepsizes[11] = 0.1;
105 // WidthLo
106 fStepsizes[12] = 0.1;
107 fStepsizes[13] = 0.1;
108 fStepsizes[14] = 0.1;
109 fStepsizes[15] = 0.1;
110 // DistUp
111 fStepsizes[16] = 0.1;
112 fStepsizes[17] = 0.1;
113 fStepsizes[18] = 0.1;
114 fStepsizes[19] = 0.;
115 // DistLo
116 fStepsizes[20] = 0.1;
117 fStepsizes[21] = 0.1;
118 fStepsizes[22] = 0.1;
119 fStepsizes[23] = 0.;
120
121 for(int i=24;i<48;i++)
122 fStepsizes[i] = .0;
123
124 //------------------------------------------------------
125
126
127 MMyFindSuperCuts a;
128 a.SetHadronnessName("MHadronness");
129 a.SetFilenameParam(outfile);
130 a.SetSizeCuts(SizeCutLow, SizeCutUp);
131
132 if(GenerateTrainMatrix)
133 a.DefineTrainMatrix(datafile, h3 ,howmany, matrixfile);
134
135
136 a.ReadMatrix(matrixfile,"");
137 a.SetOptimizationMode(Mode);
138
139
140 //
141 // Start optimization
142 //
143 a.FindParams(initParams,0,fStepsizes);
144}
145
146
Note: See TracBrowser for help on using the repository browser.