]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSPreprocessorSDD.cxx
Typo corrected.
[u/mrichter/AliRoot.git] / ITS / AliITSPreprocessorSDD.cxx
1 /////////////////////////////////////////
2 // Class for SDD digits preprocessing  //
3 //                                     //
4 //                                     //
5 ////////////////////////////////////////
6
7 #include "AliITSPreprocessorSDD.h"
8 #include "AliITSCalibrationSDD.h"
9 #include "AliShuttleInterface.h"
10 #include "AliCDBMetaData.h"
11 #include "TObjArray.h"
12 #include "AliLog.h"
13
14 const Int_t AliITSPreprocessorSDD::fgkNumberOfSDD = 260;
15 const Int_t AliITSPreprocessorSDD::fgkNumberOfChannels = 512;
16 const TString AliITSPreprocessorSDD::fgkNameHistoPedestals = "hpedestal";
17 const TString AliITSPreprocessorSDD::fgkNameHistoNoise = "hnoise";
18 ClassImp(AliITSPreprocessorSDD)
19
20
21 UInt_t AliITSPreprocessorSDD::Process(TMap*/* dcsAliasMap*/){
22
23   //preprocessing. 
24
25
26   AliCDBMetaData *md1= new AliCDBMetaData(); // metaData describing the object
27   md1->SetObjectClassName("AliITSCalibration");
28   md1->SetResponsible("Elisabetta Crescio, Francesco Prino");
29   md1->SetBeamPeriod(0);
30   md1->SetAliRootVersion("head 5 April 2007"); //root version
31   md1->SetComment("This is a test");
32
33   TObjArray respSDD(fgkNumberOfSDD);
34   respSDD.SetOwner(kFALSE);
35   
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];
40   for(Int_t imod=0;imod<fgkNumberOfSDD;imod++){
41     AliITSCalibrationSDD *cal = new AliITSCalibrationSDD("simulated");
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);
73     }
74     respSDD.Add(cal);
75   }
76
77   Bool_t retcode = Store("Calib","Data",&respSDD,md1);
78
79
80   if(retcode) return 0;
81   else return 1;
82 }