]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Macro to generate CDB sim pars for miscalibrated TOF
authorarcelli <arcelli@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 22 Aug 2006 15:32:01 +0000 (15:32 +0000)
committerarcelli <arcelli@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 22 Aug 2006 15:32:01 +0000 (15:32 +0000)
TOF/CreateCalibPars_Miscalibrated.C [new file with mode: 0644]

diff --git a/TOF/CreateCalibPars_Miscalibrated.C b/TOF/CreateCalibPars_Miscalibrated.C
new file mode 100644 (file)
index 0000000..cb876ec
--- /dev/null
@@ -0,0 +1,48 @@
+void CreateCalibPars_Miscalibrated(){
+  // Create TOF Calibration Object for miscalibrated detector
+  // and write it on CDB
+  AliTOFGeometry *geom = new AliTOFGeometryV5(); 
+  AliTOFcalib *tofcalib = new AliTOFcalib(geom);
+  AliTOFCal *tofCal= new AliTOFCal(geom);
+  tofCal->CreateArray();
+
+  // Input data for decalibration
+
+  TFile f("$ALICE_ROOT/TOF/data/spectrum.root","READ");  
+
+  TH1F *hTimeToTFit=  (TH1F*)f.Get("TimeToTFit");
+  TF1  *fit=hTimeToTFit->GetFunction("poly5");
+  
+  // Slewing parameters (same for all channels)
+
+  Float_t par[6] = {0.,0.,0.,0.,0.,0.};
+  for(Int_t i =0;i<6;i++){
+    par[i]=fit->GetParameter(i);
+    //    cout << " Slewing parameters=" << par[i] << endl;
+  }
+
+  // Global time offset (randomly gen, gaussian with mean = 0.3, sig=0.08 ns)
+
+  Float_t delay=0.;
+  Float_t meanDelay=0.3;
+  Float_t sigmaDelay=0.08;
+
+  // ToT spectrum 
+
+  TH1F *hToT=  (TH1F*)f.Get("ToT");
+
+  // Fill the Sim calibration object
+
+  TRandom *rnd   = new TRandom(4357);
+  for (Int_t ipad = 0 ; ipad<tofCal->NPads(); ipad++){
+    AliTOFChannel *calChannel = tofCal->GetChannel(ipad);
+    calChannel->SetSlewPar(par);
+    delay=rnd->Gaus(meanDelay,sigmaDelay);
+    // cout << " delay=" << delay << endl;
+    calChannel->SetDelay(delay);
+  }
+  tofcalib->WriteSimParOnCDB("TOF/Calib",0,0,tofCal,hToT);
+  f.Close();
+}
+
+