#include "TMath.h"
#include "TText.h"
#include "TLine.h"
-#include <TClonesArray.h>
#include <stdio.h>
#include <math.h>
#include "AliPMDUtility.h"
-#include "AliAlignObjMatrix.h"
-#include "AliCDBManager.h"
-#include "AliCDBEntry.h"
-#include "AliLog.h"
-
ClassImp(AliPMDUtility)
AliPMDUtility::AliPMDUtility():
- fAlObj(GetAlignObj()),
fPx(0.),
fPy(0.),
fPz(0.),
}
AliPMDUtility::AliPMDUtility(Float_t px, Float_t py, Float_t pz):
- fAlObj(GetAlignObj()),
fPx(px),
fPy(py),
fPz(pz),
}
AliPMDUtility::AliPMDUtility(const AliPMDUtility &pmdutil):
TObject(pmdutil),
- fAlObj(pmdutil.GetAlignObj()),
fPx(pmdutil.fPx),
fPy(pmdutil.fPy),
fPz(pmdutil.fPz),
fPy = ypos - vertex[1];
fPz = zpos - vertex[2];
}
-void AliPMDUtility::ApplyAlignment()
+void AliPMDUtility::ApplyAlignment(Double_t sectr[][3])
{
// Get the alignment stuff here
- AliAlignObjMatrix * aam;
- Double_t tr[3];
- //Double_t secTr[4][3];
-
for (Int_t isector=0; isector<4; isector++)
{
- aam = (AliAlignObjMatrix*)fAlObj->UncheckedAt(isector);
- aam->GetTranslation(tr);
-
for(Int_t ixyz=0; ixyz < 3; ixyz++)
{
- fSecTr[isector][ixyz] = (Float_t) tr[ixyz];
+ fSecTr[isector][ixyz] = (Float_t) sectr[isector][ixyz];
}
}
}
return fPz;
}
//--------------------------------------------------------------------//
-TClonesArray* AliPMDUtility::GetAlignObj() const
-{
- // The run number will be centralized in AliCDBManager,
- // you don't need to set it here!
- AliCDBEntry *entry = AliCDBManager::Instance()->Get("PMD/Align/Data");
-
- if(!entry) AliFatal("Alignment object retrieval failed!");
-
- TClonesArray *alobj = 0;
- if (entry) alobj = (TClonesArray*) entry->GetObject();
-
- if (!alobj) AliFatal("No alignment data from database !");
-
- return alobj;
-}
-
-
#include <TNtuple.h>
#include <TParticle.h>
+#include <TGeoMatrix.h>
+
+#include "AliGeomManager.h"
+
#include "AliPMDcluster.h"
#include "AliPMDclupid.h"
#include "AliPMDrecpoint1.h"
AliPMDEmpDiscriminator pmddiscriminator;
pmddiscriminator.Discrimination(fPMDcontin,fPMDcontout);
+ // alignment implemention
+
+ Double_t sectr[4][3] = { {0.,0.,0.},{0.,0.,0.},{0.,0.,0.},{0.,0.,0.}};
+ TString snsector="PMD/Sector";
+ TString symname;
+ TGeoHMatrix gpmdor;
+
+ for(Int_t isector=1; isector<=4; isector++)
+ {
+ symname = snsector;
+ symname += isector;
+ TGeoHMatrix *gpmdal = AliGeomManager::GetMatrix(symname);
+ Double_t *tral = gpmdal->GetTranslation();
+
+ AliGeomManager::GetOrigGlobalMatrix(symname, gpmdor);
+ Double_t *tror = gpmdor.GetTranslation();
+
+ for(Int_t ixyz=0; ixyz<3; ixyz++)
+ {
+ sectr[isector-1][ixyz] = tral[ixyz] - tror[ixyz];
+ }
+ }
+
const Float_t kzpos = 361.5; // middle of the PMD
Int_t ix = -1, iy = -1;
Float_t xglobal = 0., yglobal = 0., zglobal = 0;
Float_t pid = 0.;
- fPMDutil->ApplyAlignment();
+ fPMDutil->ApplyAlignment(sectr);
Int_t nentries2 = fPMDcontout->GetEntries();
AliDebug(1,Form("Number of clusters coming after discrimination = %d"