Updated QA (Sylwester)
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 7 Mar 2008 10:31:17 +0000 (10:31 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 7 Mar 2008 10:31:17 +0000 (10:31 +0000)
TRD/AliTRDQADataMakerRec.cxx
TRD/AliTRDqaBlackEvents.cxx
TRD/AliTRDqaBlackEvents.h
TRD/AliTRDtestBeam.cxx
TRD/qaGui/AliTRDqaGuiBlackChamber.cxx
TRD/qaGui/AliTRDqaGuiClustersStack.h
TRD/qaGui/AliTRDqaGuiESDs.cxx
TRD/qaGui/AliTRDqaGuiESDs.h
TRD/qaGui/AliTRDqaGuiMain.cxx
TRD/qaGui/AliTRDqaGuiMain.h

index 2b95b05..c07b8e0 100644 (file)
@@ -251,7 +251,7 @@ void AliTRDQADataMakerRec::InitESDs()
   // Create ESDs histograms in ESDs subdir
   //
 
-  const Int_t kNhist = 36+5;
+  const Int_t kNhist = 36+5+4;
 
   TH1 *hist[kNhist];
   Int_t histoCounter = -1 ;
@@ -308,6 +308,27 @@ void AliTRDQADataMakerRec::InitESDs()
     hist[36+i] = new TH1D(Form("qaTRD_esd_pid%d",i),
                          Form("%s;probability",partType[i]), 100, 0, 1);
  
+  // dE/dX vs momentum in three regions
+  const char *zoneName[4] = {"total charge", "ampilification range", "plateau", "TR range"};
+  // prepare the scale from 0.1 to 10 GeV
+  Double_t scalex[101];
+  Double_t dd = (TMath::Log(10) - TMath::Log(0.5)) / 100.;
+  for(Int_t ix=0; ix<101; ix++) {
+    scalex[ix] = 0.5 * TMath::Exp(dd * ix);
+  }
+
+  Double_t scaley[101];
+  for(Int_t iy=0; iy<101; iy++) {
+    scaley[iy] = iy * (3e3/100.);
+  }
+    
+
+  for(Int_t i=0; i<4; i++) {
+    hist[41+i] = new TH2D(Form("qaTRD_esd_signalPzone_%d",i), 
+                         Form("%s;momentum (GeV/c);singal (a.u.)", zoneName[i]),
+                         100, scalex, 100, scaley);
+  }
 
   for(Int_t i=0; i<kNhist; i++) {
     //hist[i]->Sumw2();
@@ -496,6 +517,16 @@ void AliTRDQADataMakerRec::MakeESDs(AliESDEvent * esd)
     GetESDsData(30)->Fill(track->GetTRDTimBin(0));
     GetESDsData(31)->Fill(track->GetTRDpidQuality());
     
+    
+    // dedx
+    for(Int_t i=0; i<4; i++) {
+      Double_t dedx = 0;
+      for(Int_t j=0; j<6; j++) {
+       dedx += track->GetTRDsignals(j, i-1);
+      }
+      GetESDsData(41+i)->Fill(paramOut->GetP(), dedx/6.);
+    }
+
     // probabilities
     if (status & AliESDtrack::kTRDpid) {
       for(Int_t i=0; i<AliPID::kSPECIES; i++) 
index 40b410d..9e1e959 100644 (file)
@@ -6,7 +6,7 @@
  *                                                                        *\r
  * Permission to use, copy, modify and distribute this software and its   *\r
  * documentation strictly for non-commercial purposes is hereby granted   *\r
- * withount fee, provided that the abovÅ›e copyright notice appears in all   *\r
+ * withount fee, provided that the abov copyright notice appears in all   *\r
  * copies and that both the copyright notice and this permission notice   *\r
  * appear in the supporting documentation. The authors make no claims     *\r
  * about the suitability of this software for any purpose. It is          *\r
@@ -92,8 +92,10 @@ void AliTRDqaBlackEvents::Init()
     fChPed[i]   = new TH2D(Form("ped_%d", i), "", 16, -0.5, 15.5, 144, -0.5, 143.5);\r
     fChNoise[i] = new TH2D(Form("noise_%d", i), "", 16, -0.5, 15.5, 144, -0.5, 143.5);\r
     fPed[i]     = new TH1D(Form("pedDist_%d", i), ";pedestals (ADC counts)", 100, 5, 15);\r
-    fNoise[i]   = new TH1D(Form("noiseDist_%d", i), ";noise (ADC counts)", 100, 0, 5);\r
+\r
+    fNoise[i]   = new TH1D(Form("noiseDist_%d", i), ";noise (ADC counts)", 100, 0, 5); \r
     fSignal[i]  = new TH1D(Form("signal_%d", i), ";signal (ADC counts)", 100, -0.5, 99.5);\r
+\r
     fnEntriesRM[i] = new TH2D(Form("entriesRM_%d", i), ";ROB,MCM", 8, -0.5, 7.5, 16, -0.5, 15.5);\r
   }\r
 \r
@@ -140,10 +142,13 @@ Int_t AliTRDqaBlackEvents::AddEvent(AliTRDrawStreamTB *data)
   while (data->Next()) {\r
 \r
     Int_t det = data->GetDet();\r
+\r
     Int_t row = data->GetRow();\r
     Int_t col = data->GetCol();\r
+\r
     Int_t rob = data->GetROB();\r
     Int_t mcm = data->GetMCM();\r
+\r
     Int_t *sig = data->GetSignals();\r
     nb++;\r
 \r
@@ -255,7 +260,6 @@ void AliTRDqaBlackEvents::Process(const char *filename)
   Info("Process", "Number of events = %d", fnEvents);\r
 \r
   // normalize number of entries histos\r
-  \r
   Int_t max = 0;\r
   for(Int_t i=0; i<540; i++) { \r
     if (!map[i]) continue;\r
@@ -286,6 +290,7 @@ void AliTRDqaBlackEvents::Process(const char *filename)
     fNPoint[i]->Scale(1./fnEvents);\r
   }\r
   \r
+\r
   for(Int_t i=0; i<540; i++) {\r
     fnEntriesRM[i]->SetMaximum(fnEvents * 1.5);\r
   }\r
index 857836d..baea706 100644 (file)
@@ -51,6 +51,7 @@ class AliTRDqaBlackEvents : public TObject {
  private:
   
   Int_t fnEvents;         // number of events processed  
+
   TH1D *fOccupancy;       // how many times is a pad present in data
 
   TH1D *fPed[540];        // reconstructed pedestals distribution (on hist per chamber)
@@ -64,7 +65,7 @@ class AliTRDqaBlackEvents : public TObject {
   TH2D *fnEntriesRM[540];     // number of entries for ROB - MCM
   TH1D *fnEntriesRMDist[540]; // distribtion of number of entries per ROB-MCM
 
-  Int_t    fFitType;
+  Int_t fFitType;
 
   Double_t fMinNoise;   // Minimum noise
   Double_t fMaxNoise;   // Maximum noise
index e2117e6..c39970a 100644 (file)
@@ -504,7 +504,7 @@ AliTRDrawStreamTB *AliTRDtestBeam::GetTRDrawStream()
   AliTRDrawStreamTB::SetNoErrorWarning();
   AliTRDrawStreamTB::SetExtraWordsFix();
   AliTRDrawStreamTB::AllowCorruptedData();
+  
   AliTRDrawStreamTB *tb = new AliTRDrawStreamTB(reader); 
   //tb->Init();
   return tb;
index af8865a..f11b3c2 100644 (file)
@@ -210,6 +210,7 @@ void AliTRDqaGuiBlackChamber::SetQAFile(const char *filename) {
   //
 
 
+
   //const char *names[5] = {"ped", "noise", "pedDist", "noiseDist", "signal"};
   const char *names[10] = {
     "ped", "noise", "pedDist", "noiseDist", "signal",
index 694638d..65f84c8 100644 (file)
@@ -23,7 +23,8 @@ class AliTRDqaGuiClustersStack : public TGCompositeFrame {
   AliTRDqaGuiClustersStack(TGWindow *parent);
   AliTRDqaGuiClustersStack& operator = (const AliTRDqaGuiClustersStack& /*g*/) { return *this; };
   AliTRDqaGuiClustersStack(const AliTRDqaGuiClustersStack &);
- ~AliTRDqaGuiClustersStack() {}
+  ~AliTRDqaGuiClustersStack() {}
+
   
   void SetQAFile(const char *filename);
   void SetSM(Int_t idxSM);
index 71bb7bc..989f933 100644 (file)
@@ -39,7 +39,12 @@ ClassImp(AliTRDqaGuiESDs)
 //////////////////////////////////////////////////////////////////////////////////
 
 
-const Int_t AliTRDqaGuiESDs::fgkLogList[18] = {1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0};
+const Int_t AliTRDqaGuiESDs::fgkLogList[24] = {
+  1,1,0,0,0,0,
+  1,1,1,1,1,1,
+  1,1,1,0,0,0,
+  0,0,0,0,0,0
+};
 
 //////////////////////////////////////////////////////////////////////////////////
 AliTRDqaGuiESDs::AliTRDqaGuiESDs(TGWindow *parent, Int_t page) 
@@ -72,8 +77,13 @@ AliTRDqaGuiESDs::AliTRDqaGuiESDs(TGWindow *parent, Int_t page)
   fNameList[15] = "tracksStack";
   fNameList[16] = "electronStack";
   fNameList[17] = "elRatioStack";
-
-
+  
+  fNameList[18] = "signalPzone_0";
+  fNameList[19] = "signalPzone_1";
+  fNameList[20] = "signalPzone_2";
+  fNameList[21] = "signalPzone_3";
+  fNameList[22] = "";
+  fNameList[23] = "";
 
   for(Int_t i=0; i<6; i++) {
     fCanvasList[i] = new TRootEmbeddedCanvas(fNameList[i+6*fPage], this, 320, 320);
@@ -86,7 +96,6 @@ AliTRDqaGuiESDs::AliTRDqaGuiESDs(TGWindow *parent, Int_t page)
   for(Int_t i=0; i<6; i++) {
     fHistList[i] = 0;
   }
-
 }
 
 //////////////////////////////////////////////////////////////////////////////////
@@ -109,8 +118,16 @@ void AliTRDqaGuiESDs::SetQAFile(const char *filename) {
   for(int i=0; i<6; i++) {
     fHistList[i] = (TH1D*)gDirectory->Get(Form("qaTRD_esd_%s", fNameList[i+fPage*6]));
     fCanvasList[i]->GetCanvas()->cd();
-    gPad->SetLogy(fgkLogList[i+6*fPage]);
-    if (fHistList[i]) fHistList[i]->Draw();
+    if (fPage == 3) {
+      if (fHistList[i]) fHistList[i]->Draw("colz");
+      gPad->SetLogz(1);
+      gPad->SetLogx(1);
+    } else {
+      gPad->SetLogy(fgkLogList[i+6*fPage]);
+      if (fHistList[i]) fHistList[i]->Draw();
+    }
+
     fCanvasList[i]->GetCanvas()->Update();
   }
 }
index 4c49a29..36b6638 100644 (file)
@@ -40,8 +40,8 @@ class AliTRDqaGuiESDs : public TGCompositeFrame {
  protected:
 
   Int_t fPage;                          // histogram set
-  const char *fNameList[18];            // list of histograms
-  static const Int_t fgkLogList[18];    // flag for log scale
+  const char *fNameList[4*6];            // list of histograms
+  static const Int_t fgkLogList[4*6];    // flag for log scale
  
   TRootEmbeddedCanvas *fCanvasList[6];  // canvas list
   TH1D *fHistList[6];                   // and histograms
index 43c7d3a..602fa11 100644 (file)
@@ -70,13 +70,15 @@ AliTRDqaGuiMain::AliTRDqaGuiMain(TGWindow *parent) :
   fGESDs[0]  = new AliTRDqaGuiESDs(fGTabPanel,0);
   fGESDs[1]  = new AliTRDqaGuiESDs(fGTabPanel,1);
   fGESDs[2]  = new AliTRDqaGuiESDs(fGTabPanel,2);
+  fGESDs[3]  = new AliTRDqaGuiESDs(fGTabPanel,3);
   
   fGTabPanel->AddTab("Clusters", fGDet);
   fGTabPanel->AddTab("Clusters - Super Module", fGSM);
   fGTabPanel->AddTab("Clusters - Stack", fGStack);
-  fGTabPanel->AddTab("ESDs (1)", fGESDs[0]);
-  fGTabPanel->AddTab("ESDs (2)", fGESDs[1]);
-  fGTabPanel->AddTab("ESDs (3)", fGESDs[2]);
+  fGTabPanel->AddTab("ESDs (efficiency)", fGESDs[0]);
+  fGTabPanel->AddTab("ESDs (track quality)", fGESDs[1]);
+  fGTabPanel->AddTab("ESDs (PID)", fGESDs[2]);
+  fGTabPanel->AddTab("ESDs (dE/dX)", fGESDs[3]);
 
   AddFrame(fGTabPanel);
   
@@ -99,6 +101,7 @@ void AliTRDqaGuiMain::SetQAFile(const char *file) {
   fGESDs[0]->SetQAFile(file);
   fGESDs[1]->SetQAFile(file);
   fGESDs[2]->SetQAFile(file);
+  fGESDs[3]->SetQAFile(file);
 }
 
 ////////////////////////////////////////////////////////////////////////////////
index dd521da..468f18e 100644 (file)
@@ -47,7 +47,7 @@ class AliTRDqaGuiMain : public TGMainFrame {
   AliTRDqaGuiClusters       *fGDet;   // panel with clusers
   AliTRDqaGuiClustersSM     *fGSM;    // panel with clusers
   AliTRDqaGuiClustersStack  *fGStack; // panel with clusers
-  AliTRDqaGuiESDs *fGESDs[3];         // panel with ESDs
+  AliTRDqaGuiESDs *fGESDs[4];         // panel with ESDs
 
   ClassDef(AliTRDqaGuiMain,1) //
 };