// //
//////////////////////////////////////////////////////////////////////////
+#include <TString.h>
#include "AliITSChannelStatus.h"
#include "AliITSCalibrationSPD.h"
#include "AliITSCalibrationSDD.h"
#include "AliITSsegmentationSPD.h"
#include "AliITSsegmentationSDD.h"
#include "AliITSsegmentationSSD.h"
+#include "AliITSDetTypeRec.h"
+#include "AliCDBManager.h"
#include "AliCDBEntry.h"
#include "TMath.h"
#include "AliLog.h"
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):
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();
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);
}
//______________________________________________________________________
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++){
}
}
//______________________________________________________________________
+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++){
}
}
//______________________________________________________________________
-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