3ab82016110389fb75501e79193a383240000930
[u/mrichter/AliRoot.git] / ITS / StoreDriftSpeedSDD.C
1 #if !defined(__CINT__) || defined(__MAKECINT__)
2 #include "AliCDBManager.h"
3 #include "AliITSCalibrationSDD.h"
4 #include "AliITSresponseSDD.h"
5 #include "AliITSDriftSpeedSDD.h"
6 #include "AliITSDriftSpeedArraySDD.h"
7 #include "AliCDBMetaData.h"
8 #include "AliCDBStorage.h"
9 #include "AliCDBId.h"
10 #include "AliCDBPath.h"
11 #include "AliCDBEntry.h"
12 #include <TObjArray.h>
13 #include <TRandom3.h>
14 #endif
15
16 void StoreDriftSpeedSDD(Int_t firstRun=0,Int_t lastRun=9999999 ){
17   ///////////////////////////////////////////////////////////////////////
18   // Macro to generate and store the drift speed files for SDD         //
19   // Generates:                                                        //
20   //  1 file with 520 AliITSDriftSpeedArraySDD objects with            //
21   ///////////////////////////////////////////////////////////////////////
22   
23   if(!AliCDBManager::Instance()->IsDefaultStorageSet()) {
24     AliCDBManager::Instance()->SetDefaultStorage("local://OCDB");
25   }
26   
27
28   AliCDBMetaData *md1= new AliCDBMetaData(); // metaData describing the object
29   md1->SetObjectClassName("AliITSDriftSpeedArraySDD");
30   md1->SetResponsible("Elisabetta Crescio, Francesco Prino");
31   md1->SetBeamPeriod(0);
32   md1->SetAliRootVersion("Head 20 nov. 2007"); //root version
33   md1->SetComment("This is a test");
34
35   AliCDBId drSpeed("ITS/Calib/DriftSpeedSDD",firstRun, lastRun);
36   TObjArray vdrift(520);
37   vdrift.SetOwner(kFALSE);
38
39
40
41   Double_t drVelParam[4]={7.75,0.002344,-0.000009,0};
42   Double_t edrVelParam[4]={0.1,0,0,0};
43   Double_t drVel[4];
44   TRandom3 *gran = new TRandom3();
45   
46   for(Int_t mod=0;mod<260;mod++){
47     AliITSDriftSpeedArraySDD *arr0 = new AliITSDriftSpeedArraySDD(5);
48     AliITSDriftSpeedArraySDD *arr1 = new AliITSDriftSpeedArraySDD(5);
49     for(Int_t iev=0; iev<5;iev++){
50       for(Int_t ic=0;ic<4;ic++) drVel[ic]=gran->Gaus(drVelParam[ic],edrVelParam[ic]);
51       AliITSDriftSpeedSDD *v0=new AliITSDriftSpeedSDD(iev*20,iev+1000,3,drVel);
52       arr0->AddDriftSpeed(v0);
53       for(Int_t ic=0;ic<4;ic++) drVel[ic]=gran->Gaus(drVelParam[ic],edrVelParam[ic]);
54       AliITSDriftSpeedSDD *v1=new AliITSDriftSpeedSDD(iev*20,iev+1000,3,drVel);
55       arr1->AddDriftSpeed(v1);
56     }
57     vdrift.Add(arr0);
58     vdrift.Add(arr1);
59     printf("Added module %d\n",mod);
60   }
61     
62   AliCDBManager::Instance()->GetDefaultStorage()->Put(&vdrift, drSpeed, md1);   
63 }