#include #include #include #include #include #include #include void Acceptance(Double_t *ar,Double_t *az,Double_t *r,Double_t *z,Int_t n){ // Finds the acceptance limits and fills the accepance array ar based // on the values in the array az. // Inputs: // Double_t *az Double_t z bounderies of acceptance lines/box [5] // Double_t *r Array of volume r values // Double_t *z Arrray of volume z values // Int_t n size of arrays r and z. // Output: // Double_t *ar Double array of corresponding acceptance // lines/box [5] // Return: // none. Double_t a,amax=-1.,amin=1.0E25; Int_t i; for(i=0;iamax) amax=a; if(aSetLineColor(4); // blue SPD_Services->SetLineStyle(1); // solid SPD_Services->SetLineWidth(1); // pixel SPD_Services->SetFillColor(SPD_Services->GetLineColor()); // Same as line SPD_Services->SetFillStyle(1001); // Solid a1 = TMath::Max(zmin,SPD_Service_z[3]); Double_t SPD_Service_acceptance_z[5] = {a1,zmax,zmax,a1,a1}; Double_t SPD_Service_acceptance_r[5]; Acceptance(SPD_Service_acceptance_r,SPD_Service_acceptance_z, SPD_Service_r,SPD_Service_z,5); TPolyLine *SPD_Services_acceptance=new TPolyLine(5, SPD_Service_acceptance_z,SPD_Service_acceptance_r); SPD_Services_acceptance->SetLineColor(SPD_Services->GetLineColor()); SPD_Services_acceptance->SetLineStyle(4); // dottetd SPD_Services_acceptance->SetLineWidth(1); // pixel SPD_Services_acceptance->SetFillColor(SPD_Services->GetLineColor()); SPD_Services_acceptance->SetFillStyle(0); // Hollow a1 = TMath::ATan(SPD_Service_acceptance_r[0]/SPD_Service_acceptance_z[0]); a1 *= 180.0/TMath::Pi(); str = "";str += Form("%4.2f",a1);a1 *= TMath::Pi()/180.; str += " #circ, #eta="; str+=Form("%4.2f",-TMath::Log(TMath::Tan(0.5*a1))); TLatex *SPD_acceptanceMax = new TLatex(SPD_Service_acceptance_z[0], SPD_Service_acceptance_r[0],str.Data()); SPD_acceptanceMax->SetTextAngle(a1*180./TMath::Pi()); SPD_acceptanceMax->SetTextSize(0.02); SPD_acceptanceMax->SetTextColor(SPD_Services_acceptance->GetLineColor()); //SPD_acceptanceMax->SetTextFont(13); // times-medium-r-normal a1 = TMath::ATan(SPD_Service_acceptance_r[3]/SPD_Service_acceptance_z[3]); a1 *= 180.0/TMath::Pi(); str = "";str += Form("%4.2f",a1);a1 *= TMath::Pi()/180.; str += " #circ, #eta="; str +=Form("%4.2f",-TMath::Log(TMath::Tan(.5*a1))); TLatex *SPD_acceptanceMin = new TLatex(SPD_Service_acceptance_z[3], SPD_Service_acceptance_r[3],str.Data()); SPD_acceptanceMin->SetTextAngle(a1*180./TMath::Pi()); SPD_acceptanceMin->SetTextSize(0.02); SPD_acceptanceMin->SetTextColor(SPD_Services_acceptance->GetLineColor()); //SPD_acceptanceMin->SetTextFont(13); // times-medium-r-normal // SDD cone Double_t SDD_Cone_z[13] = {38.65,40.15,40.15,55.75,55.75,57.25,57.25, 55.75,55.75,40.15,40.15,38.65,38.65}; Double_t SDD_Cone_r[13] = {10.75,10.75,12.46,27.00,27.00,27.00,28.50, 28.50,28.50,13.96,13.96,12.25,10.75}; TPolyLine *SDD_Cone = new TPolyLine(13,SDD_Cone_z,SDD_Cone_r,"F"); SDD_Cone->SetLineColor(4); // blue SDD_Cone->SetLineStyle(1); // solid SDD_Cone->SetLineWidth(1); // pixel SDD_Cone->SetFillColor(SDD_Cone->GetLineColor()); // Same as line SDD_Cone->SetFillStyle(1001); // Solid a1 = TMath::Max(zmin,SDD_Cone_z[1]); Double_t SDD_Cone_acceptance_z[5] = {a1,zmax,zmax,a1,a1}; Double_t SDD_Cone_acceptance_r[5]; Acceptance(SDD_Cone_acceptance_r,SDD_Cone_acceptance_z,SDD_Cone_r, SDD_Cone_z,13); TPolyLine *SDD_Cone_acceptance = new TPolyLine(5, SDD_Cone_acceptance_z,SDD_Cone_acceptance_r); SDD_Cone_acceptance->SetLineColor(SDD_Cone->GetLineColor()); SDD_Cone_acceptance->SetLineStyle(4); // dottetd SDD_Cone_acceptance->SetLineWidth(1); // pixel SDD_Cone_acceptance->SetFillColor(SDD_Cone->GetLineColor()); SDD_Cone_acceptance->SetFillStyle(0); // Hollow a1 = TMath::ATan(SDD_Cone_acceptance_r[0]/SDD_Cone_acceptance_z[0]); a1 *= 180.0/TMath::Pi(); str = "";str += Form("%4.2f",a1);a1 *= TMath::Pi()/180.; str += " #circ, #eta="; str +=Form("%4.2f",-TMath::Log(TMath::Tan(.5*a1))); TLatex *SDD_acceptanceMax = new TLatex(SDD_Cone_acceptance_z[0], SDD_Cone_acceptance_r[0],str.Data()); SDD_acceptanceMax->SetTextAngle(a1*180./TMath::Pi()); SDD_acceptanceMax->SetTextSize(0.02); SDD_acceptanceMax->SetTextColor(SDD_Cone_acceptance->GetLineColor()); //SDD_acceptanceMax->SetTextFont(13); // times-medium-r-normal a1 = TMath::ATan(SDD_Cone_acceptance_r[3]/SDD_Cone_acceptance_z[3]); a1 *= 180.0/TMath::Pi(); str = "";str += Form("%4.2f",a1);a1 *= TMath::Pi()/180.; str += " #circ, #eta="; str +=Form("%4.2f",-TMath::Log(TMath::Tan(.5*a1))); TLatex *SDD_acceptanceMin = new TLatex(SDD_Cone_acceptance_z[3], SDD_Cone_acceptance_r[3],str.Data()); SDD_acceptanceMin->SetTextAngle(a1*180./TMath::Pi()); SDD_acceptanceMin->SetTextSize(0.02); SDD_acceptanceMin->SetTextColor(SDD_Cone_acceptance->GetLineColor()); //SDD_acceptanceMin->SetTextFont(13); // times-medium-r-normal a1 = (SDD_Cone_r[3]-SDD_Cone_r[2])/(SDD_Cone_z[3]-SDD_Cone_z[2]); a2 = (SDD_Cone_r[8]-SDD_Cone_r[9])/(SDD_Cone_z[3]-SDD_Cone_z[2]); b1 = SDD_Cone_r[3] - a1*SDD_Cone_z[3]; // inside cone axis intersept b2 = SDD_Cone_r[8] - a2*SDD_Cone_z[3]; // outside cone axis intersept Double_t SDD_Cone_hole1_z[5]; Double_t SDD_Cone_hole1_r[5]; SDD_Cone_hole1_r[0]=14.00;SDD_Cone_hole1_z[0]=(SDD_Cone_hole1_r[0]-b2)/a2; SDD_Cone_hole1_r[1]=14.00;SDD_Cone_hole1_z[1]=(SDD_Cone_hole1_r[1]-b1)/a1; SDD_Cone_hole1_r[2]=18.75;SDD_Cone_hole1_z[2]=(SDD_Cone_hole1_r[2]-b1)/a1; SDD_Cone_hole1_r[3]=18.75;SDD_Cone_hole1_z[3]=(SDD_Cone_hole1_r[3]-b2)/a2; SDD_Cone_hole1_r[4]=14.00;SDD_Cone_hole1_z[4]=SDD_Cone_hole1_z[0]; TPolyLine *SDD_Cone_hole1 = new TPolyLine(5,SDD_Cone_hole1_z, SDD_Cone_hole1_r,"F"); SDD_Cone_hole1->SetLineColor(7); // light blue SDD_Cone_hole1->SetLineStyle(1); // solid SDD_Cone_hole1->SetLineWidth(1); // pixel SDD_Cone_hole1->SetFillColor(SDD_Cone_hole1->GetLineColor()); SDD_Cone_hole1->SetFillStyle(1001); // Solid Double_t SDD_Cone_hole2_z[5]; Double_t SDD_Cone_hole2_r[5]; SDD_Cone_hole2_r[0]=23.40;SDD_Cone_hole2_z[0]=(SDD_Cone_hole2_r[0]-b2)/a2; SDD_Cone_hole2_r[1]=23.40;SDD_Cone_hole2_z[1]=(SDD_Cone_hole2_r[1]-b1)/a1; SDD_Cone_hole2_r[2]=26.40;SDD_Cone_hole2_z[2]=(SDD_Cone_hole2_r[2]-b1)/a1; SDD_Cone_hole2_r[3]=26.40;SDD_Cone_hole2_z[3]=(SDD_Cone_hole2_r[3]-b2)/a2; SDD_Cone_hole2_r[4]=23.40;SDD_Cone_hole2_z[4]=SDD_Cone_hole2_z[0]; TPolyLine *SDD_Cone_hole2 = new TPolyLine(5,SDD_Cone_hole2_z, SDD_Cone_hole2_r,"F"); SDD_Cone_hole2->SetLineColor(7); // light blue SDD_Cone_hole2->SetLineStyle(1); // solid SDD_Cone_hole2->SetLineWidth(1); // pixel SDD_Cone_hole2->SetFillColor(SDD_Cone_hole2->GetLineColor()); SDD_Cone_hole2->SetFillStyle(1001); // Solid // SSD Cone Double_t SSD_Cone_z[13] = {74.0000,72.0000,71.2819,57.2500,57.2500, 55.7500,55.7500,57.2500,57.2500,71.2819, 72.0000,74.0000,74.0000}; Double_t SSD_Cone_r[13] = {47.4700,47.7500,46.7500,32.9681,30.0000, 30.0000,32.2500,34.7500,34.7500,49.0319, 49.2500,49.2500,47.7500}; TPolyLine *SSD_Cone = new TPolyLine(13,SSD_Cone_z,SSD_Cone_r,"F"); SSD_Cone->SetLineColor(4); // blue SSD_Cone->SetLineStyle(1); // solid SSD_Cone->SetLineWidth(1); // pixel SSD_Cone->SetFillColor(SSD_Cone->GetLineColor()); // Same as line SSD_Cone->SetFillStyle(1001); // Solid a1 = TMath::Max(zmin,SSD_Cone_z[4]); Double_t SSD_Cone_acceptance_z[5] = {a1,zmax,zmax,a1,a1}; Double_t SSD_Cone_acceptance_r[5]; Acceptance(SSD_Cone_acceptance_r,SSD_Cone_acceptance_z,SSD_Cone_r, SSD_Cone_z,13); TPolyLine *SSD_Cone_acceptance = new TPolyLine(5,SSD_Cone_acceptance_z, SSD_Cone_acceptance_r); SSD_Cone_acceptance->SetLineColor(SSD_Cone->GetLineColor()); SSD_Cone_acceptance->SetLineStyle(4); // dottetd SSD_Cone_acceptance->SetLineWidth(1); // pixel SSD_Cone_acceptance->SetFillColor(SSD_Cone->GetLineColor());//Same as line SSD_Cone_acceptance->SetFillStyle(0); // Hollow a1 = TMath::ATan(SSD_Cone_acceptance_r[0]/SSD_Cone_acceptance_z[0]); a1 *= 180.0/TMath::Pi(); str = "";str += Form("%4.2f",a1);a1 *= TMath::Pi()/180.; str += " #circ, #eta="; str +=Form("%4.2f",-TMath::Log(TMath::Tan(.5*a1))); TLatex *SSD_acceptanceMax = new TLatex(SSD_Cone_acceptance_z[0], SSD_Cone_acceptance_r[0],str.Data()); SSD_acceptanceMax->SetTextAngle(a1*180./TMath::Pi()); SSD_acceptanceMax->SetTextSize(0.02); SSD_acceptanceMax->SetTextColor(SSD_Cone_acceptance->GetLineColor()); //SSD_acceptanceMax->SetTextFont(13); // times-medium-r-normal a1 = TMath::ATan(SSD_Cone_acceptance_r[3]/SSD_Cone_acceptance_z[3]); a1 *= 180.0/TMath::Pi(); str = "";str += Form("%4.2f",a1);a1 *= TMath::Pi()/180.; str += " #circ, #eta="; str +=Form("%4.2f",-TMath::Log(TMath::Tan(.5*a1))); TLatex *SSD_acceptanceMin = new TLatex(SSD_Cone_acceptance_z[3], SSD_Cone_acceptance_r[3],str.Data()); SSD_acceptanceMin->SetTextAngle(a1*180./TMath::Pi()); SSD_acceptanceMin->SetTextSize(0.02); SSD_acceptanceMin->SetTextColor(SSD_Cone_acceptance->GetLineColor()); //SSD_acceptanceMin->SetTextFont(13); // times-medium-r-normal a1 = (SSD_Cone_r[2]-SSD_Cone_r[3])/(SSD_Cone_z[2]-SSD_Cone_z[3]); a2 = (SSD_Cone_r[9]-SSD_Cone_r[8])/(SSD_Cone_z[2]-SSD_Cone_z[3]); b1 = SSD_Cone_r[2] - a1*SSD_Cone_z[2]; // inside cone axis intersept b2 = SSD_Cone_r[9] - a2*SSD_Cone_z[2]; // outside cone axis intersept Double_t SSD_Cone_hole_z[5]; Double_t SSD_Cone_hole_r[5]; SSD_Cone_hole_r[0]=37.00;SSD_Cone_hole_z[0]=(SSD_Cone_hole_r[0]-b2)/a2; SSD_Cone_hole_r[1]=37.00;SSD_Cone_hole_z[1]=(SSD_Cone_hole_r[1]-b1)/a1; SSD_Cone_hole_r[2]=45.50;SSD_Cone_hole_z[2]=(SSD_Cone_hole_r[2]-b1)/a1; SSD_Cone_hole_r[3]=45.50;SSD_Cone_hole_z[3]=(SSD_Cone_hole_r[3]-b2)/a2; SSD_Cone_hole_r[4]=37.00;SSD_Cone_hole_z[4]=SSD_Cone_hole_z[0]; TPolyLine *SSD_Cone_hole = new TPolyLine(5,SSD_Cone_hole_z, SSD_Cone_hole_r,"F"); SSD_Cone_hole->SetLineColor(7); // Light Blue SSD_Cone_hole->SetLineStyle(1); // solid SSD_Cone_hole->SetLineWidth(1); // pixel SSD_Cone_hole->SetFillColor(SSD_Cone_hole->GetLineColor());//Same as line SSD_Cone_hole->SetFillStyle(1001); // Solid // SSD2 Cables Double_t SSD2_th = 0.26; Double_t SSD2_Cable_z[8], SSD2_Cable_r[8]; SSD2_Cable_r[0] = 43.6+SSD2_th; SSD2_Cable_z[0] = ZfromLine(SSD_Cone_z[2],SSD_Cone_r[2], SSD_Cone_z[3],SSD_Cone_r[3],SSD2_Cable_r[0]); SSD2_Cable_z[1] = SSD_Cone_z[0]; SSD2_Cable_r[1] = SSD_Cone_r[0]; SSD2_Cable_z[2] = SSD_Cone_z[11]; SSD2_Cable_r[2] = SSD_Cone_r[11]; SSD2_Cable_z[3] = SSD2_Cable_z[2]+SSD2_th; SSD2_Cable_r[3] = SSD2_Cable_r[2]; SSD2_Cable_z[4] = SSD2_Cable_z[3]; SSD2_Cable_r[4] = RfromLine(SSD2_Cable_z[0],SSD2_Cable_r[0], SSD2_Cable_z[1],SSD2_Cable_r[1], SSD2_Cable_z[4],-SSD2_th); SSD2_Cable_r[5] = 43.6; SSD2_Cable_z[5] = ZfromLine(SSD2_Cable_z[0],SSD2_Cable_r[0], SSD2_Cable_z[1],SSD2_Cable_r[1], SSD2_Cable_r[5],-SSD2_th); SSD2_Cable_r[6] = SSD2_Cable_r[5]; SSD2_Cable_z[6] = ZfromLine(SSD_Cone_z[2],SSD_Cone_r[2], SSD_Cone_z[3],SSD_Cone_r[3],SSD2_Cable_r[6]); SSD2_Cable_z[7] = SSD2_Cable_z[0]; SSD2_Cable_r[7] = SSD2_Cable_r[0]; TPolyLine *SSD2_Cable = new TPolyLine(8,SSD2_Cable_z,SSD2_Cable_r,"F"); SSD2_Cable->SetLineColor(45); SSD2_Cable->SetLineStyle(1); SSD2_Cable->SetLineWidth(1); SSD2_Cable->SetFillColor(SSD2_Cable->GetLineColor()); // SSD1 Cables Double_t SSD1_th = 0.26; Double_t SSD1_Cable_z[8], SSD1_Cable_r[8]; SSD1_Cable_r[0] = 38.0+SSD1_th; SSD1_Cable_z[0] = ZfromLine(SSD_Cone_z[2],SSD_Cone_r[2], SSD_Cone_z[3],SSD_Cone_r[3],SSD1_Cable_r[0]); SSD1_Cable_z[1] = SSD2_Cable_z[4]; SSD1_Cable_r[1] = SSD2_Cable_r[4]; SSD1_Cable_z[2] = SSD2_Cable_z[3]; SSD1_Cable_r[2] = SSD2_Cable_r[3]; SSD1_Cable_z[3] = SSD1_Cable_z[2]+SSD1_th; SSD1_Cable_r[3] = SSD1_Cable_r[2]; SSD1_Cable_z[4] = SSD1_Cable_z[3]; SSD1_Cable_r[4] = RfromLine(SSD1_Cable_z[0],SSD1_Cable_r[0], SSD1_Cable_z[1],SSD1_Cable_r[1], SSD1_Cable_z[4],-SSD1_th); SSD1_Cable_r[5] = 38.0; SSD1_Cable_z[5] = ZfromLine(SSD1_Cable_z[0],SSD1_Cable_r[0], SSD1_Cable_z[1],SSD1_Cable_r[1], SSD1_Cable_r[5],-SSD1_th); SSD1_Cable_r[6] = SSD1_Cable_r[5]; SSD1_Cable_z[6] = ZfromLine(SSD_Cone_z[2],SSD_Cone_r[2], SSD_Cone_z[3],SSD_Cone_r[3],SSD1_Cable_r[6]); SSD1_Cable_z[7] = SSD1_Cable_z[0]; SSD1_Cable_r[7] = SSD1_Cable_r[0]; TPolyLine *SSD1_Cable = new TPolyLine(8,SSD1_Cable_z,SSD1_Cable_r,"F"); SSD1_Cable->SetLineColor(45); SSD1_Cable->SetLineStyle(1); SSD1_Cable->SetLineWidth(1); SSD1_Cable->SetFillColor(SSD1_Cable->GetLineColor()); // SDD2 Cables Double_t SDD2_th = 0.26; Double_t SDD2_Cable_z[10], SDD2_Cable_r[10]; SDD2_Cable_r[0] = 24.0+SDD2_th; SDD2_Cable_z[0] = ZfromLine(SDD_Cone_z[2],SDD_Cone_r[2], SDD_Cone_z[3],SDD_Cone_r[3],SDD2_Cable_r[0]); SDD2_Cable_r[1] = SDD_Cone_r[5]; SDD2_Cable_z[1] = SDD_Cone_z[5]; SDD2_Cable_r[2] = SSD1_Cable_r[4]; SDD2_Cable_z[2] = SSD1_Cable_z[4]; SDD2_Cable_r[3] = SSD1_Cable_r[3]; SDD2_Cable_z[3] = SSD1_Cable_z[3]; SDD2_Cable_r[4] = SDD2_Cable_r[3]; SDD2_Cable_z[4] = SDD2_Cable_z[3]+SDD2_th; SDD2_Cable_z[5] = SDD2_Cable_z[4]; SDD2_Cable_r[5] = RfromLine(SDD2_Cable_z[1],SDD2_Cable_r[1], SDD2_Cable_z[2],SDD2_Cable_r[2], SDD2_Cable_z[5],-SDD2_th); SDD2_Cable_z[6] = ZfromIntersection2lines(SDD2_Cable_z[0],SDD2_Cable_r[0], SDD2_Cable_z[1],SDD2_Cable_r[1], SDD2_Cable_z[1],SDD2_Cable_r[1], SDD2_Cable_z[2],SDD2_Cable_r[2], -SDD2_th); SDD2_Cable_r[6] = RfromLine(SDD2_Cable_z[0],SDD2_Cable_r[0], SDD2_Cable_z[1],SDD2_Cable_r[1], SDD2_Cable_z[6],-SDD2_th); SDD2_Cable_r[8] = 24.0; SDD2_Cable_z[7] = ZfromLine(SDD2_Cable_z[0],SDD2_Cable_r[0], SDD2_Cable_z[1],SDD2_Cable_r[1], SDD2_Cable_r[8],-SDD2_th); SDD2_Cable_r[7] = RfromLine(SDD2_Cable_z[0],SDD2_Cable_r[0], SDD2_Cable_z[1],SDD2_Cable_r[1], SDD2_Cable_z[7],-SDD2_th); SDD2_Cable_z[8] = ZfromLine(SDD_Cone_z[2],SDD_Cone_r[2], SDD_Cone_z[3],SDD_Cone_r[3],SDD2_Cable_r[7]); SDD2_Cable_r[9] = SDD2_Cable_r[0]; SDD2_Cable_z[9] = SDD2_Cable_z[0]; TPolyLine *SDD2_Cable = new TPolyLine(10,SDD2_Cable_z,SDD2_Cable_r,"F"); SDD2_Cable->SetLineColor(45); SDD2_Cable->SetLineStyle(1); SDD2_Cable->SetLineWidth(1); SDD2_Cable->SetFillColor(SDD2_Cable->GetLineColor()); // SDD1 Cables Double_t SDD1_th = 0.26; Double_t SDD1_Cable_z[10], SDD1_Cable_r[10]; SDD1_Cable_r[0] = 15.0+SDD1_th; SDD1_Cable_z[0] = ZfromLine(SDD_Cone_z[2],SDD_Cone_r[2], SDD_Cone_z[3],SDD_Cone_r[3],SDD1_Cable_r[0]); SDD1_Cable_r[1] = SDD2_Cable_r[6]; SDD1_Cable_z[1] = SDD2_Cable_z[6]; SDD1_Cable_r[2] = SDD2_Cable_r[5]; SDD1_Cable_z[2] = SDD2_Cable_z[5]; SDD1_Cable_r[3] = SDD2_Cable_r[4]; SDD1_Cable_z[3] = SDD2_Cable_z[4]; SDD1_Cable_r[4] = SDD1_Cable_r[3]; SDD1_Cable_z[4] = SDD1_Cable_z[3]+SDD1_th; SDD1_Cable_z[5] = SDD1_Cable_z[4]; SDD1_Cable_r[5] = RfromLine(SDD1_Cable_z[1],SDD1_Cable_r[1], SDD1_Cable_z[2],SDD1_Cable_r[2], SDD1_Cable_z[5],-SDD1_th); SDD1_Cable_z[6] = ZfromIntersection2lines(SDD1_Cable_z[0],SDD1_Cable_r[0], SDD1_Cable_z[1],SDD1_Cable_r[1], SDD1_Cable_z[1],SDD1_Cable_r[1], SDD1_Cable_z[2],SDD1_Cable_r[2], -SDD1_th); SDD1_Cable_r[6] = RfromLine(SDD1_Cable_z[0],SDD1_Cable_r[0], SDD1_Cable_z[1],SDD1_Cable_r[1], SDD1_Cable_z[6],-SDD1_th); SDD1_Cable_r[8] = 15.0; SDD1_Cable_z[7] = ZfromLine(SDD1_Cable_z[0],SDD1_Cable_r[0], SDD1_Cable_z[1],SDD1_Cable_r[1], SDD1_Cable_r[8],-SDD1_th); SDD1_Cable_r[7] = RfromLine(SDD1_Cable_z[0],SDD1_Cable_r[0], SDD1_Cable_z[1],SDD1_Cable_r[1], SDD1_Cable_z[7],-SDD1_th); SDD1_Cable_z[8] = ZfromLine(SDD_Cone_z[2],SDD_Cone_r[2], SDD_Cone_z[3],SDD_Cone_r[3],SDD1_Cable_r[7]); SDD1_Cable_r[9] = SDD1_Cable_r[0]; SDD1_Cable_z[9] = SDD1_Cable_z[0]; TPolyLine *SDD1_Cable = new TPolyLine(10,SDD1_Cable_z,SDD1_Cable_r,"F"); SDD1_Cable->SetLineColor(45); SDD1_Cable->SetLineStyle(1); SDD1_Cable->SetLineWidth(1); SDD1_Cable->SetFillColor(SDD1_Cable->GetLineColor()); // SPD2 Cables Double_t SPD2_th = 0.26; Double_t SPD2_Cable_z[11],SPD2_Cable_r[11]; SPD2_Cable_z[0] = SPD_Service_z[2]; SPD2_Cable_r[0] = SPD_Service_r[2]; SPD2_Cable_z[1] = SDD_Cone_z[1]; SPD2_Cable_r[1] = SDD_Cone_r[1]; a2 = TMath::ATan((SPD2_Cable_r[0]-SPD2_Cable_r[1])/ (SPD2_Cable_z[0]-SPD2_Cable_z[1])); l = TMath::Hypot((SPD2_Cable_z[0]-SPD2_Cable_z[1]), (SPD2_Cable_r[0]-SPD2_Cable_r[1])); SPD2_Cable_z[2] = SDD1_Cable_z[6]; SPD2_Cable_r[2] = SDD1_Cable_r[6]; SPD2_Cable_z[3] = SDD1_Cable_z[5]; SPD2_Cable_r[3] = SDD1_Cable_r[5]; SPD2_Cable_z[4] = SDD1_Cable_z[4]; SPD2_Cable_r[4] = SDD1_Cable_r[4]; SPD2_Cable_z[5] = SPD2_Cable_z[4]+SPD2_th; SPD2_Cable_r[5] = SPD2_Cable_r[4]; SPD2_Cable_z[6] = SPD2_Cable_z[5]; SPD2_Cable_r[6] = RfromLine(SPD2_Cable_z[2],SPD2_Cable_r[2], SPD2_Cable_z[3],SPD2_Cable_r[3], SPD2_Cable_z[6],-SPD2_th); SPD2_Cable_z[7] = ZfromIntersection2lines(SPD2_Cable_z[1],SPD2_Cable_r[1], SPD2_Cable_z[2],SPD2_Cable_r[2], SPD2_Cable_z[2],SPD2_Cable_r[2], SPD2_Cable_z[3],SPD2_Cable_r[3], -SPD2_th); SPD2_Cable_r[7] = RfromLine(SPD2_Cable_z[2],SPD2_Cable_r[2], SPD2_Cable_z[3],SPD2_Cable_r[3], SPD2_Cable_z[7],-SPD2_th); SPD2_Cable_z[8] = ZfromIntersection2lines(SPD2_Cable_z[0],SPD2_Cable_r[0], SPD2_Cable_z[1],SPD2_Cable_r[1], SPD2_Cable_z[1],SPD2_Cable_r[1], SPD2_Cable_z[2],SPD2_Cable_r[2], -SPD2_th); SPD2_Cable_r[8] = RfromLine(SPD2_Cable_z[1],SPD2_Cable_r[1], SPD2_Cable_z[2],SPD2_Cable_r[2], SPD2_Cable_z[8],-SPD2_th); SPD2_Cable_z[9] = SPD2_Cable_z[0]; SPD2_Cable_r[9] = SPD2_Cable_r[0] - SPD2_th/TMath::Cos(a2); SPD2_Cable_z[10] = SPD2_Cable_z[0]; SPD2_Cable_r[10] = SPD2_Cable_r[0]; l += TMath::Hypot((SPD2_Cable_z[8]-SPD2_Cable_z[9]), (SPD2_Cable_r[8]-SPD2_Cable_r[9])); l *= 0.5; TPolyLine *SPD2_Cable = new TPolyLine(11,SPD2_Cable_z,SPD2_Cable_r,"F"); SPD2_Cable->SetLineColor(45); SPD2_Cable->SetLineStyle(1); SPD2_Cable->SetLineWidth(1); SPD2_Cable->SetFillColor(SPD2_Cable->GetLineColor()); printf("Length of 2spd cable between spd and sdd=%f [cm]\n",l); // SPD1 Cables Double_t SPD1_th = 0.26; Double_t SPD1_Cable_z[11],SPD1_Cable_r[11]; SPD1_Cable_z[0] = SPD_Service_z[3]; SPD1_Cable_r[0] = SPD_Service_r[3] + SPD1_th; // Approximate value. SPD1_Cable_z[1] = SPD2_Cable_z[8]; SPD1_Cable_r[1] = SPD2_Cable_r[8]; SPD1_Cable_z[2] = SPD2_Cable_z[7]; SPD1_Cable_r[2] = SPD2_Cable_r[7]; SPD1_Cable_z[3] = SPD2_Cable_z[6]; SPD1_Cable_r[3] = SPD2_Cable_r[6]; SPD1_Cable_z[4] = SPD2_Cable_z[5]; SPD1_Cable_r[4] = SPD2_Cable_r[5]; SPD1_Cable_z[5] = SPD1_Cable_z[4] + SPD1_th; SPD1_Cable_r[5] = SPD1_Cable_r[4]; SPD1_Cable_z[6] = SPD1_Cable_z[5]; SPD1_Cable_r[6] = RfromLine(SPD1_Cable_z[2],SPD1_Cable_r[2], SPD1_Cable_z[3],SPD1_Cable_r[3], SPD1_Cable_z[6],-SPD1_th); SPD1_Cable_z[7] = ZfromIntersection2lines(SPD1_Cable_z[1],SPD1_Cable_r[1], SPD1_Cable_z[2],SPD1_Cable_r[2], SPD1_Cable_z[2],SPD1_Cable_r[2], SPD1_Cable_z[3],SPD1_Cable_r[3], -SPD1_th); SPD1_Cable_r[7] = RfromLine(SPD1_Cable_z[2],SPD1_Cable_r[2], SPD1_Cable_z[3],SPD1_Cable_r[3], SPD1_Cable_z[7],-SPD1_th); SPD1_Cable_z[8] = ZfromIntersection2lines(SPD1_Cable_z[0],SPD1_Cable_r[0], SPD1_Cable_z[1],SPD1_Cable_r[1], SPD1_Cable_z[1],SPD1_Cable_r[1], SPD1_Cable_z[2],SPD1_Cable_r[2], -SPD1_th); SPD1_Cable_r[8] = RfromLine(SPD1_Cable_z[1],SPD1_Cable_r[1], SPD1_Cable_z[2],SPD1_Cable_r[2], SPD1_Cable_z[8],-SPD1_th); SPD1_Cable_z[9] = SPD_Service_z[3]; SPD1_Cable_r[9] = SPD_Service_r[3]; a1 = TMath::ATan((SPD1_Cable_r[9]-SPD1_Cable_r[8])/ (SPD1_Cable_z[9]-SPD1_Cable_r[8])); l = TMath::Hypot((SPD1_Cable_z[9]-SPD1_Cable_z[8]), (SPD1_Cable_r[9]-SPD1_Cable_r[8])); SPD1_Cable_r[0] = SPD_Service_r[3] + SPD1_th/TMath::Cos(a1); SPD1_Cable_z[10] = SPD1_Cable_z[0]; SPD1_Cable_r[10] = SPD1_Cable_r[0]; l += TMath::Hypot((SPD1_Cable_z[0]-SPD1_Cable_z[1]), (SPD1_Cable_r[0]-SPD1_Cable_r[1])); l *= 0.5; TPolyLine *SPD1_Cable = new TPolyLine(11,SPD1_Cable_z,SPD1_Cable_r,"F"); SPD1_Cable->SetLineColor(45); SPD1_Cable->SetLineStyle(1); SPD1_Cable->SetLineWidth(1); SPD1_Cable->SetFillColor(SPD1_Cable->GetLineColor()); printf("Length of 1spd cable between spd and sdd=%f [cm]\n",l); //================================================================== // PMD Double_t PMD_etamin=3.7,PMD_etamax=2.3,PMD_etatop=2.2; // Double_t PMD_z[] = {}; // Double_t PMD_r[] = {}; //TPolyLine *PMD = new TPolyline(2,PMD_z,PMD_r); //PMD->SetLineColor(PMD->GetLineColor()); // Same as object //PMD->SetLineStyle(4); // dottetd //PMD->SetLineWidth(1); // pixel //PMD->SetFillColor(PMD->GetLineColor()); // Same as line //PMD->SetFillStyle(0); // Hollow Double_t PMD_acceptance_z[5] = {zmin,zmax,zmax,zmin,zmin}; Double_t PMD_acceptance_r[5]; PMD_acceptance_r[0] = RfromeEta(PMD_etamin,PMD_acceptance_z[0]); PMD_acceptance_r[1] = RfromeEta(PMD_etamin,PMD_acceptance_z[1]); PMD_acceptance_r[2] = RfromeEta(PMD_etamax,PMD_acceptance_z[2]); PMD_acceptance_r[3] = RfromeEta(PMD_etamax,PMD_acceptance_z[3]); PMD_acceptance_r[4] = PMD_acceptance_r[0]; TPolyLine *PMD_acceptance = new TPolyLine(5,PMD_acceptance_z, PMD_acceptance_r); PMD_acceptance->SetLineColor(3); // Green PMD_acceptance->SetLineStyle(4); // dottetd PMD_acceptance->SetLineWidth(1); // pixel PMD_acceptance->SetFillColor(PMD_acceptance->GetLineColor()); PMD_acceptance->SetFillStyle(0); // Hollow a1 = TMath::ATan(PMD_acceptance_r[0]/PMD_acceptance_z[0]); a1 *= 180.0/TMath::Pi(); str = "PMD ";str += Form("%4.2f",a1);a1 *= TMath::Pi()/180.; str += " #circ, #eta="; str +=Form("%4.2f",-TMath::Log(TMath::Tan(.5*a1))); TLatex *TPMD_acceptanceMax = new TLatex(PMD_acceptance_z[0], PMD_acceptance_r[0],str.Data()); TPMD_acceptanceMax->SetTextAngle(a1*180./TMath::Pi()); TPMD_acceptanceMax->SetTextSize(0.02); TPMD_acceptanceMax->SetTextAlign(11); TPMD_acceptanceMax->SetTextColor(PMD_acceptance->GetLineColor()); //TPMD_acceptanceMax->SetTextFont(13); // times-medium-r-normal a2 = PMD_acceptance_r[3]/PMD_acceptance_z[3]; a1 = TMath::ATan(a2); a1 *= 180.0/TMath::Pi(); str = "PMD ";str += Form("%4.2f",a1);a1 *= TMath::Pi()/180.; str += " #circ, #eta="; str +=Form("%4.2f",-TMath::Log(TMath::Tan(.5*a1))); TLatex *TPMD_acceptanceMin = new TLatex(PMD_acceptance_z[3]+10., PMD_acceptance_r[3]+a2*10.,str.Data()); TPMD_acceptanceMin->SetTextAngle(a1*180./TMath::Pi()); TPMD_acceptanceMin->SetTextSize(0.02); TPMD_acceptanceMin->SetTextAlign(13); TPMD_acceptanceMin->SetTextColor(PMD_acceptance->GetLineColor()); //TPMD_acceptanceMin->SetTextFont(13); // times-medium-r-normal Double_t PMD_acceptanceMax_r[5]; PMD_acceptanceMax_r[0] = RfromeEta(PMD_etamax,PMD_acceptance_z[0]); PMD_acceptanceMax_r[1] = RfromeEta(PMD_etamax,PMD_acceptance_z[1]); PMD_acceptanceMax_r[2] = RfromeEta(PMD_etatop,PMD_acceptance_z[2]); PMD_acceptanceMax_r[3] = RfromeEta(PMD_etatop,PMD_acceptance_z[3]); PMD_acceptanceMax_r[4] = PMD_acceptanceMax_r[0]; TPolyLine *PMD_acceptanceMax = new TPolyLine(5,PMD_acceptance_z, PMD_acceptanceMax_r); PMD_acceptanceMax->SetLineColor(PMD_acceptance->GetLineColor()); PMD_acceptanceMax->SetLineStyle(4); // dottetd PMD_acceptanceMax->SetLineWidth(1); // pixel PMD_acceptanceMax->SetFillColor(PMD_acceptance->GetLineColor()); PMD_acceptanceMax->SetFillStyle(0); // Hollow // FMD Si 1 Inner Double_t FMD_Si1I_z[2] = {62.8,62.8}; Double_t FMD_Si1I_r[2] = {4.2,17.2}; TPolyLine *FMD_Si1I = new TPolyLine(2,FMD_Si1I_z,FMD_Si1I_r); FMD_Si1I->SetLineColor(6); // purple FMD_Si1I->SetLineStyle(1); // Solid FMD_Si1I->SetLineWidth(5); // 5 pixels wide a2 = TMath::Min(zmax,FMD_Si1I_z[0]); Double_t FMD_Si1I_acceptance_z[5] = {zmin,a2,a2,zmin,zmin}; Double_t FMD_Si1I_acceptance_r[5]; Acceptance(FMD_Si1I_acceptance_r,FMD_Si1I_acceptance_z,FMD_Si1I_r, FMD_Si1I_z,2); TPolyLine *FMD_Si1I_acceptance = new TPolyLine(5,FMD_Si1I_acceptance_z, FMD_Si1I_acceptance_r); FMD_Si1I_acceptance->SetLineColor(FMD_Si1I->GetLineColor()); FMD_Si1I_acceptance->SetLineStyle(4); // dottetd FMD_Si1I_acceptance->SetLineWidth(1); // pixel FMD_Si1I_acceptance->SetFillColor(FMD_Si1I->GetLineColor()); FMD_Si1I_acceptance->SetFillStyle(0); // Hollow a1 = TMath::ATan(FMD_Si1I_acceptance_r[1]/FMD_Si1I_acceptance_z[1]); a1 *= 180.0/TMath::Pi(); str = "FMD Si1 Inner ";str += Form("%4.2f",a1);a1 *= TMath::Pi()/180.; str += " #circ, #eta="; str +=Form("%4.2f",-TMath::Log(TMath::Tan(.5*a1))); TLatex *TFMD_Si1I_acceptanceMax = new TLatex(FMD_Si1I_acceptance_z[1], FMD_Si1I_acceptance_r[1],str.Data()); TFMD_Si1I_acceptanceMax->SetTextAngle(a1*180./TMath::Pi()); TFMD_Si1I_acceptanceMax->SetTextSize(0.02); TFMD_Si1I_acceptanceMax->SetTextAlign(31); TFMD_Si1I_acceptanceMax->SetTextColor(FMD_Si1I_acceptance-> GetLineColor()); //TFMD_Si1I_acceptanceMax->SetTextFont(13); // times-medium-r-normal a1 = TMath::ATan(FMD_Si1I_acceptance_r[2]/FMD_Si1I_acceptance_z[2]); a1 *= 180.0/TMath::Pi(); str = "FMD Si1 Inner ";str += Form("%4.2f",a1);a1 *= TMath::Pi()/180.; str += " #circ, #eta="; str +=Form("%4.2f",-TMath::Log(TMath::Tan(.5*a1))); TLatex *TFMD_Si1I_acceptanceMin = new TLatex(FMD_Si1I_acceptance_z[2], FMD_Si1I_acceptance_r[2],str.Data()); TFMD_Si1I_acceptanceMin->SetTextAngle(a1*180./TMath::Pi()); TFMD_Si1I_acceptanceMin->SetTextSize(0.02); TFMD_Si1I_acceptanceMin->SetTextAlign(33); TFMD_Si1I_acceptanceMin->SetTextColor(FMD_Si1I_acceptance-> GetLineColor()); //TFMD_Si1I_acceptanceMin->SetTextFont(13); // times-medium-r-normal // FMD Si 1 Outer Double_t FMD_Si1O_z[2] = {75.2,75.2}; Double_t FMD_Si1O_r[2] = {15.4,28.4}; TPolyLine *FMD_Si1O = new TPolyLine(2,FMD_Si1O_z,FMD_Si1O_r); FMD_Si1O->SetLineColor(6); // purple FMD_Si1O->SetLineStyle(1); // Solid FMD_Si1O->SetLineWidth(5); // 5 pixels wide a2 = TMath::Min(zmax,FMD_Si1O_z[0]); Double_t FMD_Si1O_acceptance_z[5] = {zmin,a2,a2,zmin,zmin}; Double_t FMD_Si1O_acceptance_r[5]; Acceptance(FMD_Si1O_acceptance_r,FMD_Si1O_acceptance_z,FMD_Si1O_r, FMD_Si1O_z,2); TPolyLine *FMD_Si1O_acceptance = new TPolyLine(5,FMD_Si1O_acceptance_z, FMD_Si1O_acceptance_r); FMD_Si1O_acceptance->SetLineColor(FMD_Si1O->GetLineColor()); FMD_Si1O_acceptance->SetLineStyle(4); // dottetd FMD_Si1O_acceptance->SetLineWidth(1); // pixel FMD_Si1O_acceptance->SetFillColor(FMD_Si1O->GetLineColor()); FMD_Si1O_acceptance->SetFillStyle(0); // Hollow a1 = TMath::ATan(FMD_Si1O_acceptance_r[1]/FMD_Si1O_acceptance_z[1]); a1 *= 180.0/TMath::Pi(); str = "FMD Si1 Outer ";str += Form("%4.2f",a1);a1 *= TMath::Pi()/180.; str += " #circ, #eta="; str +=Form("%4.2f",-TMath::Log(TMath::Tan(.5*a1))); TLatex *TFMD_Si1O_acceptanceMax = new TLatex(FMD_Si1O_acceptance_z[1], FMD_Si1O_acceptance_r[1],str.Data()); TFMD_Si1O_acceptanceMax->SetTextAngle(a1*180./TMath::Pi()); TFMD_Si1O_acceptanceMax->SetTextSize(0.02); TFMD_Si1O_acceptanceMax->SetTextAlign(31); TFMD_Si1O_acceptanceMax->SetTextColor(FMD_Si1O_acceptance-> GetLineColor()); //TFMD_Si1O_acceptanceMax->SetTextFont(13); // times-medium-r-normal a1 = TMath::ATan(FMD_Si1O_acceptance_r[2]/FMD_Si1O_acceptance_z[2]); a1 *= 180.0/TMath::Pi(); str = "FMD Si1 Outer ";str += Form("%4.2f",a1);a1 *= TMath::Pi()/180.; str += " #circ, #eta="; str +=Form("%4.2f",-TMath::Log(TMath::Tan(.5*a1))); TLatex *TFMD_Si1O_acceptanceMin = new TLatex(FMD_Si1O_acceptance_z[2], FMD_Si1O_acceptance_r[2],str.Data()); TFMD_Si1O_acceptanceMin->SetTextAngle(a1*180./TMath::Pi()); TFMD_Si1O_acceptanceMin->SetTextSize(0.02); TFMD_Si1O_acceptanceMin->SetTextAlign(33); TFMD_Si1O_acceptanceMin->SetTextColor(FMD_Si1O_acceptance-> GetLineColor()); //TFMD_Si1O_acceptanceMin->SetTextFont(13); // times-medium-r-normal // FMD Si 2 Inner Double_t FMD_Si2I_z[2] = {83.4,83.4}; Double_t FMD_Si2I_r[2] = {04.2,17.2}; TPolyLine *FMD_Si2I = new TPolyLine(2,FMD_Si2I_z,FMD_Si2I_r); FMD_Si2I->SetLineColor(6); // purple FMD_Si2I->SetLineStyle(1); // Solid FMD_Si2I->SetLineWidth(5); // 5 pixels wide a2 = TMath::Min(zmax,FMD_Si2I_z[0]); Double_t FMD_Si2I_acceptance_z[5] = {zmin,a2,a2,zmin,zmin}; Double_t FMD_Si2I_acceptance_r[5]; Acceptance(FMD_Si2I_acceptance_r,FMD_Si2I_acceptance_z,FMD_Si2I_r, FMD_Si2I_z,2); TPolyLine *FMD_Si2I_acceptance = new TPolyLine(5,FMD_Si2I_acceptance_z, FMD_Si2I_acceptance_r); FMD_Si2I_acceptance->SetLineColor(FMD_Si2I->GetLineColor()); FMD_Si2I_acceptance->SetLineStyle(4); // dottetd FMD_Si2I_acceptance->SetLineWidth(1); // pixel FMD_Si2I_acceptance->SetFillColor(FMD_Si2I->GetLineColor()); FMD_Si2I_acceptance->SetFillStyle(0); // Hollow a1 = TMath::ATan(FMD_Si2I_acceptance_r[1]/FMD_Si2I_acceptance_z[1]); a1 *= 180.0/TMath::Pi(); str = "FMD Si2 Inner ";str += Form("%4.2f",a1);a1 *= TMath::Pi()/180.; str += " #circ, #eta="; str +=Form("%4.2f",-TMath::Log(TMath::Tan(.5*a1))); TLatex *TFMD_Si2I_acceptanceMax = new TLatex(FMD_Si2I_acceptance_z[1], FMD_Si2I_acceptance_r[1],str.Data()); TFMD_Si2I_acceptanceMax->SetTextAngle(a1*180./TMath::Pi()); TFMD_Si2I_acceptanceMax->SetTextSize(0.02); TFMD_Si2I_acceptanceMax->SetTextAlign(31); TFMD_Si2I_acceptanceMax->SetTextColor(FMD_Si1I_acceptance-> GetLineColor()); //TFMD_Si2I_acceptanceMax->SetTextFont(13); // times-medium-r-normal a1 = TMath::ATan(FMD_Si2I_acceptance_r[2]/FMD_Si2I_acceptance_z[2]); a1 *= 180.0/TMath::Pi(); str = "FMD Si2 Inner ";str += Form("%4.2f",a1);a1 *= TMath::Pi()/180.; str += " #circ, #eta="; str +=Form("%4.2f",-TMath::Log(TMath::Tan(.5*a1))); TLatex *TFMD_Si2I_acceptanceMin = new TLatex(FMD_Si2I_acceptance_z[2], FMD_Si2I_acceptance_r[2],str.Data()); TFMD_Si2I_acceptanceMin->SetTextAngle(a1*180./TMath::Pi()); TFMD_Si2I_acceptanceMin->SetTextSize(0.02); TFMD_Si2I_acceptanceMin->SetTextAlign(33); TFMD_Si2I_acceptanceMin->SetTextColor(FMD_Si2I_acceptance-> GetLineColor()); //TFMD_Si2I_acceptanceMin->SetTextFont(13); // times-medium-r-normal // FMD Si 3 Double_t FMD_Si3_z[2] = {340.0,340.0}; Double_t FMD_Si3_r[2] = { 4.2, 17.0}; TPolyLine *FMD_Si3 = new TPolyLine(2,FMD_Si3_z,FMD_Si3_r); FMD_Si3->SetLineColor(6); // purple FMD_Si3->SetLineStyle(1); // Solid FMD_Si3->SetLineWidth(5); // 5 pixels wide a2 = TMath::Min(zmax,FMD_Si3_z[0]); Double_t FMD_Si3_acceptance_z[5] = {zmin,a2,a2,zmin,zmin}; Double_t FMD_Si3_acceptance_r[5]; Acceptance(FMD_Si3_acceptance_r,FMD_Si3_acceptance_z,FMD_Si3_r, FMD_Si3_z,2); TPolyLine *FMD_Si3_acceptance = new TPolyLine(5,FMD_Si3_acceptance_z, FMD_Si3_acceptance_r); FMD_Si3_acceptance->SetLineColor(FMD_Si3->GetLineColor()); FMD_Si3_acceptance->SetLineStyle(4); // dottetd FMD_Si3_acceptance->SetLineWidth(1); // pixel FMD_Si3_acceptance->SetFillColor(FMD_Si3->GetLineColor()); // Same as line FMD_Si3_acceptance->SetFillStyle(0); // Hollow a1 = TMath::ATan(FMD_Si3_acceptance_r[1]/FMD_Si3_acceptance_z[1]); a1 *= 180.0/TMath::Pi(); str = "FMD Si3 ";str += Form("%4.2f",a1);a1 *= TMath::Pi()/180.; str += " #circ, #eta="; str +=Form("%4.2f",-TMath::Log(TMath::Tan(.5*a1))); TLatex *TFMD_Si3_acceptanceMax = new TLatex(FMD_Si3_acceptance_z[1], FMD_Si3_acceptance_r[1],str.Data()); TFMD_Si3_acceptanceMax->SetTextAngle(a1*180./TMath::Pi()); TFMD_Si3_acceptanceMax->SetTextSize(0.02); TFMD_Si3_acceptanceMax->SetTextAlign(31); TFMD_Si3_acceptanceMax->SetTextColor(FMD_Si3_acceptance->GetLineColor()); //TFMD_Si3_acceptanceMax->SetTextFont(13); // times-medium-r-normal a1 = TMath::ATan(FMD_Si3_acceptance_r[2]/FMD_Si3_acceptance_z[2]); a1 *= 180.0/TMath::Pi(); str = "FMD Si3 ";str += Form("%4.2f",a1);a1 *= TMath::Pi()/180.; str += " #circ, #eta="; str +=Form("%4.2f",-TMath::Log(TMath::Tan(.5*a1))); TLatex *TFMD_Si3_acceptanceMin = new TLatex(FMD_Si3_acceptance_z[2], FMD_Si3_acceptance_r[2],str.Data()); TFMD_Si3_acceptanceMin->SetTextAngle(a1*180./TMath::Pi()); TFMD_Si3_acceptanceMin->SetTextSize(0.02); TFMD_Si3_acceptanceMin->SetTextAlign(33); TFMD_Si3_acceptanceMin->SetTextColor(FMD_Si3_acceptance->GetLineColor()); //TFMD_Si3_acceptanceMin->SetTextFont(13); // times-medium-r-normal // Display TLatex *lab = new TLatex(); lab->SetTextSize(0.02); TPolyLine *tick = new TPolyLine(); TBox *Frame = new TBox(zmin,rmin,zmax,rmax); Frame->SetLineStyle(1); Frame->SetLineWidth(2); Frame->SetLineColor(1); Frame->SetFillStyle(0); TCanvas *ALICE = new TCanvas("ALICE","ITS, FMD and PMD",50,50,800,800); TCanvas *ALICE_SPD = new TCanvas("ALICE_SPD","ITS_SPD, FMD and PMD",100,100,800,800); a1 = zmax-zmin; a2 = rmax-rmin; ALICE->Range(zmin-0.05*a1,rmin-0.05*a2,zmax+0.01*a1,rmax+0.01*a2); ALICE_SPD->Range(zmin-0.05*a1,rmin-0.05*a2,45.+0.01*a1,20.+0.01*a2); // Draw Int_t j=1; for(j=0;j<2;j++){ switch (j){ case 0: ALICE->cd(); break; case 1: ALICE_SPD->cd(); break; } // end switch SPD_Services->Draw(); SPD1_Cable->Draw(); SPD2_Cable->Draw(); SPD_Services_acceptance->Draw(); SPD_acceptanceMin->Draw(); SPD_acceptanceMax->Draw(); SDD_Cone->Draw(); SDD_Cone_hole1->Draw(); SDD_Cone_hole2->Draw(); SDD1_Cable->Draw(); SDD2_Cable->Draw(); SDD_Cone_acceptance->Draw(); SDD_acceptanceMin->Draw(); SDD_acceptanceMax->Draw(); SSD_Cone->Draw(); SSD_Cone_hole->Draw(); SSD1_Cable->Draw(); SSD2_Cable->Draw(); SSD_Cone_acceptance->Draw(); SSD_acceptanceMin->Draw(); SSD_acceptanceMax->Draw(); //PMD->Draw(); PMD_acceptance->Draw(); TPMD_acceptanceMin->Draw(); TPMD_acceptanceMax->Draw(); PMD_acceptanceMax->Draw(); FMD_Si1I->Draw(); FMD_Si1O->Draw(); FMD_Si2I->Draw(); // FMD_Si3->Draw(); FMD_Si1I_acceptance->Draw(); TFMD_Si1I_acceptanceMin->Draw(); TFMD_Si1I_acceptanceMax->Draw(); FMD_Si1O_acceptance->Draw(); TFMD_Si1O_acceptanceMin->Draw(); TFMD_Si1O_acceptanceMax->Draw(); FMD_Si2I_acceptance->Draw(); TFMD_Si2I_acceptanceMin->Draw(); TFMD_Si2I_acceptanceMax->Draw(); FMD_Si3_acceptance->Draw(); TFMD_Si3_acceptanceMin->Draw(); TFMD_Si3_acceptanceMax->Draw(); Frame->Draw(); Double_t z[2],r[2]; tick->SetLineColor(1); tick->SetLineStyle(1); lab->SetTextAlign(21); lab->SetTextColor(1); lab->DrawLatex(0.5*(zmin+zmax),rmax-0.04*a2,"AliITSvPPRasymmFMD Geometry"); lab->SetTextAlign(23); for(i=30;iDrawPolyLine(2,z,r); lab->DrawLatex(z[0],rmin-0.01*a2,Form("%d",i)); r[0] = rmax-0.01*a2; r[1] = rmax; tick->DrawPolyLine(2,z,r); } // end for i lab->DrawLatex(0.5*(zmin+zmax),rmin-0.02*a2,"Z [cm]"); lab->SetTextAlign(32); for(i=0;iDrawPolyLine(2,z,r); lab->DrawLatex(zmin-0.01*a1,r[0],Form("%d",i)); z[0] = zmax-0.01*a2; z[1] = zmax; tick->DrawPolyLine(2,z,r); } // end for i lab->SetTextAngle(90.0); lab->DrawLatex(zmin-0.02*a1,0.5*(rmin+rmax),"R [cm] "); // Services from Pierluigi's spread sheet. tick->SetLineColor(2); // red tick->SetLineStyle(3); // dottetd lab->SetTextColor(tick->GetLineColor()); lab->SetTextAngle(0.0); lab->SetTextAlign(11); Double_t rPierluigi[7] ={49.0,38.0,32.0,24.0,15.0,08.0,03.7}; char* txt[7]={"SSD=490mm","SDD2=380mm","SDD1=320mm","SDD1=240mm?", "2SPD=150mm","SPD1=80mm","Beam Pipe=37mm"}; z[0] = zmin; z[1] = zmax; for(i=0;i<7;i++){ r[0] = r[1] = rPierluigi[i]; tick->DrawPolyLine(2,z,r); b1 = zmin+0.04*a1; if(i==5) b1 = 50.0; if(i==6) b1 = zmin+0.12*a1; lab->DrawLatex(b1,r[0],txt[i]); } // end for i TArrow *ar = new TArrow(zmin+0.04*a1,rPierluigi[2], zmin+0.04*a1,rPierluigi[3]+1.,0.02); ar->SetLineColor(tick->GetLineColor()); ar->SetLineStyle(3); // dotted ar->Draw(); } // end for j /* printf("SDD_Cone_hole1\n"); for(i=0;iGetN();i++){ printf("%2d %f \t %f \n",i,(SDD_Cone_hole1->GetX())[i], (SDD_Cone_hole1->GetY())[i]); } // end for i printf("SDD_Cone_hole2\n"); for(i=0;iGetN();i++){ printf("%2d %f \t %f \n",i,(SDD_Cone_hole2->GetX())[i], (SDD_Cone_hole2->GetY())[i]); } // end for i printf("SSD_Cone_hole\n"); for(i=0;iGetN();i++){ printf("%2d %f \t %f \n",i,(SSD_Cone_hole->GetX())[i], (SSD_Cone_hole->GetY())[i]); } // end for i */ }