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; |