- add protection against invalid sector/stack information in on-line track matching
[u/mrichter/AliRoot.git] / TRD / AliTRDCalibViewer.h
1 #ifndef ALITRDCALIBVIEWER_H
2 #define ALITRDCALIBVIEWER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id: AliTRDCalibViewer.h 34418 2009-08-26 15:47:50Z cblume $ */
7
8 ///////////////////////////////////////////////////////////////////////////////
9 //                                                                           //
10 //  Class which implements AliBaseCalibViewer for the TRD                    //
11 //  used for the calibration monitor                                         //
12 //                                                                           //
13 ///////////////////////////////////////////////////////////////////////////////
14
15 #include <TObject.h>
16 #include <TTree.h>
17 #include <TFile.h>
18 #include "TFriendElement.h"
19 #include "TVectorD.h"
20 #include "AliBaseCalibViewer.h"
21 class AliTRDCalDet;
22 class AliTRDCalPad;
23
24
25 class AliTRDCalibViewer : public AliBaseCalibViewer {
26  public:
27   AliTRDCalibViewer();
28   AliTRDCalibViewer(const AliTRDCalibViewer &c);
29   AliTRDCalibViewer(TTree* tree);
30   AliTRDCalibViewer(const char* fileName, const char* treeName = "TRDcalibDetails");
31   AliTRDCalibViewer &operator= (const AliTRDCalibViewer& param);
32   virtual ~AliTRDCalibViewer();
33
34   virtual TObjArray* GetListOfVariables(Bool_t printList = kFALSE);
35   virtual TObjArray* GetListOfNormalizationVariables(Bool_t printList = kFALSE) const;
36
37   //virtual void GetTimeInfoOCDB(const Char_t* runList, const Char_t* outFile,
38                                //Int_t firstRun, Int_t lastRun, UInt_t infoFlags,
39                                //const Char_t* ocdbStorage);
40   // extract pad level OCDB information for a run list and dump it into a tree
41   Bool_t DumpOCDBtoTreeDetails(const Char_t* runListFilename, const Char_t* outFilename,
42                                Int_t firstRun, Int_t lastRun, const Char_t* storage,
43                                Int_t version = -1, Int_t subVersion = -1,
44                                Bool_t getCalibs = kTRUE, Bool_t getDCS = kTRUE, Bool_t getAlign = kTRUE);
45   // read AliTRDCalPad objects from a root file and dump a root tree
46   void DumpCalibToTree(const Char_t* inFilename, const Char_t* outFilename);
47   // extract averages from calibration objects
48   void ProcessTRDCalibArray(AliTRDCalDet* chamberCalib, AliTRDCalPad *padCalib,
49                             TString parName, 
50                             Double_t &runValue, Double_t &runRMS,
51                             TVectorD &chamberValues, TVectorD &chamberValuesRMS,
52                             TVectorD &superModuleValues, TVectorD &superModuleValuesRMS);
53   // extract averages from calibration objects
54   void ProcessTRDCalibArray(AliTRDCalPad *padCalib,
55                             TVectorD &superModuleValues, TVectorD &superModuleValuesRMS);
56
57   virtual const char* AddAbbreviations(char* c, Bool_t printDrawCommand = kFALSE);
58   void GetLayerSectorStack(TString trdString, Int_t& layerNo, Int_t& sectorNo, Int_t& stackNo) const;
59   // easy drawing of data, use '~' for abbreviation of '.fElements'
60   virtual Int_t EasyDraw(const char* drawCommand, const char* sector, const char* cuts = 0, 
61                          const char* drawOptions = 0, Bool_t writeDrawCommand = kFALSE) const;   
62   // easy drawing of data, use '~' for abbreviation of '.fElements'
63   virtual Int_t EasyDraw(const char* drawCommand, Int_t sector, const char* cuts = 0, 
64                          const char* drawOptions = 0, Bool_t writeDrawCommand = kFALSE) const;   
65   // easy drawing of data, use '~' for abbreviation of '.fElements'
66   virtual Int_t EasyDraw1D(const char* drawCommand, const char* sector, const char* cuts = 0, 
67                            const char* drawOptions = 0, Bool_t writeDrawCommand = kFALSE) const;   
68   // easy drawing of data, use '~' for abbreviation of '.fElements'
69   virtual Int_t EasyDraw1D(const char* drawCommand, Int_t sector, const char* cuts = 0, 
70                            const char* drawOptions = 0, Bool_t writeDrawCommand = kFALSE) const;  
71
72   ClassDef(AliTRDCalibViewer,1)    //  TRD calibration viewer class
73 };
74
75 #endif