]>
Commit | Line | Data |
---|---|---|
e8189707 | 1 | #ifndef ALIITSALIGNMENTMODULE_H |
2 | #define ALIITSALIGNMENTMODULE_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | /* $Id$ */ | |
7 | /* $Author$ */ | |
8 | /* $Date$ */ | |
9 | /* $Name$ */ | |
10 | /* $Header$ */ | |
11 | /* | |
12 | $Log$ | |
13 | Revision 1.1.2.2 2000/03/04 23:39:56 nilsen | |
14 | Fixed the logs??? | |
15 | ||
16 | Revision 1.1.2.1 2000/03/02 20:12:57 nilsen | |
17 | A new class useful for ITS detector Alignment studdies | |
18 | */ | |
19 | /* $Revision$ */ | |
20 | ||
21 | // Standard C & C++ libraries | |
22 | #include <TObject.h> | |
23 | ||
24 | // Standard Root Libraries | |
25 | #include "TParticle.h" | |
26 | ||
27 | // ITS libraries | |
28 | #include "AliITSgeom.h" | |
29 | ||
30 | class AliITSAlignmentModule : public TObject{ | |
31 | /////////////////////////////////////////////////////////////////////////// | |
32 | // A track class define exclusively for the use in doing ITS detector | |
33 | // alignment studdies. Not intended for general use. | |
34 | // Author: B. S. Nilsen | |
35 | // Date: January 17 2000 | |
36 | /////////////////////////////////////////////////////////////////////////// | |
37 | ||
38 | protected: | |
39 | ||
40 | Int_t findex,flay,flad,fdet; | |
41 | TObjArray *ftrksM; | |
42 | Double_t fChi2; | |
43 | Double_t fx0[3],fM[3][3],fangles[3]; | |
44 | ||
45 | public: | |
46 | ||
47 | AliITSAlignmentModule(); | |
48 | AliITSAlignmentModule(Int_t index,AliITSgeom *gm, | |
49 | Int_t ntrk,AliITSAlignmentTrack *trk); | |
50 | virtual ~AliITSAlignmentModule() {;}; // default destructor OK | |
51 | Int_t GetIndex(){return findex;} | |
52 | void GetId(Int_t &lay,Int_t &lad,Int_t &det){lay=flay;lad=flad;det=fdet;} | |
53 | Double_t * GetTranslationVector(){return fx0;} | |
54 | Double_t * GetRotationAngles(){return fangles;} | |
55 | Double_t ComputeChi2(); | |
56 | Double_t GetChi2(){return fChi2;} | |
57 | void AlignModule(); | |
58 | void lnsrch(Int_t npar,Double_t *xold,Double_t fold,Double_t *g, | |
59 | Double_t *p,Double_t *x,Double_t &f,Double_t stpmax, | |
60 | Int_t &check); | |
61 | void MRVMminimization(Int_t npar,Double_t *p,Double_t &fret,Double_t gtol, | |
62 | Int_t &iter); | |
63 | void SetByAngles(Double_t *th); | |
64 | ||
65 | private: | |
66 | void dfMdthx(Double_t dfMx[3][3]); | |
67 | void dfMdthy(Double_t dfMx[3][3]); | |
68 | void dfMdthz(Double_t dfMx[3][3]); | |
69 | void LtoG(Double_t xl[],Double_t xg[]); | |
70 | void GtoL(Double_t xg[],Double_t xl[]); | |
71 | Double_t Chi2(Double_t p[]); | |
72 | void dChi2(Double_t p[],Double_t dChi2[]); | |
73 | ||
74 | ||
75 | ClassDef(AliITSAlignmentModule,1) // Module class for ITS Alignment | |
76 | ||
77 | ||
78 | }; | |
79 | #endif |