1 #ifndef ALIITSCALIBRATION_H
2 #define ALIITSCALIBRATION_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 //////////////////////////////////////////////
9 // Base ITS calibration class //
10 //////////////////////////////////////////////
15 #include "AliITSCorrMapSDD.h"
16 #include "AliITSDriftSpeedArraySDD.h"
18 class AliITSsegmentation;
24 /////////////////////////////////////////////
26 // ITS calibration virtual base class //
27 /////////////////////////////////////////////
28 class AliITSCalibration : public TObject {
30 // Default Constructor
34 virtual ~AliITSCalibration() {;}
36 // Check for dead modules anche chips
37 // Return 1 if the module/chip is dead, 0 if it is ok
38 virtual Bool_t IsBad() const {AliError("This method must be implemented in a derived class"); return kFALSE;}
39 virtual Bool_t IsChipBad(Int_t) const {AliError("This method must be implemented in a derived class"); return kFALSE;}
40 virtual Bool_t IsWingBad(Int_t) const {AliError("This method must be implemented in a derived class"); return kFALSE;}
42 // Configuration methods
44 // Temperature in [degree K]
45 virtual void SetTemperature(Double_t t=300.0) {fT = t;}
46 // Get temperature [degree K]
47 virtual Double_t Temperature() const {return fT;}
50 virtual const char *DataType() const {return fDataType.Data();}
51 // Type of data - real or simulated
52 virtual void SetDataType(const char *data="simulated") {fDataType=data;}
53 // Number of parameters to be set
54 virtual void SetNDetParam(Int_t) = 0;
55 // Set detector parameters: gain, coupling ...
56 virtual void SetDetParam(Double_t *) = 0;
58 virtual Int_t NDetParam() const = 0;
59 virtual void GetDetParam(Double_t *) const = 0;
60 virtual void SetMapA(Int_t, AliITSCorrMapSDD*) {AliError("This method must be implemented in a derived class");}
61 virtual void SetMapT(Int_t, AliITSCorrMapSDD*) {AliError("This method must be implemented in a derived class");}
62 virtual void SetDriftSpeed(Int_t, AliITSDriftSpeedArraySDD*) {AliError("This method must be implemented in a derived class");}
63 // Set sigmas of the charge spread function
64 virtual void SetSigmaSpread(Double_t, Double_t) = 0;
65 // Get sigmas for the charge spread
66 virtual void SigmaSpread(Double_t &,Double_t &) const = 0;
68 // Needed for SSD bad modules retrieval in the tracker
69 virtual void SetModuleIndex(Int_t /*modId*/) {};
71 // Prints out the content of this class in ASCII format.
72 virtual void Print(ostream *os) const;
73 // Reads in the content of this class in the format of Print
74 virtual void Read(istream *is);
75 virtual void Print(Option_t *option="") const {TObject::Print(option);}
76 virtual Int_t Read(const char *name) {return TObject::Read(name);}
80 AliITSCalibration(const AliITSCalibration &ob); // copy constructor
81 AliITSCalibration& operator=(const AliITSCalibration& source); // ass.
82 void NotImplemented(const char *method) const {if(gDebug>0)
83 Warning(method,"This method is not implemented for this sub-class");}
85 TString fDataType; // data type - real or simulated
87 Float_t fT; // The temperature of the Si in Degree K.
88 // deleted here but in AliITSDetTypeSim and AliITSDetTypeRec
90 ClassDef(AliITSCalibration,3) // Detector type response virtual base class
92 // Input and output function for standard C++ input/output.
93 ostream& operator<<(ostream &os,AliITSCalibration &source);
94 istream& operator>>(istream &os,AliITSCalibration &source);