]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Matching to external detectors:
authormiweber <miweber@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 15 Jul 2013 22:52:53 +0000 (22:52 +0000)
committermiweber <miweber@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 15 Jul 2013 22:52:53 +0000 (22:52 +0000)
- adding original and refitted tracks propagated to outer ITS layer
- adding plots in macro

TPC/Upgrade/AliToyMCReconstruction.cxx
TPC/Upgrade/macros/toyMCRecPlots.C

index aa74966a20d18c123323331f0507b04358aa10f6..2c671e44707b00aeb94a4a3de5463d686095927b 100644 (file)
@@ -99,7 +99,9 @@ void AliToyMCReconstruction::RunReco(const char* file, Int_t nmaxEv)
   AliExternalTrackParam t0seed;
   AliExternalTrackParam seed;
   AliExternalTrackParam track;
+  AliExternalTrackParam trackITS;
   AliExternalTrackParam tOrig;
+  AliExternalTrackParam tOrigITS;
 
   AliExternalTrackParam *dummy;
   
@@ -154,11 +156,24 @@ void AliToyMCReconstruction::RunReco(const char* file, Int_t nmaxEv)
             delete dummy;
           }
 
+         // Copy original track and fitted track
+         // for extrapolation to ITS last layer
+         tOrigITS = *tr;
+         trackITS = track;
+
           // propagate seed to 0
           const Double_t kMaxSnp = 0.85;
           const Double_t kMass = TDatabasePDG::Instance()->GetParticle("pi+")->Mass();
           AliTrackerBase::PropagateTrackTo(&seed,0,kMass,5,kTRUE,kMaxSnp,0,kFALSE,fUseMaterial);
-          
+
+         // propagate original track to ITS last layer
+         Double_t lastLayerITS = 43.0; // same as in AliToyMCEventGenerator::MakeITSClusters (hard coded)
+         AliTrackerBase::PropagateTrackTo(&tOrigITS,lastLayerITS,kMass,1,kTRUE,kMaxSnp,0,kFALSE,fUseMaterial);
+
+         // rotate fitted track to the frame of the original track and propagate to same reference
+         trackITS.Rotate(tOrigITS.GetAlpha());
+          AliTrackerBase::PropagateTrackTo(&trackITS,lastLayerITS,kMass,5,kTRUE,kMaxSnp,0,kFALSE,fUseMaterial);
+                   
         }
       }
 
@@ -181,6 +196,8 @@ void AliToyMCReconstruction::RunReco(const char* file, Int_t nmaxEv)
         "seed.="       << &seed           <<
         "track.="      << &track          <<
         "tOrig.="      << &tOrig          <<
+        "trackITS.="   << &trackITS       <<
+        "tOrigITS.="   << &tOrigITS       <<
         "\n";
       }
       
