ROOT logo
//
// Macro to estimates the acceptance and the occupancy
//
Double_t EtaMaxAtGivenZvtx(Double_t r=3.9,Double_t z=14.1, Double_t zvtx=0);
Double_t OptimizeLenght(Double_t r0=2.2, Double_t eta=1.0, Double_t r1= 43.0, Double_t zmax=5.9);
Double_t fnc(Double_t* r, Double_t* par);
Double_t feta(Double_t* zz, Double_t* par);
Double_t zPipeFnc(Double_t* r, Double_t* par);
Double_t ZOfConicalPipeAtR(Double_t r=2.2, Double_t sig=5.9,Double_t thetadeg=9.0);
Double_t OccupancyAtZAndR(Double_t z=0., Double_t r=2.2, Double_t occ0=2800, Double_t r0=3.7);
Double_t focc(Double_t* zr, Double_t* par);

void PlotOptimizeLenght() {
//Double_t sigma=5.9; // PbPb 2010 run 
 Double_t sigma=7.94; // nominal parameter ( https://edms.cern.ch/file/445882/5/Vol_1_Chapter_21.pdf )
TFile *f = new TFile("prova.root","RECREATE");
TF1 *func1 = new TF1("z",fnc,1.,45.,3); 
TCanvas *c1=new TCanvas();
c1->SetGridx();
c1->SetGridy();
c1->SetLogy();
// 1 sigma
func1->SetParameter(0,1.0);   // eta 
func1->SetParameter(1,43.0);  // zeta
func1->SetParameter(2,sigma);   // sigma 
func1->Draw();
func1->GetXaxis()->SetTitle("radius (cm)");
func1->GetYaxis()->SetTitle("#pm z (cm)");
func1->Write();
// 2 sigma
TF1* func2=new TF1("z2",fnc,1.,45.,3);
func2->SetParameter(0,1.0);   // eta 
func2->SetParameter(1,43.0);  // zeta
func2->SetParameter(2,2*sigma);   // sigma
func2->SetLineStyle(10);
func2->Draw("SAME");
func2->Write();
// 0 sigma
TF1* func0=new TF1("z0",fnc,1.,45.,3);
func0->SetParameter(0,1.0);   // eta 
func0->SetParameter(1,43.0);  // zeta
func0->SetParameter(2,0*sigma);   // sigma
func0->SetLineStyle(2);
func0->Draw("SAME");
func0->Write();
//
//// now at eta=1.3
// 
// 0 sigma
TF1* func0_b=new TF1(*func0);
func0_b->SetParameter(0,1.3);   // eta
func0_b->SetLineColor(2);
func0_b->Draw("SAME");
func0_b->Write();
// 1 sigma
TF1* func1_b=new TF1(*func1);
func1_b->SetParameter(0,1.3);   // eta
func1_b->SetLineColor(2);
func1_b->Draw("SAME");
func1_b->Write();
// 2 sigma
TF1* func2_b=new TF1(*func2);
func2_b->SetParameter(0,1.3);   // eta
func2_b->SetLineColor(2);
func2_b->Draw("SAME");
func2_b->Write();
// Legend
TLatex* eta = new TLatex(37.,13.,"#eta = 1.0");
eta->Draw();
TLatex* eta_b = new TLatex(37.,20.,"#eta = 1.3");
eta_b->SetTextColor(2);
eta_b->Draw();
TLine* l2= new TLine(5.,76., 13.,76. );
TLine* l1= new TLine(5.,57., 13.,57.);
TLine* l0= new TLine(5.,41., 13.,41.);
l2->SetLineStyle(10);
l0->SetLineStyle(2);
l0->SetLineWidth(2);
l1->SetLineWidth(2);
l2->SetLineWidth(2);
TLatex* t2 = new TLatex(14., 76.,"zvtx = 2 #sigma");
TLatex* t1 = new TLatex(14., 57.,"zvtx = 1 #sigma");
TLatex* t0 = new TLatex(14., 41.,"zvtx = 0");
t2->Draw(); 
t1->Draw(); 
t0->Draw(); 
l0->Draw();
l1->Draw();
l2->Draw();
//
//// Now plot eta versus Z at fixed radius
//
TCanvas *c2=new TCanvas();
c1->SetGridx();
c1->SetGridy();
// 2.2 cm 
//
// 0 sigma
TF1* eta0=new TF1("eta0",feta,2.,30.,2);
eta0->SetParameter(0,2.2);  // radius
eta0->SetParameter(1,0.);   // sigma
eta0->SetLineStyle(2);
eta0->GetXaxis()->SetTitle("#pm z (cm)");
eta0->GetYaxis()->SetTitle("#eta_{max}");
eta0->SetMinimum(0.);
eta0->Draw();
eta0->Write();
// 1 sigma 
TF1 *eta1 = new TF1("eta1",feta,sigma,30.,2);
eta1->SetParameter(0,2.2);  // radius
eta1->SetParameter(1,sigma);   // sigma 
eta1->Write();
eta1->Draw("Same");
// 2 sigma
TF1* eta2=new TF1("eta2",feta,2*sigma,30.,2);
eta2->SetParameter(0,2.2);  // radius
eta2->SetParameter(1,2*sigma);   // sigma
eta2->SetLineStyle(10);
eta2->Draw("SAME");
eta2->Write();
// 2.5 cm 
//
TF1* eta0_b=new TF1(*eta0);
eta0_b->SetParameter(0,2.5);   // radius
eta0_b->SetLineColor(2);
eta0_b->Draw("SAME");
eta0_b->Write();
// 1 sigma
TF1* eta1_b=new TF1(*eta1);
eta1_b->SetParameter(0,2.5);   // radius
eta1_b->SetLineColor(2);
eta1_b->Draw("SAME");
eta1_b->Write();
// 2 sigma
TF1* eta2_b=new TF1(*eta2);
eta2_b->SetParameter(0,2.5);   // radius
eta2_b->SetLineColor(2);
eta2_b->Draw("SAME");
eta2_b->Write();
// 2.8 cm 
TF1* eta0_c=new TF1(*eta0);
eta0_c->SetParameter(0,2.8);   // radius
eta0_c->SetLineColor(4);
eta0_c->Draw("SAME");
eta0_c->Write();
// 1 sigma
TF1* eta1_c=new TF1(*eta1);
eta1_c->SetParameter(0,2.8);   // radius
eta1_c->SetLineColor(4);
eta1_c->Draw("SAME");
eta1_c->Write();
// 2 sigma
TF1* eta2_c=new TF1(*eta2);
eta2_c->SetParameter(0,2.8);   // radius
eta2_c->SetLineColor(4);
eta2_c->Draw("SAME");
eta2_c->Write();
//
//
// Legend
TLatex* rra = new TLatex(21.,1.3,"r = 2.2 cm");
rra->Draw();
TLatex* rrb = new TLatex(21.,1.0,"r = 2.5 cm");
rrb->SetTextColor(2);
rrb->Draw();
TLatex* rrc = new TLatex(21.,0.7,"r = 2.8 cm");
rrc->SetTextColor(4);
rrc->Draw();
TLine* ll2= new TLine(4.,3.2, 9.,3.2);
TLine* ll1= new TLine(4.,2.9, 9.,2.9);
TLine* ll0= new TLine(4.,2.6, 9.,2.6);
ll2->SetLineStyle(10);
ll0->SetLineStyle(2);
ll0->SetLineWidth(2);
ll1->SetLineWidth(2);
ll2->SetLineWidth(2);
TLatex* tt2 = new TLatex(10., 3.2,"zvtx = 2 #sigma");
TLatex* tt1 = new TLatex(10., 2.9,"zvtx = 1 #sigma");
TLatex* tt0 = new TLatex(10., 2.6,"zvtx = 0");
tt2->Draw();
tt1->Draw();
tt0->Draw();
ll0->Draw();
ll1->Draw();
ll2->Draw();
//
//// Now plot Boundary from Conical Beam Pipe
//
TF1 *bound1 = new TF1("z_r bound",zPipeFnc,2.,10.,2);
TCanvas *c3=new TCanvas();
c3->SetGridx();
c3->SetGridy();
//c3->SetLogy();
// 1 sigma
bound1->SetParameter(0,1.0*sigma);  // 1 sigma 
bound1->SetParameter(1,9.0);  // theta in deg
bound1->Draw();
bound1->GetXaxis()->SetTitle("radius (cm)");
bound1->GetYaxis()->SetTitle("z (cm)");
bound1->Write();
//
// 2 sigma
TF1* bound2=new TF1("z_r bound 2",zPipeFnc,2.,10.,2);
bound2->SetParameter(0,2.0*sigma);   // eta 
bound2->SetParameter(1,9.0);  // theta in deg
bound2->SetLineStyle(10);
bound2->Draw("SAME");
bound2->Write();
// 0 sigma
TF1* bound0=new TF1("z_r bound 0",zPipeFnc,2.,10.,2);
bound0->SetParameter(0,0.);   // eta 
bound0->SetParameter(1,9.0);  // theta in deg
bound0->SetLineStyle(2);
bound0->Draw("SAME");
bound0->Write();
// caption
//
TLine* hl2= new TLine(2.5,52., 4.,52. );
TLine* hl1= new TLine(2.5,46., 4.,46.);
TLine* hl0= new TLine(2.5,40., 4.,40.);
hl2->SetLineStyle(10);
hl0->SetLineStyle(2);
hl0->SetLineWidth(2);
hl1->SetLineWidth(2);
hl2->SetLineWidth(2);
TLatex* ht2 = new TLatex(4.2, 52.,"zvtx = - 2 #sigma");
TLatex* ht1 = new TLatex(4.2, 46.,"zvtx = - 1 #sigma");
TLatex* ht0 = new TLatex(4.2, 40.,"zvtx = 0");
ht2->Draw();
ht1->Draw();
ht0->Draw();
hl0->Draw();
hl1->Draw();
hl2->Draw();
//
//// Now the estimate of the occupancy
//
TF2 *occ = new TF2("Occupancy vs z and r ",focc,0.,10.,2.,5.,2);
TCanvas *c4=new TCanvas();
c4->SetRightMargin(0.15);
//c3->SetLogy();
// 1 sigma
occ->SetParameter(0,28);  //  occupancy at r0
occ->SetParameter(1,3.7);  // r0
occ->GetXaxis()->SetTitle("z (cm)");
occ->GetYaxis()->SetTitle("r (cm)");
occ->GetZaxis()->SetTitle("charged particle / cm^2");
occ->GetZaxis()->SetTitleOffset(1.25);
occ->SetContour(20);
occ->Draw("colz");
occ->Write();

//
f->Close();
}

Double_t feta(Double_t* zz, Double_t* par) {
Double_t z=zz[0];
Double_t r=par[0];
Double_t zvtx=par[1];
return EtaMaxAtGivenZvtx(r,z,zvtx);
}


Double_t fnc(Double_t* r, Double_t* par) {
Double_t r0=r[0];
Double_t eta=par[0];
Double_t r1=par[1];
Double_t zmax=par[2];
return OptimizeLenght(r0, eta, r1, zmax);
}

Double_t OptimizeLenght(Double_t r0, Double_t eta, Double_t r1, Double_t zmax) {
Double_t z0=0.;
Double_t theta= 2.0*TMath::ATan(TMath::Exp(-1*eta));
Double_t z1=r1/TMath::Tan(theta);
Double_t theta_max=TMath::ATan((z1-zmax)/r1);
  //printf("\n \n Diamond size x-y: %10.3e z: %10.3e\n \n", sigmaxy, sigmaz)
z0=zmax+r0*TMath::Tan(theta_max);
return z0;
}


Double_t EtaMaxAtGivenZvtx(Double_t r, Double_t z, Double_t zvtx) {
Double_t etamax=0;
if (r<=0) return 0.;
if (zvtx>=z) {
 cout << " z should be larger than zvtx = " << zvtx << endl;
 return 0.;
}
Double_t zeff= z - zvtx;
Double_t thetaHalf=r/zeff;
thetaHalf=0.5*TMath::ATan(thetaHalf);
etamax=-1.*TMath::Log(TMath::Tan(thetaHalf));
return etamax;
}

Double_t ZOfConicalPipeAtR(Double_t r, Double_t sig, Double_t thetadeg){
Double_t rpipe=2.0;
if (r<rpipe) {
 cout << " radius r less than beam pipe" << endl;
 return 0;
}
 Double_t a=TMath::Tan(thetadeg*TMath::Pi()/180.);
 Double_t b=sig*a;
 Double_t z=(r-b)/a;
 return z;
}

Double_t OccupancyAtZAndR(Double_t z, Double_t r, Double_t occ0, Double_t r0) {
if(r<=0) {
  cout << "r should be positive " << endl;
 return 0;
}
Double_t occ=0;
occ=occ0*r0/r * TMath::Sin(TMath::ATan(r/z));
return occ;
}

Double_t zPipeFnc(Double_t* r, Double_t* par) {
Double_t rr=r[0];
Double_t sig=par[0];
Double_t thetadeg=par[1];
return ZOfConicalPipeAtR(rr, sig, thetadeg);
}

Double_t focc(Double_t* zr, Double_t* par) {
Double_t z=zr[0];
Double_t r=zr[1];
Double_t occ0=par[0];
Double_t r0=par[1];
return OccupancyAtZAndR(z,r,occ0,r0);
}
 PlotOptimizeLenght.C:1
 PlotOptimizeLenght.C:2
 PlotOptimizeLenght.C:3
 PlotOptimizeLenght.C:4
 PlotOptimizeLenght.C:5
 PlotOptimizeLenght.C:6
 PlotOptimizeLenght.C:7
 PlotOptimizeLenght.C:8
 PlotOptimizeLenght.C:9
 PlotOptimizeLenght.C:10
 PlotOptimizeLenght.C:11
 PlotOptimizeLenght.C:12
 PlotOptimizeLenght.C:13
 PlotOptimizeLenght.C:14
 PlotOptimizeLenght.C:15
 PlotOptimizeLenght.C:16
 PlotOptimizeLenght.C:17
 PlotOptimizeLenght.C:18
 PlotOptimizeLenght.C:19
 PlotOptimizeLenght.C:20
 PlotOptimizeLenght.C:21
 PlotOptimizeLenght.C:22
 PlotOptimizeLenght.C:23
 PlotOptimizeLenght.C:24
 PlotOptimizeLenght.C:25
 PlotOptimizeLenght.C:26
 PlotOptimizeLenght.C:27
 PlotOptimizeLenght.C:28
 PlotOptimizeLenght.C:29
 PlotOptimizeLenght.C:30
 PlotOptimizeLenght.C:31
 PlotOptimizeLenght.C:32
 PlotOptimizeLenght.C:33
 PlotOptimizeLenght.C:34
 PlotOptimizeLenght.C:35
 PlotOptimizeLenght.C:36
 PlotOptimizeLenght.C:37
 PlotOptimizeLenght.C:38
 PlotOptimizeLenght.C:39
 PlotOptimizeLenght.C:40
 PlotOptimizeLenght.C:41
 PlotOptimizeLenght.C:42
 PlotOptimizeLenght.C:43
 PlotOptimizeLenght.C:44
 PlotOptimizeLenght.C:45
 PlotOptimizeLenght.C:46
 PlotOptimizeLenght.C:47
 PlotOptimizeLenght.C:48
 PlotOptimizeLenght.C:49
 PlotOptimizeLenght.C:50
 PlotOptimizeLenght.C:51
 PlotOptimizeLenght.C:52
 PlotOptimizeLenght.C:53
 PlotOptimizeLenght.C:54
 PlotOptimizeLenght.C:55
 PlotOptimizeLenght.C:56
 PlotOptimizeLenght.C:57
 PlotOptimizeLenght.C:58
 PlotOptimizeLenght.C:59
 PlotOptimizeLenght.C:60
 PlotOptimizeLenght.C:61
 PlotOptimizeLenght.C:62
 PlotOptimizeLenght.C:63
 PlotOptimizeLenght.C:64
 PlotOptimizeLenght.C:65
 PlotOptimizeLenght.C:66
 PlotOptimizeLenght.C:67
 PlotOptimizeLenght.C:68
 PlotOptimizeLenght.C:69
 PlotOptimizeLenght.C:70
 PlotOptimizeLenght.C:71
 PlotOptimizeLenght.C:72
 PlotOptimizeLenght.C:73
 PlotOptimizeLenght.C:74
 PlotOptimizeLenght.C:75
 PlotOptimizeLenght.C:76
 PlotOptimizeLenght.C:77
 PlotOptimizeLenght.C:78
 PlotOptimizeLenght.C:79
 PlotOptimizeLenght.C:80
 PlotOptimizeLenght.C:81
 PlotOptimizeLenght.C:82
 PlotOptimizeLenght.C:83
 PlotOptimizeLenght.C:84
 PlotOptimizeLenght.C:85
 PlotOptimizeLenght.C:86
 PlotOptimizeLenght.C:87
 PlotOptimizeLenght.C:88
 PlotOptimizeLenght.C:89
 PlotOptimizeLenght.C:90
 PlotOptimizeLenght.C:91
 PlotOptimizeLenght.C:92
 PlotOptimizeLenght.C:93
 PlotOptimizeLenght.C:94
 PlotOptimizeLenght.C:95
 PlotOptimizeLenght.C:96
 PlotOptimizeLenght.C:97
 PlotOptimizeLenght.C:98
 PlotOptimizeLenght.C:99
 PlotOptimizeLenght.C:100
 PlotOptimizeLenght.C:101
 PlotOptimizeLenght.C:102
 PlotOptimizeLenght.C:103
 PlotOptimizeLenght.C:104
 PlotOptimizeLenght.C:105
 PlotOptimizeLenght.C:106
 PlotOptimizeLenght.C:107
 PlotOptimizeLenght.C:108
 PlotOptimizeLenght.C:109
 PlotOptimizeLenght.C:110
 PlotOptimizeLenght.C:111
 PlotOptimizeLenght.C:112
 PlotOptimizeLenght.C:113
 PlotOptimizeLenght.C:114
 PlotOptimizeLenght.C:115
 PlotOptimizeLenght.C:116
 PlotOptimizeLenght.C:117
 PlotOptimizeLenght.C:118
 PlotOptimizeLenght.C:119
 PlotOptimizeLenght.C:120
 PlotOptimizeLenght.C:121
 PlotOptimizeLenght.C:122
 PlotOptimizeLenght.C:123
 PlotOptimizeLenght.C:124
 PlotOptimizeLenght.C:125
 PlotOptimizeLenght.C:126
 PlotOptimizeLenght.C:127
 PlotOptimizeLenght.C:128
 PlotOptimizeLenght.C:129
 PlotOptimizeLenght.C:130
 PlotOptimizeLenght.C:131
 PlotOptimizeLenght.C:132
 PlotOptimizeLenght.C:133
 PlotOptimizeLenght.C:134
 PlotOptimizeLenght.C:135
 PlotOptimizeLenght.C:136
 PlotOptimizeLenght.C:137
 PlotOptimizeLenght.C:138
 PlotOptimizeLenght.C:139
 PlotOptimizeLenght.C:140
 PlotOptimizeLenght.C:141
 PlotOptimizeLenght.C:142
 PlotOptimizeLenght.C:143
 PlotOptimizeLenght.C:144
 PlotOptimizeLenght.C:145
 PlotOptimizeLenght.C:146
 PlotOptimizeLenght.C:147
 PlotOptimizeLenght.C:148
 PlotOptimizeLenght.C:149
 PlotOptimizeLenght.C:150
 PlotOptimizeLenght.C:151
 PlotOptimizeLenght.C:152
 PlotOptimizeLenght.C:153
 PlotOptimizeLenght.C:154
 PlotOptimizeLenght.C:155
 PlotOptimizeLenght.C:156
 PlotOptimizeLenght.C:157
 PlotOptimizeLenght.C:158
 PlotOptimizeLenght.C:159
 PlotOptimizeLenght.C:160
 PlotOptimizeLenght.C:161
 PlotOptimizeLenght.C:162
 PlotOptimizeLenght.C:163
 PlotOptimizeLenght.C:164
 PlotOptimizeLenght.C:165
 PlotOptimizeLenght.C:166
 PlotOptimizeLenght.C:167
 PlotOptimizeLenght.C:168
 PlotOptimizeLenght.C:169
 PlotOptimizeLenght.C:170
 PlotOptimizeLenght.C:171
 PlotOptimizeLenght.C:172
 PlotOptimizeLenght.C:173
 PlotOptimizeLenght.C:174
 PlotOptimizeLenght.C:175
 PlotOptimizeLenght.C:176
 PlotOptimizeLenght.C:177
 PlotOptimizeLenght.C:178
 PlotOptimizeLenght.C:179
 PlotOptimizeLenght.C:180
 PlotOptimizeLenght.C:181
 PlotOptimizeLenght.C:182
 PlotOptimizeLenght.C:183
 PlotOptimizeLenght.C:184
 PlotOptimizeLenght.C:185
 PlotOptimizeLenght.C:186
 PlotOptimizeLenght.C:187
 PlotOptimizeLenght.C:188
 PlotOptimizeLenght.C:189
 PlotOptimizeLenght.C:190
 PlotOptimizeLenght.C:191
 PlotOptimizeLenght.C:192
 PlotOptimizeLenght.C:193
 PlotOptimizeLenght.C:194
 PlotOptimizeLenght.C:195
 PlotOptimizeLenght.C:196
 PlotOptimizeLenght.C:197
 PlotOptimizeLenght.C:198
 PlotOptimizeLenght.C:199
 PlotOptimizeLenght.C:200
 PlotOptimizeLenght.C:201
 PlotOptimizeLenght.C:202
 PlotOptimizeLenght.C:203
 PlotOptimizeLenght.C:204
 PlotOptimizeLenght.C:205
 PlotOptimizeLenght.C:206
 PlotOptimizeLenght.C:207
 PlotOptimizeLenght.C:208
 PlotOptimizeLenght.C:209
 PlotOptimizeLenght.C:210
 PlotOptimizeLenght.C:211
 PlotOptimizeLenght.C:212
 PlotOptimizeLenght.C:213
 PlotOptimizeLenght.C:214
 PlotOptimizeLenght.C:215
 PlotOptimizeLenght.C:216
 PlotOptimizeLenght.C:217
 PlotOptimizeLenght.C:218
 PlotOptimizeLenght.C:219
 PlotOptimizeLenght.C:220
 PlotOptimizeLenght.C:221
 PlotOptimizeLenght.C:222
 PlotOptimizeLenght.C:223
 PlotOptimizeLenght.C:224
 PlotOptimizeLenght.C:225
 PlotOptimizeLenght.C:226
 PlotOptimizeLenght.C:227
 PlotOptimizeLenght.C:228
 PlotOptimizeLenght.C:229
 PlotOptimizeLenght.C:230
 PlotOptimizeLenght.C:231
 PlotOptimizeLenght.C:232
 PlotOptimizeLenght.C:233
 PlotOptimizeLenght.C:234
 PlotOptimizeLenght.C:235
 PlotOptimizeLenght.C:236
 PlotOptimizeLenght.C:237
 PlotOptimizeLenght.C:238
 PlotOptimizeLenght.C:239
 PlotOptimizeLenght.C:240
 PlotOptimizeLenght.C:241
 PlotOptimizeLenght.C:242
 PlotOptimizeLenght.C:243
 PlotOptimizeLenght.C:244
 PlotOptimizeLenght.C:245
 PlotOptimizeLenght.C:246
 PlotOptimizeLenght.C:247
 PlotOptimizeLenght.C:248
 PlotOptimizeLenght.C:249
 PlotOptimizeLenght.C:250
 PlotOptimizeLenght.C:251
 PlotOptimizeLenght.C:252
 PlotOptimizeLenght.C:253
 PlotOptimizeLenght.C:254
 PlotOptimizeLenght.C:255
 PlotOptimizeLenght.C:256
 PlotOptimizeLenght.C:257
 PlotOptimizeLenght.C:258
 PlotOptimizeLenght.C:259
 PlotOptimizeLenght.C:260
 PlotOptimizeLenght.C:261
 PlotOptimizeLenght.C:262
 PlotOptimizeLenght.C:263
 PlotOptimizeLenght.C:264
 PlotOptimizeLenght.C:265
 PlotOptimizeLenght.C:266
 PlotOptimizeLenght.C:267
 PlotOptimizeLenght.C:268
 PlotOptimizeLenght.C:269
 PlotOptimizeLenght.C:270
 PlotOptimizeLenght.C:271
 PlotOptimizeLenght.C:272
 PlotOptimizeLenght.C:273
 PlotOptimizeLenght.C:274
 PlotOptimizeLenght.C:275
 PlotOptimizeLenght.C:276
 PlotOptimizeLenght.C:277
 PlotOptimizeLenght.C:278
 PlotOptimizeLenght.C:279
 PlotOptimizeLenght.C:280
 PlotOptimizeLenght.C:281
 PlotOptimizeLenght.C:282
 PlotOptimizeLenght.C:283
 PlotOptimizeLenght.C:284
 PlotOptimizeLenght.C:285
 PlotOptimizeLenght.C:286
 PlotOptimizeLenght.C:287
 PlotOptimizeLenght.C:288
 PlotOptimizeLenght.C:289
 PlotOptimizeLenght.C:290
 PlotOptimizeLenght.C:291
 PlotOptimizeLenght.C:292
 PlotOptimizeLenght.C:293
 PlotOptimizeLenght.C:294
 PlotOptimizeLenght.C:295
 PlotOptimizeLenght.C:296
 PlotOptimizeLenght.C:297
 PlotOptimizeLenght.C:298
 PlotOptimizeLenght.C:299
 PlotOptimizeLenght.C:300
 PlotOptimizeLenght.C:301
 PlotOptimizeLenght.C:302
 PlotOptimizeLenght.C:303
 PlotOptimizeLenght.C:304
 PlotOptimizeLenght.C:305
 PlotOptimizeLenght.C:306
 PlotOptimizeLenght.C:307
 PlotOptimizeLenght.C:308
 PlotOptimizeLenght.C:309
 PlotOptimizeLenght.C:310
 PlotOptimizeLenght.C:311
 PlotOptimizeLenght.C:312
 PlotOptimizeLenght.C:313
 PlotOptimizeLenght.C:314
 PlotOptimizeLenght.C:315
 PlotOptimizeLenght.C:316
 PlotOptimizeLenght.C:317
 PlotOptimizeLenght.C:318
 PlotOptimizeLenght.C:319
 PlotOptimizeLenght.C:320
 PlotOptimizeLenght.C:321
 PlotOptimizeLenght.C:322
 PlotOptimizeLenght.C:323
 PlotOptimizeLenght.C:324
 PlotOptimizeLenght.C:325
 PlotOptimizeLenght.C:326
 PlotOptimizeLenght.C:327
 PlotOptimizeLenght.C:328
 PlotOptimizeLenght.C:329
 PlotOptimizeLenght.C:330
 PlotOptimizeLenght.C:331
 PlotOptimizeLenght.C:332
 PlotOptimizeLenght.C:333
 PlotOptimizeLenght.C:334