]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
- filled the vertex histograms in the correct place
authorkkanaki <kkanaki@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 11 Apr 2010 21:32:11 +0000 (21:32 +0000)
committerkkanaki <kkanaki@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 11 Apr 2010 21:32:11 +0000 (21:32 +0000)
- corrected calculation of track DCA to primary vertex

HLT/QA/tasks/AliAnalysisTaskHLT.cxx
HLT/QA/tasks/AliAnalysisTaskHLT.h

index 67191ed37ce60d3375a62161adf44005b3d14317..f700295fa305638d9a883cce08456fdf61025ab1 100644 (file)
@@ -65,6 +65,8 @@ ClassImp(AliAnalysisTaskHLT)
     ,fTheta_off(0)     \r
     ,fMult_off(0)      \r
     ,fXYvertex_off(0)  \r
+    ,fXvertex_off(0)       \r
+    ,fYvertex_off(0)       \r
     ,fZvertex_off(0)       \r
     \r
     ,fMomentum_hlt(0)\r
@@ -76,6 +78,8 @@ ClassImp(AliAnalysisTaskHLT)
     ,fTheta_hlt(0)  \r
     ,fMult_hlt(0)   \r
     ,fXYvertex_hlt(0)\r
+    ,fXvertex_hlt(0)\r
+    ,fYvertex_hlt(0)\r
     ,fZvertex_hlt(0)\r
     \r
 //     ,fDCA_off_trig(0)\r
