Modifications in the calibration/preprocessor for new raw data version
authorcblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 29 Aug 2007 14:53:36 +0000 (14:53 +0000)
committercblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 29 Aug 2007 14:53:36 +0000 (14:53 +0000)
TRD/AliTRDCalibPadStatus.cxx
TRD/AliTRDCalibPadStatus.h
TRD/AliTRDCalibraFillHisto.cxx
TRD/AliTRDCalibraFillHisto.h
TRD/AliTRDPreprocessor.cxx
TRD/TRDPEDESTALda.cxx
TRD/TRDVDRIFTda.cxx
TRD/trdCalibration.root

index 5077bdc..b72b78d 100644 (file)
@@ -72,12 +72,14 @@ histo->Draw();
 
 //header file
 #include "AliTRDCalibPadStatus.h"
-#include "AliTRDRawStream.h"
+#include "AliTRDRawStreamV2.h"
 #include "AliTRDarrayF.h"
 #include "AliTRDgeometry.h"
 #include "AliTRDCommonParam.h"
 #include "./Cal/AliTRDCalROC.h"
 #include "./Cal/AliTRDCalPadStatus.h"
+#include "./Cal/AliTRDCalDet.h"
+#include "./Cal/AliTRDCalPad.h"
 #include "./Cal/AliTRDCalSingleChamberStatus.h"
 
 #ifdef ALI_DATE
@@ -245,10 +247,10 @@ Int_t AliTRDCalibPadStatus::UpdateHisto(const Int_t icdet, /*FOLD00*/
 }
 
 //_____________________________________________________________________
