#include <AliAlignObj.h>
-#include <AliAlignObjAngles.h>
+#include <AliAlignObjParams.h>
#include <AliCDBManager.h>
#include <AliCDBStorage.h>
#include <AliCDBEntry.h>
#include "AliTPCCalROC.h"
#include "AliTPCCalPad.h"
#include "AliTPCCalDet.h"
+#include "AliTPCParamSR.h"
#endif
-
+//
// run number for the dummy file
-const Int_t gkDummyRun = 0;
+Int_t gkDummyRun = 0;
+char *gCDBpath = "local://$ALICE_ROOT/OCDB";
AliCDBStorage* gStorLoc = 0;
+//
+//Float_t gTSample = 2.0000000e-07;
+//
+//
+Float_t gMeanGain = 1;
+Float_t gSigmaGain = 0;
+//
+Float_t gMeanTime0 = 0;
+Float_t gSigmaTime0 = 0;
+//
+Float_t gMeanNoise = 1;
+Float_t gSigmaNoise = 0;
+//
+//
+Float_t gMeanPedestal = 0;
+Float_t gSigmaPedestal = 0;
+//
+// Missalignment
+//
+Float_t gSigmaDx = 0;
+Float_t gSigmaDy = 0;
+Float_t gSigmaDz = 0;
+Float_t gSigmaAngle = 0;
+
+
TObject* CreatePadObject(const char* shortName, const char* description, Float_t value, Float_t sigma=0)
void StoreObject(const char* cdbPath, TObject* object, AliCDBMetaData* metaData)
{
- AliCDBId id1(cdbPath, gkDummyRun, gkDummyRun);
+ AliCDBId id1(cdbPath, gkDummyRun, AliCDBRunRange::Infinity());
gStorLoc->Put(object, id1, metaData);
}
}
-void CDBAlignmentObjectCreation(const char *fileName, const char *arrayName, const char *detName, const char *cdbPath = "local://$ALICE_ROOT"){
+void CDBAlignmentObjectCreation(const char *fileName, const char *arrayName, const char *detName){
// make instance of storage
AliCDBManager *CDB = AliCDBManager::Instance();
- AliCDBStorage* storLoc = CDB->GetStorage(cdbPath);
+ AliCDBStorage* storLoc = CDB->GetStorage(gCDBpath);
// create or get from a file the TClonesArray of alignment objects
// for given detector, DET should be TPC, TRD ...
void GenerateRndTPC(Float_t sigmatrx=0., Float_t sigmatry=0, Float_t sigmatrz=0, Float_t sigmarot = 0.){
- TClonesArray *array = new TClonesArray("AliAlignObjAngles",10000);
+ TClonesArray *array = new TClonesArray("AliAlignObjParams",10000);
TClonesArray &alobj = *array;
TFile f("TPC_alignment.root","RECREATE");
TRandom *rnd = new TRandom(4357);
- AliAlignObjAngles o;
+ AliAlignObjParams o;
Int_t j = 0;
- for (Int_t iLayer = AliAlignObj::kTPC1; iLayer <= AliAlignObj::kTPC2; iLayer++) {
- for (Int_t iModule = 0; iModule < AliAlignObj::LayerSize(iLayer); iModule++) {
+ for (Int_t iLayer = AliGeomManager::kTPC1; iLayer <= AliGeomManager::kTPC2; iLayer++) {
+ for (Int_t iModule = 0; iModule < AliGeomManager::LayerSize(iLayer); iModule++) {
Float_t dx = (rnd->Uniform()-0.5)*sigmatrx;
Float_t dy = (rnd->Uniform()-0.5)*sigmatry;
Float_t dtheta = (rnd->Uniform()-0.5)*sigmarot;
Float_t dphi = (rnd->Uniform()-0.5)*sigmarot;
- UShort_t volid = AliAlignObj::LayerToVolUID(iLayer,iModule);
- const char *path = AliAlignObj::GetVolPath(volid);
- new(alobj[j]) AliAlignObjAngles(path, volid, dx, dy, dz, dpsi, dtheta, dphi);
+ UShort_t volid = AliGeomManager::LayerToVolUID(iLayer,iModule);
+ const char *path = AliGeomManager::GetVolPath(volid);
+ new(alobj[j]) AliAlignObjParams(path, volid, dx, dy, dz, dpsi, dtheta, dphi);
j++;
}
}
AliCDBManager *man = AliCDBManager::Instance();
- gStorLoc = man->GetStorage("local://$ALICE_ROOT");
+ gStorLoc = man->GetStorage(gCDBpath);
if (!gStorLoc)
return;
// Gain factor (relative) - normalized to 1 - spread 0
//
metaData = CreateMetaObject("AliTPCCalPad");
- obj = CreatePadObject("PadGainFactor","TPC Gain Factor (local -pad- variations)", 1 , 0.0);
+ obj = CreatePadObject("PadGainFactor","TPC Gain Factor (local -pad- variations)", gMeanGain , gSigmaGain);
StoreObject("TPC/Calib/PadGainFactor", obj, metaData);
//
// Time0 fluctuation - normalized to 0 - spread 0.00 mus
//
metaData = CreateMetaObject("AliTPCCalPad");
- obj = CreatePadObject("PadTime0","TPC Time 0 (local -pad- variations)", 0 , 0.000);
+ obj = CreatePadObject("PadTime0","TPC Time 0 (local -pad- variations)", gMeanTime0 , gSigmaTime0);
StoreObject("TPC/Calib/PadTime0", obj, metaData);
//
// Noise fluctuation - normalized to 1.0 - spread - 0.0
//
metaData = CreateMetaObject("AliTPCCalPad");
- obj = CreatePadObject("PadNoise","TPC Noise (local -pad- variations)", 1.0 , 0.0);
+ obj = CreatePadObject("PadNoise","TPC Noise (local -pad- variations)", gMeanNoise , gSigmaNoise);
StoreObject("TPC/Calib/PadNoise", obj, metaData);
//
- // PRF width fluctuation - normalized to 0. - spread - 0.0
- //
- metaData = CreateMetaObject("AliTPCCalPad");
- obj = CreatePadObject("PadPRF","TPC PRF (local -pad- variations)", 0.0 , 0.0);
- StoreObject("TPC/Calib/PadPRF", obj, metaData);
- //
// Pedestals
//
metaData = CreateMetaObject("AliTPCCalPad");
- obj = CreatePadObject("PadPRF","TPC pedestals (local -pad- variations)", 0.0 , 0.0);
+ obj = CreatePadObject("PadPedestal","TPC pedestals (local -pad- variations)", gMeanPedestal, gSigmaPedestal);
StoreObject("TPC/Calib/Pedestals", obj, metaData);
//
// Parameters
//
metaData = CreateMetaObject("AliTPCParam");
AliTPCParam * param = new AliTPCParamSR;
+ // param->SetTSample(gTSample);
+ param->Update();
StoreObject("TPC/Calib/Parameters", param, metaData);
//
//
- // generate random missalignemnt
+ // generate random missalignemnt - TO BE MODIFIED ACCCRDING NEW ALIROOT
//
- GenerateRndTPC(0.0,0.0,0.0,0.00);
+ // GenerateRndTPC(gSigmaDx,gSigmaDy,gSigmaDz,gSigmaAngle);
+ //
+ // ExB
+ //
+ //
+ // Put there your mag field
+ // to simulate distortion the scaling factor in magf can be used
+ // currently scaling factor 0 used - no magnetic field
+ //
+ metaData = CreateMetaObject("AliTPCExB");
+ AliMagF* field = new AliMagF("Maps","Maps", 0., 0., AliMagF::k5kG));
+ AliTPCExBFirst *exbfirst = new AliTPCExBFirst(field,2.83000000000000000e+04,50,50,50);
+ StoreObject("TPC/Calib/ExB", exbfirst, metaData);
+
}