]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/AliPWG4HighPtTrackQA.cxx
Updates from Marta
[u/mrichter/AliRoot.git] / PWGJE / AliPWG4HighPtTrackQA.cxx
index 711805275631c00e6b5d301da16f600e88fdcae4..0dbda2eaa1786b08de602fc0307e8e402ad1e240 100644 (file)
@@ -69,6 +69,7 @@ AliPWG4HighPtTrackQA::AliPWG4HighPtTrackQA()
   fTrackCutsTPConly(0x0), 
   fTrackType(0),
   fFilterMask(0),
+  fIncludeNoITS(kFALSE),
   fSigmaConstrainedMax(-1.),
   fPtMax(100.),
   fIsPbPb(0),
@@ -92,6 +93,7 @@ AliPWG4HighPtTrackQA::AliPWG4HighPtTrackQA()
   fPtSel(0),    
   fPtPhi(0x0),
   fPtEta(0x0),
+  fPtEtaPhi(0x0),
   fPtDCA2D(0x0),
   fPtDCAZ(0x0),
   fPtNClustersTPC(0x0),
@@ -100,6 +102,7 @@ AliPWG4HighPtTrackQA::AliPWG4HighPtTrackQA()
   fPtNClustersTPCShared(0x0),
   fPtNClustersTPCSharedFrac(0x0),
   fPtNPointITS(0x0),
+  fPtNPointITSPhi(0x0),
   fPtChi2C(0x0),
   fPtNSigmaToVertex(0x0),
   fPtRelUncertainty1Pt(0x0),
@@ -169,6 +172,7 @@ AliPWG4HighPtTrackQA::AliPWG4HighPtTrackQA(const char *name):
   fTrackCutsTPConly(0x0), 
   fTrackType(0),
   fFilterMask(0),
+  fIncludeNoITS(kFALSE),
   fSigmaConstrainedMax(-1.),
   fPtMax(100.),
   fIsPbPb(0),
@@ -192,6 +196,7 @@ AliPWG4HighPtTrackQA::AliPWG4HighPtTrackQA(const char *name):
   fPtSel(0),
   fPtPhi(0x0),
   fPtEta(0x0),
+  fPtEtaPhi(0x0),
   fPtDCA2D(0x0),
   fPtDCAZ(0x0),
   fPtNClustersTPC(0x0),
@@ -200,6 +205,7 @@ AliPWG4HighPtTrackQA::AliPWG4HighPtTrackQA(const char *name):
   fPtNClustersTPCShared(0x0),
   fPtNClustersTPCSharedFrac(0x0),
   fPtNPointITS(0x0),
+  fPtNPointITSPhi(0x0),
   fPtChi2C(0x0),
   fPtNSigmaToVertex(0x0),
   fPtRelUncertainty1Pt(0x0),
