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

Comparing UserCode/cbrown/AnalysisFramework/Plotting/Modules/DustyModule.C (file contents):
Revision 1.4 by buchmann, Wed Jul 20 08:51:33 2011 UTC vs.
Revision 1.5 by buchmann, Wed Aug 31 08:08:33 2011 UTC

# Line 229 | Line 229 | for(int icut=0;icut<jzbcuts.size()-1;icu
229  
230   }
231  
232 +
233 +
234 +
235 +
236 +
237 +
238 +
239 +
240 +
241 +
242 +
243 +
244 + void alpha_scan_susy_space(string mcjzb, string datajzb) {
245 +  TCanvas *c3 = new TCanvas("c3","c3");
246 +  vector<float> binning;
247 +  binning=allsamples.get_optimal_binsize(mcjzb,cutmass&&cutOSSF&&cutnJets,20,50,800);
248 +  float arrbinning[binning.size()];
249 +  for(int i=0;i<binning.size();i++) arrbinning[i]=binning[i];
250 +  TH1F *puredata   = allsamples.Draw("puredata",  datajzb,binning, "JZB [GeV]", "events", cutmass&&cutOSSF&&cutnJets,data,luminosity);
251 +  puredata->SetMarkerSize(DataMarkerSize);
252 +  TH1F *allbgs   = allsamples.Draw("allbgs",  "-"+datajzb,binning, "JZB [GeV]", "events", cutmass&&cutOSSF&&cutnJets,data,luminosity);
253 +  TH1F *allbgsb   = allsamples.Draw("allbgsb",  "-"+datajzb,binning, "JZB [GeV]", "events", cutmass&&cutOSOF&&cutnJets,data,luminosity);
254 +  TH1F *allbgsc   = allsamples.Draw("allbgsc",  datajzb,binning, "JZB [GeV]", "events", cutmass&&cutOSOF&&cutnJets,data,luminosity);
255 +  allbgs->Add(allbgsb,-1);
256 +  allbgs->Add(allbgsc);
257 +  int ndata=puredata->Integral();
258 +  ofstream myfile;
259 +  myfile.open ("susyscan_log.txt");
260 +  TFile *susyscanfile = new TFile("/scratch/fronga/SMS/T5z_SqSqToQZQZ_38xFall10.root");
261 +  TTree *suevents = (TTree*)susyscanfile->Get("events");
262 +  TH2F *exclusionmap = new TH2F("exclusionmap","",20,0,500,20,0,1000);
263 +  TH2F *exclusionmap1s = new TH2F("exclusionmap1s","",20,0,500,20,0,1000);
264 +  TH2F *exclusionmap2s = new TH2F("exclusionmap2s","",20,0,500,20,0,1000);
265 +  TH2F *exclusionmap3s = new TH2F("exclusionmap3s","",20,0,500,20,0,1000);
266 +  
267 +  susy_scan_axis_labeling(exclusionmap);
268 +  susy_scan_axis_labeling(exclusionmap1s);
269 +  susy_scan_axis_labeling(exclusionmap2s);
270 +  susy_scan_axis_labeling(exclusionmap3s);
271 +  
272 +  Int_t MyPalette[100];
273 +  Double_t r[]    = {0., 0.0, 1.0, 1.0, 1.0};
274 +  Double_t g[]    = {0., 0.0, 0.0, 1.0, 1.0};
275 +  Double_t b[]    = {0., 1.0, 0.0, 0.0, 1.0};
276 +  Double_t stop[] = {0., .25, .50, .75, 1.0};
277 +  Int_t FI = TColor::CreateGradientColorTable(5, stop, r, g, b, 100);
278 +  for (int i=0;i<100;i++) MyPalette[i] = FI+i;
279 +  
280 +  gStyle->SetPalette(100, MyPalette);
281 +  
282 +  for(int m23=50;m23<500;m23+=25) {
283 +    for (int m0=(2*(m23-50)+150);m0<=1000;m0+=50)
284 +    {
285 +      c3->cd();
286 +      stringstream drawcondition;
287 +      drawcondition << "pfJetGoodNum>=3&&(TMath::Abs(masses[0]-"<<m0<<")<10&&TMath::Abs(masses[2]-masses[3]-"<<m23<<")<10)&&mll>5&&id1==id2";
288 +      TH1F *puresignal = new TH1F("puresignal","puresignal",binning.size()-1,arrbinning);
289 +      TH1F *puresignall= new TH1F("puresignall","puresignal",binning.size()-1,arrbinning);
290 +      stringstream drawvar,drawvar2;
291 +      drawvar<<mcjzb<<">>puresignal";
292 +      drawvar2<<"-"<<mcjzb<<">>puresignall";
293 +      suevents->Draw(drawvar.str().c_str(),drawcondition.str().c_str());
294 +      suevents->Draw(drawvar2.str().c_str(),drawcondition.str().c_str());
295 +      if(puresignal->Integral()<60) {
296 +        delete puresignal;
297 +        continue;
298 +      }
299 +      puresignal->Add(puresignall,-1);//we need to correct for the signal contamination - we effectively only see (JZB>0)-(JZB<0) !!
300 +      puresignal->Scale(ndata/(20*puresignal->Integral()));//normalizing it to 5% of the data
301 +      stringstream saveas;
302 +      saveas<<"Model_Scan/m0_"<<m0<<"__m23_"<<m23;
303 +      dout << "PLEASE KEEP IN MIND THAT SIGNAL CONTAMINATION IS NOT REALLY TAKEN CARE OF YET DUE TO LOW STATISTICS! SHOULD BE SOMETHING LIKE THIS : "<< endl;
304 + //        TH1F *signalpredlo   = allsamples.Draw("signalpredlo",  "-"+mcjzb,  binning, "JZB [GeV]", "events", cutmass&&cutOSOF&&cutnJets,mc,  luminosity,allsamples.FindSample("LM4"));
305 + //        TH1F *signalpredro   = allsamples.Draw("signalpredro",      mcjzb,  binning, "JZB [GeV]", "events", cutmass&&cutOSOF&&cutnJets,mc,  luminosity,allsamples.FindSample("LM4"));
306 + //        TH1F *puredata       = allsamples.Draw("puredata",          datajzb,binning, "JZB [GeV]", "events", cutmass&&cutOSSF&&cutnJets,data,luminosity);
307 + //        signalpred->Add(signalpredlo,-1);
308 + //        signalpred->Add(signalpredro);
309 + //        puresignal->Add(signalpred,-1);//subtracting signal contamination
310 + //---------------------
311 + //      dout << "(m0,m23)=("<<m0<<","<<m23<<") contains " << puresignal->Integral() << endl;
312 + //    TH1F *puresignal = allsamples.Draw("puresignal",mcjzb,  binning, "JZB [GeV]", "events", cutmass&&cutOSSF&&cutnJets,mc,  luminosity,allsamples.FindSample("LM4"));
313 +      vector<float> results=establish_upper_limits(puredata,allbgs,puresignal,saveas.str(),myfile);  
314 +      if(results.size()==0) {
315 +        delete puresignal;
316 +        continue;
317 +      }
318 +      exclusionmap->Fill(m23,m0,results[0]);
319 +      exclusionmap1s->Fill(m23,m0,results[1]);
320 +      exclusionmap2s->Fill(m23,m0,results[2]);
321 +      exclusionmap3s->Fill(m23,m0,results[3]);
322 +      delete puresignal;
323 +      dout << "(m0,m23)=("<<m0<<","<<m23<<") : 3 sigma at " << results[3] << endl;
324 +    }
325 +  }//end of model scan for loop
326 +  
327 +  dout << "Exclusion Map contains" << exclusionmap->Integral() << " (integral) and entries: " << exclusionmap->GetEntries() << endl;
328 +  c3->cd();
329 +  exclusionmap->Draw("CONTZ");
330 +  CompleteSave(c3,"Model_Scan/CONT/Model_Scan_Mean_values");
331 +  exclusionmap->Draw("COLZ");
332 +  CompleteSave(c3,"Model_Scan/COL/Model_Scan_Mean_values");
333 +  
334 +  exclusionmap1s->Draw("CONTZ");
335 +  CompleteSave(c3,"Model_Scan/CONT/Model_Scan_1sigma_values");
336 +  exclusionmap1s->Draw("COLZ");
337 +  CompleteSave(c3,"Model_Scan/COL/Model_Scan_1sigma_values");
338 +  
339 +  exclusionmap2s->Draw("CONTZ");
340 +  CompleteSave(c3,"Model_Scan/CONT/Model_Scan_2sigma_values");
341 +  exclusionmap2s->Draw("COLZ");
342 +  CompleteSave(c3,"Model_Scan/COL/Model_Scan_2sigma_values");
343 +  
344 +  exclusionmap3s->Draw("CONTZ");
345 +  CompleteSave(c3,"Model_Scan/CONT/Model_Scan_3sigma_values");
346 +  exclusionmap3s->Draw("COLZ");
347 +  CompleteSave(c3,"Model_Scan/COL/Model_Scan_3sigma_values");
348 +  
349 +  TFile *exclusion_limits = new TFile("exclusion_limits.root","RECREATE");
350 +  exclusionmap->Write();
351 +  exclusionmap1s->Write();
352 +  exclusionmap2s->Write();
353 +  exclusionmap3s->Write();
354 +  exclusion_limits->Close();
355 +  susyscanfile->Close();
356 +  
357 +  myfile.close();
358 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines