| 46 |
lpetot = 0.; |
lpetot = 0.; |
| 47 |
lppskip = 0.; |
lppskip = 0.; |
| 48 |
memset(calorimetro,0,44*2*sizeof(Float_t)); |
memset(calorimetro,0,44*2*sizeof(Float_t)); |
| 49 |
memset(spessore,0,3*sizeof(Float_t)); |
memset(spessore,0,4*sizeof(Float_t)); |
| 50 |
memset(estremi,0,2*2*sizeof(Float_t)); |
memset(estremi,0,2*2*sizeof(Float_t)); |
| 51 |
Integrale=0.; |
Integrale=0.; |
| 52 |
|
|
| 367 |
return integ; |
return integ; |
| 368 |
} |
} |
| 369 |
|
|
| 370 |
|
|
| 371 |
void CaloBragg::Draw(){ |
void CaloBragg::Draw(){ |
| 372 |
|
|
| 373 |
Process(); |
Process(); |
| 374 |
|
|
| 375 |
|
this->Draw(0.,0.); |
| 376 |
|
|
| 377 |
|
} |
| 378 |
|
|
| 379 |
|
void CaloBragg::Draw(Int_t Z, Float_t enetot){ |
| 380 |
|
|
| 381 |
// Float_t dEpianimean[44]; |
// Float_t dEpianimean[44]; |
| 382 |
Float_t dEpianiloop[44]; |
Float_t dEpianiloop[44]; |
| 383 |
Float_t Depth[44]; |
Float_t Depth[44]; |
| 384 |
// Int_t tz=(Int_t)qtz; |
// Int_t tz=(Int_t)qtz; |
| 385 |
Int_t tz1=(Int_t)lpz; |
Int_t tz1= Z; |
| 386 |
// Enetrack(&tz, &qtetot, &estremi[0][0],&estremi[1][0], dEpianimean);//calcola rilascio energetico sui piani da media troncata |
Float_t enet = enetot; |
| 387 |
Enetrack(&tz1, &lpetot, &estremi[0][0],&estremi[1][0], dEpianiloop);//calcola rilascio energetico sui piani da loop |
// Float_t enet = lpetot; |
| 388 |
|
|
| 389 |
|
if ( Z > 0. && enetot > 0. ){ |
| 390 |
|
estremi[0][0] = 0; |
| 391 |
|
estremi[1][0] = 43; |
| 392 |
|
|
| 393 |
|
|
| 394 |
|
Float_t ytgx = 0.; |
| 395 |
|
Float_t ytgy = 0.; |
| 396 |
|
|
| 397 |
|
//lunghezza effettiva di silicio attraversata (mm) |
| 398 |
|
Float_t SiCross = sqrt(SQ(ySi) + SQ(ytgx) + SQ(ytgy)); |
| 399 |
|
|
| 400 |
|
spessore[0] = (SiCross/10.) * rhoSi; //spessore silicio in g/cm2 |
| 401 |
|
|
| 402 |
|
/*tungsteno*/ |
| 403 |
|
|
| 404 |
|
//rapporto tra rilasci energetici nei due materiali |
| 405 |
|
Float_t WCross = sqrt((yW*yW) + (ytgx*ytgx) + (ytgy*ytgy));//mm* rapporto lunghezze rad |
| 406 |
|
//gcm2W = WCross/10. * rhoW; |
| 407 |
|
|
| 408 |
|
// (g/cm2W)/(g/cm2Si) |
| 409 |
|
spessore[3] = (WCross/10.) * rhoW; |
| 410 |
|
Float_t a=(WCross/SiCross)*(rhoW/rhoSi)*(1.145/1.664); //(gcm2W)/(SiCross/10. * rhoSi)* (1.145/1.664); |
| 411 |
|
spessore[1] = a; |
| 412 |
|
//riscala mip allo spessore attraversato |
| 413 |
|
spessore[2] = MIP*(SiCross/ySi); |
| 414 |
|
|
| 415 |
|
} else { |
| 416 |
|
tz1=(Int_t)lpz; |
| 417 |
|
enet = lpetot; |
| 418 |
|
// Enetrack(&tz, &qtetot, &estremi[0][0],&estremi[1][0], dEpianimean);//calcola rilascio energetico sui piani da media troncata |
| 419 |
|
|
| 420 |
|
} |
| 421 |
|
Enetrack(&tz1, &enet, &estremi[0][0],&estremi[1][0], dEpianiloop);//calcola rilascio energetico sui piani da loop |
| 422 |
|
|
| 423 |
Float_t sp= spessore[0]*spessore[1]; |
Float_t sp= spessore[0]*spessore[1]; |
| 424 |
for(Int_t i=0;i<44;i++)Depth[i]=i*sp; |
for(Int_t i=0;i<44;i++)Depth[i]=i*sp; |
| 471 |
// tc->cd(2); |
// tc->cd(2); |
| 472 |
tc->cd(); |
tc->cd(); |
| 473 |
// |
// |
| 474 |
for(Int_t i=0;i<=estremi[1][0];i++)th3->Fill(Depth[i],dEpianiloop[i]); |
for(Int_t i=0;i<=estremi[1][0];i++){ |
| 475 |
|
th3->Fill(Depth[i],dEpianiloop[i]); |
| 476 |
|
// printf(" i %i Depth %f depianiloop %f \n",i,Depth[i],dEpianiloop[i]); |
| 477 |
|
} |
| 478 |
th3->Draw(); |
th3->Draw(); |
| 479 |
th2->Draw("same"); |
th2->Draw("same"); |
| 480 |
|
|
| 596 |
//gcm2W = WCross/10. * rhoW; |
//gcm2W = WCross/10. * rhoW; |
| 597 |
|
|
| 598 |
// (g/cm2W)/(g/cm2Si) |
// (g/cm2W)/(g/cm2Si) |
| 599 |
if ( usenewBB ){ |
spessore[3] = (WCross/10.) * rhoW; |
| 600 |
spessore[1] = (WCross/10.) * rhoW; |
a=(WCross/SiCross)*(rhoW/rhoSi)*(1.145/1.664); //(gcm2W)/(SiCross/10. * rhoSi)* (1.145/1.664); |
| 601 |
} else { |
spessore[1] = a; |
| 602 |
|
//riscala mip allo spessore attraversato |
| 603 |
a=(WCross/SiCross)*(rhoW/rhoSi)*(1.145/1.664); //(gcm2W)/(SiCross/10. * rhoSi)* (1.145/1.664); |
spessore[2] = MIP*(SiCross/ySi); |
|
spessore[1] = a; |
|
|
//riscala mip allo spessore attraversato |
|
|
spessore[2] = MIP*(SiCross/ySi); |
|
|
}; |
|
| 604 |
};//end conversione |
};//end conversione |
| 605 |
|
|
| 606 |
|
|
| 625 |
Float_t lg =0.; |
Float_t lg =0.; |
| 626 |
Float_t Energia=0.; |
Float_t Energia=0.; |
| 627 |
Float_t C=0.; |
Float_t C=0.; |
| 628 |
Float_t INo = II; |
Float_t INo = ISi; |
| 629 |
|
|
| 630 |
if ( usenewBB ) INo = ISi; |
if ( usenewBB ) INo = II; |
| 631 |
|
|
| 632 |
eta = (*gam)*(*Bet); |
eta = (*gam)*(*Bet); |
| 633 |
|
|
| 733 |
Float_t sp = 0.; |
Float_t sp = 0.; |
| 734 |
Float_t II = ISi; |
Float_t II = ISi; |
| 735 |
if ( usenewBB ){ |
if ( usenewBB ){ |
| 736 |
sp = spessore[1]; |
sp = spessore[3]; |
| 737 |
II = IW; |
II = IW; |
| 738 |
} else { |
} else { |
| 739 |
sp = spessore[0]*spessore[1]; //((gcm2Si)*(WinSi))//spessore attraversato in g/cm2 |
sp = spessore[0]*spessore[1]; //((gcm2Si)*(WinSi))//spessore attraversato in g/cm2 |
| 740 |
} |
} |
| 741 |
|
// printf(" sp %f II %f \n",sp,II); |
| 742 |
ELOSS(&sp, Z, &Ezero, &dE,II); |
ELOSS(&sp, Z, &Ezero, &dE,II); |
| 743 |
if((Ezero-dE) <= Massa){//se l'energia depositata e' maggiore dell'energia della perticella stop |
if((Ezero-dE) <= Massa){//se l'energia depositata e' maggiore dell'energia della perticella stop |
| 744 |
return; |
return; |