Move from THnSparseS to TH2S and changes due to shared pads and baseline subtraction
authorcblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 7 Oct 2009 11:02:17 +0000 (11:02 +0000)
committercblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 7 Oct 2009 11:02:17 +0000 (11:02 +0000)
TRD/AliTRDCalibraFillHisto.cxx
TRD/AliTRDCalibraVdriftLinearFit.cxx
TRD/AliTRDCalibraVdriftLinearFit.h
TRD/TRDPEDESTALda.cxx
TRD/TRDVDRIFTda.cxx
TRD/qaRec/AliTRDcalibration.cxx

index 532cc29..afea506 100644 (file)
@@ -2304,6 +2304,8 @@ Int_t AliTRDCalibraFillHisto::ProcessEventDAQ(AliTRDrawStreamBase *rawStream, Bo
   // 2 input
   // Same algorithm as TestBeam but different reader
   //
+
+  rawStream->SetSharedPadReadout(kFALSE);
   
   Int_t withInput = 1;
   
@@ -3189,3 +3191,4 @@ void AliTRDCalibraFillHisto::AnalyseLinearFitter()
     }
   }
 }
+
index b872fe7..7fed240 100644 (file)
@@ -35,7 +35,6 @@
 #include <TLinearFitter.h>
 #include <TMath.h>
 #include <TTreeStream.h>
-#include <THnSparse.h>
 
 
 //header file
