ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/auterman/SusyScan/PlotScript/scan.C
(Generate patch)

Comparing UserCode/auterman/SusyScan/PlotScript/scan.C (file contents):
Revision 1.3 by auterman, Wed Dec 5 13:27:47 2007 UTC vs.
Revision 1.4 by auterman, Wed Dec 5 17:23:12 2007 UTC

# Line 15 | Line 15
15   #include <TColor.h>
16   #include <TStyle.h>
17   #include <TLatex.h>
18 + #include <TMarker.h>
19  
20  
21   #include "scan.h"
# Line 44 | Line 45 | bool neutralino_1(const SUSY_POINT point
45   bool sq_equal_gluino(const SUSY_POINT point, const double treshold)
46   { return ( fabs(point.MUL - point.MGL)<treshold ); }
47  
48 +
49 + bool xs_sq_equal_gluino(const SUSY_XSECS point, const double treshold)
50 + { if (point.sgsg()<1E-5&&point.sqsq()<1E-5) return false; else return (fabs(point.sgsg() - point.sqsq())<treshold*point.sqsq()/100. ); }
51 +
52 +
53   TScan::TScan()
54   {
55    plot_id = 0;
# Line 59 | Line 65 | TScan::~TScan()
65   {
66   }
67  
68 < MyTGraph * TScan::IsoMassLine(bool(*func)(SUSY_POINT,double), double mass )
68 > template <class T> MyTGraph * TScan::IsoMassLine(std::vector<T> pnts, bool(*func)(T,double), double mass )
69   {
70    MyTGraph * result = new MyTGraph(1);
71    int i=0;
72 <  for (std::vector<SUSY_POINT>::const_iterator it=points.begin();
73 <       it!=points.end(); ++it) {
72 >  for (typename std::vector<T>::const_iterator it=pnts.begin();
73 >       it!=pnts.end(); ++it) {
74       if ( func( *it, mass) )
75         result->SetPoint(i++, it->MZERO, it->MHALF);
76    }
# Line 358 | Line 364 | int TScan::DoStuff()
364    
365     ///gluino
366     gStyle->SetLineColor(15);//gray
367 <   MyTGraph * m_gluino5  = IsoMassLine( gluino,  500. ); m_gluino5->Draw();
368 <   MyTGraph * m_gluino10 = IsoMassLine( gluino, 1000. ); m_gluino10->Draw();
369 <   MyTGraph * m_gluino20 = IsoMassLine( gluino, 2000. ); m_gluino20->Draw();
370 <   MyTGraph * m_gluino30 = IsoMassLine( gluino, 3000. ); m_gluino30->Draw();
371 <   MyTGraph * m_gluino40 = IsoMassLine( gluino, 4000. ); m_gluino40->Draw();
367 >   MyTGraph * m_gluino5  = IsoMassLine( points, gluino,  500. ); m_gluino5->Draw();
368 >   MyTGraph * m_gluino10 = IsoMassLine( points, gluino, 1000. ); m_gluino10->Draw();
369 >   MyTGraph * m_gluino20 = IsoMassLine( points, gluino, 2000. ); m_gluino20->Draw();
370 >   MyTGraph * m_gluino30 = IsoMassLine( points, gluino, 3000. ); m_gluino30->Draw();
371 >   MyTGraph * m_gluino40 = IsoMassLine( points, gluino, 4000. ); m_gluino40->Draw();
372     t.DrawLatex(360.,450.,"#tilde{g}=1000 GeV");
373     t.DrawLatex(600.,930.,"#tilde{g}=2000 GeV");
374     t.DrawLatex(870.,1420.,"#tilde{g}=3000 GeV");
# Line 372 | Line 378 | int TScan::DoStuff()
378     //MyTGraph * m_neutralino1 = IsoMassLine( neutralino_1, 500. ); m_neutralino1->Draw();
379    
380     ///left-handed up-like squarks
381 <   MyTGraph * m_ul5  = IsoMassLine( ul,  500. ); m_ul5->Draw();
382 <   MyTGraph * m_ul10 = IsoMassLine( ul, 1000. ); m_ul10->Draw();
383 <   MyTGraph * m_ul15 = IsoMassLine( ul, 1500. ); m_ul15->Draw();
384 <   MyTGraph * m_ul20 = IsoMassLine( ul, 2000. ); m_ul20->Draw();
385 <   MyTGraph * m_ul25 = IsoMassLine( ul, 2500. ); m_ul25->Draw();
386 <   MyTGraph * m_ul30 = IsoMassLine( ul, 3000. ); m_ul30->Draw();
387 <   MyTGraph * m_ul35 = IsoMassLine( ul, 3500. ); m_ul35->Draw();
388 <   MyTGraph * m_ul40 = IsoMassLine( ul, 4000. ); m_ul40->Draw();
381 >   MyTGraph * m_ul5  = IsoMassLine( points, ul,  500. ); m_ul5->Draw();
382 >   MyTGraph * m_ul10 = IsoMassLine( points, ul, 1000. ); m_ul10->Draw();
383 >   MyTGraph * m_ul15 = IsoMassLine( points, ul, 1500. ); m_ul15->Draw();
384 >   MyTGraph * m_ul20 = IsoMassLine( points, ul, 2000. ); m_ul20->Draw();
385 >   MyTGraph * m_ul25 = IsoMassLine( points, ul, 2500. ); m_ul25->Draw();
386 >   MyTGraph * m_ul30 = IsoMassLine( points, ul, 3000. ); m_ul30->Draw();
387 >   MyTGraph * m_ul35 = IsoMassLine( points, ul, 3500. ); m_ul35->Draw();
388 >   MyTGraph * m_ul40 = IsoMassLine( points, ul, 4000. ); m_ul40->Draw();
389     t.DrawLatex(800.,250.,"#tilde{u}_{L}=1000 GeV");
390     t.DrawLatex(1670.,470.,"#tilde{u}_{L}=2000 GeV");
391     t.DrawLatex(1670.,1250.,"#tilde{u}_{L}=3000 GeV");
# Line 407 | Line 413 | int TScan::DoStuff()
413  
414     // m(gluino)==m(squark)
415     gStyle->SetLineColor(1);//black
416 <   MyTGraph * m_ulgl  = IsoMassLine( sq_equal_gluino,  0.2 );
416 >   MyTGraph * m_ulgl  = IsoMassLine( points, sq_equal_gluino,  0.2 );
417     m_ulgl->SetLineWidth(3); m_ulgl->Draw();
418     t.SetTextSize(0.03);t.SetTextColor( 1 );
419     t.DrawLatex( 750.,1200.,"m(#tilde{u}_{L}) < m(#tilde{g})");
420 <   t.DrawLatex(1400.,1150.,"m(#tilde{u}_{L}) > m(#tilde{g})");
420 >   t.DrawLatex(1350.,1150.,"m(#tilde{u}_{L}) > m(#tilde{g})");
421  
422  
423 +   // xs(gluino)==xs(squark)
424 +   MyTGraph * xs_ulgl  = IsoMassLine( xsects, xs_sq_equal_gluino,  5.0 );
425 +   xs_ulgl->SetLineWidth(3); xs_ulgl->Draw();
426 +   t.SetTextSize(0.02);t.SetTextColor( 1 );
427 +   t.DrawLatex( 890.,510.,"#sigma(#tilde{q}#tilde{q}) > #sigmam(#tilde{g}#tilde{g})");
428 +   t.DrawLatex(1280.,450.,"#sigma(#tilde{q}#tilde{q}) < #sigmam(#tilde{g}#tilde{g})");
429 +
430 +   TMarker m;
431 +   m.SetMarkerStyle(29);
432 +   m.SetMarkerColor(2);
433 +   m.SetMarkerSize(1.5);
434 +   m.DrawMarker(1000,1000);  
435 +   m.DrawMarker(1000,200);  
436 +   m.DrawMarker(1000,400);  
437 +   m.DrawMarker(1000,600);  
438 +   m.DrawMarker(1000,800);  
439 +   m.DrawMarker(1200,1000);  
440 +   m.DrawMarker(1200,1400);  
441 +   m.DrawMarker(1200,1800);  
442 +   m.DrawMarker(1200,200);  
443 +   m.DrawMarker(1200,600);  
444 +   m.DrawMarker(1600,1000);  
445 +   m.DrawMarker(1600,1400);  
446 +   m.DrawMarker(1600,1800);  
447 +   m.DrawMarker(1600,200);  
448 +   m.DrawMarker(1600,600);  
449 +   m.DrawMarker(2000,1000);  
450 +   m.DrawMarker(2000,1400);  
451 +   m.DrawMarker(2000,1800);  
452 +   m.DrawMarker(2000,200);  
453 +   m.DrawMarker(2000,600);  
454 +   m.DrawMarker(200,200);    
455 +   m.DrawMarker(400,200);    
456 +   m.DrawMarker(400,400);    
457 +   m.DrawMarker(400,600);    
458 +   m.DrawMarker(600,1000);  
459 +   m.DrawMarker(600,200);    
460 +   m.DrawMarker(600,400);    
461 +   m.DrawMarker(600,600);    
462 +   m.DrawMarker(600,800);    
463 +   m.DrawMarker(800,1000);  
464 +   m.DrawMarker(800,1400);  
465 +   m.DrawMarker(800,200);    
466 +   m.DrawMarker(800,400);    
467 +   m.DrawMarker(800,600);    
468 +   m.DrawMarker(800,800);    
469     //DONE
470     c1->SaveAs("dirt.eps");
471     gApplication->Run();    //interactive

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines