]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSChannelStatus.cxx
cleanup
[u/mrichter/AliRoot.git] / ITS / AliITSChannelStatus.cxx
index 9de2c713b88d2b8f95c7684181cdc096f80353bd..4cd2c3db5ad4886661f631a9f1a572e4139c06c9 100644 (file)
@@ -26,6 +26,7 @@
 //                                                                      //
 //////////////////////////////////////////////////////////////////////////
 
+#include <TString.h>
 #include "AliITSChannelStatus.h"
 #include "AliITSCalibrationSPD.h"
 #include "AliITSCalibrationSDD.h"
@@ -33,6 +34,8 @@
 #include "AliITSsegmentationSPD.h"
 #include "AliITSsegmentationSDD.h"
 #include "AliITSsegmentationSSD.h"
+#include "AliITSDetTypeRec.h"
+#include "AliCDBManager.h"
 #include "AliCDBEntry.h"
 #include "TMath.h"
 #include "AliLog.h"
@@ -48,13 +51,19 @@ fSDDChannelStatus(0),
 fSSDChannelStatus(0)
 {
   // default constructor 
-  UInt_t nSPDchan=kSPDModules*kSPDNpxPerModule*kSPDNpzPerModule;
-  fSPDChannelStatus=new TBits(nSPDchan);
-  UInt_t nSDDchan=kSDDModules*kSDDAnodesPerModule;
-  fSDDChannelStatus=new TBits(nSDDchan);
-  UInt_t nSSDchan=kSSDModules*kSSDStripsPerModule;
-  fSSDChannelStatus=new TBits(nSSDchan);
-  InitDefaults();
+}
+//______________________________________________________________________
+AliITSChannelStatus::AliITSChannelStatus(TString config):
+TObject(),
+fSPDChannelStatus(0),
+fSDDChannelStatus(0),
+fSSDChannelStatus(0)
+{
+  // construt starting from an option passed via a TString
+  CreateArrays();
+  if(config.Contains("Ideal") || config.Contains("Default")){
+    InitDefaults();
+  }
 }
 //______________________________________________________________________
 AliITSChannelStatus::AliITSChannelStatus(AliCDBManager *cdb):
@@ -89,12 +98,7 @@ fSSDChannelStatus(0)
   TObjArray* calArrSSD = (TObjArray*)ssdEntry->GetObject();
   if (!calArrSSD) AliFatal("No object found in CalibSSD file");
 
-  UInt_t nSPDchan=kSPDModules*kSPDNpxPerModule*kSPDNpzPerModule;
-  fSPDChannelStatus=new TBits(nSPDchan);
-  UInt_t nSDDchan=kSDDModules*kSDDAnodesPerModule;
-  fSDDChannelStatus=new TBits(nSDDchan);
-  UInt_t nSSDchan=kSSDModules*kSSDStripsPerModule;
-  fSSDChannelStatus=new TBits(nSSDchan);
+  CreateArrays();
   InitFromOCDB(deadArrSPD,deadSparseArrSPD,noisArrSPD,calArrSDD,calArrSSD);
 }
 //______________________________________________________________________
@@ -105,14 +109,7 @@ fSDDChannelStatus(0),
 fSSDChannelStatus(0)
 {
   // contruct starting from det type rec
-  UInt_t nSPDchan=kSPDModules*kSPDNpxPerModule*kSPDNpzPerModule;
-  fSPDChannelStatus=new TBits(nSPDchan);
-  
-  UInt_t nSDDchan=kSDDModules*kSDDAnodesPerModule;
-  fSDDChannelStatus=new TBits(nSDDchan);
-
-  UInt_t nSSDchan=kSSDModules*kSSDStripsPerModule;
-  fSSDChannelStatus=new TBits(nSSDchan);
+  CreateArrays();
   
   // SPD modules
   for(Int_t imod=0; imod<kSPDModules; imod++){
@@ -176,6 +173,20 @@ fSSDChannelStatus(0)
   }
 }
 //______________________________________________________________________
+void  AliITSChannelStatus::CreateArrays(){
+  // creates the TBit arrays
+
+  UInt_t nSPDchan=kSPDModules*kSPDNpxPerModule*kSPDNpzPerModule;
+  fSPDChannelStatus=new TBits(nSPDchan);
+
+  UInt_t nSDDchan=kSDDModules*kSDDAnodesPerModule;
+  fSDDChannelStatus=new TBits(nSDDchan);
+
+  UInt_t nSSDchan=kSSDModules*kSSDStripsPerModule;
+  fSSDChannelStatus=new TBits(nSSDchan);
+
+}
+//______________________________________________________________________
 void  AliITSChannelStatus::InitDefaults(){
   // fill bitmaps setting all channels as good
   for(Int_t imod=0; imod<kSPDModules; imod++){
@@ -200,7 +211,7 @@ void  AliITSChannelStatus::InitDefaults(){
   }
 }
 //______________________________________________________________________
-void AliITSChannelStatus::InitFromOCDB(TObjArray* deadArrSPD, TObjArray* /* deadSparseArrSPD */, TObjArray* noisArrSPD, TObjArray* calArrSDD, TObjArray *calArrSSD){
+void AliITSChannelStatus::InitFromOCDB(const TObjArray* deadArrSPD, const TObjArray* /* deadSparseArrSPD */, const TObjArray* noisArrSPD, const TObjArray* calArrSDD, const TObjArray *calArrSSD){
 // fills bitmaps from arrays of AliITSCalibrationSXD objects
 
   // SPD modules