X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWG1%2FAliAnalysisTaskQASym.cxx;h=b61825d68596722d2c61490016c0059c754e0bde;hb=5c8ae5fb7e4fba988199146f44a4a61885494344;hp=a3e92edd12bcc9fb201c06996e02347d49560e14;hpb=180ce92643f173484ca676f686351e6b80fbaa13;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWG1/AliAnalysisTaskQASym.cxx b/PWG1/AliAnalysisTaskQASym.cxx index a3e92edd12b..b61825d6859 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, -3, 3);// limits fitting those of track cuts + 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()), + 250, -1., 1.); + fVertexY[i] = new TH1F(Form("fVertexY%s",lable[i].Data()), + Form("fVertexY%s",lable[i].Data()), + 250, -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->GetY()); + fVertexZ[1]->Fill(vertexSPD->GetZ()); + } + } + + const AliVVertex* vertexTrack = esd->GetPrimaryVertexTracks(); + if(vertexTrack){ + if(vertexTrack->GetNContributors()>0){ + fVertexX[2]->Fill(vertexTrack->GetX()); + fVertexY[2]->Fill(vertexTrack->GetY()); + fVertexZ[2]->Fill(vertexTrack->GetZ()); + } + } + const AliVVertex* vertexTPC = esd->GetPrimaryVertexTPC(); + if(vertexTPC){ + if(vertexTPC->GetNContributors()>0){ + fVertexX[3]->Fill(vertexTPC->GetX()); + fVertexY[3]->Fill(vertexTPC->GetY()); + fVertexZ[3]->Fill(vertexTPC->GetZ()); + } + } + + //cuts on general vertex + if(vertex->GetNContributors()<1) return; if (TMath::Abs(vz) > 10.) return; fNumber->Fill(event->GetNumberOfTracks()); @@ -1134,12 +1187,12 @@ void AliAnalysisTaskQASym::UserExec(Option_t *) AliESDtrack *tpcP = 0x0; Int_t fNTracksAccepted=0; const Int_t arrSize = event->GetNumberOfTracks(); - Float_t phiArray [arrSize]; - Float_t etaArray [arrSize]; - Float_t ptArray [arrSize]; - Float_t dcaArray [arrSize]; - Int_t chargeArray[arrSize]; - Bool_t acceptedArray[arrSize]; + Float_t * phiArray = new Float_t[arrSize]; + Float_t * etaArray = new Float_t[arrSize]; + Float_t * ptArray = new Float_t[arrSize]; + Float_t * dcaArray = new Float_t[arrSize]; + Int_t * chargeArray = new Int_t [arrSize]; + Bool_t * acceptedArray = new Bool_t [arrSize]; for (Int_t i = 0; i < event->GetNumberOfTracks(); i++) { phiArray[i] = 0.; @@ -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; @@ -1536,8 +1590,37 @@ void AliAnalysisTaskQASym::UserExec(Option_t *) delete tpcP; tpcP = 0; } - + if(phiArray){ + delete[] phiArray; + phiArray=0; + } + + if(etaArray){ + delete[] etaArray; + etaArray=0; + } + + if(dcaArray){ + delete[] dcaArray; + dcaArray=0; + } + + if(ptArray){ + delete[] ptArray; + ptArray=0; + } + + if(chargeArray){ + delete[] chargeArray; + chargeArray=0; + } + + if(acceptedArray){ + delete[] acceptedArray; + acceptedArray=0; + } + // Post output data. // PostData(1, fHistPt); PostData(1, fHists);