,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
,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
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
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
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
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
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
\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
\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
// 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