New trending info in AliTPCPerformanceSummary and AliPerformanceTPC (Weilin), PostDat...
authorjotwinow <jotwinow@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 2 Mar 2011 15:00:07 +0000 (15:00 +0000)
committerjotwinow <jotwinow@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 2 Mar 2011 15:00:07 +0000 (15:00 +0000)
PWG1/TPC/AliPerformanceTPC.cxx
PWG1/TPC/AliPerformanceTask.cxx
PWG1/TPC/AliTPCPerformanceSummary.cxx
PWG1/TPC/AliTPCPerformanceSummary.h
PWG1/TPC/macros/AddTaskPerformanceTPCdEdxQA.C

index cb3452a..86f2c87 100644 (file)
@@ -156,6 +156,16 @@ void AliPerformanceTPC::Init()
     binsPt = CreateLogAxis(nPtBins,ptMin,ptMax);
   }
 
+  const Int_t  nCOverPtBins = 80;
+  Double_t coverptMin = -10, coverptMax = 10;
+  Double_t *binsCOverPtP = 0;
+  Double_t *binsCOverPt = new Double_t[nCOverPtBins+1];
+  binsCOverPtP = CreateLogAxis(nCOverPtBins/2,0.04,coverptMax-0.04);
+  for(Int_t i=0; i < nCOverPtBins/2; i++){
+    binsCOverPt[nCOverPtBins - i] = binsCOverPtP[nCOverPtBins/2  - i];
+    binsCOverPt[i] = 0 - binsCOverPtP[nCOverPtBins/2  - i];
+ }
+
   /*
   Int_t nPtBins = 31;
   Double_t binsPt[32] = {0.,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.7,0.8,0.9,1.0,1.2,1.4,1.6,1.8,2.0,2.25,2.5,2.75,3.,3.5,4.,5.,6.,8.,10.};
@@ -213,11 +223,10 @@ void AliPerformanceTPC::Init()
   fTPCEventHisto->GetAxis(6)->SetTitle("vertStatus");
   //fTPCEventHisto->Sumw2();
 
-
   // nTPCClust:chi2PerTPCClust:nTPCClustFindRatio:DCAr:DCAz:eta:phi:pt:charge:vertStatus
-   Int_t binsTPCTrackHisto[10]=  { 160,  20,  60,  30, 30,  30,   144,             nPtBins,   3, 2 };
-   Double_t minTPCTrackHisto[10]={ 0.,   0.,  0., -3,  -3., -1.5, 0.,             ptMin,   -1.5, -0.5 };
-   Double_t maxTPCTrackHisto[10]={ 160., 5., 1.2, 3,   3.,  1.5, 2.*TMath::Pi(), ptMax,    1.5,  1.5 };
+   Int_t binsTPCTrackHisto[10]=  { 160,  20,  60,  30, 30,  30,   144,             nPtBins,   nCOverPtBins, 2 };
+   Double_t minTPCTrackHisto[10]={ 0.,   0.,  0., -3,  -3., -1.5, 0.,             ptMin,   coverptMin, -0.5 };
+   Double_t maxTPCTrackHisto[10]={ 160., 5., 1.2, 3,   3.,  1.5, 2.*TMath::Pi(), ptMax,    coverptMax,  1.5 };
   
   // nTPCClust:chi2PerTPCClust:nTPCClustFindRatio:DCAr:DCAz:eta:phi:pt:charge:vertStatus
 //   Int_t binsTPCTrackHisto[10]=  { 160,  50,  60,  100, 100,  30,   144,            nPtBins,    3, 2 };
@@ -226,8 +235,9 @@ void AliPerformanceTPC::Init()
 
 
 
-  fTPCTrackHisto = new THnSparseF("fTPCTrackHisto","nClust:chi2PerClust:nClust/nFindableClust:DCAr:DCAz:eta:phi:pt:charge:vertStatus",10,binsTPCTrackHisto,minTPCTrackHisto,maxTPCTrackHisto);
+  fTPCTrackHisto = new THnSparseF("fTPCTrackHisto","nClust:chi2PerClust:nClust/nFindableClust:DCAr:DCAz:eta:phi:pt:charge/pt:vertStatus",10,binsTPCTrackHisto,minTPCTrackHisto,maxTPCTrackHisto);
   fTPCTrackHisto->SetBinEdges(7,binsPt);
+  fTPCTrackHisto->SetBinEdges(8,binsCOverPt);
 
   fTPCTrackHisto->GetAxis(0)->SetTitle("nClust");
   fTPCTrackHisto->GetAxis(1)->SetTitle("chi2PerClust");
@@ -237,7 +247,7 @@ void AliPerformanceTPC::Init()
   fTPCTrackHisto->GetAxis(5)->SetTitle("#eta");
   fTPCTrackHisto->GetAxis(6)->SetTitle("#phi (rad)");
   fTPCTrackHisto->GetAxis(7)->SetTitle("p_{T} (GeV/c)");
-  fTPCTrackHisto->GetAxis(8)->SetTitle("charge");
+  fTPCTrackHisto->GetAxis(8)->SetTitle("charge/pt");
   fTPCTrackHisto->GetAxis(9)->SetTitle("vertStatus");
   //fTPCTrackHisto->Sumw2();
 
@@ -251,7 +261,8 @@ void AliPerformanceTPC::Init()
 
   // init folder
   fAnalysisFolder = CreateFolder("folderTPC","Analysis Resolution Folder");
-  
+
+  delete []binsCOverPt;
 }
 
 
@@ -301,6 +312,9 @@ void AliPerformanceTPC::ProcessTPC(AliStack* const stack, AliESDtrack *const esd
   Float_t clustPerFindClust = 0.;
   if(nFindableClust>0.) clustPerFindClust = Float_t(nClust)/nFindableClust;
   
+  Float_t qpt = 0;
+  if( fabs(pt)>0 ) qpt = q/fabs(pt);
+
   //
   // select primaries
   //
@@ -313,7 +327,7 @@ void AliPerformanceTPC::ProcessTPC(AliStack* const stack, AliESDtrack *const esd
   if(!fCutsRC->GetDCAToVertex2D() && TMath::Abs(dca[0]) > fCutsRC->GetMaxDCAToVertexXY()) return;
   if(!fCutsRC->GetDCAToVertex2D() && TMath::Abs(dca[1]) > fCutsRC->GetMaxDCAToVertexZ()) return;
 
-  Double_t vTPCTrackHisto[10] = {nClust,chi2PerCluster,clustPerFindClust,dca[0],dca[1],eta,phi,pt,q,vertStatus};
+  Double_t vTPCTrackHisto[10] = {nClust,chi2PerCluster,clustPerFindClust,dca[0],dca[1],eta,phi,pt,qpt,vertStatus};
   fTPCTrackHisto->Fill(vTPCTrackHisto); 
  
   //
@@ -368,6 +382,9 @@ void AliPerformanceTPC::ProcessTPCITS(AliStack* const stack, AliESDtrack *const
   Float_t clustPerFindClust = 0.;
   if(nFindableClust>0.) clustPerFindClust = Float_t(nClust)/nFindableClust;
   
+  Float_t qpt = 0;
+  if( fabs(pt)>0 ) qpt = q/fabs(pt);
+
   //
   // select primaries
   //
@@ -380,7 +397,7 @@ void AliPerformanceTPC::ProcessTPCITS(AliStack* const stack, AliESDtrack *const
   if(!fCutsRC->GetDCAToVertex2D() && TMath::Abs(dca[0]) > fCutsRC->GetMaxDCAToVertexXY()) return;
   if(!fCutsRC->GetDCAToVertex2D() && TMath::Abs(dca[1]) > fCutsRC->GetMaxDCAToVertexZ()) return;
 
-  Double_t vTPCTrackHisto[10] = {nClust,chi2PerCluster,clustPerFindClust,dca[0],dca[1],eta,phi,pt,q,vertStatus};
+  Double_t vTPCTrackHisto[10] = {nClust,chi2PerCluster,clustPerFindClust,dca[0],dca[1],eta,phi,pt,qpt,vertStatus};
   fTPCTrackHisto->Fill(vTPCTrackHisto); 
  
   //
@@ -627,12 +644,15 @@ void AliPerformanceTPC::Analyse()
     // Track histograms 
     // 
     // all with vertex
-    fTPCTrackHisto->GetAxis(8)->SetRangeUser(-1.5,1.5);
+    fTPCTrackHisto->GetAxis(8)->SetRangeUser(-10,10);
     fTPCTrackHisto->GetAxis(9)->SetRangeUser(0.5,1.5);
     selString = "all_recVertex";
     for(Int_t i=0; i <= 9; i++) {
         AddProjection(aFolderObj, "track", fTPCTrackHisto, i, &selString);        
     }
+
+     AddProjection(aFolderObj, "track", fTPCTrackHisto, 5, 8, &selString); 
+
     for(Int_t i=0; i <= 4; i++) {
         AddProjection(aFolderObj, "track", fTPCTrackHisto, i, 5, 7, &selString);        
     }    
@@ -640,7 +660,7 @@ void AliPerformanceTPC::Analyse()
 
 
     // Track histograms (pos with vertex)
-    fTPCTrackHisto->GetAxis(8)->SetRangeUser(0,1.5);
+    fTPCTrackHisto->GetAxis(8)->SetRangeUser(0,10);
     selString = "pos_recVertex";
     for(Int_t i=0; i <= 9; i++) {
         AddProjection(aFolderObj, "track", fTPCTrackHisto, i, &selString);
@@ -656,7 +676,7 @@ void AliPerformanceTPC::Analyse()
     AddProjection(aFolderObj, "track", fTPCTrackHisto, 5, 6, 7, &selString);
   
     // Track histograms (neg with vertex)
-    fTPCTrackHisto->GetAxis(8)->SetRangeUser(-1.5,0);
+    fTPCTrackHisto->GetAxis(8)->SetRangeUser(-10,0);
     selString = "neg_recVertex";
     for(Int_t i=0; i <= 9; i++) {
         AddProjection(aFolderObj, "track", fTPCTrackHisto, i, &selString);
@@ -670,8 +690,9 @@ void AliPerformanceTPC::Analyse()
     AddProjection(aFolderObj, "track", fTPCTrackHisto, 1, 2, 5, &selString);
     AddProjection(aFolderObj, "track", fTPCTrackHisto, 3, 4, 5, &selString);
 
+
     //restore cuts
-    fTPCTrackHisto->GetAxis(8)->SetRangeUser(-1.5,1.5);
+    fTPCTrackHisto->GetAxis(8)->SetRangeUser(-10,10);
     fTPCTrackHisto->GetAxis(9)->SetRangeUser(-0.5,1.5);
   
   
index 5eb642d..b6698eb 100644 (file)
@@ -113,8 +113,8 @@ AliPerformanceTask::AliPerformanceTask(const char *name, const char */*title*/)
   // Constructor\r
 \r
   // Define input and output slots here\r