@@ -157,10 +161,10 @@ void AliAnalysisTaskHLT::UserCreateOutputObjects(){
   fNcluster_hlt = new TH1F("fNcluster_hlt","clusters per track (HLT)",    200, 0, 200);\r
  \r
   fdEdx_off = new TH1F("fdEdx_off","energy loss (offline)",500, 0, 500);\r
-  fdEdx_hlt = new TH1F("fdEdx_hlt","energy loss (HLT)",    500, 0, 500);\r
+  fdEdx_hlt = new TH1F("fdEdx_hlt","energy loss (HLT) - not filled yet",    500, 0, 500);\r
  \r
   fdEdx_vs_P_off = new TH2F("fdEdx_vs_P_off","dE/dx vs. momentum (offline)",100, 0., 100., 500, 0., 500.);\r
-  fdEdx_vs_P_hlt = new TH2F("fdEdx_vs_P_hlt","dE/dx vs. momentum (HLT)",    100, 0., 100., 500, 0., 500.);\r
+  fdEdx_vs_P_hlt = new TH2F("fdEdx_vs_P_hlt","dE/dx vs. momentum (HLT) - not filled yet",    100, 0., 100., 500, 0., 500.);\r
 \r
   fPhi_off = new TH1F("fPhi_off","azimuthal angle distribution",360,0,360);\r
   fPhi_hlt = new TH1F("fPhi_hlt","azimuthal angle distribution",360,0,360);\r
@@ -174,6 +178,12 @@ void AliAnalysisTaskHLT::UserCreateOutputObjects(){
   fXYvertex_off = new TH2F("fXYvertex_off","XY primary vertex (offline)",60,-15,15,80,-20,20);\r
   fXYvertex_hlt = new TH2F("fXYvertex_hlt","XY primary vertex (HLT)",    60,-15,15,80,-20,20);\r
   \r
+  fXvertex_off = new TH1F("fXvertex_off","X primary vertex (offline)",80,-20,20);\r
+  fXvertex_hlt = new TH1F("fXvertex_hlt","X primary vertex (HLT)",    80,-20,20);\r
\r
+  fYvertex_off = new TH1F("fYvertex_off","Y primary vertex (offline)",80,-20,20);\r
+  fYvertex_hlt = new TH1F("fYvertex_hlt","Y primary vertex (HLT)",    80,-20,20);\r
\r
   fZvertex_off = new TH1F("fZvertex_off","Z primary vertex (offline)",80,-20,20);\r
   fZvertex_hlt = new TH1F("fZvertex_hlt","Z primary vertex (HLT)",    80,-20,20);\r
  \r
@@ -192,6 +202,8 @@ void AliAnalysisTaskHLT::UserCreateOutputObjects(){
   fOutputList->Add(fTheta_off);    \r
   fOutputList->Add(fMult_off);   \r
   fOutputList->Add(fXYvertex_off); \r
+  fOutputList->Add(fXvertex_off);  \r
+  fOutputList->Add(fYvertex_off);  \r
   fOutputList->Add(fZvertex_off);  \r
   \r
   fOutputList->Add(fMomentum_hlt); \r
@@ -203,8 +215,9 @@ void AliAnalysisTaskHLT::UserCreateOutputObjects(){
   fOutputList->Add(fTheta_hlt);    \r
   fOutputList->Add(fMult_hlt);   \r
   fOutputList->Add(fXYvertex_hlt); \r
-  fOutputList->Add(fZvertex_hlt);  \r
-  \r
+  fOutputList->Add(fXvertex_hlt);  \r
+  fOutputList->Add(fYvertex_hlt);  \r
+  fOutputList->Add(fZvertex_hlt);    \r
 }\r
 \r
 void AliAnalysisTaskHLT::NotifyRun(){\r
@@ -261,10 +274,6 @@ void AliAnalysisTaskHLT::UserExec(Option_t *){
       return;\r
   }\r
 \r
-  Double_t bfield = esdOFF->GetMagneticField();\r
-  \r
-  Double_t pos[] = { 0., 0., 0.};\r
-  AliVertex *vtx = new AliVertex(pos, 0., 0);\r
   \r
   //Fill CTP Trigger stuff\r
   //fHistTrigger->Fill(esdOFF->GetTriggerMask());\r
@@ -276,39 +285,66 @@ void AliAnalysisTaskHLT::UserExec(Option_t *){
 \r
 \r
 \r
-\r
-  \r
+  Double_t bfield = esdOFF->GetMagneticField();\r
\r
+  //---------------- HLT ESD tree -----------------------//\r
+      \r
   fMult_hlt->Fill( esdHLT->GetNumberOfTracks() );\r
-\r
-  //---------------- loop over HLT ESD tree -------------//\r
+        \r
+  Double_t vertexHLT[3];\r
+  vertexHLT[0] = esdHLT->GetPrimaryVertex()->GetXv();\r
+  vertexHLT[1] = esdHLT->GetPrimaryVertex()->GetYv();\r
+  vertexHLT[2] = esdHLT->GetPrimaryVertex()->GetZv();\r
+  AliVertex *primVertex_hlt = new AliVertex(vertexHLT, 0., 0);\r
+  fXYvertex_hlt->Fill( esdHLT->GetPrimaryVertex()->GetXv(), esdHLT->GetPrimaryVertex()->GetYv() );\r
+  fXvertex_hlt->Fill( esdHLT->GetPrimaryVertex()->GetXv() );\r
+  fYvertex_hlt->Fill( esdHLT->GetPrimaryVertex()->GetYv() );\r
+  fZvertex_hlt->Fill( esdHLT->GetPrimaryVertex()->GetZv() );\r
   \r
   for(Int_t i=0; i<esdHLT->GetNumberOfTracks(); i++){ \r
   \r
       AliESDtrack *esdtrackHLT = esdHLT->GetTrack(i); \r
       if(esdtrackHLT){ \r
-         \r
+               \r
         fNcluster_hlt->Fill(esdtrackHLT->GetTPCNcls()); \r
                \r
         //Double_t dz[2]    = {-999., -999.};   \r
         //Double_t covar[3] = {0.,0.,0.};               \r
-        //esdtrackHLT->PropagateToDCA(vtx, bfield, 250., dz, covar);  \r
+        //esdtrackHLT->PropagateToDCA(primVertex_hlt, bfield, 250., dz, covar);  \r
         //fHistOnlDZ->Fill(TMath::Abs(dz[0]), TMath::Abs(dz[1])); // z resolution \r
          \r
-         fDCA_hlt->Fill( TMath::Abs(esdtrackHLT->GetD(0., 0., bfield)) ); \r
+         fDCA_hlt->Fill( TMath::Abs(esdtrackHLT->GetD(esdHLT->GetPrimaryVertex()->GetXv(), esdHLT->GetPrimaryVertex()->GetYv(), bfield)) ); \r
          fMomentum_hlt->Fill( TMath::Abs(esdtrackHLT->P()) ); \r
          fdEdx_hlt->Fill( esdtrackHLT->GetTPCsignal() );\r
          fdEdx_vs_P_hlt->Fill( TMath::Abs(esdtrackHLT->P()), esdtrackHLT->GetTPCsignal() );         \r
          fPhi_hlt->Fill(esdtrackHLT->Phi()*TMath::RadToDeg());\r
          fTheta_hlt->Fill(esdtrackHLT->Theta()*TMath::RadToDeg());\r
         \r
-        fXYvertex_hlt->Fill( esdHLT->GetPrimaryVertex()->GetX(), esdHLT->GetPrimaryVertex()->GetY() );\r
-        fZvertex_hlt->Fill( esdHLT->GetPrimaryVertex()->GetZ() );\r
-      } \r
-  } \r
+        if(esdHLT->IsHLTTriggerFired()){\r
+           \r
+        \r
+        \r
+        } // end if for triggered hlt events\r
+      } // end if esdtrack is kTRUE\r
+  } // end of loop over hlt tracks\r
+  \r
+  \r
+  \r
+  \r
+  //----------------- OFFLINE ESD tree ----------------//\r
   \r
   fMult_off->Fill( esdOFF->GetNumberOfTracks() );\r
+\r
+  Double_t vertexOFF[3];\r
+  vertexOFF[0] = esdOFF->GetPrimaryVertex()->GetXv();\r
+  vertexOFF[1] = esdOFF->GetPrimaryVertex()->GetYv();\r
+  vertexOFF[2] = esdOFF->GetPrimaryVertex()->GetZv();\r
+  AliVertex *primVertex_off = new AliVertex(vertexOFF, 0., 0);\r
+  fXYvertex_off->Fill( esdOFF->GetPrimaryVertex()->GetXv(), esdOFF->GetPrimaryVertex()->GetYv() );\r
+  fXvertex_off->Fill( esdOFF->GetPrimaryVertex()->GetXv() );\r
+  fYvertex_off->Fill( esdOFF->GetPrimaryVertex()->GetYv() );\r
+  fZvertex_off->Fill( esdOFF->GetPrimaryVertex()->GetZv() );\r
   \r
-  //----------------- loop over OFFLINE ESD tree ----------------//\r
   \r
   for(Int_t i=0; i<esdOFF->GetNumberOfTracks(); i++){ \r
      \r
@@ -319,94 +355,24 @@ void AliAnalysisTaskHLT::UserExec(Option_t *){
                \r
         //Double_t dz[2]    = {-999., -999.};   \r
         //Double_t covar[3] = {0.,0.,0.};               \r
-        //esdtrackOFF->PropagateToDCA(vtx, bfield, 250., dz, covar);  \r
+        //esdtrackOFF->PropagateToDCA(primVertex_off, bfield, 250., dz, covar);  \r
         //fHistOfflDZ->Fill(TMath::Abs(dz[0]), TMath::Abs(dz[1])); // z resolution \r
          \r
-         fDCA_off->Fill( TMath::Abs(esdtrackOFF->GetD(0., 0., bfield)) ); \r
+         fDCA_off->Fill( TMath::Abs(esdtrackOFF->GetD(esdOFF->GetPrimaryVertex()->GetXv(), esdOFF->GetPrimaryVertex()->GetYv(), bfield)) ); \r
          fMomentum_off->Fill( TMath::Abs(esdtrackOFF->P()) ); \r
          fdEdx_off->Fill( esdtrackOFF->GetTPCsignal() );\r
          fdEdx_vs_P_off->Fill( TMath::Abs(esdtrackOFF->P()), esdtrackOFF->GetTPCsignal() );         \r
          fPhi_off->Fill(esdtrackOFF->Phi()*TMath::RadToDeg());\r
          fTheta_off->Fill(esdtrackOFF->Theta()*TMath::RadToDeg());\r
         \r
-        fXYvertex_off->Fill( esdOFF->GetPrimaryVertex()->GetX(), esdOFF->GetPrimaryVertex()->GetY() );\r
-        fZvertex_off->Fill( esdOFF->GetPrimaryVertex()->GetZ() );\r
-      } \r
-     \r
-//       AliESDtrack *esdTrk = esdOFF->GetTrack(i);      \r
-//       Double_t dz[2] = {-999., -999.};  \r
-//       Double_t covar[3] = {0};\r
-//       esdTrk->PropagateToDCA(vtx, bfield, 250., dz, covar);\r
-//       fHistOfflDZTrig->Fill(TMath::Abs(dz[0]), TMath::Abs(dz[1]));\r
-//    \r
-//       fHistOfflDZ->Fill(TMath::Abs(dz[0]), TMath::Abs(dz[1]));\r
-// \r
-//       fHistOfflTrkDCATrig->Fill(TMath::Abs(esdTrk->GetD(0., 0., bfield)));\r
-//       fDCA_off->Fill(TMath::Abs(esdTrk->GetD(0., 0., bfield))); \r
-// \r
-//       if(esdTrk->GetTPCNcls()>0){\r
-//              fHistOfflTrkNclsTrig->Fill(esdTrk->GetTPCNcls()); \r
-//              fHistOfflTrkNcls->Fill(esdTrk->GetTPCNcls());\r
-//       }\r
-// \r
-//       fHistOfflTrkPTrig->Fill(TMath::Abs(esdTrk->P()));\r
-//       fHistOfflTrkP->Fill(TMath::Abs(esdTrk->P()));\r
-//       fHistOffldEdx->Fill( esdTrk->GetTPCsignal());\r
-//       fHistOffldEdxVsP->Fill(TMath::Abs(esdTrk->P()), esdTrk->GetTPCsignal());\r
-  }\r
-\r
+        if(esdHLT->IsHLTTriggerFired()){\r
+        \r
+        \r
+        \r
+        } // end if for triggered hlt events\r
+      } // end if esdtrack is kTRUE    \r
+  } // end of loop over hlt tracks\r
 \r
-//   if(esdHLT->IsHLTTriggerFired()){\r
-//      \r
-//      for(Int_t i=0; i<fTrgClsArray->GetEntries(); i++){ \r
-//          if((esdOFF->GetFiredTriggerClasses()).Contains(((TObjString *)fTrgClsArray->At(i))->GetString())) fHistHLTTrigger->Fill(i);\r
-//      } \r
-//      \r
-//      for(Int_t i=0; i<esdHLT->GetNumberOfTracks(); i++){\r
-//          AliESDtrack * esdtrackHLT = esdHLT->GetTrack(i);\r
-//         \r
-//       if(esdtrackHLT->GetTPCNcls()>0){\r
-//      fNcluster_hlt->Fill(esdtrackHLT->GetTPCNcls());\r
-//      fNcluster_hlt_trig->Fill(esdtrackHLT->GetTPCNcls());\r
-//       }\r
-//     \r
-//       Double_t dz[2] = {-999., -999.};  \r
-//       Double_t covar[3] = {0.};\r
-//       \r
-//       esdtrackHLT->PropagateToDCA(vtx, bfield, 250., dz, covar); \r
-//       fHistOnlDZ->Fill(TMath::Abs(dz[0]), TMath::Abs(dz[1])); \r
-//       \r
-//       if(esdtrackHLT){\r
-//      fDCA_hlt->Fill(TMath::Abs(esdtrackHLT->GetD(0., 0., bfield)));\r
-//      fMomentum_hlt->Fill(TMath::Abs(esdtrackHLT->P()));\r
-//      fdEdx_hlt->Fill(esdtrackHLT->GetTPCsignal());\r
-//      fdEdx_vs_P_hlt->Fill(TMath::Abs(esdtrackHLT->P()), esdtrackHLT->GetTPCsignal()); \r
-//      fDCA_hlt_trig->Fill(TMath::Abs(esdtrackHLT->GetD(0., 0., bfield)));\r
-//       }\r
-//      }\r
-//   } else {\r
-//     for(Int_t i=0; i<esdHLT->GetNumberOfTracks(); i++){ \r
-//     \r
-//         AliESDtrack *esdtrackHLT = esdHLT->GetTrack(i); \r
-//         if(esdtrackHLT->GetTPCNcls()>0) fNcluster_hlt->Fill(esdtrackHLT->GetTPCNcls()); \r
-//                   \r
-//         Double_t dz[2] = {-999., -999.};   \r
-//         Double_t covar[3] = {0.}; \r
-//       \r
-//         esdtrackHLT->PropagateToDCA(vtx, bfield, 250., dz, covar);  \r
-//         fHistOnlDZ->Fill(TMath::Abs(dz[0]), TMath::Abs(dz[1]));  \r
-//       \r
-//         if(esdtrackHLT){ \r
-//        fDCA_hlt->Fill(TMath::Abs(esdtrackHLT->GetD(0., 0., bfield))); \r
-//        fMomentum_hlt->Fill(TMath::Abs(esdtrackHLT->P())); \r
-//        fdEdx_hlt->Fill( esdtrackHLT->GetTPCsignal());\r
-//        fdEdx_vs_P_hlt->Fill(TMath::Abs(esdtrackHLT->P()), esdtrackHLT->GetTPCsignal());\r
-//        \r
-//        fPhi_hlt->Fill(esdtrackHLT->Phi()*TMath::RadToDeg());\r
-//        fTheta_hlt->Fill(esdtrackHLT->Theta()*TMath::RadToDeg());\r
-//         } \r
-//     } \r
-//   }\r
 \r
 \r
 //   if(esdHLT->IsHLTTriggerFired()){\r
@@ -447,40 +413,10 @@ void AliAnalysisTaskHLT::UserExec(Option_t *){
 //          fHistOffldEdx->Fill( esdTrk->GetTPCsignal());\r
 //          fHistOffldEdxVsP->Fill(TMath::Abs(esdTrk->P()), esdTrk->GetTPCsignal());\r
 //      }\r
-//   } else {\r
-// \r
-//     for(Int_t i=0; i<esdOFF->GetNumberOfTracks(); i++){ \r
-//       \r
-//         AliESDtrack * esdTrk = esdOFF->GetTrack(i); \r
-//         Double_t dz[2] = {0};  \r
-//         Double_t covar[3] = {0};\r
-//         esdTrk->PropagateToDCA(vtx, bfield, 250., dz, covar); \r
-//         fHistOfflDZNoTrig->Fill(TMath::Abs(dz[0]), TMath::Abs(dz[1])); \r
-// \r
-//         fHistOfflDZ->Fill(TMath::Abs(dz[0]), TMath::Abs(dz[1]));\r
-//         \r
-//         fHistOfflTrkDCANoTrig->Fill(TMath::Abs(esdTrk->GetD(0., 0., bfield)));\r
-//       \r
-//         if(esdTrk->GetTPCNcls()>0) fHistOfflTrkNclsNoTrig->Fill(esdTrk->GetTPCNcls()); \r
-//       \r
-//         if(esdTrk->GetTPCNcls()>=60) fHistOfflTrkDCANoTrigNclsCut1->Fill(TMath::Abs(esdTrk->GetD(0., 0., bfield)));\r
-//         else fHistOfflTrkDCANoTrigNclsCut2->Fill(TMath::Abs(esdTrk->GetD(0., 0., bfield)));\r
-//       \r
-//         fDCA_off->Fill(TMath::Abs(esdTrk->GetD(0., 0., bfield)));\r
-//         fHistOfflTrkNcls->Fill(esdTrk->GetTPCNcls());\r
-//       \r
-//         fHistOfflTrkPNoTrig->Fill(TMath::Abs(esdTrk->P()));\r
-//         fHistOfflTrkP->Fill(TMath::Abs(esdTrk->P()));\r
-//         fHistOffldEdx->Fill( esdTrk->GetTPCsignal());\r
-//         fHistOffldEdxVsP->Fill(TMath::Abs(esdTrk->P()), esdTrk->GetTPCsignal());\r
-//     \r
-//     fPhi_off->Fill(esdTrk->Phi()*TMath::RadToDeg());\r
-//     fTheta_off->Fill(esdTrk->Theta()*TMath::RadToDeg());\r
-//     }       \r
-//   }\r
 \r
   fNevt++;\r
-  delete vtx;\r
+  delete primVertex_off;\r
+  delete primVertex_hlt;\r
 \r
   // Post output data.\r
   PostData(1, fOutputList);\r
index 46ec5008c9440dbe09d62f99a194af3383c755ff..98d67b246359d3c07ec2494457267514e367c31a 100644 (file)
@@ -55,6 +55,8 @@ class AliAnalysisTaskHLT : public AliAnalysisTaskSE {
     TH1F *fTheta_off;      //! polar angle distribution\r
     TH1F *fMult_off;       //! track multiplicity of the event\r
     TH2F *fXYvertex_off;   //! XY primary vertex distribution\r
+    TH1F *fXvertex_off;    //! X primary vertex distribution\r
+    TH1F *fYvertex_off;    //! Y primary vertex distribution\r
     TH1F *fZvertex_off;    //! Z primary vertex distribution\r
     \r
     TH1F  *fMomentum_hlt; \r
@@ -66,12 +68,15 @@ class AliAnalysisTaskHLT : public AliAnalysisTaskSE {
     TH1F  *fTheta_hlt;    \r
     TH1F  *fMult_hlt;    \r
     TH2F  *fXYvertex_hlt; \r
+    TH1F  *fXvertex_hlt;  \r
+    TH1F  *fYvertex_hlt;  \r
     TH1F  *fZvertex_hlt;  \r
    \r
-//     TH1F *fDCA_off_trig,      *fDCA_hlt_trig;      //! track DCA to beam line for triggered events\r
-//     TH1F *fNcluster_off_trig, *fNcluster_hlt_trig; //! #clusters per track for triggered events\r
-   \r
-   \r
+//     TH1F *fDCA_off_trig;      //! track DCA to beam line for triggered events\r
+//     TH1F *fNcluster_off_trig; //! #clusters per track for triggered events\r
+//     \r
+//     TH1F *fDCA_hlt_trig;     \r
+//     TH1F *fNcluster_hlt_trig;\r
    \r
    \r
 //     TH1F *fHistOfflTrkDCANoTrigNclsCut1; //! with cut on #clusters>=60\r