fLastIndex(0),
fArrayIndex(0),
fIsIndexBuilt(kFALSE),
+ fAlignObjs(0),
fMisalignObjs(0),
fTrackFitter(0),
- fMinimizer(0)
+ fMinimizer(0),
+ fDoUpdate(kTRUE)
{
// Default constructor
InitIndex();
fLastIndex(0),
fArrayIndex(0),
fIsIndexBuilt(kFALSE),
+ fAlignObjs(0),
fMisalignObjs(0),
fTrackFitter(0),
- fMinimizer(0)
+ fMinimizer(0),
+ fDoUpdate(kTRUE)
{
// Constructor in the case
// the user provides an already
//______________________________________________________________________________
AliAlignmentTracks::AliAlignmentTracks(const char *esdfilename, const char *esdtreename):
+ fESDChain(new TChain(esdtreename)),
fPointsFilename("AliTrackPoints.root"),
fPointsFile(0),
fPointsTree(0),
fLastIndex(0),
fArrayIndex(0),
fIsIndexBuilt(kFALSE),
+ fAlignObjs(0),
fMisalignObjs(0),
fTrackFitter(0),
- fMinimizer(0)
+ fMinimizer(0),
+ fDoUpdate(kTRUE)
{
// Constructor in the case
// the user provides a single ESD file
// or a directory containing ESD files
- fESDChain = new TChain(esdtreename);
fESDChain->Add(esdfilename);
InitIndex();
InitAlignObjs();
}
-//______________________________________________________________________________
-AliAlignmentTracks::AliAlignmentTracks(const AliAlignmentTracks &alignment):
- TObject(alignment)
-{
- // Copy constructor
- // not implemented
- AliWarning("Copy constructor not implemented!");
-}
-
-//______________________________________________________________________________
-AliAlignmentTracks& AliAlignmentTracks::operator= (const AliAlignmentTracks& alignment)
-{
- // Asignment operator
- // not implemented
- if(this==&alignment) return *this;
-
- AliWarning("Asignment operator not implemented!");
-
- ((TObject *)this)->operator=(alignment);
-
- return *this;
-}
//______________________________________________________________________________
AliAlignmentTracks::~AliAlignmentTracks()
TTree *pointsTree = new TTree("spTree", "Tree with track space point arrays");
const AliTrackPointArray *array = 0;
pointsTree->Branch("SP","AliTrackPointArray", &array);
-
Int_t ievent = 0;
while (fESDChain->GetEntry(ievent++)) {
if (!esd) break;
for (Int_t ipoint = 0; ipoint < array->GetNPoints(); ipoint++) {
UShort_t volId = array->GetVolumeID()[ipoint];
// check if the volId is valid
- if (!AliAlignObj::GetVolPath(volId)) {
- AliError(Form("The volume id %d has no default volume path !",
+ if (!AliAlignObj::SymName(volId)) {
+ AliError(Form("The volume id %d has no default volume name !",
volId));
continue;
}
fAlignObjs[iLayer] = new AliAlignObj*[AliAlignObj::LayerSize(iLayer + AliAlignObj::kFirstLayer)];
for (Int_t iModule = 0; iModule < AliAlignObj::LayerSize(iLayer + AliAlignObj::kFirstLayer); iModule++) {
UShort_t volid = AliAlignObj::LayerToVolUID(iLayer+ AliAlignObj::kFirstLayer,iModule);
- fAlignObjs[iLayer][iModule] = new AliAlignObjAngles("",volid,0,0,0,0,0,0);
+ fAlignObjs[iLayer][iModule] = new AliAlignObjAngles("",volid,0,0,0,0,0,0,kTRUE);
}
}
}
minimizer->Minimize();
// Update the alignment object(s)
- for (Int_t iVolId = 0; iVolId < nVolIds; iVolId++) {
+ if (fDoUpdate) for (Int_t iVolId = 0; iVolId < nVolIds; iVolId++) {
UShort_t volid = (*volids)[iVolId];
Int_t iModule;
AliAlignObj::ELayerID iLayer = AliAlignObj::VolUIDToLayer(volid,iModule);
- AliAlignObj *alignObj = fAlignObjs[iLayer-AliAlignObj::kFirstLayer][iModule];
+ AliAlignObj *alignObj = fAlignObjs[iLayer-AliAlignObj::kFirstLayer][iModule];
*alignObj *= *minimizer->GetAlignObj();
alignObj->Print("");
}