ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/cbrown/AnalysisFramework/Plotting/Modules/SUSYScan.C
(Generate patch)

Comparing UserCode/cbrown/AnalysisFramework/Plotting/Modules/SUSYScan.C (file contents):
Revision 1.3 by buchmann, Fri Jul 22 13:11:49 2011 UTC vs.
Revision 1.4 by buchmann, Fri Jul 22 21:41:03 2011 UTC

# Line 144 | Line 144 | void scan_susy_space(string mcjzb, strin
144    myfile.close();
145   }
146  
147 < void efficiency_scan_in_susy_space(string mcjzb, string datajzb, bool requireZ) {
148 <  cout << "Doing efficiency scan using " << (scansample.collection)[0].filename << endl;
149 <  geqleq="geq";
147 > void efficiency_scan_in_susy_space(string mcjzb, string datajzb, bool requireZ, float peakerror) {
148 >  dout << "Doing efficiency scan using " << (scansample.collection)[0].filename << endl;
149 >  geqleq="geq";/*
150    automatized=true;
151    mcjzbexpression=mcjzb;
152    
# Line 163 | Line 163 | void efficiency_scan_in_susy_space(strin
163    
164    gStyle->SetPalette(100, MyPalette);
165    
166  float mglustart=25;float mgluend=1200;float mglustep=25; //guessed values for official file
167  float mLSPstart=25;float mLSPend=1200;float mLSPstep=25; //guessed values for official file
168 //  float mglustart=950;float mgluend=970;float mglustep=10;
169 //  float mLSPstart=825;float mLSPend=900;float mLSPstep=10;
170  
171
166    TH2F *efficiencymap = new TH2F("efficiencymap","",(mgluend-mglustart)/mglustep+1,mglustart-0.5*mglustep,mgluend+0.5*mglustep,(mLSPend-mLSPstart)/mLSPstep+1,mLSPstart-0.5*mLSPstep,mLSPend+0.5*mLSPstep);
167 <  TH2F *Neventsmap    = new TH2F("Neventsmap","",(mgluend-mglustart)/mglustep+1,mglustart-0.5*mglustep,mgluend+0.5*mglustep,(mLSPend-mLSPstart)/mLSPstep+1,mLSPstart-0.5*mLSPstep,mLSPend+0.5*mLSPstep);
167 >  TH2F *Neventsmap    = new TH2F("Neventsmap","",   (mgluend-mglustart)/mglustep+1,mglustart-0.5*mglustep,mgluend+0.5*mglustep,(mLSPend-mLSPstart)/mLSPstep+1,mLSPstart-0.5*mLSPstep,mLSPend+0.5*mLSPstep);
168    
169    float rightmargin=gStyle->GetPadRightMargin();
170    gStyle->SetPadRightMargin(0.14);
# Line 185 | Line 179 | void efficiency_scan_in_susy_space(strin
179        addcut << "(TMath::Abs("<<massgluname<<"-"<<mglu<<")<5)&&(TMath::Abs("<<massLSPname<<"-"<<mlsp<<")<5)";
180        MCefficiency((scansample.collection)[0].events,result,resulterr,mcjzb,requireZ,addcut.str());
181        if(result!=result||isanyinf(result)) {
182 <        cout << "Watch out the result for mlsp=" << mlsp << " and mglu=" << mglu << " (" << result << ") has been detected as being not a number (nan) or infinity (inf) !" << endl;
182 >        dout << "Watch out the result for mlsp=" << mlsp << " and mglu=" << mglu << " (" << result << ") has been detected as being not a number (nan) or infinity (inf) !" << endl;
183          result=0; // kicking nan and inf errors
184        }
185        efficiencymap->Fill(mglu,mlsp,result);
# Line 205 | Line 199 | void efficiency_scan_in_susy_space(strin
199    Neventsmap->GetXaxis()->CenterTitle();
200    Neventsmap->GetYaxis()->SetTitle("m_{LSP}");
201    Neventsmap->GetYaxis()->CenterTitle();
202 <  
202 >    
203    efficiencymap->Draw("COLZ");
204    TText *title = write_title("Efficiency in LSP-Glu plane");
205    title->Draw();
206    CompleteSave(effcanvas,"SUSYScan/Efficency");
207 +  
208    Neventsmap->Draw("COLZ");
209    TText *title2 = write_title("Number of events in LSP-Glu plane");
210    title2->Draw();
211 <  CompleteSave(effcanvas,"SUSYScan/Nevents");
212 <  gStyle->SetPadRightMargin(rightmargin);
211 >  CompleteSave(effcanvas,"SUSYScan/Nevents");*/
212 > }
213 >
214 > void scan_SUSY_parameter_space(string mcjzb,string datajzb,vector<float> jzb_cut,bool requireZ, float peakerror, int ibin) {
215 >  
216 >  jzbSel=jzb_cut[ibin];
217 >  geqleq="geq";
218 >  automatized=true;
219 >  mcjzbexpression=mcjzb;
220 >  
221 >  string massgluname="MassGlu";
222 >  string massLSPname="MassLSP";
223 >  
224 >  Int_t MyPalette[100];
225 >  Double_t r[]    = {0., 0.0, 1.0, 1.0, 1.0};
226 >  Double_t g[]    = {0., 0.0, 0.0, 1.0, 1.0};
227 >  Double_t b[]    = {0., 1.0, 0.0, 0.0, 1.0};
228 >  Double_t stop[] = {0., .25, .50, .75, 1.0};
229 >  Int_t FI = TColor::CreateGradientColorTable(5, stop, r, g, b, 110);
230 >  for (int i=0;i<100;i++) MyPalette[i] = FI+i;
231 >  
232 >  gStyle->SetPalette(100, MyPalette);
233 >  
234 >  TH2F *limitmap = new TH2F("limitmap","",(mgluend-mglustart)/mglustep+1,mglustart-0.5*mglustep,mgluend+0.5*mglustep,(mLSPend-mLSPstart)/mLSPstep+1,mLSPstart-0.5*mLSPstep,mLSPend+0.5*mLSPstep);
235 >  
236 >  float rightmargin=gStyle->GetPadRightMargin();
237 >  gStyle->SetPadRightMargin(0.15);
238 >  
239 >  TCanvas *limcanvas = new TCanvas("limcanvas","Limit canvas");
240 >  
241 >  for(int mglu=mglustart;mglu<=mgluend;mglu+=mglustep) {
242 >    for (int mlsp=mLSPstart;mlsp<=mLSPend&&mlsp<=mglu;mlsp+=mLSPstep)
243 >    {
244 >      float result,resulterr;
245 >      stringstream addcut;
246 >      addcut << "(TMath::Abs("<<massgluname<<"-"<<mglu<<")<5)&&(TMath::Abs("<<massLSPname<<"-"<<mlsp<<")<5)";
247 >      vector<vector<float> > systematics;
248 >      do_systematics_for_one_file((scansample.collection)[0].events,"SUSY SCAN", systematics,mcjzb,datajzb,peakerror,requireZ, addcut.str());
249 >      float JZBcutat=systematics[0][0];
250 >      float mceff=systematics[0][1];
251 >      float toterr =systematics[0][4];
252 >      if(mceff!=mceff||toterr!=toterr) {
253 >        dout << "Limits can't be calculated in this configuration as either the efficiency or its error are not numbers! (mceff="<<mceff<<" and toterr="<<toterr<<")"<< endl;
254 >        continue;
255 >      }
256 >      vector<float> sigmas = compute_one_upper_limit(mceff,toterr,ibin,mcjzb);
257 >      limitmap->Fill(mglu,mlsp,sigmas[0]);
258 >      dout << "A limit has been added at " << sigmas[0] << " for m_{glu}="<<mglu << " and m_{lsp}="<<mlsp<<endl;
259 >    }
260 >  }
261 >  
262 >  limitmap->GetXaxis()->SetTitle("m_{glu}");
263 >  limitmap->GetXaxis()->CenterTitle();
264 >  limitmap->GetYaxis()->SetTitle("m_{LSP}");
265 >  limitmap->GetYaxis()->CenterTitle();
266 >  
267 >  limitmap->GetXaxis()->SetTitle("m_{glu}");
268 >  limitmap->GetXaxis()->CenterTitle();
269 >  limitmap->GetYaxis()->SetTitle("m_{LSP}");
270 >  limitmap->GetYaxis()->CenterTitle();
271 >  
272 >  limcanvas->cd();
273 >  limitmap->Draw("COLZ");
274 >  TText *title = write_title("Limits in LSP-Glu plane");
275 >  title->Draw();
276 >  CompleteSave(limcanvas,"SUSYScan/Limits_JZB_geq"+any2string(jzb_cut[ibin]));
277   }
278 +
279 + void scan_SUSY_parameter_space(string mcjzb,string datajzb,vector<float> jzb_cut,bool requireZ, float peakerror) {
280 +  for(int ibin=0;ibin<jzb_cut.size();ibin++) {
281 +    scan_SUSY_parameter_space(mcjzb,datajzb,jzb_cut,requireZ, peakerror, ibin);
282 +  }
283 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines