#include "fecalMap.h" void fecal(){ fEcalMap *map = new fEcalMap(); TCanvas *c1=new TCanvas("fEcal","fEcal",50,0,1200,1200); gStyle->SetOptStat(0); gStyle->SetOptTitle(1); gStyle->SetOptFit(0); FILE* f1=fopen("tower.txt","w"); FILE* f2=fopen("block.txt","w"); FILE* f3=fopen("feebd.txt","w"); fprintf(f1,"# TowerId ns row col x y Block r c Feebd r c PG\n"); fprintf(f2,"# BlockId ns row col x y Feebd r c PG\n"); fprintf(f3,"# FeebdId ns row col x y PG\n"); double rmax=81.16*2.54; TH2F* frame=new TH2F("fEcal","EPIC fEcal View from IR; -X (North <---> South); Y",1,-rmax,rmax,1,-rmax,rmax); frame->GetYaxis()->SetTitleOffset(1.3); frame->Draw(); int tid=0, bid=0, fid=0; for(int ns=0; nsmaxNS(); ns++){ for(int row=0; rowmaxRowTower(); row++){ for(int col=0; colmaxColTower(); col++){ if(map->doesTowerExist(ns,row,col)){ double x=map->xTower(ns,row,col); double y=map->yTower(ns,row,col); double d=map->towerSize()/2.0; int rowB=map->rowBlock(row); int colB=map->colBlock(col); int blockId=map->blockId(ns,rowB, colB); int rowF=map->rowFeebd(rowB); int colF=map->colFeebd(colB); int fid=map->feebdId(ns,rowF,colF); int pg=map->powerGroup(ns,rowB,colB); //printf("towerid=%4d ns=%1d row=%2d col=%2d x=%6.2f y=%6.2f\n",tid,ns,row,col,x,y); fprintf(f1,"%5d %1d %3d %3d %8.3f %8.3f %4d %2d %2d %4d %2d %2d %2d\n", tid,ns,row,col,x,y, blockId,rowB,colB,fid,rowF,colF, pg); TBox* b=new TBox(-x-d,y-d,-x+d,y+d); b->SetFillStyle(0); b->SetLineColor(kGray); b->SetLineWidth(1); b->Draw(); tid++; } } } for(int row=0; rowmaxRowBlock(); row++){ for(int col=0; colmaxColBlock(); col++){ if(map->doesBlockExist(ns,row,col)){ double x=map->xBlock(ns,row,col); double y=map->yBlock(ns,row,col); double d=map->blockSize()/2.0; int rowF=map->rowFeebd(row); int colF=map->colFeebd(col); int fid=map->feebdId(ns,rowF,colF); int pg=map->powerGroup(ns,row,col); int pgc=map->powerGroupColor(pg); //printf("blockid=%4d ns=%1d row=%2d col=%2d x=%6.2f y=%6.2f\n",bid,ns,row,col,x,y); fprintf(f2,"%4d %1d %3d %3d %2d %8.3f %8.3f %4d %2d %2d %2d\n", bid,ns,row,col,pg,x,y, fid,rowF,colF, pg); TBox* b=new TBox(-x-d,y-d,-x+d,y+d); b->SetFillStyle(1001); b->SetFillColorAlpha(pgc,0.3); b->SetLineColor(kBlack); b->SetLineWidth(1); b->Draw(); bid++; } } } for(int row=0; rowmaxRowFeebd(); row++){ for(int col=0; colmaxColFeebd(); col++){ if(map->doesFeebdExist(ns,row,col)){ double x=map->xFeebd(ns,row,col); double y=map->yFeebd(ns,row,col); double dx=map->feebdSizeX()/2.0; double dy=map->feebdSizeY()/2.0; int pg=map->powerGroup(ns,row,col*2); int pgc=map->powerGroupColor(pg); //printf("feebid=%4d ns=%1d row=%2d col=%2d PG=%2d x=%6.2f y=%6.2f\n",bid,ns,row,col/2,pg,x,y); fprintf(f3,"%4d %1d %2d %2d %8.3f %8.3f %2d\n",fid,ns,row,col,x,y,pg); TBox* b=new TBox(-x-dx,y-dy,-x+dx,y+dy); b->SetFillStyle(0);b->SetLineColor(kBlue); b->SetLineWidth(1); b->Draw(); fid++; } } } } TLine *l; l = new TLine(0,-rmax,0,rmax); l->SetLineColor(kRed); l->Draw(); l = new TLine(-rmax,0,rmax,0); l->SetLineColor(kRed); l->Draw(); TEllipse *e = new TEllipse(0,0,rmax); e->SetFillStyle(0); e->Draw(); c1->SaveAs("fecal.pdf"); c1->SaveAs("fecal.png"); fclose(f1); fclose(f2); fclose(f3); }