]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSChannelStatus.cxx
cleanup
[u/mrichter/AliRoot.git] / ITS / AliITSChannelStatus.cxx
index 512242db78bcb18a3f2c72800b44c8131c866d94..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):
@@ -63,6 +72,7 @@ fSPDChannelStatus(0),
 fSDDChannelStatus(0),
 fSSDChannelStatus(0)
 {
+  // contruct starting from CDB
   AliCDBEntry* spdEntryD = cdb->Get("ITS/Calib/SPDDead");
   if (!spdEntryD) AliFatal("Cannot get CDB entry for SPDDead");
   TObjArray* deadArrSPD = (TObjArray*)spdEntryD->GetObject();
@@ -88,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);
 }
 //______________________________________________________________________
@@ -103,14 +108,8 @@ fSPDChannelStatus(0),
 fSDDChannelStatus(0),
 fSSDChannelStatus(0)
 {
-  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);
+  // contruct starting from det type rec
+  CreateArrays();
   
   // SPD modules
   for(Int_t imod=0; imod<kSPDModules; imod++){
@@ -174,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++){
@@ -198,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