]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFAlignment.h
Add required AliVParticle functionality (Markus)
[u/mrichter/AliRoot.git] / TOF / AliTOFAlignment.h
index 639daa217b6ab294146df7e052f9b603e0be04bc..b996779ccde640ec5f831993431bde1d99778d80 100644 (file)
@@ -9,18 +9,24 @@
 //////////////////////////////////////////////////////////////////
 
 #include "TTask.h"
-#include "AliAlignObj.h"
+#include "TGeoManager.h"
+#include "TGeoVolume.h"
+#include "TGeoBBox.h"
+#include "TGeoPhysicalNode.h"
+#include "TGeoNode.h"
+
+class TObjArray;
 
 class AliTOFAlignment :public TTask{
 
-enum {kMaxAlignObj=2000}; //maximal number of the TOF Alignable Objects
+  enum {kMaxAlignObj=2000}; //maximal number of the TOF Alignable Objects
 
-public:
+ public:
 
- AliTOFAlignment(); 
- AliTOFAlignment(const AliTOFAlignment &t); //Copy Ctor 
- AliTOFAlignment& operator=(const AliTOFAlignment &source); // Assignment Operator
- virtual ~AliTOFAlignment() {delete fTOFAlignObjArray;}
 AliTOFAlignment(); 
 AliTOFAlignment(const AliTOFAlignment &t); //Copy Ctor 
 AliTOFAlignment& operator=(const AliTOFAlignment &source); // Assignment Operator
+  virtual ~AliTOFAlignment();
   virtual void WriteParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun);
   virtual void ReadParFromCDB(Char_t *sel, Int_t nrun);
   virtual void WriteSimParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun);
@@ -29,13 +35,36 @@ public:
   virtual void Align(Float_t *tr=0, Float_t *rot=0); // create a set of AlignObj for TOF
   virtual void WriteOnCDBforDC();
   virtual void ReadFromCDBforDC();
+  virtual void BuildGeomForSurvey(); //Generate ideal volumes for Survey
+  virtual void AlignFromSurvey(); //Prototype to get Align Obj from Survey
+  virtual void InsertMisAlignment( Float_t *mis); //To test align. from Survey
   TObjArray * GetTOFAlignArray() const {return fTOFAlignObjArray;}
 
 private:
 
-  Int_t fNTOFAlignObj;          // Number of Alignable Objects
+
+  // This is the extended box (the TOF master sensitive volume+services)
+  static const Double_t fgkXsizeTOF;  // x size of the TOF ext. volume, cm
+  static const Double_t fgkYsizeTOF;  // y size of the TOF ext. volume, cm
+  static const Double_t fgkZsizeTOF;  // x size of the TOF ext. volume, cm
+  static const Double_t fgkRorigTOF;  // Radius of the TOF ext. volume, cm
+
+  // Four fiducial marks on SM, expressed in local coordinates (origin=center of TOF SM)
+  // They are positioned at x=+/- 38 cm, y=11.2, z=+/- 456.94 cm
+
+  static const Double_t fgkXFM; //x FM pos, cm 
+  static const Double_t fgkYFM; //y FM pos, cm
+  static const Double_t fgkZFM; //z FM pos, cm
+
+  // This is the z size of the TOF master sensitive volume (it is shorter)
+  static const Double_t fgkZsizeTOFSens; //cm
+
+  Int_t fNTOFAlignObj; // Number of Alignable Objects
+  TGeoManager *fTOFmgr; //pointer to TGeoManager
   TObjArray *fTOFAlignObjArray; // Pointer to the TOF alignable objects
-  ClassDef(AliTOFAlignment,1)   // TOF Alignment 
+  TGeoHMatrix* fTOFMatrixId[18]; // Ideal Matrices of TOF Volumes in the GRS
+  Float_t fTOFSurveyFM[18][4][3]; // Temporary container for Survey data xyz (4/TOF SuperModule)
+  ClassDef(AliTOFAlignment,2)   // TOF Alignment 
 };
 
 #endif