Masking of not calibrated chambers
authorcblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 14 Sep 2012 14:28:09 +0000 (14:28 +0000)
committercblume <cblume@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 14 Sep 2012 14:28:09 +0000 (14:28 +0000)
13 files changed:
TRD/AliTRDPreprocessorOffline.cxx
TRD/AliTRDcalibDB.cxx
TRD/AliTRDcalibDB.h
TRD/Cal/AliTRDCalChamberStatus.cxx
TRD/Cal/AliTRDCalChamberStatus.h
TRD/Cal/AliTRDCalDCS.cxx
TRD/Cal/AliTRDCalDCS.h
TRD/Cal/AliTRDCalDCSPTRCba.h
TRD/Cal/AliTRDCalDCSPTRCbb.h
TRD/Cal/AliTRDCalDCSPTRFeb.h
TRD/Cal/AliTRDCalDCSPTRTlmu.h
TRD/Cal/AliTRDCalDet.cxx
TRD/Cal/AliTRDCalDet.h

index c6e0ccc..d54a94b 100644 (file)
@@ -772,6 +772,8 @@ Bool_t AliTRDPreprocessorOffline::AnalyzeVdriftLinearFit(){
   calibra->SetCalDetVdriftExB(fCalDetVdriftUsed,fCalDetExBUsed);
   calibra->SetMinEntries(fMinStatsVdriftLinear); // If there is less than 1000 entries in the histo: no fit
   printf("The mean stat is by %d for VdriftLinear\n",fMinStatsVdriftLinear);
+  //fAliTRDCalibraVdriftLinearFit->SetSeeDetector(0);
+  //fAliTRDCalibraVdriftLinearFit->SetDebugLevel(1);
   //printf("Fill PE Array\n");
   fAliTRDCalibraVdriftLinearFit->SetRobustFit(fRobustFitDriftVelocity);
   fAliTRDCalibraVdriftLinearFit->SetMinNumberOfPointsForFit(fMinNbOfPointVdriftFit);
@@ -1023,6 +1025,19 @@ Bool_t AliTRDPreprocessorOffline::AnalyzeChamberStatus()
   // Check
   if((TMath::Abs(gainrms) < 0.001) || (TMath::Abs(vdriftrms) < 0.001) || (TMath::Abs(exbrms) < 0.0000001)) return kFALSE;
 
+  // Take mean each SM
+  Double_t *gainmeanSM = new Double_t[18];
+  Double_t *vdriftmeanSM = new Double_t[18];
+  Double_t *exbmeanSM = new Double_t[18];
+  //Double_t *t0meanSM = new Double_t[18];
+  for(Int_t sm=0; sm< 18; sm++) {
+    gainmeanSM[sm] = calDetGain->GetMeanSM(kFALSE,sm);
+    vdriftmeanSM[sm] = calDetVDrift->GetMeanSM(kFALSE,sm);
+    exbmeanSM[sm] = calDetExB->GetMeanSM(kFALSE,sm);
+    //t0meanSM[sm] = calDetGain->GetMeanSM(kFALSE);
+  }
+
+
   // mask chambers with empty gain entries
   //Int_t counter = 0;
   for (Int_t idet = 0; idet < 540; idet++) {
@@ -1032,6 +1047,9 @@ Bool_t AliTRDPreprocessorOffline::AnalyzeChamberStatus()
     Double_t entries = projch->GetEntries();
     //printf("Number of entries %f for det %d\n",entries,idet);
 
+    // sm number
+    Int_t smnumber = (Int_t) idet/30;
+
     // gain
     Double_t gain = calDetGain->GetValue(idet);
 
@@ -1056,6 +1074,19 @@ Bool_t AliTRDPreprocessorOffline::AnalyzeChamberStatus()
       //counter++;
     }
 
+    if(TMath::Abs(gainmeanSM[smnumber]-gain) < 0.000001  ||
+       TMath::Abs(vdriftmeanSM[smnumber]-vdrift) < 0.000001 ||
+       TMath::Abs(exbmeanSM[smnumber]-exb) < 0.000001) {
+      
+      //printf(" chamber det %03d notcalibrated sm %d \n",idet,smnumber);
+      //printf(" gainmeanSM %f and gain %f\n",gainmeanSM[smnumber],gain);
+      //printf(" vdriftmeanSM %f and vdrift %f \n",vdriftmeanSM[smnumber],vdrift);
+      //printf(" exbmeanSM %f and exb %f \n",exbmeanSM[smnumber],exb);
+
+      calChamberStatus->SetStatus(idet,AliTRDCalChamberStatus::kNotCalibrated);
+    }
+
+
     delete projch;
     
    }
