1515#include "TError.h"
1616#include "TColor.h"
1717#include "TCanvas.h"
18- #include "TH1F.h"
18+ #include "TH2D.h"
19+ #include "TF1.h"
1920#include "TEfficiency.h"
21+ #include "TMarker.h"
2022#include "TLegend.h"
2123#include "TTree.h"
24+ #include "TLatex.h"
2225
2326#include <memory>
2427#include <array>
2730
2831static constexpr std ::array < uint8_t , 9 > bitPatternsBefore {15 , 30 , 31 , 60 , 62 , 63 , 120 , 124 , 126 };
2932static constexpr std ::array < uint8_t , 16 > bitPatternsAfter {31 , 47 , 61 , 62 , 63 , 79 , 94 , 95 , 111 , 121 , 122 , 123 , 124 , 125 , 126 , 127 };
33+ inline bool bitsCleared (uint8_t b , uint8_t a ) { return (a == b ) ? true : (b & ~(a & b )) != 0 ; }
3034static constexpr std ::array < int , 16 > patternColors = {
3135 kRed , // Red
3236 kBlue , // Blue
@@ -109,6 +113,10 @@ static const std::array<int, eN> markers{20, 21, 22, 23, 27, 28,
109113 29 , 33 , 39 };
110114static const char * const texPtX = "#it{p}_{T} (GeV/#it{c})" ;
111115static const char * const texEff = "Efficiency" ;
116+ static const char * const texPtRes = "#sigma(#Delta#it{p}_{T}/#it{p}_{T})" ;
117+ static const char * const texDCAxyRes = "#sigma(DCA_{#it{xy}}) (#mum)" ;
118+ static const char * const texDCAzRes = "#sigma(DCA_{#it{z}}) (#mum)" ;
119+ static const char * const fitOpt {"QWMER" };
112120
113121void setStyle ();
114122TEfficiency * makeEff (TFile * , const char * num , const char * den );
@@ -240,10 +248,13 @@ void PostTrackExtension(const char* fileName = "TrackExtensionStudy.root")
240248 auto h = p -> DrawFrame (0.05 , 0.0 , 10. , 1.05 );
241249 h -> GetXaxis ()-> SetTitle (texPtX );
242250 h -> GetYaxis ()-> SetTitle (texEff );
243- auto leg = new TLegend (0.35 , 0.35 , 0.7 , 0.7 );
251+ auto leg = new TLegend (0.35 , 0.60 , 0.7 , 0.88 );
244252 leg -> SetNColumns (4 );
245253 leg -> SetHeader (std ::format ("BEFORE={:07b} GOOD Pattern AFTER/BEFORE" , bitPatternsBefore [i ]).c_str ());
246254 for (int j {0 }; j < (int )bitPatternsAfter .size (); ++ j ) {
255+ if (bitsCleared (bitPatternsBefore [i ], bitPatternsAfter [j ])) {
256+ continue ;
257+ }
247258 auto eff = fIn -> Get < TEfficiency > (std ::format ("eExtensionPatternGood_{:07b}_{:07b}" , bitPatternsBefore [i ], bitPatternsAfter [j ]).c_str ());
248259 stylePattern (eff , j , leg , std ::format ("{:07b}" , bitPatternsAfter [j ]).c_str ());
249260 eff -> Draw ("same" );
@@ -263,10 +274,13 @@ void PostTrackExtension(const char* fileName = "TrackExtensionStudy.root")
263274 auto h = p -> DrawFrame (0.05 , 0.0 , 10. , 1.05 );
264275 h -> GetXaxis ()-> SetTitle (texPtX );
265276 h -> GetYaxis ()-> SetTitle (texEff );
266- auto leg = new TLegend (0.35 , 0.35 , 0.7 , 0.7 );
277+ auto leg = new TLegend (0.35 , 0.60 , 0.7 , 0.88 );
267278 leg -> SetNColumns (4 );
268279 leg -> SetHeader (std ::format ("BEFORE={:07b} FAKE Pattern AFTER/BEFORE" , bitPatternsBefore [i ]).c_str ());
269280 for (int j {0 }; j < (int )bitPatternsAfter .size (); ++ j ) {
281+ if (bitsCleared (bitPatternsBefore [i ], bitPatternsAfter [j ])) {
282+ continue ;
283+ }
270284 auto eff = fIn -> Get < TEfficiency > (std ::format ("eExtensionPatternFake_{:07b}_{:07b}" , bitPatternsBefore [i ], bitPatternsAfter [j ]).c_str ());
271285 stylePattern (eff , j , leg , std ::format ("{:07b}" , bitPatternsAfter [j ]).c_str ());
272286 eff -> Draw ("same" );
@@ -278,25 +292,292 @@ void PostTrackExtension(const char* fileName = "TrackExtensionStudy.root")
278292 c -> SaveAs ("trkExt_fake_pattern_comp.pdf" );
279293 }
280294
295+ { // DCA
296+ auto fGaus = new TF1 ("fGaus" , "gaus" , -200. , 200. );
297+ auto dcaXYVsPtNo = fIn -> Get < TH2D > ("hDCAxyVsPtResNormal" );
298+ auto dcaXYVsPtYes = fIn -> Get < TH2D > ("hDCAxyVsPtResExtended" );
299+ auto dcazVsPtNo = fIn -> Get < TH2D > ("hDCAzVsPtResNormal" );
300+ auto dcazVsPtYes = fIn -> Get < TH2D > ("hDCAzVsPtResExtended" );
301+ auto bins = dcazVsPtNo -> GetXaxis ()-> GetXbins ();
302+ auto dcaXYResNo = new TH1F ("hDcaxyResNo" , "NORMAL;#it{p}_{T} (GeV/#it{c});#sigma(DCA_{#it{xy}}) (#mum)" , bins -> GetSize () - 1 , bins -> GetArray ());
303+ auto dcaXYResYes = new TH1F ("hDcaxyResYes" , "EXTENDED;#it{p}_{T} (GeV/#it{c});#sigma(DCA_{#it{xy}}) (#mum)" , bins -> GetSize () - 1 , bins -> GetArray ());
304+ auto dcaZResNo = new TH1F ("hDcazResNo" , "NORMAL;#it{p}_{T} (GeV/#it{c});#sigma(DCA_{#it{z}}) (#mum)" , bins -> GetSize () - 1 , bins -> GetArray ());
305+ auto dcaZResYes = new TH1F ("hDcazResYes" , "EXTENDED;#it{p}_{T} (GeV/#it{c});#sigma(DCA_{#it{z}}) (#mum)" , bins -> GetSize () - 1 , bins -> GetArray ());
306+ TH1 * proj ;
307+ for (int iPt {1 }; iPt <= bins -> GetSize (); ++ iPt ) {
308+ auto ptMin = dcaXYResNo -> GetXaxis ()-> GetBinLowEdge (iPt );
309+ if (ptMin < 0.1 ) {
310+ continue ;
311+ }
312+ float minFit = (ptMin < 1. ) ? -200. : -75. ;
313+ float maxFit = (ptMin < 1. ) ? 200. : 75. ;
314+
315+ proj = dcaXYVsPtNo -> ProjectionY (Form ("hProjDCAxy_no_%d" , iPt ), iPt , iPt );
316+ proj -> Fit ("fGaus" , fitOpt , "" , minFit , maxFit );
317+ dcaXYResNo -> SetBinContent (iPt , fGaus -> GetParameter (2 ));
318+ dcaXYResNo -> SetBinError (iPt , fGaus -> GetParError (2 ));
319+
320+ proj = dcaXYVsPtYes -> ProjectionY (Form ("hProjDCAxy_yes_%d" , iPt ), iPt , iPt );
321+ proj -> Fit ("fGaus" , fitOpt , "" , minFit , maxFit );
322+ dcaXYResYes -> SetBinContent (iPt , fGaus -> GetParameter (2 ));
323+ dcaXYResYes -> SetBinError (iPt , fGaus -> GetParError (2 ));
324+
325+ proj = dcazVsPtNo -> ProjectionY (Form ("hProjDCAz_no_%d" , iPt ), iPt , iPt );
326+ proj -> Fit ("fGaus" , fitOpt , "" , minFit , maxFit );
327+ dcaZResNo -> SetBinContent (iPt , fGaus -> GetParameter (2 ));
328+ dcaZResNo -> SetBinError (iPt , fGaus -> GetParError (2 ));
329+
330+ proj = dcazVsPtYes -> ProjectionY (Form ("hProjDCAz_yes_%d" , iPt ), iPt , iPt );
331+ proj -> Fit ("fGaus" , fitOpt , "" , minFit , maxFit );
332+ dcaZResYes -> SetBinContent (iPt , fGaus -> GetParameter (2 ));
333+ dcaZResYes -> SetBinError (iPt , fGaus -> GetParError (2 ));
334+ }
335+
336+ dcaXYResNo -> SetLineColor (kRed );
337+ dcaXYResNo -> SetMarkerColor (kRed );
338+ dcaXYResYes -> SetLineColor (kBlue );
339+ dcaXYResYes -> SetMarkerColor (kBlue );
340+ dcaZResNo -> SetLineColor (kRed );
341+ dcaZResNo -> SetMarkerColor (kRed );
342+ dcaZResYes -> SetLineColor (kBlue );
343+ dcaZResYes -> SetMarkerColor (kBlue );
344+
345+ auto c = new TCanvas ("cDCA" , "" , 2 * 800 , 600 );
346+ c -> Divide (2 , 1 );
347+ c -> cd (1 );
348+ auto h = gPad -> DrawFrame (0.1 , 1 , 10. , 500 );
349+ h -> GetXaxis ()-> SetTitle (texPtX );
350+ h -> GetYaxis ()-> SetTitle (texDCAxyRes );
351+ dcaXYResNo -> Draw ("SAME" );
352+ dcaXYResYes -> Draw ("SAME" );
353+ gPad -> SetLogx ();
354+ gPad -> SetLogy ();
355+ gPad -> SetGrid ();
356+ auto leg = new TLegend (0.20 , 0.20 , 0.40 , 0.40 );
357+ leg -> AddEntry (dcaXYResNo , "Normal" );
358+ leg -> AddEntry (dcaXYResYes , "Extended" );
359+ leg -> Draw ();
360+
361+ c -> cd (2 );
362+ h = gPad -> DrawFrame (0.1 , 1 , 10. , 500 );
363+ h -> GetXaxis ()-> SetTitle (texPtX );
364+ h -> GetYaxis ()-> SetTitle (texDCAzRes );
365+ dcaZResNo -> Draw ("SAME" );
366+ dcaZResYes -> Draw ("SAME" );
367+ gPad -> SetLogx ();
368+ gPad -> SetLogy ();
369+ gPad -> SetGrid ();
370+
371+ c -> SaveAs ("trkExt_dca.pdf" );
372+ }
373+
374+ return ;
281375 { // Kinematic variables
282376 auto t = fIn -> Get < TTree > ("tree" );
283377 auto c = new TCanvas ("cKG" , "" , 800 , 600 );
284378 c -> Divide (3 , 2 );
285- auto p = c -> cd (1 );
286- p -> SetGrid ();
287- auto h = p -> DrawFrame (-.5 , 0. , .5 , 30. );
288- h -> GetXaxis ()-> SetTitle ("#it{p}_{T,TRK}-#it{p}_{T,MC}" );
289- h -> GetYaxis ()-> SetTitle ("n. counts" );
290- t -> Draw ("trk.getPt()-mcTrk.getPt()>>hPtNo(100,-.5,.5)" , "isGood&&!isExtended" , "HIST;SAME" );
291- auto htemp = (TH1F * )p -> GetPrimitive ("hPtNo" );
292- htemp -> Scale (1.0 / htemp -> Integral ("width" ));
293- htemp -> SetLineColor (kRed );
294- t -> Draw ("trk.getPt()-mcTrk.getPt()>>hPtYes(100,-.5,.5)" , "isGood&&isExtended" , "HIST;SAME" );
295- htemp = (TH1F * )p -> GetPrimitive ("hPtYes" );
296- htemp -> Scale (1.0 / htemp -> Integral ("width" ));
297- htemp -> SetLineColor (kBlue );
298- p -> Modified ();
299- p -> Update ();
379+ {
380+ auto p = c -> cd (1 );
381+ p -> SetGrid ();
382+ auto h = p -> DrawFrame (-.6 , 0. , .6 , 9. );
383+ h -> GetXaxis ()-> SetTitle ("#frac{Q^{2}}{p_{T,TRK}}-#frac{Q^{2}}{p_{T,MC}}" );
384+ h -> GetYaxis ()-> SetTitle ("n. counts" );
385+ t -> Draw ("trk.getQ2Pt()-mcTrk.getQ2Pt()>>hPtNo(100,-.6,.6)" , "isGood&&!isExtended" , "HIST;SAME" );
386+ auto hNo = (TH1F * )p -> GetPrimitive ("hPtNo" );
387+ hNo -> Scale (1.0 / hNo -> Integral ("width" ));
388+ hNo -> SetLineColor (kRed );
389+ auto fitNo = new TF1 ("fitNo" , "gaus" , -0.04 , 0.04 );
390+ hNo -> Fit (fitNo , "QR" );
391+ fitNo -> SetLineColor (kRed );
392+ fitNo -> Draw ("SAME" );
393+ auto textNo = new TLatex (-0.55 , 8.2 , Form ("#mu = %.3f, #sigma = %.3f" , fitNo -> GetParameter (1 ), fitNo -> GetParameter (2 )));
394+ textNo -> SetTextColor (kRed );
395+ textNo -> SetNDC (false);
396+ textNo -> SetTextSize (0.05 );
397+ textNo -> Draw ();
398+
399+ t -> Draw ("trk.getQ2Pt()-mcTrk.getQ2Pt()>>hPtYes(100,-.6,.6)" , "isGood&&isExtended" , "HIST;SAME" );
400+ auto hYes = (TH1F * )p -> GetPrimitive ("hPtYes" );
401+ hYes -> Scale (1.0 / hYes -> Integral ("width" ));
402+ hYes -> SetLineColor (kBlue );
403+ auto fitYes = new TF1 ("fitYes" , "gaus" , -0.04 , 0.04 );
404+ hYes -> Fit (fitYes , "QR" );
405+ fitYes -> SetLineColor (kBlue );
406+ fitYes -> Draw ("SAME" );
407+ auto textYes = new TLatex (-0.55 , 7 , Form ("#mu = %.4f, #sigma = %.4f" , fitNo -> GetParameter (1 ), fitNo -> GetParameter (2 )));
408+ textYes -> SetTextColor (kBlue );
409+ textYes -> SetNDC (false);
410+ textYes -> SetTextSize (0.05 );
411+ textYes -> Draw ();
412+
413+ p -> Modified ();
414+ p -> Update ();
415+ }
416+ {
417+ auto p = c -> cd (2 );
418+ p -> SetGrid ();
419+ auto h = p -> DrawFrame (-3 , 0. , 3 , 2. );
420+ h -> GetXaxis ()-> SetTitle ("Y_{TRK}-Y_{MC}" );
421+ h -> GetYaxis ()-> SetTitle ("n. counts" );
422+ t -> Draw ("trk.getY()-mcTrk.getY()>>hYNo(100,-3,3)" , "isGood&&!isExtended" , "HIST;SAME" );
423+ auto hNo = (TH1F * )p -> GetPrimitive ("hYNo" );
424+ hNo -> Scale (1.0 / hNo -> Integral ("width" ));
425+ hNo -> SetLineColor (kRed );
426+ auto fitNo = new TF1 ("fitNo" , "gaus" , -0.5 , 0.5 );
427+ hNo -> Fit (fitNo , "QR" );
428+ fitNo -> SetLineColor (kRed );
429+ fitNo -> Draw ("SAME" );
430+ auto textNo = new TLatex (-2 , 1.7 , Form ("#mu = %.3f, #sigma = %.3f" , fitNo -> GetParameter (1 ), fitNo -> GetParameter (2 )));
431+ textNo -> SetTextColor (kRed );
432+ textNo -> SetNDC (false);
433+ textNo -> SetTextSize (0.05 );
434+ textNo -> Draw ();
435+
436+ t -> Draw ("trk.getY()-mcTrk.getY()>>hYYes(100,-3,3)" , "isGood&&isExtended" , "HIST;SAME" );
437+ auto hYes = (TH1F * )p -> GetPrimitive ("hYYes" );
438+ hYes -> Scale (1.0 / hYes -> Integral ("width" ));
439+ hYes -> SetLineColor (kBlue );
440+ auto fitYes = new TF1 ("fitYes" , "gaus" , -0.5 , 0.5 );
441+ hYes -> Fit (fitYes , "QR" );
442+ fitYes -> SetLineColor (kBlue );
443+ fitYes -> Draw ("SAME" );
444+ auto textYes = new TLatex (-2 , 1.5 , Form ("#mu = %.4f, #sigma = %.4f" , fitNo -> GetParameter (1 ), fitNo -> GetParameter (2 )));
445+ textYes -> SetTextColor (kBlue );
446+ textYes -> SetNDC (false);
447+ textYes -> SetTextSize (0.05 );
448+ textYes -> Draw ();
449+
450+ p -> Modified ();
451+ p -> Update ();
452+ }
453+ {
454+ auto p = c -> cd (3 );
455+ p -> SetGrid ();
456+ auto h = p -> DrawFrame (-2 , 0. , 2 , 4.2 );
457+ h -> GetXaxis ()-> SetTitle ("Z_{TRK}-Z_{MC}" );
458+ h -> GetYaxis ()-> SetTitle ("n. counts" );
459+ t -> Draw ("trk.getZ()-mcTrk.getZ()>>hZNo(100,-2,2)" , "isGood&&!isExtended" , "HIST;SAME" );
460+ auto hNo = (TH1F * )p -> GetPrimitive ("hZNo" );
461+ hNo -> Scale (1.0 / hNo -> Integral ("width" ));
462+ hNo -> SetLineColor (kRed );
463+ auto fitNo = new TF1 ("fitNo" , "gaus" , -0.2 , 0.2 );
464+ hNo -> Fit (fitNo , "QR" );
465+ fitNo -> SetLineColor (kRed );
466+ fitNo -> Draw ("SAME" );
467+ auto textNo = new TLatex (-1.7 , 3.8 , Form ("#mu = %.3f, #sigma = %.3f" , fitNo -> GetParameter (1 ), fitNo -> GetParameter (2 )));
468+ textNo -> SetTextColor (kRed );
469+ textNo -> SetNDC (false);
470+ textNo -> SetTextSize (0.05 );
471+ textNo -> Draw ();
472+
473+ t -> Draw ("trk.getZ()-mcTrk.getZ()>>hZYes(100,-2,2)" , "isGood&&isExtended" , "HIST;SAME" );
474+ auto hYes = (TH1F * )p -> GetPrimitive ("hZYes" );
475+ hYes -> Scale (1.0 / hYes -> Integral ("width" ));
476+ hYes -> SetLineColor (kBlue );
477+ auto fitYes = new TF1 ("fitYes" , "gaus" , -0.2 , 0.2 );
478+ hYes -> Fit (fitYes , "QR" );
479+ fitYes -> SetLineColor (kBlue );
480+ fitYes -> Draw ("SAME" );
481+ auto textYes = new TLatex (-1.7 , 3.5 , Form ("#mu = %.4f, #sigma = %.4f" , fitNo -> GetParameter (1 ), fitNo -> GetParameter (2 )));
482+ textYes -> SetTextColor (kBlue );
483+ textYes -> SetNDC (false);
484+ textYes -> SetTextSize (0.05 );
485+ textYes -> Draw ();
486+
487+ p -> Modified ();
488+ p -> Update ();
489+ }
490+ {
491+ auto p = c -> cd (4 );
492+ p -> SetGrid ();
493+ auto h = p -> DrawFrame (-0.02 , 0. , 0.02 , 370. );
494+ h -> GetXaxis ()-> SetTitle ("TGL_{TRK}-TGL_{MC}" );
495+ h -> GetYaxis ()-> SetTitle ("n. counts" );
496+ t -> Draw ("trk.getTgl()-mcTrk.getTgl()>>hTglNo(100,-0.02,0.02)" , "isGood&&!isExtended" , "HIST;SAME" );
497+ auto hNo = (TH1F * )p -> GetPrimitive ("hTglNo" );
498+ hNo -> Scale (1.0 / hNo -> Integral ("width" ));
499+ hNo -> SetLineColor (kRed );
500+ auto fitNo = new TF1 ("fitNo" , "gaus" , -0.003 , 0.003 );
501+ hNo -> Fit (fitNo , "QR" );
502+ fitNo -> SetLineColor (kRed );
503+ fitNo -> Draw ("SAME" );
504+ auto textNo = new TLatex (-0.018 , 330 , Form ("#mu = %.3f, #sigma = %.3f" , fitNo -> GetParameter (1 ), fitNo -> GetParameter (2 )));
505+ textNo -> SetTextColor (kRed );
506+ textNo -> SetNDC (false);
507+ textNo -> SetTextSize (0.05 );
508+ textNo -> Draw ();
509+
510+ t -> Draw ("trk.getTgl()-mcTrk.getTgl()>>hTglYes(100,-0.02,0.02)" , "isGood&&isExtended" , "HIST;SAME" );
511+ auto hYes = (TH1F * )p -> GetPrimitive ("hTglYes" );
512+ hYes -> Scale (1.0 / hYes -> Integral ("width" ));
513+ hYes -> SetLineColor (kBlue );
514+ auto fitYes = new TF1 ("fitYes" , "gaus" , -0.003 , 0.003 );
515+ hYes -> Fit (fitYes , "QR" );
516+ fitYes -> SetLineColor (kBlue );
517+ fitYes -> Draw ("SAME" );
518+ auto textYes = new TLatex (-0.018 , 310 , Form ("#mu = %.6f, #sigma = %.6f" , fitNo -> GetParameter (1 ), fitNo -> GetParameter (2 )));
519+ textYes -> SetTextColor (kBlue );
520+ textYes -> SetNDC (false);
521+ textYes -> SetTextSize (0.05 );
522+ textYes -> Draw ();
523+
524+ p -> Modified ();
525+ p -> Update ();
526+ }
527+ {
528+ auto p = c -> cd (5 );
529+ p -> SetGrid ();
530+ auto h = p -> DrawFrame (-0.08 , 0. , 0.08 , 80. );
531+ h -> GetXaxis ()-> SetTitle ("SNP_{TRK}-SNP_{MC}" );
532+ h -> GetYaxis ()-> SetTitle ("n. counts" );
533+ t -> Draw ("trk.getSnp()-mcTrk.getSnp()>>hSnpNo(100,-0.08,0.08)" , "isGood&&!isExtended" , "HIST;SAME" );
534+ auto hNo = (TH1F * )p -> GetPrimitive ("hSnpNo" );
535+ hNo -> Scale (1.0 / hNo -> Integral ("width" ));
536+ hNo -> SetLineColor (kRed );
537+ auto fitNo = new TF1 ("fitNo" , "gaus" , -0.03 , 0.03 );
538+ hNo -> Fit (fitNo , "QR" );
539+ fitNo -> SetLineColor (kRed );
540+ fitNo -> Draw ("SAME" );
541+ auto textNo = new TLatex (-0.07 , 72 , Form ("#mu = %.3f, #sigma = %.3f" , fitNo -> GetParameter (1 ), fitNo -> GetParameter (2 )));
542+ textNo -> SetTextColor (kRed );
543+ textNo -> SetNDC (false);
544+ textNo -> SetTextSize (0.05 );
545+ textNo -> Draw ();
546+
547+ t -> Draw ("trk.getSnp()-mcTrk.getSnp()>>hSnpYes(100,-0.08,0.08)" , "isGood&&isExtended" , "HIST;SAME" );
548+ auto hYes = (TH1F * )p -> GetPrimitive ("hSnpYes" );
549+ hYes -> Scale (1.0 / hYes -> Integral ("width" ));
550+ hYes -> SetLineColor (kBlue );
551+ auto fitYes = new TF1 ("fitYes" , "gaus" , -0.03 , 0.03 );
552+ hYes -> Fit (fitYes , "QR" );
553+ fitYes -> SetLineColor (kBlue );
554+ fitYes -> Draw ("SAME" );
555+ auto textYes = new TLatex (-0.07 , 66 , Form ("#mu = %.6f, #sigma = %.6f" , fitNo -> GetParameter (1 ), fitNo -> GetParameter (2 )));
556+ textYes -> SetTextColor (kBlue );
557+ textYes -> SetNDC (false);
558+ textYes -> SetTextSize (0.05 );
559+ textYes -> Draw ();
560+
561+ p -> Modified ();
562+ p -> Update ();
563+ }
564+ {
565+ auto p = c -> cd (6 );
566+ auto legend = new TLegend (0.2 , 0.2 , 0.8 , 0.8 );
567+ legend -> SetTextSize (0.06 );
568+ legend -> SetLineWidth (3 );
569+ legend -> SetHeader ("GOOD tracks" , "C" );
570+ auto mBlue = new TMarker ();
571+ mBlue -> SetMarkerColor (kBlue );
572+ mBlue -> SetMarkerSize (4 );
573+ legend -> AddEntry (mBlue , "extended" , "p" );
574+ auto mRed = new TMarker ();
575+ mRed -> SetMarkerColor (kRed );
576+ mRed -> SetMarkerSize (4 );
577+ legend -> AddEntry (mRed , "normal" , "p" );
578+ legend -> SetLineColor (kRed );
579+ legend -> Draw ();
580+ }
300581 c -> SaveAs ("trkExt_kinematics.pdf" );
301582 }
302583}
0 commit comments