@@ -506,6 +512,8 @@ void AliPWG4HighPtTrackQA::UserCreateOutputObjects() {
   fHistList->Add(fh1NTracksAll);
 
   fh1NTracksReject = new TH1F("fh1NTracksReject","fh1NTracksReject",1,-0.5,0.5);
+  fh1NTracksReject->Fill("noHybridTrack",0);
+  fh1NTracksReject->Fill("noITSrefit",0);
   fh1NTracksReject->Fill("noESDtrack",0);
   fh1NTracksReject->Fill("noTPCInner",0);
   fh1NTracksReject->Fill("FillTPC",0);
@@ -529,6 +537,9 @@ void AliPWG4HighPtTrackQA::UserCreateOutputObjects() {
  
   fPtEta = new TH2F("fPtEta","fPtEta",fgkNPtBins,binsPt,fgkNEtaBins,binsEta);
   fHistList->Add(fPtEta);
+
+  fPtEtaPhi = new TH3F("fPtEtaPhi","fPtEtaPhi",fgkNPtBins,binsPt,fgkNEtaBins,binsEta,fgkNPhiBins,binsPhi);
+  fHistList->Add(fPtEtaPhi);
  
   fPtDCA2D = new TH2F("fPtDCA2D","fPtDCA2D",fgkNPtBins,binsPt,fgkNDCA2DBins,binsDCA2D);
   fHistList->Add(fPtDCA2D);
@@ -553,6 +564,9 @@ void AliPWG4HighPtTrackQA::UserCreateOutputObjects() {
  
   fPtNPointITS = new TH2F("fPtNPointITS","fPtNPointITS",fgkNPtBins,binsPt,fgkNNPointITSBins,binsNPointITS);
   fHistList->Add(fPtNPointITS);
+
+  fPtNPointITSPhi = new TH3F("fPtNPointITSPhi","fPtNPointITSPhi",fgkNPtBins,binsPt,fgkNNPointITSBins,binsNPointITS,fgkNPhiBins,binsPhi);
+  fHistList->Add(fPtNPointITSPhi);
  
   fPtChi2C = new TH2F("fPtChi2C","fPtChi2C",fgkNPtBins,binsPt,fgkNChi2CBins,binsChi2C);
   fHistList->Add(fPtChi2C);
@@ -691,6 +705,7 @@ void AliPWG4HighPtTrackQA::UserCreateOutputObjects() {
   if(binsDCA2D)             delete [] binsDCA2D;
   if(binsDCAZ)              delete [] binsDCAZ;
   if(binsNPointITS)         delete [] binsNPointITS;
+  if(binsITSClusterMap)     delete [] binsITSClusterMap;
   if(binsNSigmaToVertex)    delete [] binsNSigmaToVertex;
   if(binsChi2C)             delete [] binsChi2C;
   if(binsEta)               delete [] binsEta;
@@ -1016,7 +1031,7 @@ void AliPWG4HighPtTrackQA::DoAnalysisESD() {
     if(fTrackType==1)
       track = AliESDtrackCuts::GetTPCOnlyTrack(fESD,esdtrack->GetID());
     else if(fTrackType==2 || fTrackType==4) {
-      track = AliESDtrackCuts::GetTPCOnlyTrack(fESD,esdtrack->GetID());
+      track = AliESDtrackCuts::GetTPCOnlyTrack(const_cast<AliESDEvent*>(fESD),esdtrack->GetID());
       if(!track) {
        fh1NTracksReject->Fill("noTPConly",1);
        if(origtrack) delete origtrack;
@@ -1094,7 +1109,7 @@ void AliPWG4HighPtTrackQA::DoAnalysisESD() {
     if (!(fTrackCuts->AcceptTrack(track)) && fTrackType!=4 && fTrackType!=5 && fTrackType!=6) {
       fh1NTracksReject->Fill("trackCuts",1);
       if(fTrackType==1 || fTrackType==2 || fTrackType==7) {
-       if(track) delete track;
+       if(track) delete track;
       }
       if(origtrack) delete origtrack;
       continue;
@@ -1208,12 +1223,29 @@ void AliPWG4HighPtTrackQA::DoAnalysisAOD() {
   // Do QA on AOD input
   //
   AliAODEvent *aod = dynamic_cast<AliAODEvent*>(fEvent);
-  if(!aod)return;
-  AliExternalTrackParam *exParam = new  AliExternalTrackParam();
+  if(!aod) return;
+  AliExternalTrackParam exParam;
   for (Int_t iTrack = 0; iTrack < fEvent->GetNumberOfTracks(); iTrack++) {
 
     AliAODTrack *aodtrack = aod->GetTrack(iTrack);
-    if( !aodtrack->TestFilterMask(fFilterMask) ) continue;
+    //    if(aodtrack->GetFilterMap()>128 && aodtrack->GetFilterMap()<1333)
+    //      Printf("filterMask = %d",aodtrack->GetFilterMap());
+    //    if(aodtrack->IsHybridGlobalConstrainedGlobal()) {
+      // Printf("hybrid filterMask = %d",aodtrack->GetFilterMap());
+    //      if(aodtrack->IsGlobalConstrained())
+    // Printf("global constrained filterMask = %d",aodtrack->GetFilterMap());
+    //    }
+    if( !aodtrack->TestFilterMask(fFilterMask) ) {
+      fh1NTracksReject->Fill("noHybridTrack",1);
+      continue;
+    }
+
+    if(!fIncludeNoITS) {
+      if ((aodtrack->GetStatus()&AliESDtrack::kITSrefit)==0) {
+       fh1NTracksReject->Fill("noITSrefit",1);
+       continue;
+      }
+    }
 
     fVariables->Reset(0.);
 
@@ -1247,13 +1279,13 @@ void AliPWG4HighPtTrackQA::DoAnalysisAOD() {
     Double_t xyz[3] = {0,};
     aodtrack->GetXYZ(xyz);
     Short_t sign = aodtrack->Charge();
-    exParam->Set(xyz,pxpypz,cov,sign);
+    exParam.Set(xyz,pxpypz,cov,sign);
 
-    fVariables->SetAt(exParam->GetSigmaY2(),13);
-    fVariables->SetAt(exParam->GetSigmaZ2(),14);
-    fVariables->SetAt(exParam->GetSigmaSnp2(),15);
-    fVariables->SetAt(exParam->GetSigmaTgl2(),16);
-    fVariables->SetAt(exParam->GetSigma1Pt2(),17);
+    fVariables->SetAt(exParam.GetSigmaY2(),13);
+    fVariables->SetAt(exParam.GetSigmaZ2(),14);
+    fVariables->SetAt(exParam.GetSigmaSnp2(),15);
+    fVariables->SetAt(exParam.GetSigmaTgl2(),16);
+    fVariables->SetAt(exParam.GetSigma1Pt2(),17);
 
     fVariables->SetAt(0.,18); //NClustersTPCIter1
     fVariables->SetAt(0.,19); //Chi2TPCIter1
@@ -1286,11 +1318,12 @@ void AliPWG4HighPtTrackQA::FillHistograms() {
   fPtSel->Fill(fVariables->At(0));
   fPtPhi->Fill(fVariables->At(0),fVariables->At(1));
   fPtEta->Fill(fVariables->At(0),fVariables->At(2));
+  fPtEtaPhi->Fill(fVariables->At(0),fVariables->At(2),fVariables->At(1));
   fPtDCA2D->Fill(fVariables->At(0),fVariables->At(3));
   fPtDCAZ->Fill(fVariables->At(0),fVariables->At(4));
   fPtNClustersTPC->Fill(fVariables->At(0),fVariables->At(5));
   fPtNPointITS->Fill(fVariables->At(0),fVariables->At(6));
-
+  fPtNPointITSPhi->Fill(fVariables->At(0),fVariables->At(6),fVariables->At(1));
   
   fPtNClustersTPCIter1->Fill(fVariables->At(0),fVariables->At(18));
   fPtNClustersTPCIter1Phi->Fill(fVariables->At(0),fVariables->At(18),fVariables->At(1));