@@ -480,8 +497,7 @@ void AliToyMCReconstruction::RunRecoAllClustersStandardTracking(const char* file
   for (Int_t sec=0;sec<fkNSectorOuter;sec++){
     //
     //tpcTracker->MakeSeeds3(arr, sec,upperRow,lowerRow,cuts,-1,1);
-//     MakeSeeds(arr, sec,upperRow,lowerRow); // own function (based on TLinearFitter)
-    MakeSeeds2(arr, sec,upperRow,lowerRow); // own function (based on TLinearFitter)
+    MakeSeeds(arr, sec,upperRow,lowerRow); // own function (based on TLinearFitter)
     //tpcTracker->SumTracks(seeds,arr);   
     //tpcTracker->SignClusters(seeds,3.0,3.0);    
 
index a9ef6484c1a4b88397b3cb6978570ed66e2ee137..eb27b68ee1e14dacea534ddcc837563cc2bef97c 100644 (file)
@@ -17,6 +17,7 @@ void toyMCRecPlots(TString inFileName = "toyMC.debug.root",Bool_t doPlots = kFAL
   const Int_t nT02D        = 2;
   const Int_t nZ0          = 2;
   const Int_t nTrackParams = 9;
+  const Int_t nTrackParamsITS = 9;
   const Int_t nEff         = 1;
 
   Int_t col = kBlack;
@@ -24,6 +25,7 @@ void toyMCRecPlots(TString inFileName = "toyMC.debug.root",Bool_t doPlots = kFAL
   TString sT0[nT0] = {"fTime0-t0","fTime0-t0+z0*TMath::Sign(1,tOrig.Eta())/vDrift"};
   TString sT02D[nT02D] = {"fTime0-t0+z0*TMath::Sign(1,tOrig.Eta())/vDrift:tOrig.fP[3]","fTime0-t0+z0*TMath::Sign(1,tOrig.Eta())/vDrift:tOrig.fP[4]"};
   TString sTrackParams[nTrackParams] = {"track.fP[0]-tOrig.fP[0]","track.fP[1]-tOrig.fP[1]","track.fP[2]-tOrig.fP[2]","track.fP[3]-tOrig.fP[3]","track.fP[4]-tOrig.fP[4]","track.fAlpha-tOrig.fAlpha","track.fX/tOrig.fX","track.fP[0]/tOrig.fP[0]","track.fP[1]/tOrig.fP[1]"};
+  TString sTrackParamsITS[nTrackParamsITS] = {"trackITS.fP[0]-tOrigITS.fP[0]","trackITS.fP[1]-tOrigITS.fP[1]","trackITS.fP[2]-tOrigITS.fP[2]","trackITS.fP[3]-tOrigITS.fP[3]","trackITS.fP[4]-tOrigITS.fP[4]","trackITS.fAlpha-tOrigITS.fAlpha","trackITS.fX/tOrigITS.fX","trackITS.fP[0]/tOrigITS.fP[0]","trackITS.fP[1]/tOrigITS.fP[1]"};
   TString sZ0[nZ0] = {"(fTime0-t0)*vDrift","(fTime0-t0+z0*TMath::Sign(1,tOrig.Eta())/vDrift)*vDrift"};
   TString sEff[nEff] = {"nSeedClustersID/nClustersMC:nSeedClusters/nClustersMC"};
 
@@ -31,6 +33,7 @@ void toyMCRecPlots(TString inFileName = "toyMC.debug.root",Bool_t doPlots = kFAL
   TString tT0[nT0] = {"T_{0} resolution","intrinsic T_{0} resolution"};
   TString tT02D[nT0] = {"intrinsic T_{0} resolution vs. tan#lambda","intrinsic T_{0} resolution vs. 1/p_{T}"};
   TString tTrackParams[nTrackParams] = {"local y","z","sin inclination angle","tan#lambda","1/p_{T}","#alpha","X","Y","Z"};
+  TString tTrackParamsITS[nTrackParamsITS] = {"local y","z","sin inclination angle","tan#lambda","1/p_{T}","#alpha","X","Y","Z"};
   TString tZ0[nZ0] = {"Z_{0} resolution","intrinsic Z_{0} resolution"};
   TString tEff[nEff] = {"nSeedClustersID/nClustersMC:nSeedClusters/nClustersMC"};
 
@@ -70,6 +73,9 @@ void toyMCRecPlots(TString inFileName = "toyMC.debug.root",Bool_t doPlots = kFAL
   TCanvas *cTrackParams = new TCanvas(Form("cTrackParams_%s",sConfig.Data()),Form("cTrackParams_%s",sConfig.Data()),1200,900);
   cTrackParams->Divide(3,3);
 
+  TCanvas *cTrackParamsITS = new TCanvas(Form("cTrackParamsITS_%s",sConfig.Data()),Form("cTrackParamsITS_%s",sConfig.Data()),1200,900);
+  cTrackParamsITS->Divide(3,3);
+
   TCanvas *cEff = new TCanvas(Form("cEff_%s",sConfig.Data()),Form("cEff_%s",sConfig.Data()),1200,900);
   //cEff->Divide(2,1);
 
@@ -122,14 +128,25 @@ void toyMCRecPlots(TString inFileName = "toyMC.debug.root",Bool_t doPlots = kFAL
 
   }
 
-  // draw cluster efficiency
-  for(Int_t iEff = 0; iEff < nEff; iEff ++){
-    
-    //cEff->cd(iEff+1);
-    cEff->cd();
-    TStatToolkit::DrawHistogram(Tracks,sEff[iEff].Data(),sSel.Data(),Form("hEff_%s_%d",sConfig.Data(),iEff),Form("%s",tEff[iEff].Data()),3);
+
+  // draw track parameters at ITS outer layer
+  for(Int_t iTrackParamsITS = 0; iTrackParamsITS < nTrackParamsITS; iTrackParamsITS ++){
+
+    cTrackParamsITS->cd(iTrackParamsITS+1);
+    TStatToolkit::DrawHistogram(Tracks,sTrackParamsITS[iTrackParamsITS].Data(),sSel.Data(),Form("hTrackParamsITS_%s_%d",sConfig.Data(),iTrackParamsITS),Form("%s",tTrackParamsITS[iTrackParamsITS].Data()),3);
     
+  }
 
+
+  // draw cluster efficiency
+  if(inFileName.Contains("allClusters")){  
+    for(Int_t iEff = 0; iEff < nEff; iEff ++){
+      
+      //cEff->cd(iEff+1);
+      cEff->cd();
+      TStatToolkit::DrawHistogram(Tracks,sEff[iEff].Data(),sSel.Data(),Form("hEff_%s_%d",sConfig.Data(),iEff),Form("%s",tEff[iEff].Data()),3);   
+      
+    }
   }
   
   // plots
@@ -140,13 +157,17 @@ void toyMCRecPlots(TString inFileName = "toyMC.debug.root",Bool_t doPlots = kFAL
     cZ0->SaveAs(Form("%s_Z0.eps",outFileName.Data()));
     cT02D->SaveAs(Form("%s_T02D.eps",outFileName.Data()));
     cTrackParams->SaveAs(Form("%s_TrackParams.eps",outFileName.Data()));
-    cEff->SaveAs(Form("%s_Eff.eps",outFileName.Data()));
+    cTrackParamsITS->SaveAs(Form("%s_TrackParamsITS.eps",outFileName.Data()));
+    if(inFileName.Contains("allClusters"))
+      cEff->SaveAs(Form("%s_Eff.eps",outFileName.Data()));
 
     cT0->SaveAs(Form("%s_T0.png",outFileName.Data()));
     cZ0->SaveAs(Form("%s_Z0.png",outFileName.Data()));
     cT02D->SaveAs(Form("%s_T02D.png",outFileName.Data()));
     cTrackParams->SaveAs(Form("%s_TrackParams.png",outFileName.Data()));
-    cEff->SaveAs(Form("%s_Eff.eps",outFileName.Data()));
+    cTrackParamsITS->SaveAs(Form("%s_TrackParamsITS.png",outFileName.Data()));
+    if(inFileName.Contains("allClusters"))
+      cEff->SaveAs(Form("%s_Eff.eps",outFileName.Data()));
 
   }
 }