15 |
|
#include <TColor.h> |
16 |
|
#include <TStyle.h> |
17 |
|
#include <TLatex.h> |
18 |
+ |
#include <TMarker.h> |
19 |
|
|
20 |
|
|
21 |
|
#include "scan.h" |
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; |
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 |
|
} |
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"); |
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"); |
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 |