Skip to content

Commit 32dde1a

Browse files
authored
Align DetectorK to Ruben's latest (#69)
* Align DetectorK to Ruben's latest: part1 - Align to shahor02/FT1rs@47dc282 * The MS was accounted on the for the materials between the TPC and ITS but not the e.loss (the xrho = 0 was passed). * The addition of padrows as layers was done in a wrong way, phiResMean was passed instead of the rrho=0 * Align DetectorK to Ruben's latest: part2 - shahor02/FT1rs@da11fdf * Recalculated all 3 passive layers between the ITS and TPC active ones using current O2 geometry
1 parent dbd9542 commit 32dde1a

1 file changed

Lines changed: 15 additions & 11 deletions

File tree

src/DetectorK/DetectorK.cxx

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -525,12 +525,13 @@ void DetectorK::AddTPC(Float_t phiResMean, Float_t zResMean, Int_t skip) {
525525
// skip=1: Use every padrow, skip=2: Signal in every 2nd padrow
526526

527527

528-
AddLayer((char*)"tpcIFC", 77.8, 0.01367); // Inner Field cage
529-
AddLayer((char*)"tpcOFC", 254.0, 0.01367); // Outer Field cage
528+
AddLayer((char*)"tpcIFC", 77.8, 9.279967e-02, 3.325701e+00); // Inner Field cage
529+
AddLayer((char*)"tpcOFC", 254.0, 9.279967e-02, 3.325701e+00); // Outer Field cage
530530

531531
// % Radiation Lengths ... Average per TPC row (i.e. total/159 )
532532
const int kNPassiveBound = 2;
533-
const Float_t radLBoubdary[kNPassiveBound] = {0.05, 0.0165};
533+
const Float_t radLBoundary[kNPassiveBound] = {1.692612e-01, 8.711904e-02};
534+
const Float_t xrhoBoundary[kNPassiveBound] = {6.795774e+00, 3.111401e+00};
534535
const Float_t rBoundary[kNPassiveBound] = {50, 70.0}; // cm
535536

536537
Float_t radLPerRow = 0.000036;
@@ -551,7 +552,7 @@ void DetectorK::AddTPC(Float_t phiResMean, Float_t zResMean, Int_t skip) {
551552

552553
// add boundaries between ITS and TPC
553554
for (int i=0;i<kNPassiveBound;i++) {
554-
AddLayer(Form("tpc_boundary%d",i),rBoundary[i],radLBoubdary[i]); // dummy errors
555+
AddLayer(Form("tpc_boundary%d",i),rBoundary[i],radLBoundary[i], xrhoBoundary[i]); // dummy errors
555556
}
556557

557558
for ( Int_t k = 0 ; k < tpcRows ; k++ ) {
@@ -565,9 +566,9 @@ void DetectorK::AddTPC(Float_t phiResMean, Float_t zResMean, Int_t skip) {
565566
rowRadius = row128Radius + (k-innerRows-middleRows+1)*tpcOuterRadialPitch ;
566567

567568
if ( k%skip == 0 )
568-
AddLayer(Form("tpc_%d",k),rowRadius,radLPerRow,phiResMean,zResMean);
569+
AddLayer(Form("tpc_%d",k),rowRadius,radLPerRow, 0, phiResMean,zResMean);
569570
else
570-
AddLayer(Form("tpc_%d",k),rowRadius,radLPerRow); // non "active" row
571+
AddLayer(Form("tpc_%d",k),rowRadius,radLPerRow, 0); // non "active" row
571572

572573

573574
}
@@ -791,12 +792,12 @@ void DetectorK::SolveViaBilloir(Double_t selPt, double ptmin) {
791792
// Calculate track parameters using Billoirs method of matrices
792793

793794
Double_t pt,tgl, lambda, deltaPoverP ;
794-
Double_t charge ;
795+
Double_t charge = 1;
795796
Int_t printOnce = 1 ;
796797

797798
Int_t mStart =0;
798799

799-
800+
if ( TMath::Abs(charge)>1.2) fParticleMass = -TMath::Abs(fParticleMass);
800801

801802
// Prepare Probability Kombinations
802803
Int_t nLayer = fNumberOfActiveITSLayers;
@@ -890,7 +891,7 @@ void DetectorK::SolveViaBilloir(Double_t selPt, double ptmin) {
890891
trCov[kY2] = trCov[kZ2] = trCov[kSnp2] = trCov[kTgl2] = trCov[kPtI2] = 1e-9;
891892
//
892893
// find max layer this track can reach
893-
double rmx = (TMath::Abs(fBField)>1e-5) ? pt*100./(0.3*TMath::Abs(fBField)) : 9999;
894+
double rmx = (TMath::Abs(fBField)>1e-5) ? TMath::Abs(charge)*pt*100./(0.3*TMath::Abs(fBField)) : 9999;
894895
Int_t lastActiveLayer = -1;
895896
for (Int_t j=fLayers.GetEntries(); j--;) {
896897
CylLayerK *l = (CylLayerK*) fLayers.At(j);
@@ -928,10 +929,13 @@ void DetectorK::SolveViaBilloir(Double_t selPt, double ptmin) {
928929
lastReached = il;
929930
prepLrOK[il] = 1.; // flag successfully passed layer
930931
}
931-
if ( ((CylLayerK*)fLayers.At(lastReached))->radius < fMinRadTrack) continue;
932+
// if ( ((CylLayerK*)fLayers.At(lastReached))->radius < fMinRadTrack) continue;
932933
if (!PropagateToR(&probTr,probTr.GetX() + kTrackingMargin,bGauss,1)) continue;
933-
if (probTr.GetX()<fMinRadTrack) continue;
934+
// if (probTr.GetX()<fMinRadTrack) continue;
934935
lastActiveLayer = lastReached;
936+
if (lastActiveLayer<fNumberOfActiveITSLayers) {
937+
continue;
938+
}
935939

936940
// if (!PropagateToR(&probTr,last->radius + kTrackingMargin,bGauss,1)) continue;
937941
//if (!probTr.PropagateTo(last->radius,bGauss)) continue;

0 commit comments

Comments
 (0)