@@ -1075,6 +1106,11 @@ Bool_t AliTRDPreprocessorOffline::AnalyzeChamberStatus()
     fBadCalib[sm]= smbadcalib;
     //printf("No Data %d, bad calibrated %d for %d\n",fNoData[sm],fBadCalib[sm],sm);
   }
+
+  // delete
+  delete []gainmeanSM;
+  delete []vdriftmeanSM;
+  delete []exbmeanSM;
   
   // Security
   //   for(Int_t sm=0; sm < 18; sm++) {
index aba9909..9ef5b3b 100644 (file)
@@ -1514,6 +1514,23 @@ Bool_t AliTRDcalibDB::IsChamberBadCalibrated(Int_t det)
 }
 
 //_____________________________________________________________________________
+Bool_t AliTRDcalibDB::IsChamberNotCalibrated(Int_t det)
+{
+  //
+  // Returns status, see name of functions for details ;-)
+  //
+
+  const AliTRDCalChamberStatus     * cal = dynamic_cast<const AliTRDCalChamberStatus *> 
+                                           (GetCachedCDBObject(kIDChamberStatus));
+  if (!cal) {
+    return -1;
+  }
+
+  return cal->IsNotCalibrated(det);
+
+}
+
+//_____________________________________________________________________________
 const AliTRDCalPID *AliTRDcalibDB::GetPIDObject(AliTRDpidUtil::ETRDPIDMethod method)
 {
   //
index c1a7028..e1d1fa3 100644 (file)
@@ -124,6 +124,7 @@ class AliTRDcalibDB : public TObject {
   Bool_t                              IsChamberNoData(Int_t det);
   Bool_t                              IsHalfChamberNoData(Int_t det, Int_t side);
   Bool_t                              IsChamberBadCalibrated(Int_t det);
+  Bool_t                              IsChamberNotCalibrated(Int_t det);
 
   const AliTRDCalMonitoring          *GetMonitoringObject();
   const AliTRDCalPID                 *GetPIDObject(AliTRDpidUtil::ETRDPIDMethod m);
index 23804d3..b2c2c27 100644 (file)
@@ -94,12 +94,17 @@ void AliTRDCalChamberStatus::SetStatus(Int_t det, Char_t status)
       CLRBIT(fStatus[det], kGood);
       SETBIT(fStatus[det], kBadCalibrated);
       break;
+    case AliTRDCalChamberStatus::kNotCalibrated:
+      SETBIT(fStatus[det], kNotCalibrated);
+      //CLRBIT(fStatus[det], kBadCalibrated);
+      break;
     default:
       CLRBIT(fStatus[det], kGood);
       CLRBIT(fStatus[det], kNoData);
       CLRBIT(fStatus[det], kNoDataHalfChamberSideA);
       CLRBIT(fStatus[det], kNoDataHalfChamberSideB);
       CLRBIT(fStatus[det], kBadCalibrated);
+      CLRBIT(fStatus[det], kNotCalibrated);
     }
 
 }
@@ -129,12 +134,16 @@ void AliTRDCalChamberStatus::UnsetStatusBit(Int_t det, Char_t status)
     case AliTRDCalChamberStatus::kBadCalibrated:
       CLRBIT(fStatus[det], kBadCalibrated);
       break;
+    case AliTRDCalChamberStatus::kNotCalibrated:
+      CLRBIT(fStatus[det], kNotCalibrated);
+      break;
     default:
       CLRBIT(fStatus[det], kGood);
       CLRBIT(fStatus[det], kNoData);
       CLRBIT(fStatus[det], kNoDataHalfChamberSideA);
       CLRBIT(fStatus[det], kNoDataHalfChamberSideB);
       CLRBIT(fStatus[det], kBadCalibrated);
+      CLRBIT(fStatus[det], kNotCalibrated);
     }
 
 }