+  DefineOutput(0, TTree::Class());\r
   DefineOutput(1, TList::Class());\r
-  DefineOutput(2, TTree::Class());\r
 \r
   // create the list for comparison objects\r
   fCompList = new TList;\r
@@ -169,7 +169,7 @@ void AliPerformanceTask::UserCreateOutputObjects()
   Printf("UserCreateOutputObjects(): Number of output comparison objects: %d \n", count);\r
   \r
   PostData(1, fOutput);  \r
-  //PostData(2, fOutputSummary);  \r
+  PostData(0, fOutputSummary);  \r
 }\r
 \r
 //_____________________________________________________________________________\r
@@ -255,7 +255,7 @@ void AliPerformanceTask::Terminate(Option_t *)
     return;\r
 \r
   // check output data\r
-    fOutputSummary = dynamic_cast<TTree*> (GetOutputData(2));\r
+    fOutputSummary = dynamic_cast<TTree*> (GetOutputData(0));\r
     fOutput = dynamic_cast<TList*> (GetOutputData(1));\r
     if (!fOutput) {\r
         Printf("ERROR: AliPerformanceTask::Terminate(): fOutput data not available  ..." );\r
@@ -291,7 +291,7 @@ void AliPerformanceTask::Terminate(Option_t *)
     fOutputSummary = tree;\r
       \r
      // Post output data.\r
-     PostData(2, fOutputSummary);\r
+     PostData(0, fOutputSummary);\r
 \r
 }\r
 \r
