3 Important macro to get certain Aliroot parameters. They are stored
4 in a file "Init.cxx". New init of AliL3Transform uses output to read certain
8 void Make_Init(char *file, char *tofile="Init.cxx"){
10 TFile * rootf = new TFile(file,"READ");
13 cerr<<"no file: "<<file<<endl;
17 AliRun *gAlice = (AliRun*)rootf->Get("gAlice");
19 cerr<<"no gAlice in file: "<<file<<endl;
23 AliTPCParam* par = (AliTPCParam*)rootf->Get("75x40_100x60");
25 cerr<<"no AliTPCParam 75x40_100x60 in file: "<<file<<endl;
29 AliTPCParamSR *param=(AliTPCParamSR*)par;
30 AliTPCPRF2D * prfinner = new AliTPCPRF2D;
31 AliTPCPRF2D * prfouter = new AliTPCPRF2D;
32 AliTPCRF1D * rf = new AliTPCRF1D(kTRUE);
33 rf->SetGauss(param->GetZSigma(),param->GetZWidth(),1.);
34 rf->SetOffset(3*param->GetZSigma());
37 TDirectory *savedir=gDirectory;
38 TFile *if=TFile::Open("$ALICE_ROOT/TPC/AliTPCprf2d.root");
40 cerr<<"Can't open $ALICE_ROOT/TPC/AliTPCprf2d.root !\n" ;
43 prfinner->Read("prf_07504_Gati_056068_d02");
44 prfouter->Read("prf_10006_Gati_047051_d03");
48 param->SetInnerPRF(prfinner);
49 param->SetOuterPRF(prfouter);
52 int fNTimeBins = par->GetMaxTBin()+1;
53 int fNRowLow = par->GetNRowLow();
54 int fNRowUp = par->GetNRowUp();
55 int fNRow= fNRowLow + fNRowUp;
56 int fNSectorLow = par->GetNInnerSector();
57 int fNSectorUp = par->GetNOuterSector();
58 int fNSector = fNSectorLow + fNSectorUp;
59 int fNSlice = fNSectorLow;
61 FILE *f = fopen(tofile,"w");
62 fprintf(f,"void AliL3Transform::Init(){\n");
64 fprintf(f," fBFieldFactor = %d ;\n",gAlice->Field()->Factor());
65 fprintf(f," //sector:\n");
66 fprintf(f," fNTimeBins = %d ;\n",fNTimeBins);
67 fprintf(f," fNRowLow = %d ;\n",fNRowLow);
68 fprintf(f," fNRowUp = %d ;\n",fNRowUp);
69 fprintf(f," fNSectorLow = %d ;\n",fNSectorLow);
70 fprintf(f," fNSectorUp = %d ;\n",fNSectorUp);
71 fprintf(f," fNSector = %d ;\n",fNSector);
72 fprintf(f," fPadPitchWidthLow = %f ;\n",par->GetPadPitchWidth(0));
73 fprintf(f," fPadPitchWidthUp = %f ;\n",par->GetPadPitchWidth(fNSectorLow));
74 fprintf(f," fZWidth = %.20f ;\n",par->GetZWidth());
75 fprintf(f," fZSigma = %.20f ;\n",par->GetZSigma());
76 fprintf(f," fZLength = %.20f ;\n",par->GetZLength());
77 fprintf(f," fZOffset = %.20f ;\n",par->GetZOffset());
78 fprintf(f," fDiffT = %.20f ;\n",par->GetDiffT());
79 fprintf(f," fDiffL = %.20f ;\n",par->GetDiffL());
80 fprintf(f," fInnerPadLength = %f ;\n",par->GetInnerPadLength());
81 fprintf(f," fOuterPadLength = %f ;\n",par->GetOuterPadLength());
82 fprintf(f," fInnerPRFSigma = %.20f ;\n",param->GetInnerPRF()->GetSigmaX());
83 fprintf(f," fOuterPRFSigma = %.20f ;\n",param->GetOuterPRF()->GetSigmaX());
84 fprintf(f," fTimeSigma = %.20f ;\n",param->GetTimeRF()->GetSigma());
86 fprintf(f,"\n //slices:\n");
87 fprintf(f," fNSlice = %d ;\n",fNSectorLow);
88 fprintf(f," fNRow = %d ;\n",fNRow);
90 //rotation shift put in by hand -> Constantin
91 fprintf(f," fNRotShift = 0.5 ;\n");
93 fprintf(f," fPi = %.15f ;\n",TMath::Pi());
94 fprintf(f," for(Int_t i=0;i<36;i++){\n");
95 fprintf(f," fCos[i] = cos(2*fPi/9*(i+0.5));\n");
96 fprintf(f," fSin[i] = sin(2*fPi/9*(i+0.5));\n");
99 for(Int_t i=0;i<fNRow;i++){
101 if( i < fNRowLow){sec =0;row =i;}
102 else{sec = fNSectorLow;row =i-fNRowLow;}
103 fprintf(f," fX[%d] = %3.15f ;\n",i,par->GetPadRowRadii(sec,row));
105 for(Int_t i=0;i<fNRow;i++){
107 if( i < fNRowLow){sec =0;row =i;}
108 else{sec = fNSectorLow;row =i-fNRowLow;}
109 fprintf(f," fNPads[%d] = %d ;\n",i,par->GetNPads(sec,row));
116 void Make_Default(char *file,char *tofile)
119 Macro to write out default values, which should be used to initialize
120 the static data members of the AliL3Transform class. Macro does more
121 or less the same as the above, only the output syntax is changed in order
122 to use it for static data member initialization.
125 TFile * rootf = new TFile(file,"READ");
127 if(!rootf->IsOpen()){
128 cerr<<"no file: "<<file<<endl;
132 AliTPCParam* par = (AliTPCParam*)rootf->Get("75x40_100x60");
135 cerr<<"no AliTPCParam 75x40_100x60 in file: "<<file<<endl;
139 int fNTimeBins = par->GetMaxTBin()+1;
140 int fNRowLow = par->GetNRowLow();
141 int fNRowUp = par->GetNRowUp();
142 int fNRow= fNRowLow + fNRowUp;
143 int fNSectorLow = par->GetNInnerSector();
144 int fNSectorUp = par->GetNOuterSector();
145 int fNSector = fNSectorLow + fNSectorUp;
146 int fNSlice = fNSectorLow;
148 FILE *f = fopen(tofile,"w");
149 fprintf(f,"Int_t AliL3Transform::fNTimeBins = %d ;\n",fNTimeBins);
150 fprintf(f,"Int_t AliL3Transform::fNRowLow = %d ;\n",fNRowLow);
151 fprintf(f,"Int_t AliL3Transform::fNRowUp = %d ;\n",fNRowUp);
152 fprintf(f,"Int_t AliL3Transform::fNSectorLow = %d ;\n",fNSectorLow);
153 fprintf(f,"Int_t AliL3Transform::fNSectorUp = %d ;\n",fNSectorUp);
154 fprintf(f,"Int_t AliL3Transform::fNSector = %d ;\n",fNSector);
155 fprintf(f,"Double_t AliL3Transform::fPadPitchWidthLow = %f ;\n",par->GetPadPitchWidth(0));
156 fprintf(f,"Double_t AliL3Transform::fPadPitchWidthUp = %f ;\n",par->GetPadPitchWidth(fNSectorLow));
157 fprintf(f,"Double_t AliL3Transform::fZWidth = %.20f ;\n",par->GetZWidth());
158 fprintf(f,"Double_t AliL3Transform::fZSigma = %.20f ;\n",par->GetZSigma());
159 fprintf(f,"Int_t AliL3Transform::fNSlice = %d ;\n",fNSectorLow);
160 fprintf(f,"Int_t AliL3Transform::fNRow = %d ;\n",fNRow);
161 fprintf(f,"Double_t AliL3Transform::fNRotShift = 0.5 ;\n");
162 fprintf(f,"Double_t AliL3Transform::fPi = %.15f ;\n",TMath::Pi());
163 fprintf(f,"Double_t AliL3Transform::fX[176] = {\n");
164 for(Int_t i=0;i<fNRow;i++){
166 if( i < fNRowLow){sec =0;row =i;}
167 else{sec = fNSectorLow;row =i-fNRowLow;}
169 fprintf(f," %3.15f,\n",par->GetPadRowRadii(sec,row));
173 fprintf(f,"Int_t AliL3Transform::fNPads[176] = {\n");
174 for(Int_t i=0;i<fNRow;i++){
176 if( i < fNRowLow){sec =0;row =i;}
177 else{sec = fNSectorLow;row =i-fNRowLow;}
178 fprintf(f," %d,\n",par->GetNPads(sec,row));