index 643acac..3afade0 100644 (file)
@@ -20,7 +20,7 @@ class AliTRDCalChamberStatus : public TNamed {
  public:
 
   enum { kNdet = 540, kNstacks = 90, kNcham = 5, kNsect = 18 };
-  enum { kGood = 0, kNoData = 1, kNoDataHalfChamberSideA = 2, kNoDataHalfChamberSideB = 3, kBadCalibrated = 4};
+  enum { kGood = 0, kNoData = 1, kNoDataHalfChamberSideA = 2, kNoDataHalfChamberSideB = 3, kBadCalibrated = 4, kNotCalibrated = 5};
   
   AliTRDCalChamberStatus();
   AliTRDCalChamberStatus(const Text_t* name, const Text_t* title);
@@ -34,6 +34,7 @@ class AliTRDCalChamberStatus : public TNamed {
   Bool_t IsNoDataSideA(Int_t det) const      { return TESTBIT(fStatus[det], kNoDataHalfChamberSideA); }
   Bool_t IsNoDataSideB(Int_t det) const      { return TESTBIT(fStatus[det], kNoDataHalfChamberSideB); }
   Bool_t IsBadCalibrated(Int_t det) const    { return TESTBIT(fStatus[det], kBadCalibrated);          }
+  Bool_t IsNotCalibrated(Int_t det) const    { return TESTBIT(fStatus[det], kNotCalibrated);          }
 
  TH2D *Plot(Int_t sm, Int_t rphi);           // Plot fStatus for sm and halfchamberside  
  TH2D *PlotNoData(Int_t sm, Int_t rphi);     // Plot data status for sm and halfchamberside  
index 76b8de5..3e9f644 100644 (file)
@@ -51,13 +51,14 @@ AliTRDCalDCS::AliTRDCalDCS()
   ,fRunType("")
   ,fStartTime(0)
   ,fEndTime(0)
-  ,fFEEArr(new TObjArray(540))
-  ,fPTRArr(new TObjArray(6))
-  ,fGTUObj(new AliTRDCalDCSGTU())
+  ,fFEEArr(0)
+  ,fPTRArr(0)
+  ,fGTUObj(0)
 {
   //
   // AliTRDCalDCS default constructor
   //
+
 }
 
 //_____________________________________________________________________________
@@ -91,6 +92,7 @@ AliTRDCalDCS::AliTRDCalDCS(const Text_t *name, const Text_t *title)
   //
   // AliTRDCalDCS constructor
   //
+
 }
 
 //_____________________________________________________________________________
@@ -124,6 +126,7 @@ AliTRDCalDCS::AliTRDCalDCS(const AliTRDCalDCS &cd)
   //
   // AliTRDCalDCS copy constructor
   //
+
 }
 
 //_____________________________________________________________________________
