Example #1
0
void myHexagon(IplImage* img, int cx, int cy, double radius, double angle, CvScalar color)
{
    for (int i=0; i<6; i++) {
        double theta1 = (angle + i*60) / 180 * M_PI;
        double theta2 = (angle + (i+1)%6*60) / 180 * M_PI;
        CvPoint pt1 = cvPoint(cx + cos(theta1)*radius, cy + sin(theta1)*radius);
        CvPoint pt2 = cvPoint(cx + cos(theta2)*radius, cy + sin(theta2)*radius);
        myLine(img, pt1, pt2);
    }
}
Example #2
0
void Obj::Draw(HDC hdc)
{
     if(shape == 1)              //  Line Algorithms 
     {
              l = myLine(p1,p2,algorithm);
              l.color = color;
              l.drawLine(hdc);
     }
     else if(shape == 2)       //  Circle Algorithms 
     {
          int dx = p1.x-p2.x;
          int dy = p1.y-p2.y;
          int r = (int)sqrt(dx*dx + dy*dy);
          c = myCircle(p1,r,algorithm);
          c.color = color;
          c.drawCircle(hdc);
     }
        else if(shape == 3)    //  Curve Algorithms 
     {
          curve.color = color;
          curve.Points[0] = p1;
          curve.Points[1] = p2;
          curve.Points[2] = myPoint(x3,y3);
          curve.Points[3] = myPoint(x4,y4);
          if(algorithm == 1)
                 curve.DrawHermiteCurve(hdc,p1.x,p1.y,p2.x,p2.y,x3,y3,x4,y4,100);
          if(algorithm == 2)
                 curve.DrawBezierCurve(hdc,curve.Points[0],curve.Points[1],curve.Points[2],curve.Points[3],100);
          if(algorithm == 3)
                 curve.DrawCardinalSpline(hdc,curve.Points,4,0.01,100);
     }
     else if(shape == 4)      //  Clipping Algorithms 
     {
          if(algorithm == 1)
                       clip.PointClipping(hdc,p1.x,p1.y,left,top,right,bottom,color);
          if(algorithm == 2)
                       clip.LineClipping(hdc,p1.x,p1.y,p2.x,p2.y,left,top,right,bottom);
          if(algorithm == 3)
                      {clip.PolygonClipping(hdc,Points,n,left,top,right,bottom);}
     }
}
Example #3
0
void Maho::toggleSpark(){
    mahoPhase = 0;
    fadeCount = 0;
    drawing = true;
    color = mainPink;
    if (bLine1) {
        float anAngle = 360.0f / line1Num;
        float firstAngle = ofGetElapsedTimef() * 360.0f;
        for (int i = 0; i < line1Num; i++) {
            myLine line = myLine(firstAngle + anAngle * i + ofRandomf());
            lines.push_back(line);
        }
    }
    if (bBunshi){
        //bunshi
        for (int i = 0; i < bunshiNum; i++) {
            bunshi b = bunshi();
            bunshis.push_back(b);
        }
    }
    if (bLine2) {
        //line2
        float aAm = 360.0f / line2Num;
        for (int i = 0; i < line2Num; i++) {
            myLine2 l = myLine2(aAm * i * ofRandom(0.0f, 30.0f));
            lines2.push_back(l);
        }
    }
    if (bBlob){
        b.toggleStart(blobPointNum);
        b2.toggleStart(blobPointNum);
    }
    if (mahoIndex == 2) {
        bSera = false;
        sera.setup();
    }
    printf("goko1発射!!\n");
    seraDid = false;
}
 void GoalPostDetector::drawTheGoalBar (Mat img,vector<Point2f> goalPos, Scalar color )
{
	   for(int i=0; i< goalPos.size() - 1; i++)
	      myLine(img,goalPos.at(i),goalPos.at(i+1),color);
}
Example #5
0
void metStudy( TString sampleName, TString CutName){

  TString OutDir = "CtrPlots_metStudy";
  gSystem->mkdir(OutDir);

  TString ChannelName[4];
  ChannelName[0] = "of0j";
  ChannelName[1] = "of1j";
  ChannelName[2] = "of2j";
  ChannelName[3] = "Incl";

  TString LgdTitle[4];
  LgdTitle[0] = "njet = 0, e#mu";
  LgdTitle[1] = "njet = 1, e#mu";
  LgdTitle[2] = "njet #geq 2, e#mu";
  LgdTitle[3] = "Incl.jet, e#mu";
  
  TString fileName  = sampleName+"/"+sampleName+"_"+CutName+".root";
  cout<<"File used: "<<fileName<<endl;
  TFile *fname  = new TFile(fileName);

  char tmpName[30];
  char histName[30];
  char histNameOrg[30];

  TH1D *h1_genMet[4];
  TH1D *h1_pupMet[4];
  TH1D *h1_pfMet[4];
  TH1D *h1_trkMet[4];
  TH2D* h2_pfGenResol[4];
  TH2D* h2_pupGenResol[4];
  TH2D* h2_trkGenResol[4];
  
  TProfile* pr_pfGenResol[4];
  TProfile* pr_pupGenResol[4];
  TProfile* pr_trkGenResol[4];

  //=====================================
  //Looping for each Channel
  //=====================================

  for (int i(0);i<4;i++) {
    TCanvas *myCan = new TCanvas("myCan","Can",800,800);
    
      sprintf(histNameOrg,"h1_genMet_%d",i);
      h1_genMet[i]= (TH1D*)fname->Get(histNameOrg)->Clone(histNameOrg); h1_genMet[i]->Sumw2();
      sprintf(histNameOrg,"h1_pfMet_%d",i);
      h1_pfMet[i]= (TH1D*)fname->Get(histNameOrg)->Clone(histNameOrg); h1_pfMet[i]->Sumw2();
      sprintf(histNameOrg,"h1_pupMet_%d",i);
      h1_pupMet[i]= (TH1D*)fname->Get(histNameOrg)->Clone(histNameOrg); h1_pupMet[i]->Sumw2();
      sprintf(histNameOrg,"h1_trkMet_%d",i);
      h1_trkMet[i]= (TH1D*)fname->Get(histNameOrg)->Clone(histNameOrg); h1_trkMet[i]->Sumw2();
   
      char fileName[30];
      char Ytitle[30];
      sprintf(fileName,sampleName+"_Met_%djet",i);
      sprintf(Ytitle,"Events / %.1f",h1_genMet[i]->GetBinWidth(1));
      CPlot* Plot_MET = new CPlot(fileName,sampleName,"MET[GeV]",Ytitle);
      Plot_MET->setOutDir(OutDir);
      Plot_MET->AddHist1D(h1_genMet[i],"HIST",kBlack);
      Plot_MET->AddHist1D(h1_pfMet[i],"HIST",kRed);
      Plot_MET->AddHist1D(h1_pupMet[i],"HIST",kBlue);
      Plot_MET->AddHist1D(h1_trkMet[i],"HIST",kGreen);
      //Plot_MET->AddTextBox(LgdTitle[i],0.7,0.92,0.9,0.97,0,kBlack,-1);
      Plot_MET->SetLegend(0.65,0.7,0.92,0.85);
      Plot_MET->GetLegend()->AddEntry(h1_genMet[i],"gen","l");
      Plot_MET->GetLegend()->AddEntry(h1_pfMet[i],"pf","l");
      Plot_MET->GetLegend()->AddEntry(h1_pupMet[i],"pup","l");
      Plot_MET->GetLegend()->AddEntry(h1_trkMet[i],"trk","l");
      if(sampleName == "DYJetsToLL")Plot_MET->SetLogy();
      
      Plot_MET->Draw(myCan,kTRUE,"png");


      // 2D plot party===================
      //
      sprintf(histNameOrg,"h2_pup_gen_MetResol_%d",i);
      sprintf(histName,"h2_pupGenResol_%d",i);
      h2_pupGenResol[i] = (TH2D*)fname->Get(histNameOrg)->Clone(histName);
      h2_pupGenResol[i] -> SetMarkerSize(0.4);

      sprintf(histNameOrg,"h2_pf_gen_MetResol_%d",i);
      sprintf(histName,"h2_pfGenResol_%d",i);
      h2_pfGenResol[i] = (TH2D*)fname->Get(histNameOrg)->Clone(histName);
      h2_pfGenResol[i] -> SetMarkerSize(0.4);

      sprintf(histNameOrg,"h2_trk_gen_MetResol_%d",i);
      sprintf(histName,"h2_trkGenResol_%d",i);
      h2_trkGenResol[i] = (TH2D*)fname->Get(histNameOrg)->Clone(histName);
      h2_trkGenResol[i] -> SetMarkerSize(0.4);

      myCan->Clear();
      h2_pupGenResol[i]->GetYaxis()->SetTitle("(met-gen)/gen");
      h2_pupGenResol[i]->Draw();
      sprintf(tmpName,OutDir+"/"+sampleName+"_metGenRes2d_%dj.png",i);
      //myCan->SaveAs(tmpName);
      
      // Making profile ======================
      sprintf(histName,"pr_pupGenResol_%d",i);
      //                                           name , first, last , option
      //pr_pupGenResol[i] = h2_pupGenResol[i]->ProfileX(histName);
      pr_pupGenResol[i] = h2_pupGenResol[i]->ProfileX(histName,1,-1,"s");

      sprintf(histName,"pr_trkGenResol_%d",i);
      pr_trkGenResol[i] = h2_trkGenResol[i]->ProfileX(histName,1,-1,"s");
      sprintf(histName,"pr_pfGenResol_%d",i);
      pr_pfGenResol[i] = h2_pfGenResol[i]->ProfileX(histName,1,-1,"s");

      //pr_trkGenResol[i]->GetXaxis()->SetTitle("genMet");
      //pr_trkGenResol[i]->GetYaxis()->SetTitle("trkmet");
      //pr_trkGenResol[i]->SetTitle("");

      //Leg_met->Draw();
      //sprintf(tmpName,OutDir+"/"+sampleName+"_trkGenResol_%djet.png",i);
      //myCan->SaveAs(tmpName);

      //Each Profiles and 2D

      //pr_pfGenResol[i]->GetXaxis()->SetTitle("genMet");
      //pr_pfGenResol[i]->GetYaxis()->SetTitle("pfmet");
      //pr_pfGenResol[i]->SetTitle("");

      //Leg_met->SetHeader(LgdTitle[i]+" "+sampleName);

      //pr_pfGenResol[i]->Draw();
      //h2_pfGenResol[i]->Draw("same");
      //pr_pfGenResol[i]->Draw("E1same");
      //Leg_met->Draw();
      //sprintf(tmpName,OutDir+"/"+sampleName+"_pfGenResol_%djet.png",i);
      //myCan->SaveAs(tmpName);
      //
      //
      //
      pr_pupGenResol[i]->GetXaxis()->SetTitle("genMet[GeV]");
      pr_pupGenResol[i]->GetYaxis()->SetTitle("(met-gen)/gen");
      pr_pupGenResol[i]->SetTitle("");
      pr_pupGenResol[i]->SetLineColor(kBlue);
      pr_pupGenResol[i]->SetMarkerColor(kBlue);
      pr_trkGenResol[i]->SetLineColor(kGreen);
      pr_trkGenResol[i]->SetMarkerColor(kGreen);
      pr_pfGenResol[i]->SetLineColor(kRed);
      pr_pfGenResol[i]->SetMarkerColor(kRed);

      pr_pupGenResol[i]->Draw("p");
      //pr_pupGenResol[i]->Draw("E1");
      pr_trkGenResol[i]->Draw("psame");
      pr_pfGenResol[i]->Draw("psame");

      TLegend *Leg_met =new TLegend(0.6,0.7,0.9,0.9); Leg_met->SetFillColor(0); Leg_met->SetBorderSize(0);
      Leg_met->SetHeader(sampleName);
      Leg_met->AddEntry(pr_pupGenResol[i],"pupMet","PL");
      Leg_met->AddEntry(pr_trkGenResol[i],"trkMet","PL");
      Leg_met->AddEntry(pr_pfGenResol[i],"pfMet","PL");
      myCan->SetLogy(0);
      Leg_met->Draw();
      TLine myLine(0,0,120,0);
      myLine.Draw();

      sprintf(tmpName,OutDir+"/"+sampleName+"_metGenResol_%djet.png",i);
      myCan->SaveAs(tmpName);

      // RMS Draw
      TH1D pupRMS("pupRMS","RMS",50,0,51);
      TH1D trkRMS("trkRMS","RMS",50,0,51);
      TH1D pfRMS ("pfRMS", "RMS" ,50,0,51);
      for ( int j(0);j<50; j++)
      {
	pupRMS.SetBinContent(j,pr_pupGenResol[i]->GetBinError(j));
	trkRMS.SetBinContent(j,pr_trkGenResol[i]->GetBinError(j));
	pfRMS.SetBinContent(j,pr_pfGenResol[i]->GetBinError(j));
      }
      pupRMS.GetXaxis()->SetTitle("genMet[GeV]");
      pupRMS.GetYaxis()->SetTitle("Resolution");
      pupRMS.SetLineColor(kBlue);
      trkRMS.SetLineColor(kGreen);
      pfRMS.SetLineColor(kRed);
      pupRMS.Draw();
      trkRMS.Draw("same");
      pfRMS.Draw("same");

      TLegend *Leg_RMS =new TLegend(0.6,0.7,0.9,0.9);
      Leg_RMS->SetFillColor(0);
      Leg_RMS->SetBorderSize(0);
      Leg_RMS->SetHeader(sampleName);
      Leg_RMS->AddEntry(&pupRMS,"pupMet","L");
      Leg_RMS->AddEntry(&trkRMS,"trkMet","L");
      Leg_RMS->AddEntry(& pfRMS,"pfMet" ,"L");
      Leg_RMS->Draw();
      sprintf(tmpName,OutDir+"/"+sampleName+"_metGenRMS_%djet.png",i);
      myCan->SaveAs(tmpName);

      //h2_pupGenResol[i]->SetMaximum(10);
      //h2_pupGenResol[i]->SetMinimum(-10);
      //h2_trkGenResol[i]->Draw("same");
      //h2_pfGenResol[i]->Draw("same");
  }
}