]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSdcsSSD.cxx
Tgz changed with tar
[u/mrichter/AliRoot.git] / ITS / AliITSdcsSSD.cxx
index eca282a8e04d4e8d8893bcac1538ae1d860b2e2b..e08796ce5d867b2eb9113dc0bb793aa161d18759 100644 (file)
@@ -2,21 +2,54 @@
 #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());
@@ -24,14 +57,14 @@ AliITSdcsSSD::AliITSdcsSSD(AliITSsegmentation *seg, AliITSresponse *resp){
     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];
@@ -42,7 +75,7 @@ AliITSdcsSSD::AliITSdcsSSD(AliITSsegmentation *seg, AliITSresponse *resp){
     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;
@@ -55,22 +88,18 @@ AliITSdcsSSD::~AliITSdcsSSD() {
     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) {
@@ -138,7 +167,7 @@ void AliITSdcsSSD::SetInvalidParam(Float_t mean, Float_t sigma) {
     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;