/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
+/* $Id$ */
+
//////////////////////////////////////////////
// Base ITS calibration class //
//////////////////////////////////////////////
#include "AliLog.h"
#include "AliITSresponse.h"
#include "AliITSMapSDD.h"
+#include "AliITSDriftSpeedArraySDD.h"
class AliITSsegmentation;
class TF1;
// Destructor.
virtual ~AliITSCalibration() {;}
+
+ // Check for dead modules anche chips
+ // Return 1 if the module/chip is dead, 0 if it is ok
+ virtual Bool_t IsBad() const {AliError("This method must be implemented in a derived class"); return kFALSE;}
+ virtual Bool_t IsChipBad(Int_t) const {AliError("This method must be implemented in a derived class"); return kFALSE;}
//
// Configuration methods
//
virtual const char *DataType() const {return fDataType.Data();}
// Type of data - real or simulated
virtual void SetDataType(const char *data="simulated") {fDataType=data;}
- // Set parameters options: "same" or read from "file" or "SetInvalid" or...
- // virtual void SetParamOptions(const char*,const char*) = 0;
// Set noise parameters
virtual void SetNoiseParam(Double_t, Double_t) = 0;
// Number of parameters to be set
// Set detector parameters: gain, coupling ...
virtual void SetDetParam(Double_t *) = 0;
- // Parameters options
- // virtual void ParamOptions(char *,char*) const = 0;
virtual Int_t NDetParam() const = 0;
virtual void GetDetParam(Double_t *) const = 0;
virtual void GetNoiseParam(Double_t&, Double_t&) const = 0;
virtual void Thresholds(Double_t &, Double_t &) const = 0;
virtual void SetMapA(Int_t, AliITSMapSDD*) {AliError("This method must be implemented in a derived class");}
virtual void SetMapT(Int_t, AliITSMapSDD*) {AliError("This method must be implemented in a derived class");}
+ virtual void SetDriftSpeed(Int_t, AliITSDriftSpeedArraySDD*) {AliError("This method must be implemented in a derived class");}
virtual Double_t DriftSpeed() const {return SpeedElectron();};
// Set sigmas of the charge spread function
virtual void SetSigmaSpread(Double_t, Double_t) = 0;
// voltage v [volt] through a distance d [cm] in any material at a
// temperature T [degree K].
virtual Double_t SigmaDiffusion1D(Double_t l) const;
+ // Computes the Lorentz angle for Electron and Hole, under the Magnetic field bz (in kGauss)
+ virtual Double_t LorentzAngleElectron(Double_t bz) const;
+ virtual Double_t LorentzAngleHole(Double_t bz) const;
// Compute the thickness of the depleted region in a Si detector, version A
virtual Double_t DepletedRegionThicknessA(Double_t dopCons,
Double_t voltage,
virtual void SetDiffCoeff(Float_t p1, Float_t p2) {fResponse->SetDiffCoeff(p1,p2);}
virtual void DiffCoeff(Float_t &diff,Float_t &diff1) const {fResponse->DiffCoeff(diff,diff1);}
- virtual void SetFilenames(const char *f1="",const char *f2="",
- const char *f3="") {fResponse->SetFilenames(f1,f2,f3);}
- virtual void Filenames(char* input,char* baseline,char* param) {fResponse->Filenames(input,baseline,param);}
- virtual void SetOutputOption(Bool_t write=kFALSE) {fResponse->SetOutputOption(write);}
- virtual Bool_t OutputOption() const {return fResponse->OutputOption();}
protected:
AliITSCalibration(const AliITSCalibration &ob); // copy constructor