@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)
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();
}
//__________________________________________________________________
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;
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());
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());
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);
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()));
}
file->cd();
fArray->Write("FMDAlignment");
- file->Close();
file->Write();
+ file->Close();
}