Add INT7 for pA.# Please enter the commit message for your changes. s starting
[u/mrichter/AliRoot.git] / PWGPP / AliRelAlignerKalmanArray.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 ///////////////////////////////////////////////////////////////////////////////
5 //
6 //     Data container for relative ITS-TPC alignment analysis
7 //     see info in the implementation file
8 //
9 //     Origin: Mikolaj Krzewicki, Nikhef, Mikolaj.Krzewicki@cern.ch
10 //
11 //////////////////////////////////////////////////////////////////////////////
12
13 class TObjArray;
14 class TGraphErrors;
15 class TNamed;
16 class TTree;
17 class TCollection;
18 class AliESDEvent;
19 class TBrowser;
20 class TList;
21 #include <AliRelAlignerKalman.h>
22
23 class AliRelAlignerKalmanArray:public TNamed
24 {
25 public:
26   AliRelAlignerKalmanArray();
27   AliRelAlignerKalmanArray(Int_t t0, Int_t tend, Int_t slotwidth);
28   virtual ~AliRelAlignerKalmanArray();
29   AliRelAlignerKalmanArray& operator=(const AliRelAlignerKalmanArray& a );
30   AliRelAlignerKalmanArray(const AliRelAlignerKalmanArray& a);
31   void SetupArray(Int_t t0, Int_t tend, Int_t slotwidth);
32   
33   AliRelAlignerKalman* GetAligner(UInt_t timestamp);
34   AliRelAlignerKalman* GetAligner(AliESDEvent* event);
35   AliRelAlignerKalman* GetAlignerTemplate();
36   Long64_t Merge( TCollection* list );
37   AliRelAlignerKalman* At( Int_t i ) const;
38   AliRelAlignerKalman* operator[](Int_t i) const;
39   AliRelAlignerKalman*& operator[](Int_t i);
40   Int_t GetEntries() const;
41   Int_t GetSize() const {return fSize;}
42   AliRelAlignerKalman* Last() const;
43   UInt_t GetT0() const {return fT0;}
44   UInt_t GetTimebinWidth() const {return fTimebinWidth;}
45   Int_t Timebin( UInt_t timestamp ) const;
46   virtual void Print(Option_t* option="") const;
47   void FillTree( TTree* tree )const ;
48   TGraphErrors* MakeGraph(Int_t iparam) const;
49   AliRelAlignerKalmanArray* MakeSmoothArray() const;
50   void SetOutRejSigmaOnMerge(Double_t s) {fOutRejSigmaOnMerge=s;}
51   void SetOutRejSigmaOnSmooth(Double_t s) {fOutRejSigmaOnSmooth=s;}
52   void Browse(TBrowser *b);
53
54 private:
55   void ClearContents();
56   void PropagateToTime(AliRelAlignerKalman* al, UInt_t timestamp ) const;
57
58   UInt_t fT0;                            //time of first time slot
59   Int_t fTimebinWidth;                   //width of the time bin in seconds
60   Int_t fSize;                           //size
61   Double_t fOutRejSigmaOnMerge;          //how much outlier rejection on merge
62   Double_t fOutRejSigmaOnSmooth;          //how much outlier rejection on Smooth
63   AliRelAlignerKalman fAlignerTemplate;  //template
64   AliRelAlignerKalman** fPArray;         //[fSize] an array of aligners
65   TList* fListOfGraphs;                  //!hold the graphs
66   
67   ClassDef(AliRelAlignerKalmanArray,5);   //AliRelAlignerKalman class
68 };
69
70