Line data Source code
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 */
5 :
6 : /* $Id$ */
7 :
8 : //////////////////////////////////////////////
9 : // Base ITS calibration class //
10 : //////////////////////////////////////////////
11 :
12 : #include <TObject.h>
13 : #include <TString.h>
14 : #include "AliLog.h"
15 : #include "AliITSCorrMapSDD.h"
16 : #include "AliITSDriftSpeedArraySDD.h"
17 :
18 : class AliITSsegmentation;
19 : class TF1;
20 : class AliITSgeom;
21 :
22 : using std::istream;
23 :
24 : /////////////////////////////////////////////
25 : // //
26 : // ITS calibration virtual base class //
27 : /////////////////////////////////////////////
28 : class AliITSCalibration : public TObject {
29 : public:
30 : // Default Constructor
31 : AliITSCalibration();
32 :
33 : // Destructor.
34 3840 : virtual ~AliITSCalibration() {;}
35 :
36 : // Check for dead modules anche chips
37 : // Return 1 if the module/chip is dead, 0 if it is ok
38 0 : virtual Bool_t IsBad() const {AliError("This method must be implemented in a derived class"); return kFALSE;}
39 0 : virtual Bool_t IsChipBad(Int_t) const {AliError("This method must be implemented in a derived class"); return kFALSE;}
40 0 : virtual Bool_t IsWingBad(Int_t) const {AliError("This method must be implemented in a derived class"); return kFALSE;}
41 : //
42 : // Configuration methods
43 : //
44 : // Temperature in [degree K]
45 1560 : virtual void SetTemperature(Double_t t=300.0) {fT = t;}
46 : // Get temperature [degree K]
47 0 : virtual Double_t Temperature() const {return fT;}
48 :
49 : // Get data type
50 0 : virtual const char *DataType() const {return fDataType.Data();}
51 : // Type of data - real or simulated
52 5400 : 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;
57 :
58 : virtual Int_t NDetParam() const = 0;
59 : virtual void GetDetParam(Double_t *) const = 0;
60 0 : virtual void SetMapA(Int_t, AliITSCorrMapSDD*) {AliError("This method must be implemented in a derived class");}
61 0 : virtual void SetMapT(Int_t, AliITSCorrMapSDD*) {AliError("This method must be implemented in a derived class");}
62 0 : 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;
67 :
68 : // Needed for SSD bad modules retrieval in the tracker
69 2000 : virtual void SetModuleIndex(Int_t /*modId*/) {};
70 :
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 0 : virtual void Print(Option_t *option="") const {TObject::Print(option);}
76 0 : virtual Int_t Read(const char *name) {return TObject::Read(name);}
77 :
78 :
79 : protected:
80 : AliITSCalibration(const AliITSCalibration &ob); // copy constructor
81 : AliITSCalibration& operator=(const AliITSCalibration& source); // ass.
82 0 : void NotImplemented(const char *method) const {if(gDebug>0)
83 0 : Warning(method,"This method is not implemented for this sub-class");}
84 :
85 : TString fDataType; // data type - real or simulated
86 :
87 : Float_t fT; // The temperature of the Si in Degree K.
88 : // deleted here but in AliITSDetTypeSim and AliITSDetTypeRec
89 :
90 130 : ClassDef(AliITSCalibration,3) // Detector type response virtual base class
91 : };
92 : // Input and output function for standard C++ input/output.
93 : ostream& operator<<(ostream &os,AliITSCalibration &source);
94 : istream& operator>>(istream &os,AliITSCalibration &source);
95 : #endif
|