index 778b53f..4fe09cb 100644 (file)
@@ -65,7 +65,7 @@ class AliTRDCalDCS : public TNamed {
                                  { return (AliTRDCalDCSFEE*)fFEEArr->At(det); }
   AliTRDCalDCSPTR* GetCalDCSPTRObj(Int_t det) 
                                  { return (AliTRDCalDCSPTR*)fPTRArr->At(det); }
-  AliTRDCalDCSGTU* GetGTUObj() 
+  AliTRDCalDCSGTU* GetGTUObj() const
                                  { return (AliTRDCalDCSGTU*)fGTUObj;          }
 
  protected:
index 77f0eba..7ed60c3 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef AliTRDCALDCSPTRCba_H
-#define AliTRDCALDCSPTRCba_H
+#ifndef ALITRDCALDCSPTRCBA_H
+#define ALITRDCALDCSPTRCBA_H
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
@@ -69,8 +69,8 @@ class AliTRDCalDCSPTRCba : public TNamed {
   UInt_t  GetBitsToCbB45Lb() const                    { return fBitsToCbB45Lb;                }
   UInt_t  GetBitsToCbB45Hb() const                    { return fBitsToCbB45Hb;                }
   
-  TString GetControlBoxSide()                         { return fSide;                         }
-  Int_t   GetControlBoxPrimary()                      { return fPrimary;                      }
+  TString GetControlBoxSide() const                   { return fSide;                         }
+  Int_t   GetControlBoxPrimary() const                { return fPrimary;                      }
 
   void    SetControlBoxSide(TString bs)               { fSide = bs;                           }
   void    SetControlBoxPrimary(Int_t bp)              { fPrimary = bp;                        }
index 9e62bb0..d1e91ab 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef AliTRDCALDCSPTRCBB_H
-#define AliTRDCALDCSPTRCBB_H
+#ifndef ALITRDCALDCSPTRCBB_H
+#define ALITRDCALDCSPTRCBB_H
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
@@ -27,8 +27,8 @@ class AliTRDCalDCSPTRCbb : public TNamed {
   TString GetControlBoxSide()                         { return fSide;                         }
   Int_t   GetControlBoxPrimary()                      { return fPrimary;                      }
   
-  void    SetControlBoxSide(TString bs)               { fSide = bs;                           }
-  void    SetControlBoxPrimary(Int_t bp)              { fPrimary = bp;                        }
+  void    SetControlBoxSide(TString bs) const        { fSide = bs;                           }
+  void    SetControlBoxPrimary(Int_t bp) const        { fPrimary = bp;                        }
   UInt_t  GetPreToNextCycles() const                  { return fPreToNextCycles;                         }
   UInt_t  GetL0ToNextCycles() const                   { return fL0ToNextCycles;                         }
   UInt_t  GetL1ToNextCycles() const                   { return fL1ToNextCycles;                         }
index ec0fb05..9f61205 100644 (file)
@@ -24,9 +24,9 @@ class AliTRDCalDCSPTRFeb : public TNamed {
   AliTRDCalDCSPTRFeb(const AliTRDCalDCSPTRFeb &);
   virtual ~AliTRDCalDCSPTRFeb() { };
 
-  TString GetControlBoxSide()                         { return fSide;                         }
-  TString GetDetectorName()                           { return fDetName;                      }
-  Int_t   GetControlBoxPrimary()                      { return fPrimary;                      }
+  TString GetControlBoxSide() const                   { return fSide;                         }
+  TString GetDetectorName() const                     { return fDetName;                      }
+  Int_t   GetControlBoxPrimary() const                { return fPrimary;                      }
 
   void    SetControlBoxSide(TString bs)               { fSide = bs;                           }
   void    SetDetectorName(TString bs)                 { fDetName = bs;                        }
index a6f9de0..761560b 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef AliTRDCALDCSPTRTlmu_H
-#define AliTRDCALDCSPTRTlmu_H
+#ifndef ALITRDCALDCSPTRTLMU_H
+#define ALITRDCALDCSPTRTLMU_H
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
@@ -26,7 +26,6 @@ class AliTRDCalDCSPTRTlmu : public TNamed {
 
  protected:
 
-
   ClassDef(AliTRDCalDCSPTRTlmu,1)      //  TRD calibration class for TRD GTU parameters
 
 };
index 4f8767a..537779a 100644 (file)
@@ -690,7 +690,7 @@ Double_t AliTRDCalDet::CalcRMS(Bool_t wghtPads)
        return CalcRMS(wghtPads, calib);
 }
 //_____________________________________________________________________________
-Double_t AliTRDCalDet::GetMeanSM(Bool_t wghtPads, Int_t sector)
+Double_t AliTRDCalDet::GetMeanSM(Bool_t wghtPads, Int_t sector) const
 {
   // Calculate the mean value for given sector
   // wghPads = kTRUE weighted with the number of pads in case of a AliTRDCalPad created (t0)
@@ -721,7 +721,7 @@ Double_t AliTRDCalDet::GetMeanSM(Bool_t wghtPads, Int_t sector)
     det++;
   }
        
-       Double_t mean=0.0;
+  Double_t mean=0.0;
   if(!wghtPads) mean= meanSM[sector];
   if(wghtPads) mean= meanSMWP[sector];
        
@@ -730,4 +730,3 @@ Double_t AliTRDCalDet::GetMeanSM(Bool_t wghtPads, Int_t sector)
        
   return mean;
 }
-
index df4b17b..cb4b2f0 100644 (file)
@@ -50,8 +50,8 @@ class AliTRDCalDet : public TNamed {
   Double_t CalcMean(Bool_t wghtPads, Int_t &calib);
   Double_t CalcRMS(Bool_t wghtPads=kFALSE);
   Double_t CalcRMS(Bool_t wghtPads, Int_t &calib);
-       Double_t GetMeanSM(Bool_t wghtPads, Int_t sector);
-
+  Double_t GetMeanSM(Bool_t wghtPads, Int_t sector) const;
+  
   // Plot functions
   TH1F * MakeHisto1Distribution(Float_t min=4, Float_t max=-4, Int_t type=0);     
   TH1F * MakeHisto1DAsFunctionOfDet(Float_t min=4, Float_t max=-4, Int_t type=0);