index f68af33..fd3a5ea 100644 (file)
@@ -114,6 +114,11 @@ void AliTPCPerformanceSummary::WriteToTTreeSRedirector(const AliPerformanceTPC*
         AnalyzeDCARPhiPos(pTPC, pcstream);
         AnalyzeDCARPhiNeg(pTPC, pcstream);
         AnalyzeEvent(pTPC, pcstream);         
+
+       AnalyzePt(pTPC,pcstream);
+       AnalyzeChargeOverPt(pTPC,pcstream); 
+       
+
         pTPC->GetTPCTrackHisto()->GetAxis(9)->SetRangeUser(-10,10);
         pTPC->GetTPCTrackHisto()->GetAxis(7)->SetRangeUser(0,100);
         pTPC->GetTPCTrackHisto()->GetAxis(5)->SetRangeUser(-10,10); 
@@ -339,6 +344,24 @@ Int_t AliTPCPerformanceSummary::ProduceTrends(const Char_t* infilelist, const Ch
     SaveGraph(tree,"vertAll","run",condition);
     SaveGraph(tree,"vertOK","run",condition);
 
+
+    SaveGraph(tree,"meanPtAPos","run",condition);
+    SaveGraph(tree,"mediumPtAPos","run",condition);
+    SaveGraph(tree,"highPtAPos","run",condition);
+    SaveGraph(tree,"meanPtCPos","run",condition);
+    SaveGraph(tree,"mediumPtCPos","run",condition);
+    SaveGraph(tree,"highPtCPos","run",condition);
+    SaveGraph(tree,"meanPtANeg","run",condition);
+    SaveGraph(tree,"mediumPtANeg","run",condition);
+    SaveGraph(tree,"highPtANeg","run",condition);
+    SaveGraph(tree,"meanPtCNeg","run",condition);
+    SaveGraph(tree,"mediumPtCNeg","run",condition);
+    SaveGraph(tree,"highPtCNeg","run",condition);
+    SaveGraph(tree,"qOverPt","run",condition);
+    SaveGraph(tree,"qOverPtA","run",condition);
+    SaveGraph(tree,"qOverPtC","run",condition);
+    
     tree->Write();
     
     out->Close();   
@@ -914,7 +937,7 @@ Int_t AliTPCPerformanceSummary::AnalyzeDriftPos(const AliPerformanceTPC* pTPC, T
     TH2* his2D=0;
     TH3* his3D=0;
     
-    pTPC->GetTPCTrackHisto()->GetAxis(8)->SetRangeUser(0,10);    
+    //pTPC->GetTPCTrackHisto()->GetAxis(8)->SetRangeUser(0,10);    
     
    if (pTPC->GetHistos()->FindObject("h_tpc_track_pos_recvertex_4_5_7")) {    
         his3D = dynamic_cast<TH3*>(pTPC->GetHistos()->FindObject("h_tpc_track_pos_recvertex_4_5_7"));
@@ -931,7 +954,7 @@ Int_t AliTPCPerformanceSummary::AnalyzeDriftPos(const AliPerformanceTPC* pTPC, T
     TObjArray arrayFit;
     his2D->FitSlicesY(0,0,-1,10,"QNR",&arrayFit);
     delete his2D;
-    pTPC->GetTPCTrackHisto()->GetAxis(8)->SetRangeUser(-10,10);
+    //pTPC->GetTPCTrackHisto()->GetAxis(8)->SetRangeUser(-10,10);
     
     his1D = (TH1*) arrayFit.At(1);
     his1D->Fit(fpol1,"QNRROB=0.8","QNR",-0.8,-0.1);
@@ -1004,7 +1027,7 @@ Int_t AliTPCPerformanceSummary::AnalyzeDriftNeg(const AliPerformanceTPC* pTPC, T
     TH2* his2D=0;
     TH3* his3D=0;
     
-    pTPC->GetTPCTrackHisto()->GetAxis(8)->SetRangeUser(-10,0);    
+    //pTPC->GetTPCTrackHisto()->GetAxis(8)->SetRangeUser(-10,0);    
     
    if (pTPC->GetHistos()->FindObject("h_tpc_track_neg_recvertex_4_5_7")) {    
         his3D = dynamic_cast<TH3*>(pTPC->GetHistos()->FindObject("h_tpc_track_neg_recvertex_4_5_7"));
@@ -1022,7 +1045,7 @@ Int_t AliTPCPerformanceSummary::AnalyzeDriftNeg(const AliPerformanceTPC* pTPC, T
     his2D->FitSlicesY(0,0,-1,10,"QNR",&arrayFit);
     delete his2D;
     
-    pTPC->GetTPCTrackHisto()->GetAxis(8)->SetRangeUser(-10,10);
+    // pTPC->GetTPCTrackHisto()->GetAxis(8)->SetRangeUser(-10,10);
     his1D = (TH1*) arrayFit.At(1);
     his1D->Fit(fpol1,"QNRROB=0.8","QNR",-0.8,-0.1);
     offsetdZCNeg=fpol1->GetParameter(0);
@@ -1335,6 +1358,174 @@ Int_t AliTPCPerformanceSummary::AnalyzeEvent(const AliPerformanceTPC* pTPC, TTre
 }
 
 //_____________________________________________________________________________
+Int_t AliTPCPerformanceSummary::AnalyzePt(const AliPerformanceTPC* pTPC, TTreeSRedirector* pcstream)
+{
+    //
+    // Analyse DCA R imperfections for positive particles
+    //
+    
+    if (!pcstream) return 256;
+    if (!pTPC) return 256;
+
+    // variables:
+    static Double_t meanPtAPos = 0;
+    static Double_t mediumPtAPos = 0;
+    static Double_t highPtAPos = 0;
+    static Double_t meanPtCPos = 0;
+    static Double_t mediumPtCPos = 0;
+    static Double_t highPtCPos = 0;
+
+    static Double_t meanPtANeg = 0;
+    static Double_t mediumPtANeg = 0;
+    static Double_t highPtANeg = 0;
+    static Double_t meanPtCNeg = 0;
+    static Double_t mediumPtCNeg = 0;
+    static Double_t highPtCNeg = 0;
+
+    TH3* his3D_1=0;
+    TH3* his3D_2=0;
+    
+    if (pTPC->GetHistos()->FindObject("h_tpc_track_pos_recvertex_3_5_7")) {    
+
+      his3D_1 = dynamic_cast<TH3*>(pTPC->GetHistos()->FindObject("h_tpc_track_pos_recvertex_3_5_7"));
+       
+      his3D_1->GetYaxis()->SetRangeUser(0.1,0.8);
+      
+      his3D_1->GetZaxis()->SetRangeUser(0.25,10);
+      meanPtAPos = his3D_1->GetMean(3);
+      his3D_1->GetZaxis()->SetRangeUser(2,5);
+      mediumPtAPos = his3D_1->GetMean(3);
+      his3D_1->GetZaxis()->SetRangeUser(5,10);
+      highPtAPos = his3D_1->GetMean(3);
+      
+      his3D_1->GetYaxis()->SetRangeUser(-0.8,-0.1);
+
+      his3D_1->GetZaxis()->SetRangeUser(0.25,10);
+      meanPtCPos = his3D_1->GetMean(3);
+      his3D_1->GetZaxis()->SetRangeUser(2,5);
+      mediumPtCPos = his3D_1->GetMean(3);
+      his3D_1->GetZaxis()->SetRangeUser(5,10);
+      highPtCPos = his3D_1->GetMean(3);
+
+      his3D_1->GetYaxis()->SetRangeUser(-1,1);
+      his3D_1->GetZaxis()->SetRangeUser(0.25,10);
+    }
+
+
+    if (pTPC->GetHistos()->FindObject("h_tpc_track_neg_recvertex_3_5_7")) {    
+
+      his3D_2 = dynamic_cast<TH3*>(pTPC->GetHistos()->FindObject("h_tpc_track_neg_recvertex_3_5_7"));
+       
+      his3D_2->GetYaxis()->SetRangeUser(0.1,0.8);
+
+      his3D_2->GetZaxis()->SetRangeUser(0.25,10);
+      meanPtANeg = his3D_2->GetMean(3);
+      his3D_2->GetZaxis()->SetRangeUser(2,5);
+      mediumPtANeg = his3D_2->GetMean(3);
+      his3D_2->GetZaxis()->SetRangeUser(5,10);
+      highPtANeg = his3D_2->GetMean(3);
+      
+      his3D_2->GetYaxis()->SetRangeUser(-0.8,-0.1);
+
+      his3D_2->GetZaxis()->SetRangeUser(0.25,10);
+      meanPtCNeg = his3D_2->GetMean(3);
+      his3D_2->GetZaxis()->SetRangeUser(2,5);
+      mediumPtCNeg = his3D_2->GetMean(3);
+      his3D_2->GetZaxis()->SetRangeUser(5,10);
+      highPtCNeg = his3D_2->GetMean(3);
+      
+      his3D_2->GetYaxis()->SetRangeUser(-1,1);
+      his3D_2->GetZaxis()->SetRangeUser(0.25,10);
+    }
+
+
+
+    // dump values
+    //
+    (*pcstream)<<"tpcQA"<<
+      "meanPtAPos="<< meanPtAPos<<
+      "mediumPtAPos="<< mediumPtAPos<<
+      "highPtAPos="<< highPtAPos<<
+      //
+      "meanPtCPos="<< meanPtCPos<<
+      "mediumPtCPos="<< mediumPtCPos<<
+      "highPtCPos="<< highPtCPos<<
+      //
+      "meanPtANeg="<< meanPtANeg<<
+      "mediumPtANeg="<< mediumPtANeg<<
+      "highPtANeg="<< highPtANeg<<
+        //
+      "meanPtCNeg="<< meanPtCNeg<<
+      "mediumPtCNeg="<< mediumPtCNeg<<
+      "highPtCNeg="<< highPtCNeg;
+
+        
+    return 0;
+}
+
+//_____________________________________________________________________________
+
+Int_t AliTPCPerformanceSummary::AnalyzeChargeOverPt(const AliPerformanceTPC* pTPC, TTreeSRedirector* pcstream){
+    //
+    // Analyse DCA R imperfections for positive particles
+    //
+    
+    if (!pcstream) return 512;
+    if (!pTPC) return 512;
+
+    // variables:
+    static Double_t qOverPt = 0;
+    static Double_t qOverPtA = 0;
+    static Double_t qOverPtC = 0;
+
+    TH2* his2D=0;
+    TH1* his1D_1=0;
+    TH1* his1D_2=0;
+    TH1* his1D_3=0;
+    TF1 *fp1 = new TF1("fp1","pol2",-1.0,1.0);
+    TF1 *fp2 = new TF1("fp2","pol2",-1.0,1.0);
+    TF1 *fp3 = new TF1("fp3","pol2",-1.0,1.0);
+    
+    if (pTPC->GetHistos()->FindObject("h_tpc_track_all_recvertex_5_8")) {
+
+      his2D = dynamic_cast<TH2*>(pTPC->GetHistos()->FindObject("h_tpc_track_all_recvertex_5_8"));
+
+      his1D_1 = his2D->ProjectionX();
+      his1D_1->Fit(fp1,"R");
+      if(fp1->GetParameter(2)!=0){
+       qOverPt = (-1.0)*(fp1->GetParameter(1)/(2.0*fp1->GetParameter(2)));
+       }
+      delete fp1;
+      delete his1D_1;
+
+       his2D->GetYaxis()->SetRangeUser(0.1,0.8);
+       his1D_2 = his2D->ProjectionX();
+       his1D_2->Fit(fp2,"R");
+       if(fp2->GetParameter(2)!=0)
+        qOverPtA = (-1.0)*(fp2->GetParameter(1)/(2.0*fp2->GetParameter(2)));
+       delete fp2;
+       delete his1D_2;
+     
+       his2D->GetYaxis()->SetRangeUser(-0.8,-0.1);       
+       his1D_3 = his2D->ProjectionX();
+       his1D_3->Fit(fp3,"R");
+       if(fp3->GetParameter(2)!=0)
+        qOverPtC = (-1.0)*(fp3->GetParameter(1)/(2.0*fp3->GetParameter(2)));
+       delete fp3;
+       delete his1D_3;
+       
+      his2D->GetYaxis()->SetRangeUser(-1.0,1.0);
+    }
+    
+    
+    (*pcstream)<<"tpcQA"<<
+      "qOverPt="<< qOverPt<<
+      "qOverPtA="<< qOverPtA<<
+      "qOverPtC="<< qOverPtC;
+    
+    return 0;
+}
+
 void AliTPCPerformanceSummary::AnalyzeMatch(const AliPerformanceMatch* pMatch, TTreeSRedirector* pcstream)
 {
  if ((pMatch == 0) or (0 == pcstream)) { printf("this will not work anyway..."); }
index 2ff1c19..68f4b7b 100644 (file)
@@ -52,7 +52,10 @@ class AliTPCPerformanceSummary
     static Int_t AnalyzeEvent(const AliPerformanceTPC* pTPC, TTreeSRedirector* pcstream);
     static void AnalyzeMatch(const AliPerformanceMatch* pMatch, TTreeSRedirector* pcstream);
     
-      
+    static Int_t AnalyzePt(const AliPerformanceTPC* pTPC, TTreeSRedirector* pcstream);
+
+    static Int_t AnalyzeChargeOverPt(const AliPerformanceTPC* pTPC, TTreeSRedirector* pcstream);
+
     AliTPCPerformanceSummary(const AliTPCPerformanceSummary&); // copy contructor (not implemented)
     AliTPCPerformanceSummary& operator=(const AliTPCPerformanceSummary&); // assignment operator (not implemented)
       
index 9b77057..846ed71 100644 (file)
@@ -19,7 +19,7 @@
 // gSystem->Load("libPWG1.so");
 //
 // gROOT->LoadMacro("$ALICE_ROOT/PWG1/TPC/macros/AddTaskPerformanceTPCdEdxQA.C");
-// AliPerformanceTask *tpcQA = AddTaskPerformanceTPCdEdxQA("kFALSE","kTRUE","triggerClass"); 
+// AliPerformanceTask *tpcQA = AddTaskPerformanceTPCdEdxQA("kFALSE","kTRUE","kFALSE","triggerClass"); 
 // 
 // Output:
 // TPC.Performance.root file with TPC performance components is created.
@@ -156,7 +156,7 @@ AliPerformanceTask* AddTaskPerformanceTPCdEdxQA(Bool_t bUseMCInfo=kFALSE, Bool_t
   AliAnalysisDataContainer *coutput2_tpc = mgr->CreateContainer("TPCQASummary", TTree::Class(), AliAnalysisManager::kParamContainer, "trending.root:SummaryTPCQA"); 
 
   mgr->ConnectOutput(task, 1, coutput_tpc);
-  mgr->ConnectOutput(task, 2, coutput2_tpc);
+  mgr->ConnectOutput(task, 0, coutput2_tpc);
 
 return task;  
 }