@@ -70,12 +69,12 @@ AliTRDCalibraVdriftLinearFit::AliTRDCalibraVdriftLinearFit(const AliTRDCalibraVd
    
     const TVectorD     *vectorE     = (TVectorD*)ped.fLinearFitterEArray.UncheckedAt(idet);
     const TVectorD     *vectorP     = (TVectorD*)ped.fLinearFitterPArray.UncheckedAt(idet);
-    const THnSparseS    *hped        = (THnSparseS*)ped.fLinearFitterHistoArray.UncheckedAt(idet);
+    const TH2S         *hped        = (TH2S*)ped.fLinearFitterHistoArray.UncheckedAt(idet);
     
     if ( vectorE != 0x0 ) fLinearFitterEArray.AddAt(new TVectorD(*vectorE), idet);
     if ( vectorP != 0x0 ) fLinearFitterPArray.AddAt(new TVectorD(*vectorP), idet);
     if ( hped != 0x0 ){
-      THnSparseS *hNew = (THnSparseS *)hped->Clone();
+      TH2S *hNew = (TH2S *)hped->Clone();
       //hNew->SetDirectory(0);
       fLinearFitterHistoArray.AddAt(hNew,idet);
     }
@@ -93,9 +92,9 @@ AliTRDCalibraVdriftLinearFit::AliTRDCalibraVdriftLinearFit(const TObjArray &obja
   // constructor from a TObjArray
   //
   for (Int_t idet = 0; idet < 540; idet++){
-    const THnSparseS         *hped        = (THnSparseS*)obja.UncheckedAt(idet);
+    const TH2S         *hped        = (TH2S*)obja.UncheckedAt(idet);
     if ( hped != 0x0 ){
-      THnSparseS *hNew = (THnSparseS *)hped->Clone();
+      TH2S *hNew = (TH2S *)hped->Clone();
       //hNew->SetDirectory(0);
       fLinearFitterHistoArray.AddAt(hNew,idet);
     }
@@ -135,9 +134,9 @@ void AliTRDCalibraVdriftLinearFit::Copy(TObject &c) const
   // Copy only the histos
   for (Int_t idet = 0; idet < 540; idet++){
     if(fLinearFitterHistoArray.UncheckedAt(idet)){
-      THnSparseS *hped1 = (THnSparseS *)target.GetLinearFitterHisto(idet,kTRUE);
+      TH2S *hped1 = (TH2S *)target.GetLinearFitterHisto(idet,kTRUE);
       //hped1->SetDirectory(0);
-      hped1->Add((const THnSparseS *)fLinearFitterHistoArray.UncheckedAt(idet));
+      hped1->Add((const TH2S *)fLinearFitterHistoArray.UncheckedAt(idet));
     }
   }
   
@@ -168,9 +167,9 @@ Long64_t AliTRDCalibraVdriftLinearFit::Merge(const TCollection* list)
       // Copy only the histos
       for (Int_t idet = 0; idet < 540; idet++){
        if(entry->GetLinearFitterHisto(idet)){
-         THnSparseS *hped1 = (THnSparseS *)GetLinearFitterHisto(idet,kTRUE);
+         TH2S *hped1 = (TH2S *)GetLinearFitterHisto(idet,kTRUE);
          Double_t entriesa = hped1->GetEntries();
-         Double_t entriesb = ((THnSparseS *)entry->GetLinearFitterHisto(idet))->GetEntries();
+         Double_t entriesb = ((TH2S *)entry->GetLinearFitterHisto(idet))->GetEntries();
          if((entriesa + entriesb) < 5*32767) hped1->Add(entry->GetLinearFitterHisto(idet));
        }
       }
@@ -190,11 +189,11 @@ void AliTRDCalibraVdriftLinearFit::Add(AliTRDCalibraVdriftLinearFit *ped)
   fVersion++;
 
   for (Int_t idet = 0; idet < 540; idet++){
-    const THnSparseS         *hped        = (THnSparseS*)ped->GetLinearFitterHisto(idet);
+    const TH2S         *hped        = (TH2S*)ped->GetLinearFitterHisto(idet);
     //printf("idet %d\n",idet);
     if ( hped != 0x0 ){
       //printf("add\n");
-      THnSparseS *hped1 = (THnSparseS *)GetLinearFitterHisto(idet,kTRUE);
+      TH2S *hped1 = (TH2S *)GetLinearFitterHisto(idet,kTRUE);
       Double_t entriesa = hped1->GetEntries();
       Double_t entriesb = hped->GetEntries();
       if((entriesa + entriesb) < 5*32767) hped1->Add(hped);
@@ -202,14 +201,14 @@ void AliTRDCalibraVdriftLinearFit::Add(AliTRDCalibraVdriftLinearFit *ped)
   }
 }
 //______________________________________________________________________________________
-THnSparse* AliTRDCalibraVdriftLinearFit::GetLinearFitterHisto(Int_t detector, Bool_t force)
+TH2S* AliTRDCalibraVdriftLinearFit::GetLinearFitterHisto(Int_t detector, Bool_t force)
 {
     //
     // return pointer to TH2F histo 
     // if force is true create a new histo if it doesn't exist allready
     //
     if ( !force || fLinearFitterHistoArray.UncheckedAt(detector) )
-       return (THnSparse*)fLinearFitterHistoArray.UncheckedAt(detector);
+       return (TH2S*)fLinearFitterHistoArray.UncheckedAt(detector);
 
     // if we are forced and TLinearFitter doesn't yes exist create it
 
@@ -219,35 +218,14 @@ THnSparse* AliTRDCalibraVdriftLinearFit::GetLinearFitterHisto(Int_t detector, Bo
     name += "version";
     name +=  fVersion;
 
-    //create the map
-    Int_t thnDim[2];
-    thnDim[0] = 36;
-    thnDim[1] = 48;
-
-    //arrays for lower bounds :
-    Double_t* binEdges[2];
-    for(Int_t ivar = 0; ivar < 2; ivar++)
-      binEdges[ivar] = new Double_t[thnDim[ivar] + 1];
-    
-    //values for bin lower bounds
-    for(Int_t i=0; i<=thnDim[0]; i++) binEdges[0][i]= -0.9  + (2*0.9)/thnDim[0]*(Double_t)i;
-    for(Int_t i=0; i<=thnDim[1]; i++) binEdges[1][i]= -1.2  + (2*1.2)/thnDim[1]*(Double_t)i;
-    
-    THnSparseS *lfdv = new THnSparseS((const Char_t *)name,(const Char_t *) name,2,thnDim);
-
-    for (int k=0; k<2; k++) {
-      lfdv->SetBinEdges(k,binEdges[k]);
-    }
-    lfdv->Sumw2();
-    
-    //TH2F *lfdv = new TH2F((const Char_t *)name,(const Char_t *) name
-    //           ,18,-0.9,0.9,24
-    //           ,-1.2,1.2);
-    //lfdv->SetXTitle("tan(phi_{track})");
-    //lfdv->SetYTitle("dy/dt");
-    //lfdv->SetZTitle("Number of clusters");
-    //lfdv->SetStats(0);
-    //lfdv->SetDirectory(0);
+    TH2S *lfdv = new TH2S((const Char_t *)name,(const Char_t *) name
+                 ,36,-0.9,0.9,48
+                 ,-1.2,1.2);
+    lfdv->SetXTitle("tan(phi_{track})");
+    lfdv->SetYTitle("dy/dt");
+    lfdv->SetZTitle("Number of clusters");
+    lfdv->SetStats(0);
+    lfdv->SetDirectory(0);
 
     fLinearFitterHistoArray.AddAt(lfdv,detector);
     return lfdv;
@@ -292,11 +270,10 @@ void AliTRDCalibraVdriftLinearFit::Update(Int_t detector, Float_t tnp, Float_t p
     //
     // Fill the 2D histos for debugging
     //
-  Double_t entries[2] = {tnp,pars1};
   
-  THnSparseS *h = ((THnSparseS *) GetLinearFitterHisto(detector,kTRUE));
+  TH2S *h = ((TH2S *) GetLinearFitterHisto(detector,kTRUE));
   Double_t nbentries = h->GetEntries();
-  if(nbentries < 5*32767) h->Fill(&entries[0]);
+  if(nbentries < 5*32767) h->Fill(tnp,pars1);
 
 }
 //____________Functions fit Online CH2d________________________________________
@@ -314,13 +291,10 @@ void AliTRDCalibraVdriftLinearFit::FillPEArray()
 
   // Loop over histos 
   for(Int_t cb = 0; cb < 540; cb++){
-    const THnSparseS *linearfitterh = (THnSparseS*)fLinearFitterHistoArray.UncheckedAt(cb);
+    const TH2S *linearfitterhisto = (TH2S*)fLinearFitterHistoArray.UncheckedAt(cb);
     //printf("Processing the detector cb %d we find %d\n",cb, (Bool_t) linearfitterhisto);    
 
-    if ( linearfitterh != 0 ){
-      
-      TH2D *linearfitterhisto = linearfitterh->Projection(1,0);
-
+    if ( linearfitterhisto != 0 ){
       
       // Fill a linearfitter
       TAxis *xaxis = linearfitterhisto->GetXaxis();
index 9b5c7fc..26be7f1 100644 (file)
@@ -17,7 +17,7 @@
 
 //class TVectorD;
 class TObjArray;
-class THnSparse;
+class TH2S;
 class TTreeSRedirector;
 
 class AliTRDCalibraVdriftLinearFit : public TObject {
@@ -36,7 +36,7 @@ class AliTRDCalibraVdriftLinearFit : public TObject {
   void            Update(Int_t detector, Float_t tnp, Float_t pars1);
   void            FillPEArray();
   void            Add(AliTRDCalibraVdriftLinearFit *ped);
-  THnSparse      *GetLinearFitterHisto(Int_t detector, Bool_t force=kFALSE);
+  TH2S           *GetLinearFitterHisto(Int_t detector, Bool_t force=kFALSE);
   Bool_t          GetParam(Int_t detector, TVectorD *param);
   Bool_t          GetError(Int_t detector, TVectorD *error);
 
index 30ce4a3..195a704 100644 (file)
@@ -94,12 +94,13 @@ int main(int argc, char **argv) {
 
   // setting
   // AliTRDrawStream::SetNoDebug();
+  AliTRDrawStream::DisableSkipData();
   AliTRDrawStream::SetNoErrorWarning();
-  AliTRDrawStream::SetSubtractBaseline(0); 
+  //AliTRDrawStream::SetSubtractBaseline(0); 
   //AliTRDrawStream::SetForceCleanDataOnly();
-  AliTRDrawStream::AllowCorruptedData();
-  AliTRDrawStream::DisableStackNumberChecker();
-  AliTRDrawStream::DisableStackLinkNumberChecker();
+  //AliTRDrawStream::AllowCorruptedData();
+  //AliTRDrawStream::DisableStackNumberChecker();
+  //AliTRDrawStream::DisableStackLinkNumberChecker();
   //AliTRDrawStream::SetSkipCDH();
   //AliTRDrawStream::SetExtraWordsFix();
   //AliTRDrawStream::EnableDebugStream();
@@ -184,3 +185,4 @@ int main(int argc, char **argv) {
   
   return status;
 }
+
index 06eaf5f..7c3c625 100644 (file)
@@ -115,12 +115,13 @@ int main(int argc, char **argv) {
 
    // setting
   // AliTRDrawStream::SetNoDebug();
+  AliTRDrawStream::DisableSkipData();
   AliTRDrawStream::SetNoErrorWarning();
-  AliTRDrawStream::SetSubtractBaseline(0); 
+  //AliTRDrawStream::SetSubtractBaseline(0); 
   //AliTRDrawStream::SetForceCleanDataOnly();
-  AliTRDrawStream::AllowCorruptedData();
-  AliTRDrawStream::DisableStackNumberChecker();
-  AliTRDrawStream::DisableStackLinkNumberChecker();
+  //AliTRDrawStream::AllowCorruptedData();
+  //AliTRDrawStream::DisableStackNumberChecker();
+  //AliTRDrawStream::DisableStackLinkNumberChecker();
   //AliTRDrawStream::SetSkipCDH();
   //AliTRDrawStream::SetExtraWordsFix();
   //AliTRDrawStream::EnableDebugStream();
@@ -221,3 +222,4 @@ int main(int argc, char **argv) {
 
   return status;
 }
+
index 7f5516e..b321f34 100644 (file)
@@ -41,7 +41,6 @@
 #include "TStyle.h"
 #include "TLegend.h"
 #include "TGraphErrors.h"
-#include "THnSparse.h"
 
 #include "AliTRDrecoTask.h"
 #include "AliAnalysisManager.h"
@@ -616,13 +615,13 @@ case kCH2DVector:{
       break;
     }
     AliTRDCalibraVdriftLinearFit *h = 0x0;
-    THnSparseS *hdetector = 0x0; 
+    TH2S *hdetector = 0x0; 
     if(!(h = (AliTRDCalibraVdriftLinearFit *)fContainer->FindObject("AliTRDCalibraVdriftLinearFit"))) break;
     Double_t entries[540];
     for(Int_t k = 0; k < 540; k++){
       entries[k] = 0.0;
       hdetector = 0x0;
-      if(!(hdetector = (THnSparseS *)h->GetLinearFitterHisto(k,kFALSE))) continue;
+      if(!(hdetector = (TH2S *)h->GetLinearFitterHisto(k,kFALSE))) continue;
       entries[k] = hdetector->GetEntries();
     }
     Double_t max = -10.0;
@@ -635,7 +634,7 @@ case kCH2DVector:{
     }
     hdetector = 0x0;
     if((max == 0.0) || (detectormax <0.0) || (detectormax >=540.0)) break;
-    if(!(hdetector = (THnSparseS *)h->GetLinearFitterHisto((Int_t)detectormax,kFALSE))) break;
+    if(!(hdetector = (TH2S *)h->GetLinearFitterHisto((Int_t)detectormax,kFALSE))) break;
     AliInfo(Form("The detector with the maximum of entries is %d",detectormax));
     hdetector->Draw();
     return kTRUE;