#include "AliVZEROMisAligner.h"
#include "AliGeomManager.h"
#include "AliMathBase.h"
#include "TClonesArray.h"
#include "TRandom.h"
#include "AliAlignObjParams.h"
#include "AliLog.h"
ClassImp(AliVZEROMisAligner)
AliVZEROMisAligner::AliVZEROMisAligner() : AliMisAligner()
{
}
TClonesArray* AliVZEROMisAligner::MakeAlObjsArray() {
TClonesArray *array = new TClonesArray("AliAlignObjParams",2);
TClonesArray &alobj = *array;
Double_t dx, dy, dz, dpsi, dtheta, dphi;
gRandom->SetSeed(4321);
Double_t sigmatr;
Double_t sigmarot;
TString v0alignable[2]={"VZERO/V0C", "VZERO/V0A"};
Int_t iIndex=0;
AliGeomManager::ELayerID iLayer = AliGeomManager::kInvalidLayer;
UShort_t volid = AliGeomManager::LayerToVolUID(iLayer,iIndex);
if(TString(GetMisalType())=="ideal")
{
for(Int_t ii=0; ii<2; ii++)
new(alobj[ii]) AliAlignObjParams(v0alignable[ii].Data(), volid, 0., 0., 0., 0., 0., 0., kTRUE);
}else if(TString(GetMisalType())=="residual" || TString(GetMisalType())=="full"){
if(!AliGeomManager::GetGeometry())
{
AliError("No geometry loaded into AliGeomManager! Returning null pointer!");
return 0;
}
sigmatr = 0.1;
sigmarot = 0.5;
for(Int_t ii=0; ii<2; ii++)
{
dx = AliMathBase::TruncatedGaus(0.,sigmatr, 3*sigmatr);
dy = AliMathBase::TruncatedGaus(0.,sigmatr, 3*sigmatr);
dz = AliMathBase::TruncatedGaus(0.,sigmatr, 3*sigmatr);
dpsi = AliMathBase::TruncatedGaus(0.,sigmarot, 3*sigmarot);
dtheta = AliMathBase::TruncatedGaus(0.,sigmarot, 3*sigmarot);
dphi = AliMathBase::TruncatedGaus(0.,sigmarot, 3*sigmarot);
new(alobj[ii]) AliAlignObjParams(v0alignable[ii].Data(), volid, dx, dy, dz, dpsi, dtheta, dphi, kFALSE);
}
}else{
AliError(Form("\"%s\" is not a valid identifier for misalignment types. Exiting ...",GetMisalType()));
return 0;
}
return array;
}
AliCDBMetaData* AliVZEROMisAligner::GetCDBMetaData() const {
AliCDBMetaData* md = new AliCDBMetaData();
md->SetResponsible("Brigitte Cheynis");
if(TString(GetMisalType())=="ideal")
md->SetComment("Alignment objects for VZERO ideal misalignment");
if(TString(GetMisalType())=="residual")
md->SetComment("Alignment objects for VZERO residual misalignment");
if(TString(GetMisalType())=="full")
md->SetComment("Alignment objects for VZERO full misalignment");
return md;
}
AliVZEROMisAligner.cxx:10 AliVZEROMisAligner.cxx:11 AliVZEROMisAligner.cxx:12 AliVZEROMisAligner.cxx:13 AliVZEROMisAligner.cxx:14 AliVZEROMisAligner.cxx:15 AliVZEROMisAligner.cxx:16 AliVZEROMisAligner.cxx:17 AliVZEROMisAligner.cxx:18 AliVZEROMisAligner.cxx:19 AliVZEROMisAligner.cxx:20 AliVZEROMisAligner.cxx:21 AliVZEROMisAligner.cxx:22 AliVZEROMisAligner.cxx:23 AliVZEROMisAligner.cxx:24 AliVZEROMisAligner.cxx:25 AliVZEROMisAligner.cxx:26 AliVZEROMisAligner.cxx:27 AliVZEROMisAligner.cxx:28 AliVZEROMisAligner.cxx:29 AliVZEROMisAligner.cxx:30 AliVZEROMisAligner.cxx:31 AliVZEROMisAligner.cxx:32 AliVZEROMisAligner.cxx:33 AliVZEROMisAligner.cxx:34 AliVZEROMisAligner.cxx:35 AliVZEROMisAligner.cxx:36 AliVZEROMisAligner.cxx:37 AliVZEROMisAligner.cxx:38 AliVZEROMisAligner.cxx:39 AliVZEROMisAligner.cxx:40 AliVZEROMisAligner.cxx:41 AliVZEROMisAligner.cxx:42 AliVZEROMisAligner.cxx:43 AliVZEROMisAligner.cxx:44 AliVZEROMisAligner.cxx:45 AliVZEROMisAligner.cxx:46 AliVZEROMisAligner.cxx:47 AliVZEROMisAligner.cxx:48 AliVZEROMisAligner.cxx:49 AliVZEROMisAligner.cxx:50 AliVZEROMisAligner.cxx:51 AliVZEROMisAligner.cxx:52 AliVZEROMisAligner.cxx:53 AliVZEROMisAligner.cxx:54 AliVZEROMisAligner.cxx:55 AliVZEROMisAligner.cxx:56 AliVZEROMisAligner.cxx:57 AliVZEROMisAligner.cxx:58 AliVZEROMisAligner.cxx:59 AliVZEROMisAligner.cxx:60 AliVZEROMisAligner.cxx:61 AliVZEROMisAligner.cxx:62 AliVZEROMisAligner.cxx:63 AliVZEROMisAligner.cxx:64 AliVZEROMisAligner.cxx:65 AliVZEROMisAligner.cxx:66 AliVZEROMisAligner.cxx:67 AliVZEROMisAligner.cxx:68 AliVZEROMisAligner.cxx:69 AliVZEROMisAligner.cxx:70 AliVZEROMisAligner.cxx:71 AliVZEROMisAligner.cxx:72 AliVZEROMisAligner.cxx:73 AliVZEROMisAligner.cxx:74 AliVZEROMisAligner.cxx:75 AliVZEROMisAligner.cxx:76 AliVZEROMisAligner.cxx:77 AliVZEROMisAligner.cxx:78 AliVZEROMisAligner.cxx:79 AliVZEROMisAligner.cxx:80 AliVZEROMisAligner.cxx:81 AliVZEROMisAligner.cxx:82 AliVZEROMisAligner.cxx:83 AliVZEROMisAligner.cxx:84 AliVZEROMisAligner.cxx:85 AliVZEROMisAligner.cxx:86 AliVZEROMisAligner.cxx:87 AliVZEROMisAligner.cxx:88 AliVZEROMisAligner.cxx:89 AliVZEROMisAligner.cxx:90 AliVZEROMisAligner.cxx:91 AliVZEROMisAligner.cxx:92 AliVZEROMisAligner.cxx:93 AliVZEROMisAligner.cxx:94 AliVZEROMisAligner.cxx:95 AliVZEROMisAligner.cxx:96 AliVZEROMisAligner.cxx:97 AliVZEROMisAligner.cxx:98 AliVZEROMisAligner.cxx:99 AliVZEROMisAligner.cxx:100 AliVZEROMisAligner.cxx:101 AliVZEROMisAligner.cxx:102 AliVZEROMisAligner.cxx:103 AliVZEROMisAligner.cxx:104 AliVZEROMisAligner.cxx:105 AliVZEROMisAligner.cxx:106 AliVZEROMisAligner.cxx:107 AliVZEROMisAligner.cxx:108 AliVZEROMisAligner.cxx:109 AliVZEROMisAligner.cxx:110 AliVZEROMisAligner.cxx:111 AliVZEROMisAligner.cxx:112 AliVZEROMisAligner.cxx:113 AliVZEROMisAligner.cxx:114 AliVZEROMisAligner.cxx:115 AliVZEROMisAligner.cxx:116 AliVZEROMisAligner.cxx:117 AliVZEROMisAligner.cxx:118