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 c6e0ccce7c08d777d05e577b4b27b2cf22ad3b00..d54a94b3f52fcf66dee05461c0d2d0150b23094a 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 aba9909ca8621f7d93a2524b520fe72d9566393b..9ef5b3b0e7ea28376f30dc6c681cdae7cdd03bdc 100644 (file)
@@ -1513,6 +1513,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 c1a7028aad7217e742aeb9fbd5b20dc212fa3e23..e1d1fa3caf93041286e7cdbdbf90887d42ba2ed4 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 23804d394ef4ce502b744af9f6add2ddd476719e..b2c2c278e3a115960c2b75bb73038584592d8dda 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 643acac461a04035a19c745603a3416e7d759886..3afade0f96342b932f177c453405251d891a9d7c 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 76b8de5c14c997eb968ef5f715d0923990c77634..3e9f644d7834533be1b1a2146019cef0efa0ebed 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 778b53f43c94e2cfa154d547cef0603286f450ba..4fe09cb86dfdaf2147670efb01ec84c66287294b 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 77f0ebafb87390ef7738c2db8f5025887ce2b151..7ed60c3b75565085fb62136f6bc0e29d6e8dce29 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 9e62bb0fd717dd5e081c9f3561a8941f0abe0b07..d1e91ab6804f5b79fae724da38e8163846a666b3 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 ec0fb05bd8e9841918c4c88509e447e0990d6642..9f6120500cd2f5c0aa95a7f5d7060423907dda89 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 a6f9de065dacca6478538487d271e7dd2915b8f3..761560bf6fb2251041e5be12b89f8f52cd52535a 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 4f8767a4a9d5746401cbd2af91939c2e1cb0a0d3..537779a274eaede137706080e48f962637459912 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 df4b17b64600d7a9a63f7c39703408e0511ccff6..cb4b2f0f5c89853899c97ad09ca70a44b0d95a69 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);