#include <TArrayS.h>
#include "AliITSdcsSSD.h"
+#include "AliITSCalibrationSSD.h"
#include "AliITSresponseSSD.h"
#include "AliITSsegmentationSSD.h"
+///////////////////////////////////////////////////////////////////////////
+// //
+// Class AliITSdcsSSD //
+// describes Detector Control System parameters for one SSD module. //
+// //
+// This class stores parametrers such as gain, threshold //
+// capacitive coupling. //
+// //
+// Class takes care of invalid strip menagement during //
+// simulation and runtime //
+// //
+// //
+// created at: Warsaw University of Technology //
+// ver. 1.0 WARSAW, 23.12.1999 //
+// //
+///////////////////////////////////////////////////////////////////////////
ClassImp(AliITSdcsSSD)
// Constructor and Destructor
//______________________________________________________________________
-AliITSdcsSSD::AliITSdcsSSD(){
+ AliITSdcsSSD::AliITSdcsSSD():
+fCouplingPR(0),
+fCouplingPL(0),
+fCouplingNR(0),
+fCouplingNL(0),
+fNstrips(0),
+fNInvalid(0),
+fISigma(0),
+fInvalidP(0),
+fInvalidN(0){
// Default Constructor
- fInvalidP = 0;
- fInvalidN = 0;
}
//______________________________________________________________________
-AliITSdcsSSD::AliITSdcsSSD(AliITSsegmentation *seg, AliITSresponse *resp){
+AliITSdcsSSD::AliITSdcsSSD(AliITSsegmentation *seg, AliITSCalibration *resp):
+fCouplingPR(0),
+fCouplingPL(0),
+fCouplingNR(0),
+fCouplingNL(0),
+fNstrips(0),
+fNInvalid(0),
+fISigma(0),
+fInvalidP(0),
+fInvalidN(0){
// Standard constructor
fNstrips =(Float_t) (((AliITSsegmentationSSD*)seg)->Npx());
fInvalidP = new TArrayS();
fInvalidN = new TArrayS();
- Int_t npar=((AliITSresponseSSD*)resp)->NDetParam();
+ Int_t npar=((AliITSCalibrationSSD*)resp)->NDetParam();
if (npar < 6) {
Warning("AliITSdcsSSD","I need 6 parameters ");
npar=6;
} // end if
Double_t *detpar= new Double_t[npar];
- ((AliITSresponseSSD*)resp)->GetDetParam(detpar);
+ resp->GetDetParam(detpar);
fNInvalid = detpar[0];
fISigma = detpar[1];
fCouplingNL = detpar[5];
char opt[30],dummy[20];
- ((AliITSresponseSSD*)resp)->ParamOptions(opt,dummy);
+ ((AliITSCalibrationSSD*)resp)->GetParamOptions(opt,dummy);
if (strstr(opt,"SetInvalid")) SetInvalidMC(fNInvalid,fISigma);
delete [] detpar;
delete fInvalidN;
}
//______________________________________________________________________
-AliITSdcsSSD::AliITSdcsSSD(const AliITSdcsSSD &source) : TObject(source){
+AliITSdcsSSD::AliITSdcsSSD(const AliITSdcsSSD &source) : TObject(source),
+fCouplingPR(source.fCouplingPR),
+fCouplingPL(source.fCouplingPL),
+fCouplingNR(source.fCouplingNR),
+fCouplingNL(source.fCouplingNL),
+fNstrips(source.fNstrips),
+fNInvalid(source.fNInvalid),
+fISigma(source.fISigma),
+fInvalidP(source.fInvalidP),
+fInvalidN(source.fInvalidN){
// Copy Constructor
- if(&source == this) return;
-
- this->fCouplingPR = source.fCouplingPR;
- this->fCouplingPL = source.fCouplingPL;
- this->fCouplingNR = source.fCouplingNR;
- this->fCouplingNL = source.fCouplingNL;
- this->fNstrips = source.fNstrips;
- this->fNInvalid = source.fNInvalid;
- this->fISigma = source.fISigma;
- this->fInvalidP = source.fInvalidP;
- this->fInvalidN = source.fInvalidN;
-
- return;
}
//_________________________________________________________________________
AliITSdcsSSD& AliITSdcsSSD::operator=(const AliITSdcsSSD &source) {
fISigma = (fISigma > fNstrips/10) ? fNstrips/10 : fISigma;
}
//______________________________________________________________________
-void AliITSdcsSSD::GetInvalidParam(Float_t &mean, Float_t &sigma) {
+void AliITSdcsSSD::GetInvalidParam(Float_t &mean, Float_t &sigma) const {
// get invalid param
mean = fNInvalid;