]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/exa/Make_Init.C
Added new fields for new Transformer Object config
[u/mrichter/AliRoot.git] / HLT / exa / Make_Init.C
1 /** $Id$ 
2
3 Important macro to get certain Aliroot parameters. They are stored
4 in a file "Init.cxx". Compare the contents of the class AliL3Transform
5 with the result of this macro to check that there are no differences.
6 */
7
8 void Make_Init(char *file, char *tofile="Init.cxx"){
9
10   TFile * rootf = new TFile(file,"READ");
11
12   if(!rootf->IsOpen()){
13     cerr<<"no file: "<<file<<endl;
14     return;
15   }
16
17   AliTPCParam* par = (AliTPCParam*)rootf->Get("75x40_100x60");
18
19   if(!par){
20     cerr<<"no AliTPCParam 75x40_100x60 in file: "<<file<<endl;
21     return;
22   }
23
24   int fNTimeBins = par->GetMaxTBin()+1;
25   int fNRowLow = par->GetNRowLow();
26   int fNRowUp  = par->GetNRowUp();
27   int fNRow= fNRowLow + fNRowUp;
28   int fNSectorLow = par->GetNInnerSector();
29   int fNSectorUp = par->GetNOuterSector();
30   int fNSector = fNSectorLow + fNSectorUp;
31   int fNSlice = fNSectorLow;
32
33   FILE *f = fopen(tofile,"w");
34   fprintf(f,"void AliL3Transform::Init(){\n");
35
36   fprintf(f,"  //sector:\n");
37   fprintf(f,"  fNTimeBins = %d ;\n",fNTimeBins);
38   fprintf(f,"  fNRowLow = %d ;\n",fNRowLow);
39   fprintf(f,"  fNRowUp = %d ;\n",fNRowUp);
40   fprintf(f,"  fNSectorLow = %d ;\n",fNSectorLow);
41   fprintf(f,"  fNSectorUp = %d ;\n",fNSectorUp);
42   fprintf(f,"  fNSector = %d ;\n",fNSector);
43   fprintf(f,"  fPadPitchWidthLow = %f ;\n",par->GetPadPitchWidth(0));
44   fprintf(f,"  fPadPitchWidthUp = %f ;\n",par->GetPadPitchWidth(fNSectorLow));
45   fprintf(f,"  fZWidth = %.20f ;\n",par->GetZWidth());
46   fprintf(f,"  fZSigma = %.20f ;\n",par->GetZSigma());
47
48   fprintf(f,"\n  //slices:\n");
49   fprintf(f,"  fNSlice = %d ;\n",fNSectorLow);
50   fprintf(f,"  fNRow = %d ;\n",fNRow);
51
52   //rotation shift put in by hand -> Constantin 
53   fprintf(f,"  fNRotShift = 0.5 ;\n");
54
55   fprintf(f,"  fPi = %.15f ;\n",TMath::Pi());
56   fprintf(f,"  for(Int_t i=0;i<36;i++){\n");
57   fprintf(f,"    fCos[i] = cos(2*fPi/9*(i+0.5));\n");
58   fprintf(f,"    fSin[i] = sin(2*fPi/9*(i+0.5));\n");
59   fprintf(f,"  }\n\n");
60
61   for(Int_t i=0;i<fNRow;i++){
62     int sec,row;
63     if( i < fNRowLow){sec =0;row =i;}
64     else{sec = fNSectorLow;row =i-fNRowLow;}
65     fprintf(f,"  fX[%d] = %3.15f ;\n",i,par->GetPadRowRadii(sec,row));
66   }
67   for(Int_t i=0;i<fNRow;i++){
68     int sec,row;
69     if( i < fNRowLow){sec =0;row =i;}
70     else{sec = fNSectorLow;row =i-fNRowLow;}
71     fprintf(f,"  fNPads[%d] = %d ;\n",i,par->GetNPads(sec,row));
72   }
73
74   fprintf(f,"}\n");
75   fclose(f);
76 }
77