-Int_t AliTRDCalibPadStatus::ProcessEvent(AliTRDRawStream *rawStream, Bool_t nocheck)
+Int_t AliTRDCalibPadStatus::ProcessEvent(AliTRDRawStreamV2 *rawStream, Bool_t nocheck)
 {
   //
-  // Event Processing loop - AliTRDRawStream
+  // Event Processing loop - AliTRDRawStreamV2
   // 0 time bin problem or zero suppression
   // 1 no input
   // 2 input
@@ -315,7 +317,7 @@ Int_t AliTRDCalibPadStatus::ProcessEvent(AliRawReader *rawReader, Bool_t nocheck
   //
 
 
-  AliTRDRawStream rawStream(rawReader);
+  AliTRDRawStreamV2 rawStream(rawReader);
 
   rawReader->Select("TRD");
 
@@ -350,7 +352,7 @@ Int_t AliTRDCalibPadStatus::ProcessEvent(
 }
 
 //_____________________________________________________________________
-Bool_t AliTRDCalibPadStatus::TestEvent(Int_t nevent) /*FOLD00*/
+Bool_t AliTRDCalibPadStatus::TestEvent(Int_t nevent, Int_t sm) /*FOLD00*/
 {
   //
   //  Test event loop
@@ -359,13 +361,13 @@ Bool_t AliTRDCalibPadStatus::TestEvent(Int_t nevent) /*FOLD00*/
 
   gRandom->SetSeed(0);
 
-    for (Int_t ism=0; ism<18; ism++){
+    for (Int_t ism=sm; ism<sm+1; ism++){
                for (Int_t ich=0; ich < 5; ich++){
            for (Int_t ipl=0; ipl < 6; ipl++){
              for(Int_t irow = 0; irow < fGeo->GetRowMax(ipl,ich,ism); irow++){
                for(Int_t icol = 0; icol < fGeo->GetColMax(ipl); icol++){
                  for (Int_t iTimeBin=0; iTimeBin<(30*nevent); iTimeBin++){
-                   Int_t signal=(Int_t)(ich+8+gRandom->Gaus(0,1.2));
+                   Int_t signal=(Int_t)(gRandom->Gaus(10.0,1.2));
                    if ( signal>0 )Update((ipl+ich*6+ism*6*5),irow,icol,signal,fGeo->GetRowMax(ipl,ich,ism));
                  }
                }
@@ -377,7 +379,7 @@ Bool_t AliTRDCalibPadStatus::TestEvent(Int_t nevent) /*FOLD00*/
 }
 
 //_____________________________________________________________________
-Bool_t AliTRDCalibPadStatus::TestEventHisto(Int_t nevent) /*FOLD00*/
+Bool_t AliTRDCalibPadStatus::TestEventHisto(Int_t nevent, Int_t sm) /*FOLD00*/
 {
   //
   //  Test event loop
@@ -386,13 +388,13 @@ Bool_t AliTRDCalibPadStatus::TestEventHisto(Int_t nevent) /*FOLD00*/
 
   gRandom->SetSeed(0);
 
-    for (Int_t ism=0; ism<18; ism++){
+    for (Int_t ism=sm; ism<sm+1; ism++){
                for (Int_t ich=0; ich < 5; ich++){
            for (Int_t ipl=0; ipl < 6; ipl++){
              for(Int_t irow = 0; irow < fGeo->GetRowMax(ipl,ich,ism); irow++){
                for(Int_t icol = 0; icol < fGeo->GetColMax(ipl); icol++){
                  for (Int_t iTimeBin=0; iTimeBin<(30*nevent); iTimeBin++){
-                   Int_t signal=(Int_t)(ich+8+gRandom->Gaus(0,1.2));
+                   Int_t signal=(Int_t)(gRandom->Gaus(10.0,1.2));
                    if ( signal>0 )UpdateHisto((ipl+ich*6+ism*6*5),irow,icol,signal,fGeo->GetRowMax(ipl,ich,ism));
                  }
                }
@@ -671,6 +673,49 @@ AliTRDCalPadStatus* AliTRDCalibPadStatus::CreateCalPadStatus()
   
 }
 
+//_______________________________________________________________________________________
+AliTRDCalPad* AliTRDCalibPadStatus::CreateCalPad()
+{
+  //
+  // Create Pad Noise out of RMS values
+  //
+
+  AliTRDCalPad* obj = new AliTRDCalPad("PadNoise", "PadNoise");
+  
+  
+  for (Int_t det=0; det<AliTRDgeometry::kNdet; ++det)  {
+    
+    AliTRDCalROC *calROC22 = obj->GetCalROC(det);
+
+    AliTRDCalROC *calRocRMS     = ((AliTRDCalROC *)GetCalRocRMS(det,kTRUE));
+   
+    for(Int_t k = 0; k < calROC22->GetNchannels(); k++){
+      calROC22->SetValue(k,calRocRMS->GetValue(k));
+    }
+
+  }
+  
+  return obj;
+  
+}
+
+//_______________________________________________________________________________________
+AliTRDCalDet* AliTRDCalibPadStatus::CreateCalDet()
+{
+  //
+  // Create Det Noise correction factor
+  //
+
+  AliTRDCalDet* obj = new AliTRDCalDet("DetNoise", "DetNoise (correction factor)");
+
+  for(Int_t l = 0; l < 540; l++){
+    obj->SetValue(l,10.0);
+  }
+  
+  return obj;
+  
+}
+
 //_____________________________________________________________________
 void AliTRDCalibPadStatus::DumpToFile(const Char_t *filename, const Char_t *dir, Bool_t append) /*FOLD00*/
 {
index d671b1b..cd22f48 100644 (file)
@@ -17,9 +17,11 @@ class TTreeSRedirector;
 
 class AliRawReader;
 
+class AliTRDCalDet;
+class AliTRDCalPad;
 class AliTRDCalROC;
 class AliTRDCalPadStatus;
-class AliTRDRawStream;
+class AliTRDRawStreamV2;
 class AliTRDarrayF;
 class AliTRDgeometry;
 
@@ -35,7 +37,7 @@ public:
 
   AliTRDCalibPadStatus& operator = (const  AliTRDCalibPadStatus &source);
 
-  Int_t ProcessEvent(AliTRDRawStream *rawStream, Bool_t nocheck = kFALSE);
+  Int_t ProcessEvent(AliTRDRawStreamV2 *rawStream, Bool_t nocheck = kFALSE);
   Int_t ProcessEvent(AliRawReader    *rawReader, Bool_t nocheck = kFALSE);
   Int_t ProcessEvent(eventHeaderStruct   *event, Bool_t nocheck = kFALSE);
 
@@ -47,6 +49,8 @@ public:
   void Analyse();
   void AnalyseHisto();
   AliTRDCalPadStatus *CreateCalPadStatus();
+  AliTRDCalPad *CreateCalPad();
+  AliTRDCalDet *CreateCalDet();
 
   void SetCalRocMean(AliTRDCalROC *mean, Int_t det);
   void SetCalRocRMS(AliTRDCalROC *rms, Int_t det);  
@@ -68,8 +72,8 @@ public:
   void    SetRangeAdc (Int_t aMin, Int_t aMax){ fAdcMin=aMin; fAdcMax=aMax; }  // Set adc range 
 
 
-  Bool_t TestEvent(Int_t nevent);  //test the fast approach to fill array  - used for test purposes
-  Bool_t TestEventHisto(Int_t nevent);  //test the fast approach to fill histograms  
+  Bool_t TestEvent(Int_t nevent, Int_t sm);  //test the fast approach to fill array  - used for test purposes
+  Bool_t TestEventHisto(Int_t nevent, Int_t sm);  //test the fast approach to fill histograms  
 
 private:
 
index 558dc5f..a2cb4e0 100644 (file)
@@ -68,7 +68,7 @@
 #include "AliTRDpadPlane.h"
 #include "AliTRDcluster.h"
 #include "AliTRDtrack.h"
-#include "AliTRDRawStream.h"
+#include "AliTRDRawStreamV2.h"
 #include "AliRawReader.h"
 #include "AliRawReaderDate.h"
 #include "AliTRDgeometry.h"
@@ -1204,10 +1204,10 @@ void AliTRDCalibraFillHisto::StoreInfoCHPHtrack(AliTRDcluster *cl, AliTRDtrack *
   
 }
 //_____________________________________________________________________
-Int_t AliTRDCalibraFillHisto::ProcessEventDAQ(AliTRDRawStream *rawStream, Bool_t nocheck)
+Int_t AliTRDCalibraFillHisto::ProcessEventDAQ(AliTRDRawStreamV2 *rawStream, Bool_t nocheck)
 {
   //
-  // Event Processing loop - AliTRDRawStream
+  // Event Processing loop - AliTRDRawStreamV2
   // 0 timebin problem
   // 1 no input
   // 2 input
@@ -1253,12 +1253,14 @@ Int_t AliTRDCalibraFillHisto::ProcessEventDAQ(AliTRDRawStream *rawStream, Bool_t
       //row[iTimeBin]   = rawStream->GetRow();                           //  current row
       //col[iTimeBin]   = rawStream->GetCol();                           //  current col     
       Int_t *signal     = rawStream->GetSignals();                       //  current ADC signal
+      //printf("detector %d, nbtimebin %d, iTimeBin %d\n",fDetectorPreviousTrack,nbtimebin,iTimeBin);
       
       Int_t fin     = TMath::Min(fTimeMax,(iTimeBin+3));
       Int_t n       = 0;
       for(Int_t itime = iTimeBin; itime < fin; itime++){
        // should extract baseline here!
        if(signal[n]>13) phvalue[itime] = signal[n];
+       //printf("signal is %d for %d\n",signal[n],n);
        n++;
       }
     }
@@ -1299,12 +1301,14 @@ Int_t AliTRDCalibraFillHisto::ProcessEventDAQ(AliTRDRawStream *rawStream, Bool_t
       //row[iTimeBin]   = rawStream->GetRow();                           //  current row
       //col[iTimeBin]   = rawStream->GetCol();                           //  current col     
       Int_t *signal     = rawStream->GetSignals();                       //  current ADC signal
-      
+      //printf("detector %d, nbtimebin %d, iTimeBin %d\n",fDetectorPreviousTrack,nbtimebin,iTimeBin);
+
       Int_t fin     = TMath::Min(nbtimebin,(iTimeBin+3));
       Int_t n       = 0;
       for(Int_t itime = iTimeBin; itime < fin; itime++){
        // should extract baseline here!
        if(signal[n]>13) phvalue[itime] = signal[n];
+       //printf("signal is %d for %d\n",signal[n],n);
        n++;
       }
     }
@@ -1334,7 +1338,7 @@ Int_t AliTRDCalibraFillHisto::ProcessEventDAQ(AliRawReader *rawReader, Bool_t no
   //
 
 
-  AliTRDRawStream rawStream(rawReader);
+  AliTRDRawStreamV2 rawStream(rawReader);
 
   rawReader->Select("TRD");
 
index 859fb04..46d8464 100644 (file)
@@ -39,7 +39,7 @@ class AliRawReader;
 class AliTRDCalibraMode;
 class AliTRDCalibraVector;
 class AliTRDCalibraVdriftLinearFit;
-class AliTRDRawStream;
+class AliTRDRawStreamV2;
 class AliTRDcluster;
 class AliTRDtrack;
 class AliTRDmcmTracklet;
@@ -73,7 +73,7 @@ class AliTRDCalibraFillHisto : public TObject {
           Bool_t   UpdateHistogramcm(AliTRDmcmTracklet *trk);
  
   // Process events DAQ
-         Int_t   ProcessEventDAQ(AliTRDRawStream *rawStream, Bool_t nocheck = kFALSE);
+         Int_t   ProcessEventDAQ(AliTRDRawStreamV2 *rawStream, Bool_t nocheck = kFALSE);
          Int_t   ProcessEventDAQ(AliRawReader *rawReader, Bool_t nocheck = kFALSE);
          Int_t   ProcessEventDAQ(eventHeaderStruct *event, Bool_t nocheck = kFALSE);
 
index 27f0704..d97a072 100644 (file)
@@ -283,25 +283,32 @@ Bool_t AliTRDPreprocessor::ExtractPedestals()
        
        if(calPed){
          
+         Int_t sm = -1; 
+
          // analyse
-         calPed->AnalyseHisto();
-         
+         //calPed->AnalyseHisto();
+                 
+         // Add to the calPedSum
+         for (Int_t idet=0; idet<540; idet++) {
+           AliTRDCalROC *rocMean  = calPed->GetCalRocMean(idet, kFALSE);
+           if ( rocMean )  {
+             calPedSum.SetCalRocMean(rocMean,idet);
+             sm = (Int_t) (idet / 30);
+           }
+           AliTRDCalROC *rocRMS = calPed->GetCalRocRMS(idet, kFALSE);
+           if ( rocRMS )  {
+             calPedSum.SetCalRocRMS(rocRMS,idet);
+           }
+         }// det loop
+
          // store as reference data
          TString name("PadStatus");
-         name += (Int_t)index;
+         name += sm;
          if(!StoreReferenceData("DAQData",(const char *)name,(TObject *) calPed,&metaData)){
            Log(Form("Error storing AliTRDCalibPadStatus object %d as reference data",(Int_t)index));
            error = kTRUE;
          }
-         
-         
-         // Add to the calPedSum
-         for (Int_t idet=0; idet<540; idet++) {
-           AliTRDCalROC *rocMean  = calPed->GetCalRocMean(idet, kFALSE);
-           if ( rocMean )  calPedSum.SetCalRocMean(rocMean,idet);
-           AliTRDCalROC *rocRMS = calPed->GetCalRocRMS(idet, kFALSE);
-           if ( rocRMS )  calPedSum.SetCalRocRMS(rocRMS,idet);
-         }// det loop
+
        } // calPed
       } // fileNameEntry
     ++index;
@@ -328,7 +335,33 @@ Bool_t AliTRDPreprocessor::ExtractPedestals()
     delete listpad;
     return kTRUE;
   }
-  
+
+  // Create Noise 
+  //Make the AliTRDCalPad
+  AliTRDCalPad *calPad2 = calPedSum.CreateCalPad();
+  AliCDBMetaData md4; 
+  md4.SetObjectClassName("AliTRDCalPad");
+  md4.SetResponsible("Raphaelle Bailhache");
+  md4.SetBeamPeriod(1);
+  md4.SetComment("TRD calib test");
+  if(!Store("Calib","PadNoise"    ,(TObject *)calPad2, &md4, 0, kTRUE)){
+    Log("Error storing the pedestal");
+    delete listpad;
+    return kTRUE;
+  }
+  //Make the AliTRDCalDet correspondant
+  AliTRDCalDet *calDet = calPedSum.CreateCalDet();
+  AliCDBMetaData md5; 
+  md5.SetObjectClassName("AliTRDCalDet");
+  md5.SetResponsible("Raphaelle Bailhache");
+  md5.SetBeamPeriod(1);
+  md5.SetComment("TRD calib test");
+  if(!Store("Calib","DetNoise"    ,(TObject *)calDet, &md5, 0, kTRUE)){
+    Log("Error storing the pedestal");
+    delete listpad;
+    return kTRUE;
+  }  
+
   delete listpad;
   return error; 
 
index b869bac..b18d6b6 100644 (file)
@@ -39,7 +39,7 @@ extern "C" {
 //
 #include "AliRawReader.h"
 #include "AliRawReaderDate.h"
-#include "AliTRDRawStream.h"
+#include "AliTRDRawStreamV2.h"
 #include "AliCDBManager.h"
 //
 // AliRoot TRD calib classes
@@ -128,7 +128,7 @@ int main(int argc, char **argv) {
       if(passpadstatus){
 
        AliRawReader *rawReader = new AliRawReaderDate((void*)event);
-       AliTRDRawStream *trdRawStream = new AliTRDRawStream((AliRawReader *)rawReader);
+       AliTRDRawStreamV2 *trdRawStream = new AliTRDRawStreamV2((AliRawReader *)rawReader);
        if(!calipad.ProcessEvent(trdRawStream,(Bool_t)nevents_total)) passpadstatus = kFALSE;
        nevents++;
        delete trdRawStream;
@@ -152,10 +152,17 @@ int main(int argc, char **argv) {
   timer.Print();
 
   /* write file in any case to see what happens in case of problems*/
+  /*see the time*/
+  TStopwatch timer1;
+  timer1.Start();
   TFile *fileTRD = new TFile(RESULT_FILE,"recreate");
+  calipad.AnalyseHisto();
   calipad.Write("calibpadstatus");
   fileTRD->Close();   
   printf("Wrote local file %s\n",RESULT_FILE);
+  /*see the time*/
+  timer1.Stop();
+  timer1.Print();
   
   /* store the result file on FES */
   status=daqDA_FES_storeFile(RESULT_FILE,RESULT_FILE);
index 985ad0f..b6c60d5 100644 (file)
@@ -49,7 +49,7 @@ extern "C" {
 //
 #include "AliRawReader.h"
 #include "AliRawReaderDate.h"
-#include "AliTRDRawStream.h"
+#include "AliTRDRawStreamV2.h"
 #include "AliCDBManager.h"
 
 //
@@ -103,7 +103,7 @@ int main(int argc, char **argv) {
   int nevents_physics=0;
   int nevents_total=0;
 
-  //Instance of AliCDBManager: needed by AliTRDRawStream
+  //Instance of AliCDBManager: needed by AliTRDRawStreamV2
   AliCDBManager *man = AliCDBManager::Instance();
   man->SetDefaultStorage("local://$ALICE_ROOT");
   man->SetRun(0);
@@ -152,7 +152,7 @@ int main(int argc, char **argv) {
     if ((eventT==PHYSICS_EVENT) && (passvdrift)) {
       //if (eventT==PHYSICS_EVENT) {
       AliRawReader *rawReader = new AliRawReaderDate((void*)event);
-      AliTRDRawStream *trdRawStream = new AliTRDRawStream((AliRawReader *) rawReader);
+      AliTRDRawStreamV2 *trdRawStream = new AliTRDRawStreamV2((AliRawReader *) rawReader);
       Int_t result = calibra->ProcessEventDAQ(trdRawStream,(Bool_t)nevents_physics);
       if(!result) passvdrift = kFALSE;
       else nbvdrift += (Int_t) result/2;
index 2e8a2d5..4635d87 100644 (file)
Binary files a/TRD/trdCalibration.root and b/TRD/trdCalibration.root differ