AliRoot Core  3dc7879 (3dc7879)
Go to the documentation of this file.
1 #ifndef AliDCSSensorArray_H
2 #define AliDCSSensorArray_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
8 // //
9 // Calibration class for DCS sensors //
10 // //
13 #include "TNamed.h"
14 #include "TMap.h"
15 #include "TObjString.h"
16 #include "AliCDBManager.h"
17 #include "AliCDBEntry.h"
18 #include "AliDCSValue.h"
19 #include "AliDCSSensor.h"
21 class TGraph;
22 class TTimeStamp;
25 class AliDCSSensorArray : public TNamed {
26  public:
28  AliDCSSensorArray(TClonesArray *arr);
29  AliDCSSensorArray(Int_t run, const char* dbEntry);
30  AliDCSSensorArray(UInt_t startTime, UInt_t endTime, TTree* confTree);
31  AliDCSSensorArray(UInt_t startTime, UInt_t endTime, TClonesArray *sensors);
33  virtual ~AliDCSSensorArray();
35  virtual void Print(const Option_t* option="") const;
36  virtual void DumpToTree(const char * fname="dcsDump.root", Int_t deltaT=10, Int_t sigmaT=300, Int_t id=0);
37  void SetStartTime (const TTimeStamp& start) { fStartTime = start; }
38  void SetEndTime (const TTimeStamp& end) { fEndTime = end; }
39  TTimeStamp GetStartTime () const { return fStartTime; }
40  TTimeStamp GetEndTime () const { return fEndTime; }
41  void SetMinGraph(const Int_t minGraph) { fMinGraph=minGraph;}
42  Int_t GetMinGraph() const { return fMinGraph; }
43  void SetMinPoints(const Int_t minPoints) { fMinPoints=minPoints;}
44  Int_t GetMinPoints() const { return fMinPoints; }
45  void SetIter(const Int_t iter ) { fIter=iter; }
46  Int_t GetIter() const { return fIter; }
47  void SetMaxDelta(const Double_t maxDelta) { fMaxDelta= maxDelta;}
48  Double_t GetMaxDelta() const { return fMaxDelta; }
49  void SetFitReq(const Int_t fitReq) { fFitReq=fitReq; }
50  Int_t GetFitReq() const {return fFitReq;}
51  void SetValCut(const Int_t valCut) { fValCut=valCut;}
52  Int_t GetValCut() const {return fValCut;}
53  void SetDiffCut(const Int_t diffCut) { fDiffCut=diffCut; }
54  Int_t GetDiffCut() const {return fDiffCut;}
56  void SetGraph (TMap *map);
57  void MakeSplineFit(TMap *map, Bool_t keepMap=kFALSE);
58  void MakeSplineFitAddPoints(TMap *map);
59  TMap* ExtractDCS (TMap *dcsMap, Bool_t keepStart=kFALSE);
60  TGraph* MakeGraph (TObjArray *valueSet, Bool_t keepStart=kFALSE);
61  void ClearGraph();
62  void ClearFit();
63  Double_t GetValue (UInt_t timeSec, Int_t sensor);
64  AliDCSSensor* GetSensor (Int_t IdDCS);
65  AliDCSSensor* GetSensor (Double_t x, Double_t y, Double_t z);
66  AliDCSSensor* GetSensor (const TString& stringID);
67  AliDCSSensor* GetSensorNum (Int_t ind);
68  Int_t SetSensor (const TString& stringID, const AliDCSSensor& sensor);
69  void SetSensorNum (const Int_t ind, const AliDCSSensor& sensor);
70  void RemoveSensorNum(Int_t ind);
71  void RemoveSensor(Int_t IdDCS);
72  void AddSensors(AliDCSSensorArray *sensors);
73  void RemoveGraphDuplicates (Double_t tolerance=1e-6);
74  void RemoveAbsBelowThreshold(const Double_t threshold);
75  TArrayI OutsideThreshold(Double_t threshold, UInt_t timeSec=0, Bool_t below=kTRUE) const;
76  Int_t NumSensors() const { return fSensors->GetEntries(); }
77  Int_t NumFits() const;
79  Int_t GetFirstIdDCS() const;
80  Int_t GetLastIdDCS() const;
81  const TClonesArray * GetArray(){return fSensors;}
83  protected:
84  Int_t fMinGraph; // minimum #points of graph to be fitted
85  Int_t fMinPoints; // minimum number of points per knot in fit
86  Int_t fIter; // number of iterations for spline fit
87  Double_t fMaxDelta; // precision parameter for spline fit
88  Int_t fFitReq; // fit requirement, 2 = continuous 2nd derivative
89  Int_t fValCut; // cut on absolute value read from DCS map
90  Int_t fDiffCut; // cut on difference in value read from DCS map
91  TTimeStamp fStartTime; // start time for measurements in this entry
92  TTimeStamp fEndTime; // end time for measurements in this entry
93  TClonesArray *fSensors; // Array of sensors
97  ClassDef(AliDCSSensorArray,3) // TPC calibration class for parameters which are saved per pad
99 };
101 #endif
void RemoveAbsBelowThreshold(const Double_t threshold)
AliDCSSensorArray & operator=(const AliDCSSensorArray &c)
void SetStartTime(const TTimeStamp &start)
const TClonesArray * GetArray()
#define TObjArray
void SetEndTime(const TTimeStamp &end)
Int_t NumSensors() const
void MakeSplineFit(TMap *map, Bool_t keepMap=kFALSE)
============================================================================Standard CPass0, CPass1=============================================================================xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx AliTPCcalibTime Input-reconstructed tracks and events OCDB output:TPC/Calib/TimeDrift array of graphs+in past used as one of input for the TPC/Calib/Corrections Details:Kalman fit:drift, drfit velocity gradient t0 shift+alignment output:part of TPC/CalibTimeDrift Histogramming:a.) TPC/ITS, TPC/Vertex, TPC/TOF, TPC/TRD residual histograms in 4 D-cretaion of distortion maps for run by run alignment OCDB output:part of TPC/CalibTimeDrift additional output:distortion map in meanITSVertex.root b.) TPCAside vertex, TPCCside vertex, Global vertex combination histogramming-implemented as a robust method-not used for extraction of calibration because of worse precission, and problems starting strting at high luminosity running.c.) TPCdrift laser histogramming-OCDB output:part of TPC/CalibTimeDrift-as laser is not 100%stable, calibration is not used in the reconstruction unless all other methods mentioned above failed xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx AliTPCcalibTimeGain:Input-reconstructed tracks and events OCDB output:TPC/Calib/TimeGain-array of graphs Details:the calibration of the time dependence of the TPC gain due to pressure and temperature changes etc.In addition signal attenuation calibration xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx AliTPCcalibGainMult:Input-reconstructed tracks and events OCDB output:TPC/Calib/TimeGain-array of graphs Details:gain/tail as function of multiplicity, gain per chamber+experimental code for the dEdx calibration presented one year ago(disabled)=============================================================================New in CPass0, CPass1=============================================================================xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx AliTPCcalibAlign-Input-reconstructed events/tracks Histograms:THnSparse-residuals at sector boundaries, THn-4D cluster/track residuals Status:code cleaning needed Output-in past used as one of input for the TPC/Calib/Corrections automatic procedure missing xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx AliTPCcalibLaser-Input-reconstructed events/tracks Actions:drift velocity fit below
Definition: READMEcalib.txt:78
void MakeSplineFitAddPoints(TMap *map)
void RemoveSensorNum(Int_t ind)
Int_t GetValCut() const
Int_t SetSensor(const TString &stringID, const AliDCSSensor &sensor)
TArrayI OutsideThreshold(Double_t threshold, UInt_t timeSec=0, Bool_t below=kTRUE) const
void SetGraph(TMap *map)
virtual void DumpToTree(const char *fname="dcsDump.root", Int_t deltaT=10, Int_t sigmaT=300, Int_t id=0)
TMap * ExtractDCS(TMap *dcsMap, Bool_t keepStart=kFALSE)
AliDCSSensor * GetSensor(Int_t IdDCS)
void AddSensors(AliDCSSensorArray *sensors)
Int_t GetFirstIdDCS() const
Int_t GetMinPoints() const
Int_t GetMinGraph() const
void SetFitReq(const Int_t fitReq)
TTimeStamp startTime(2009, 8, 7, 0, 0, 0)
TGraph * MakeGraph(TObjArray *valueSet, Bool_t keepStart=kFALSE)
virtual void Print(const Option_t *option="") const
void SetMinGraph(const Int_t minGraph)
void SetValCut(const Int_t valCut)
Double_t GetValue(UInt_t timeSec, Int_t sensor)
Int_t GetFitReq() const
Int_t GetIter() const
Int_t NumFits() const
Int_t GetDiffCut() const
void SetMinPoints(const Int_t minPoints)
void SetDiffCut(const Int_t diffCut)
void SetMaxDelta(const Double_t maxDelta)
TTimeStamp GetStartTime() const
void RemoveSensor(Int_t IdDCS)
TClonesArray * fSensors
AliDCSSensor * GetSensorNum(Int_t ind)
Int_t GetLastIdDCS() const
void SetIter(const Int_t iter)
void RemoveGraphDuplicates(Double_t tolerance=1e-6)
char * fname
Double_t GetMaxDelta() const
TTimeStamp GetEndTime() const
void SetSensorNum(const Int_t ind, const AliDCSSensor &sensor)