]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FMD/AliFMDAlignFaker.cxx
Bug fixed (Christian)
[u/mrichter/AliRoot.git] / FMD / AliFMDAlignFaker.cxx
index 7cfa1930cfc539b8f17eb1ceb6a3eb886405ee4c..74684e0b9809e15e89f644ceefb08fe42381f1ea 100644 (file)
     @brief   Implementation of AliFMDAlignFaker 
 */
 //____________________________________________________________________
+//
+//  Class 
+//  to 
+//  make 
+//  fake 
+//  alignment
+//  parameters 
+//
+//____________________________________________________________________
 //                                                                          
 // Forward Multiplicity Detector based on Silicon wafers. 
 //
 #include "AliFMDAlignFaker.h"      // ALIFMDALIGNFAKER_H
 #include <AliCDBManager.h>         // ALICDBMANAGER_H
 #include <AliCDBEntry.h>           // ALICDBMANAGER_H
-#include <AliAlignObj.h>
+// #include <AliAlignObj.h>
 #include <AliAlignObjAngles.h>
-#include <Riostream.h>
-#include <TSystem.h>
-#include <TMath.h>
+// #include <Riostream.h>
+// #include <TSystem.h>
+// #include <TMath.h>
 #include <TRandom.h>
 #include <TClonesArray.h>
 #include <TString.h>
 #include <TFile.h>
 #include <TGeoManager.h>
 #include <TGeoNode.h>
-#include <TGeoVolume.h>
-#include <TROOT.h>
+// #include <TGeoVolume.h>
+// #include <TROOT.h>
 
 //====================================================================
 ClassImp(AliFMDAlignFaker)
@@ -58,15 +67,25 @@ AliFMDAlignFaker::AliFMDAlignFaker(Int_t mask, const char* geo,
                                   const char* loc) 
   : TTask(geo, loc),
     fMask(mask),
+    fSensorTransMin(0,0,0),
+    fSensorTransMax(0,0,0),
+    fSensorRotMin(0,0,0),
+    fSensorRotMax(0,0,0),
+    fHalfTransMin(0,0,0),
+    fHalfTransMax(0,0,0),
+    fHalfRotMin(0,0,0),
+    fHalfRotMax(0,0,0),
     fRunMin(0),
     fRunMax(10), 
-    fArray(0)
+    fArray(0),
+    fComment("")
 {
   // Default constructor 
   SetSensorDisplacement();
   SetSensorRotation();
   SetHalfDisplacement();
   SetHalfRotation();
+  SetComment();
 }
 
 //__________________________________________________________________
@@ -180,11 +199,22 @@ AliFMDAlignFaker::MakeAlign(const TString& path, Int_t id,
                            Double_t transX, Double_t transY, Double_t transZ,
                            Double_t rotX,   Double_t rotY, Double_t rotZ)
 {
+  // make alignment for a path 
+  // Params: 
+  //   path      Path to node 
+  //   id        Volume number 
+  //   transX    Translation in X
+  //   transZ    Translation in Y
+  //   transZ    Translation in Z
+  //   rotX      Rotation about X-axis 
+  //   rotY      Rotation about Y-axis
+  //   rotZ      Rotation about Z-axis 
   AliDebug(1, Form("Make alignment for %s (volume %d): (%f,%f,%f) (%f,%f,%f)", 
                   path.Data(), id, transX, transY, transZ, rotX, rotY, rotZ));
   Int_t nAlign = fArray->GetEntries();
+  id = 0;
   AliAlignObjAngles* obj = 
-    new ((*fArray)[nAlign]) AliAlignObjAngles(path.Data(), id,0,0,0,0,0,0);
+    new ((*fArray)[nAlign]) AliAlignObjAngles(path.Data(), id,0,0,0,0,0,0,kTRUE);
   if (!obj) {
     AliError(Form("Failed to create alignment object for %s", path.Data()));
     return kFALSE;
@@ -200,6 +230,7 @@ AliFMDAlignFaker::MakeAlign(const TString& path, Int_t id,
 Bool_t
 AliFMDAlignFaker::MakeAlignHalf(const TString& path, Int_t id)
 {
+  // Make alignment of a half ring/cone 
   AliDebug(15, Form("Make alignment for half-ring/cone %s", path.Data()));
   Double_t transX = gRandom->Uniform(fHalfTransMin.X(), fHalfTransMax.X());
   Double_t transY = gRandom->Uniform(fHalfTransMin.Y(), fHalfTransMax.Y());
@@ -215,6 +246,7 @@ AliFMDAlignFaker::MakeAlignHalf(const TString& path, Int_t id)
 Bool_t
 AliFMDAlignFaker::MakeAlignSensor(const TString& path, Int_t id)
 {
+  // Make alignment of a sensor 
   AliDebug(15, Form("Make alignment for sensor %s", path.Data()));
   Double_t transX = gRandom->Uniform(fSensorTransMin.X(), fSensorTransMax.X());
   Double_t transY = gRandom->Uniform(fSensorTransMin.Y(), fSensorTransMax.Y());
@@ -230,15 +262,12 @@ void
 AliFMDAlignFaker::WriteToCDB()
 {
   // Make the objects. 
-  AliCDBManager*     cdb      = AliCDBManager::Instance();
-  if (GetTitle() && GetTitle()[0] != '\0')    
-    cdb->SetDefaultStorage(GetTitle());
-    
-  AliCDBMetaData* meta = new AliCDBMetaData; 
+  AliCDBManager*     cdb  = AliCDBManager::Instance();
+  AliCDBMetaData*    meta = new AliCDBMetaData; 
   meta->SetResponsible(gSystem->GetUserInfo()->fRealName.Data()); 
   meta->SetAliRootVersion(gROOT->GetVersion()); 
   meta->SetBeamPeriod(1); 
-  meta->SetComment("Dummy data for testing");
+  meta->SetComment(fComment.Data());
 
   AliCDBId id("FMD/Align/Data", fRunMin, fRunMax);
   cdb->Put(fArray, id, meta);
@@ -249,6 +278,7 @@ AliFMDAlignFaker::WriteToCDB()
 void
 AliFMDAlignFaker::WriteToFile()
 {
+  // Write to a local file 
   TFile* file = TFile::Open(GetTitle(), "RECREATE");
   if (!file) {
     AliFatal(Form("Failed to open file '%s' for output", GetTitle()));
@@ -256,8 +286,8 @@ AliFMDAlignFaker::WriteToFile()
   }
   file->cd();
   fArray->Write("FMDAlignment");
-  file->Close();
   file->Write();
+  file->Close();
 }