X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWG1%2FAliAnalysisTaskQASym.cxx;h=7fa25de2789b1fc4cc0c7e213ccd8c91780f4d35;hb=36c8e4e6653257a74461b21b2f00c23be60b337f;hp=8c4a4b050c85aa26ecb89df1fe4a4f53b4985290;hpb=29d9a72b808454fa0d8d1aebbc4125966cb6aabf;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWG1/AliAnalysisTaskQASym.cxx b/PWG1/AliAnalysisTaskQASym.cxx index 8c4a4b050c8..7fa25de2789 100644 --- a/PWG1/AliAnalysisTaskQASym.cxx +++ b/PWG1/AliAnalysisTaskQASym.cxx @@ -39,7 +39,7 @@ ClassImp(AliAnalysisTaskQASym) ,fTrackType(0) ,fStandAlone(0) ,fLow(0) - ,fHigh(100000) + ,fHigh(100) ,fFieldOn(kTRUE) ,fHists(0) ,fHistRECpt(0) @@ -52,6 +52,7 @@ ClassImp(AliAnalysisTaskQASym) ,fEtaPt(0) ,fQPt(0) ,fDca(0) + ,fDcaZ(0) ,fqRec(0) ,fSigmaPtHist(0) @@ -106,9 +107,6 @@ ClassImp(AliAnalysisTaskQASym) ,fVx(0) ,fVy(0) ,fVz(0) - ,fVertexX(0) - ,fVertexY(0) - ,fVertexZ(0) ,fNVertexSPD(0) ,fNVertexTracks(0) ,fRecDcaPosPhi(0) @@ -170,6 +168,12 @@ ClassImp(AliAnalysisTaskQASym) { // Constructor + for(Int_t i = 0;i<4;++i){ + fVertexX[i]=0; + fVertexY[i]=0; + fVertexZ[i]=0; + } + for(Int_t i = 0;i<18;++i){ fRecPtTpcSector[i] = 0; fRecEtaTpcSector[i] = 0; @@ -275,10 +279,10 @@ void AliAnalysisTaskQASym::UserCreateOutputObjects() 180, 0., 2*TMath::Pi()); fNumber = new TH1F("fNumber", "number of tracks per event", - 300, -0.5, 299.5); + 500, -5, 4995); fNumberAfterCut = new TH1F("fNumberAfterCut", "number of tracks per event after cuts", - 300, -0.5, 299.5); + 500, -5, 4995); fVx = new TH1F("fVx", "X of first track point", 100, -1., 1.); @@ -288,15 +292,6 @@ void AliAnalysisTaskQASym::UserCreateOutputObjects() fVz = new TH1F("fVz", "Z of first track point", 200, -50., 50.); - fVertexX = new TH1F("fVertexX", - "X of vertex", - 100, -1., 1.); - fVertexY = new TH1F("fVertexY", - "Y of vertex", - 100, -1., 1.); - fVertexZ = new TH1F("fVertexZ", - "Z of vertex", - 200, -50., 50.); fNVertexSPD = new TH1F("fNVertexSPD", "Number of SPD vertices", 10, -0.5, 9.5); @@ -316,6 +311,8 @@ void AliAnalysisTaskQASym::UserCreateOutputObjects() " dca ", 200, -range*(1+Int_t(fTrackType/2)*9), range*(1+Int_t(fTrackType/2)*9)); + fDcaZ = new TH1F("fDcaZ", "fDcaZ ",200, -range*50*(1+Int_t(fTrackType/2)*9), range*50*(1+Int_t(fTrackType/2)*9)); + fqRec = new TH1F("fqRec", " charge all reconstructed particle", @@ -326,7 +323,25 @@ void AliAnalysisTaskQASym::UserCreateOutputObjects() 200, -4., 8.); - + TString lable[4]={"", "SPD", "Track", "TPC"}; + for(Int_t i=0;i<4;i++){ + fVertexX[i] = new TH1F(Form("fVertexX%s",lable[i].Data()), + Form("fVertexX%s",lable[i].Data()), + 100, -1., 1.); + fVertexY[i] = new TH1F(Form("fVertexY%s",lable[i].Data()), + Form("fVertexY%s",lable[i].Data()), + 100, -1., 1.); + if(i==1 || i==2){ + fVertexZ[i] = new TH1F(Form("fVertexZ%s",lable[i].Data()), + Form("fVertexZ%s",lable[i].Data()), + 200, -5., 5.); + } + else{ + fVertexZ[i] = new TH1F(Form("fVertexZ%s",lable[i].Data()), + Form("fVertexZ%s",lable[i].Data()), + 200, -50., 50.); + } + } //------------ for(Int_t ITSlayer_case=0;ITSlayer_case<7;ITSlayer_case++){ @@ -918,15 +933,13 @@ void AliAnalysisTaskQASym::UserCreateOutputObjects() fHists->Add(fVx); fHists->Add(fVy); fHists->Add(fVz); - fHists->Add(fVertexX); - fHists->Add(fVertexY); - fHists->Add(fVertexZ); fHists->Add(fNVertexSPD); fHists->Add(fNVertexTracks); fHists->Add(fEtaPt); fHists->Add(fQPt); fHists->Add(fDca); + fHists->Add(fDcaZ); fHists->Add(fDeltaPhiAll); fHists->Add(fDeltaPhiLeading); @@ -961,7 +974,11 @@ void AliAnalysisTaskQASym::UserCreateOutputObjects() fHists->Add(fRecDPosEta); fHists->Add(fRecDNegEta); - + for(Int_t i=0;i<4;i++){ + fHists->Add(fVertexX[i]); + fHists->Add(fVertexY[i]); + fHists->Add(fVertexZ[i]); + } for(Int_t i=0;i<18;i++){ fHists->Add(fRecPtTpcSector[i]); fHists->Add(fRecEtaTpcSector[i]); @@ -1091,7 +1108,7 @@ void AliAnalysisTaskQASym::UserExec(Option_t *) if(Entry()==0){ - AliESDEvent* esd = dynamic_cast(event); + AliESDEvent* esd = static_cast(event); if(esd){ Printf("We are reading from ESD"); } @@ -1109,24 +1126,60 @@ void AliAnalysisTaskQASym::UserExec(Option_t *) //check vertices - AliESDEvent* esd = dynamic_cast(event); + AliESDEvent* esd = static_cast(event); Int_t nPileSPDVertices=1+esd->GetNumberOfPileupVerticesSPD(); // also SPD main vertex Int_t nPileTrkVertices=esd->GetNumberOfPileupVerticesTracks(); fNVertexSPD->Fill(nPileSPDVertices); fNVertexTracks->Fill(nPileTrkVertices); - //check primary vertex + Float_t vx = 0; + Float_t vy = 0; + Float_t vz = 0; + + //primary vertex: contribution from different vertexers const AliVVertex* vertex = event->GetPrimaryVertex(); - if(vertex->GetNContributors()==0) return; - Float_t vx = vertex->GetX(); - Float_t vy = vertex->GetY(); - Float_t vz = vertex->GetZ(); + if(!vertex) return; + vx = vertex->GetX(); + vy = vertex->GetY(); + vz = vertex->GetZ(); + if(vertex->GetNContributors()>0){ + fVertexX[0]->Fill(vx); + fVertexY[0]->Fill(vy); + fVertexZ[0]->Fill(vz); + } - fVertexX->Fill(vx); - fVertexY->Fill(vy); - fVertexZ->Fill(vz); + + const AliVVertex* vertexSPD = esd->GetPrimaryVertexSPD(); + if(vertexSPD){ + if(vertexSPD->GetNContributors()>0){ + fVertexX[1]->Fill(vertexSPD->GetX()); + fVertexY[1]->Fill(vertexSPD->GetX()); + fVertexZ[1]->Fill(vertexSPD->GetX()); + } + } + + const AliVVertex* vertexTrack = esd->GetPrimaryVertexTracks(); + if(vertexTrack){ + if(vertexTrack->GetNContributors()>0){ + fVertexX[2]->Fill(vertexTrack->GetX()); + fVertexY[2]->Fill(vertexTrack->GetX()); + fVertexZ[2]->Fill(vertexTrack->GetX()); + } + } + + const AliVVertex* vertexTPC = esd->GetPrimaryVertexTPC(); + if(vertexTPC){ + if(vertexTPC->GetNContributors()>0){ + fVertexX[3]->Fill(vertexTPC->GetX()); + fVertexY[3]->Fill(vertexTPC->GetX()); + fVertexZ[3]->Fill(vertexTPC->GetX()); + } + } + + //cuts on general vertex + if(vertex->GetNContributors()<1) return; if (TMath::Abs(vz) > 10.) return; fNumber->Fill(event->GetNumberOfTracks()); @@ -1162,7 +1215,7 @@ void AliAnalysisTaskQASym::UserExec(Option_t *) } AliVParticle *track = event->GetTrack(iTrack); - AliESDtrack *esdtrack = dynamic_cast(track); + AliESDtrack *esdtrack = static_cast(track); esdtrack->PropagateToDCA(event->GetPrimaryVertex(), event->GetMagneticField(), 10000.); @@ -1178,9 +1231,9 @@ void AliAnalysisTaskQASym::UserExec(Option_t *) if(fTrackType==0){ //Fill all histograms with global tracks tpcP = esdtrack; - phiIn = tpcP->Phi(); if (!tpcP) continue; if (!fCuts->AcceptTrack(tpcP)) continue; + phiIn = tpcP->Phi(); } else if(fTrackType==1){ //Fill all histograms with ITS tracks @@ -1201,7 +1254,7 @@ void AliAnalysisTaskQASym::UserExec(Option_t *) if (!tpcPin) continue; phiIn=tpcPin->Phi(); - tpcP = AliESDtrackCuts::GetTPCOnlyTrack(dynamic_cast(event),esdtrack->GetID()); + tpcP = AliESDtrackCuts::GetTPCOnlyTrack(static_cast(event),esdtrack->GetID()); if (!tpcP) continue; if (!fCuts->AcceptTrack(tpcP)) continue; if(tpcP->GetNcls(1)>160)continue;//jacek's track cut @@ -1312,7 +1365,8 @@ void AliAnalysisTaskQASym::UserExec(Option_t *) tpcP->GetImpactParameters(fXY,fZ); fDiffDcaD->Fill(fSignedDca+fXY); - + fDcaZ->Fill(fZ); + if(fTrackType==2) fCompareTPCparam->Fill(fZ,tpcPin->GetTgl()); if(fTrackType!=2){//for global and ITS tracks @@ -1475,7 +1529,7 @@ void AliAnalysisTaskQASym::UserExec(Option_t *) // if(LeadingTrack==iTrack2) continue; // AliVParticle *track2 = event->GetTrack(iTrack2); -// AliESDtrack* esdtrack2 = dynamic_cast(track2); +// AliESDtrack* esdtrack2 = static_cast(track2); // if (!track2) { // Printf("ERROR: Could not receive track %d", iTrack); // continue;