add methods to retrieve real survey data, and make some analysis
authorarcelli <arcelli@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 2 Oct 2007 09:45:49 +0000 (09:45 +0000)
committerarcelli <arcelli@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 2 Oct 2007 09:45:49 +0000 (09:45 +0000)
TOF/AliTOFAlignment.h

index b996779..7bc40d7 100644 (file)
@@ -7,14 +7,17 @@
 //////////////////////////////////////////////////////////////////
 //  class for TOF Alignment::                                   //
 //////////////////////////////////////////////////////////////////
-
+#include <TObject.h>
+#include <TString.h>
 #include "TTask.h"
 #include "TGeoManager.h"
 #include "TGeoVolume.h"
 #include "TGeoBBox.h"
+#include "TGeoTrd1.h"
 #include "TGeoPhysicalNode.h"
 #include "TGeoNode.h"
 
+
 class TObjArray;
 
 class AliTOFAlignment :public TTask{
@@ -33,37 +36,45 @@ class AliTOFAlignment :public TTask{
   virtual void ReadSimParFromCDB(Char_t *sel, Int_t nrun);
   virtual void Smear(Float_t *tr=0, Float_t *rot=0); // create a set of AlignObj for TOF
   virtual void Align(Float_t *tr=0, Float_t *rot=0); // create a set of AlignObj for TOF
+  TObjArray * GetTOFAlignArray() const {return fTOFAlignObjArray;}
+
+  //methods for survey
   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 BuildGeomForSurvey();      //Build ideal geometry (FTOA in BTOF)
   virtual void InsertMisAlignment( Float_t *mis); //To test align. from Survey
-  TObjArray * GetTOFAlignArray() const {return fTOFAlignObjArray;}
+  virtual void MakeDefData(const Int_t nf,TString namefiles[]); //Combines survey data from different files
+  virtual void WriteCombData(const Char_t *nomefile, Int_t option); //Write combined data on a file 
+  virtual void ReadSurveyDataAndAlign(); //Read survey data and call the right Alignement procedure  
+  virtual void WriteSimSurveyData(const Char_t *nomefile); // Write sim data in standard format
 
 private:
-
-
-  // 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
-
+  
+  static const Double_t fgkRorigTOF;  //Radius of the TOF ext. volume, cm
+  static const Double_t fgkX1BTOF;    //x1 size of BTOF
+  static const Double_t fgkX2BTOF;    //x2 size of BTOF
+  static const Double_t fgkYBTOF;     //y size of BTOF
+  static const Double_t fgkZBTOF;     //z size of BTOF
+  
   // 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
+  // They are positioned at x=+/- 38 cm, y=+/- 457.3 cm, z=11.2 cm
+
+  static const Double_t fgkXFM; //x pos of FM in BTOF, cm 
+  static const Double_t fgkYFM; //y pos of FM in BTOF, cm
+  static const Double_t fgkZFM; //z pos of FM in BTOF, cm
+  
+  Int_t fNTOFAlignObj;           //Number of Alignable Objects
+  TGeoManager *fTOFmgr;          //Pointer to TGeoManager
+  TObjArray *fTOFAlignObjArray;  //Pointer to the TOF alignable objects
+  TGeoHMatrix* fTOFMatrixId[18]; //Ideal Matrices of TOF Volumes in the GRS
+  Float_t fCombFMData[72][6];    //Combined survey data
+  Int_t fNFMforSM[18][5];        //Number of FM for each SM
+
+  void AlignFromSurveyABC(Int_t iSM);  //From Survey data of FM ABC, derive the needed transformations to get the Alignment Objects. 
+  void AlignFromSurveyABD(Int_t iSM);  //From Survey data of FM ABD, derive the needed transformations to get the Alignment Objects. 
+  void AlignFromSurveyACD(Int_t iSM);  //From Survey data of FM ACD, derive the needed transformations to get the Alignment Objects. 
+  void AlignFromSurveyBCD(Int_t iSM);  //From Survey data of FM BCD, derive the needed transformations to get the Alignment Objects. 
 
-  Int_t fNTOFAlignObj; // Number of Alignable Objects
-  TGeoManager *fTOFmgr; //pointer to TGeoManager
-  TObjArray *fTOFAlignObjArray; // Pointer to the TOF alignable objects
-  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 
 };