Subversion Repositories f9daq

Rev

Rev 70 | Rev 73 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 70 Rev 72
Line 10... Line 10...
10
 
10
 
11
// Set the simulation parameters
11
// Set the simulation parameters
12
void showVisual(int b) {show_3d = b;}
12
void showVisual(int b) {show_3d = b;}
13
void showData(int b) {show_data = b;}
13
void showData(int b) {show_data = b;}
14
 
14
 
15
// Set the initial detector parameters (a, b, d, activeDetector, n1, n2, n3, gap)
15
// Set the initial detector parameters (a, b, d, activeDetector, n1, n2, n3, gap, badCoupling)
16
DetectorParameters parameters(3.0, 5.0, 3.0, 3.0, 1, 1.53, 1.46, TVector3(0.3, 0, 0));
16
DetectorParameters parameters(3.0, 5.0, 3.0, 3.0, 1, 1.53, 1.46, TVector3(0.3, 0, 0), false);
17
// Print the detector parameters
17
// Print the detector parameters
18
void getParameters();
18
void getParameters();
19
 
19
 
20
//void SetLGType(int in = 1, int side = 1, int out = 0)
20
//void SetLGType(int in = 1, int side = 1, int out = 0)
21
        //{detector->SetLGType(in, side, out);}
21
        //{detector->SetLGType(in, side, out);}
Line 191... Line 191...
191
        PrintGuideStat(izkoristek);
191
        PrintGuideStat(izkoristek);
192
        DrawData(detector, parameters, theta, izkoristek);
192
        DrawData(detector, parameters, theta, izkoristek);
193
}
193
}
194
//------------------------------------------------------------------------------------------
194
//------------------------------------------------------------------------------------------
195
// Propagate NN rays generated as grid and show the statistics
195
// Propagate NN rays generated as grid and show the statistics
196
void LGG(int NN = 10, double theta = 0.0)
196
void LGG(int NN=10, double theta=0.0, bool coupling=false)
197
{
197
{
-
 
198
  parameters.setCoupling(coupling);
198
  CDetector *detector = new CDetector(TVector3(-2,0,0), parameters);
199
 CDetector *detector = new CDetector(CENTER, parameters);
199
        Init();
200
        Init();
200
        double izkoristek = Grid(detector, parameters, NN, theta);
201
        double izkoristek = Grid(detector, parameters, NN, theta);
201
        //printf("izkoristek = %.3lf\n", izkoristek);
202
        //printf("izkoristek = %.3lf\n", izkoristek);
202
        PrintGuideHead();
203
        PrintGuideHead();
203
        PrintGuideStat(izkoristek);
204
        PrintGuideStat(izkoristek);
Line 205... Line 206...
205
}
206
}
206
//------------------------------------------------------------------------------------------
207
//------------------------------------------------------------------------------------------
207
// Propagate NN rays genarated under the same angle theta, phi with random spacing and statistics
208
// Propagate NN rays genarated under the same angle theta, phi with random spacing and statistics
208
void LGR(int NN = 1e4, double theta = 0.0, double phi = 0.0)
209
void LGR(int NN = 1e4, double theta = 0.0, double phi = 0.0)
209
{
210
{
210
  CDetector *detector = new CDetector(TVector3(-2,0,0), parameters);
211
  CDetector *detector = new CDetector(CENTER, parameters);
211
        Init();
212
        Init();
212
        double izkoristek = RandYZ(detector, parameters, NN, theta, phi, 30);
213
        double izkoristek = RandYZ(detector, parameters, NN, theta, phi, 30);
213
        //printf("izkoristek = %.3lf\n", izkoristek);
214
        //printf("izkoristek = %.3lf\n", izkoristek);
214
        PrintGuideHead(); PrintGuideStat(izkoristek);
215
        PrintGuideHead(); PrintGuideStat(izkoristek);
215
        DrawData(detector, parameters, theta, izkoristek);
216
        DrawData(detector, parameters, theta, izkoristek);
216
}
217
}
217
//------------------------------------------------------------------------------------------
218
//------------------------------------------------------------------------------------------
218
// Propagate NN rays isotropically generated in solid angle theta and show the statistics
219
// Propagate NN rays isotropically generated in solid angle theta and show the statistics
219
void LGI(int NN = 1e4, double theta = 30.0, int nnrays = 30, int showr = 0)
220
void LGI(int NN = 1e4, double theta = 30.0, int nnrays = 30, int showr = 0)
220
{
221
{
221
  Init();
222
  Init();
222
  CDetector *detector = new CDetector(CENTER, parameters);
223
  CDetector *detector = new CDetector(CENTER, parameters);
223
  //CDetector detector = new CDetector();
224
  //CDetector detector = new CDetector();
224
        double izkoristek = RandIso(detector, parameters, NN, 0.0, theta, nnrays, showr);
225
        double izkoristek = RandIso(detector, parameters, NN, 0.0, theta, nnrays, showr);
225
        //printf("izkoristek = %.3lf\n", izkoristek);
-
 
226
        PrintGuideHead();
-
 
227
        PrintGuideStat(izkoristek);
-
 
228
        DrawData(detector, parameters, theta, izkoristek);
-
 
229
        //TCanvas *canvasDetector = new TCanvas("canvasDetector","canvasDetector",500,500);
-
 
230
        //canvasDetector->cd();
-
 
231
        //detector->Draw();
-
 
232
}
-
 
233
 
-
 
234
void LGB(int NN = 1e4, double phiMin=-19.4, double phiMax=19.4, int nnrays = 30, int showr = 0)
-
 
235
{
-
 
236
  Init();
-
 
237
  CDetector *detector = new CDetector(CENTER, parameters);
-
 
238
  //CDetector detector = new CDetector();
-
 
239
        double izkoristek = beamtest(detector, parameters, NN, 18.5, phiMin, phiMax, nnrays, showr);
-
 
240
        //printf("izkoristek = %.3lf\n", izkoristek);
226
        //printf("izkoristek = %.3lf\n", izkoristek);
241
        PrintGuideHead();
227
        PrintGuideHead();
242
        PrintGuideStat(izkoristek);
228
        PrintGuideStat(izkoristek);
243
        DrawData(detector, parameters, 18.5, izkoristek);
229
        DrawData(detector, parameters, theta, izkoristek);
244
        //TCanvas *canvasDetector = new TCanvas("canvasDetector","canvasDetector",500,500);
230
        //TCanvas *canvasDetector = new TCanvas("canvasDetector","canvasDetector",500,500);
245
        //canvasDetector->cd();
231
        //canvasDetector->cd();
246
        //detector->Draw();
232
        //detector->Draw();
-
 
233
}
-
 
234
 
-
 
235
void LGB(int NN = 1e4, double phiMin=-19.4, double phiMax=19.4, bool coupling=true, int nnrays = 30, int showr = 0)
-
 
236
{
-
 
237
  Init();
-
 
238
  parameters.setCoupling(coupling);
-
 
239
  CDetector *detector = new CDetector(CENTER, parameters);
-
 
240
         
-
 
241
         const double theta = 18.5;
-
 
242
         double izkoristek = beamtest(detector, parameters, NN, theta, phiMin, phiMax, nnrays, showr);
-
 
243
         
-
 
244
         PrintGuideHead();
-
 
245
         PrintGuideStat(izkoristek);
-
 
246
         DrawData(detector, parameters, 18.5, izkoristek);
-
 
247
         
-
 
248
         //TCanvas *canvasDetector = new TCanvas("canvasDetector","canvasDetector",500,500);
-
 
249
         //canvasDetector->cd();
-
 
250
         //detector->Draw();
247
}
251
}
248
       
252
       
249
       
253
       
250
//------------------------------------------------------------------------------------------
254
//------------------------------------------------------------------------------------------
251
void LGI_gap(int NN = 1e4, double min = 0.0, double max = 2.0, const int steps = 10, double theta = 30.0)
255
void LGI_gap(int NN = 1e4, double min = 0.0, double max = 2.0, const int steps = 10, double theta = 30.0)