]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSPreprocessorSDD.cxx
SDD raw data treatment: same format for real and simulated data
[u/mrichter/AliRoot.git] / ITS / AliITSPreprocessorSDD.cxx
CommitLineData
e56160b8 1/////////////////////////////////////////
2// Class for SDD digits preprocessing //
7537d03c 3// //
4// //
e56160b8 5////////////////////////////////////////
6
7#include "AliITSPreprocessorSDD.h"
8#include "AliITSCalibrationSDD.h"
9#include "AliShuttleInterface.h"
10#include "AliCDBMetaData.h"
11#include "TObjArray.h"
e56160b8 12#include "AliLog.h"
e56160b8 13
14const Int_t AliITSPreprocessorSDD::fgkNumberOfSDD = 260;
15const Int_t AliITSPreprocessorSDD::fgkNumberOfChannels = 512;
7537d03c 16const TString AliITSPreprocessorSDD::fgkNameHistoPedestals = "hpedestal";
17const TString AliITSPreprocessorSDD::fgkNameHistoNoise = "hnoise";
e56160b8 18ClassImp(AliITSPreprocessorSDD)
19
20
21UInt_t AliITSPreprocessorSDD::Process(TMap*/* dcsAliasMap*/){
22
23 //preprocessing.
24
e56160b8 25
26 AliCDBMetaData *md1= new AliCDBMetaData(); // metaData describing the object
27 md1->SetObjectClassName("AliITSCalibration");
afa07040 28 md1->SetResponsible("Elisabetta Crescio, Francesco Prino");
e56160b8 29 md1->SetBeamPeriod(0);
afa07040 30 md1->SetAliRootVersion("head 5 April 2007"); //root version
e56160b8 31 md1->SetComment("This is a test");
32
afa07040 33 TObjArray respSDD(fgkNumberOfSDD);
e56160b8 34 respSDD.SetOwner(kFALSE);
35
afa07040 36 Char_t filid[20];
37 Float_t baseline,rawnoise,cmn,gain;
38 Int_t isgoodan,i,im,is,isgoodmod;
39 Int_t numOfBadChannels[fgkNumberOfSDD];
e56160b8 40 for(Int_t imod=0;imod<fgkNumberOfSDD;imod++){
41 AliITSCalibrationSDD *cal = new AliITSCalibrationSDD("simulated");
afa07040 42 numOfBadChannels[imod]=0;
43 Int_t badch[fgkNumberOfChannels];
44 for(Int_t isid=0;isid<=1;isid++){
45 sprintf(filid,"DAQDAm%03ds%d",imod,isid);
46 const char* filenamed= GetFile(kDAQ,filid,"GDC");
47 FILE* filed = fopen(filenamed,"read");
48 if (filed == 0) {
49 AliWarning("File not found");
50 continue;
51 }
52
53 fscanf(filed,"%d %d %d\n",&im,&is,&isgoodmod);
54 if(!isgoodmod) cal->SetDead();
55 for(Int_t ian=0;ian<(fgkNumberOfChannels/2);ian++){
56 fscanf(filed,"%d %d %f %f %f %f\n",&i,&isgoodan,&baseline,&rawnoise,&cmn,&gain);
57 Int_t ich=ian;
58 if(isid==1) ich+=256;
59 if(!isgoodan){
60 Int_t ibad=numOfBadChannels[imod];
61 numOfBadChannels[imod]++;
62 badch[ibad]=ich;
63 }
64 cal->SetBaseline(ich,baseline);
65 cal->SetNoiseAfterElectronics(ich,rawnoise);
66 // cal->SetGain(gain,isid,ian/4,ian%4);
67 }
68 cal->SetDeadChannels(numOfBadChannels[imod]);
69 for(Int_t ibad=0;ibad<numOfBadChannels[imod];ibad++){
70 cal->SetBadChannel(ibad,badch[ibad]);
71 }
72 fclose(filed);
e56160b8 73 }
74 respSDD.Add(cal);
75 }
76
afa07040 77 Bool_t retcode = Store("Calib","Data",&respSDD,md1);
e56160b8 78
e56160b8 79
afa07040 80 if(retcode) return 0;
81 else return 1;
e56160b8 82}