]> git.uio.no Git - u/mrichter/AliRoot.git/blob - test/embedding/simrun.C
Separate syswatch for sim. and rec.
[u/mrichter/AliRoot.git] / test / embedding / simrun.C
1 // #define VERBOSEARGS\r
2 // simrun.C\r
3 {\r
4 // set job and simulation variables as :\r
5 // root.exe -b -q simrun.C  --run <x> --event <y> --process <kPythia6/kPhojet> --field <kNoField/k5kG> --energy <900/10000>\r
6 \r
7   int nrun = 0;\r
8   int nevent = 0;\r
9   int seed = 0;\r
10 \r
11   char sseed[1024];\r
12   char srun[1024];\r
13   char sevent[1024];\r
14   char sprocess[1024];\r
15   char sfield[1024];\r
16   char senergy[1024];\r
17 \r
18   sprintf(srun,"");\r
19   sprintf(sevent,"");\r
20   sprintf(sprocess,"");\r
21   sprintf(sfield,"");\r
22   sprintf(senergy,"");\r
23 \r
24   for (int i=0; i< gApplication->Argc();i++){\r
25 #ifdef VERBOSEARGS\r
26     printf("Arg  %d:  %s\n",i,gApplication->Argv(i));\r
27 #endif\r
28     if (!(strcmp(gApplication->Argv(i),"--run")))\r
29       nrun = atoi(gApplication->Argv(i+1));\r
30     sprintf(srun,"%d",nrun);\r
31 \r
32     if (!(strcmp(gApplication->Argv(i),"--event")))\r
33       nevent = atoi(gApplication->Argv(i+1));\r
34     sprintf(sevent,"%d",nevent);\r
35 \r
36     if (!(strcmp(gApplication->Argv(i),"--process")))\r
37       sprintf(sprocess, gApplication->Argv(i+1));\r
38 \r
39     if (!(strcmp(gApplication->Argv(i),"--field")))\r
40       sprintf(sfield,gApplication->Argv(i+1));\r
41 \r
42     if (!(strcmp(gApplication->Argv(i),"--energy")))\r
43       sprintf(senergy,gApplication->Argv(i+1));\r
44 \r
45   }\r
46 \r
47   seed = nrun * 100000 + nevent;\r
48   sprintf(sseed,"%d",seed);\r
49 \r
50   if (seed==0) {\r
51     fprintf(stderr,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");\r
52     fprintf(stderr,"!!!!  WARNING! Seeding variable for MC is 0          !!!!\n");\r
53     fprintf(stderr,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");\r
54   } else {\r
55     fprintf(stdout,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");\r
56     fprintf(stdout,"!!!  MC Seed is %d \n",seed);\r
57     fprintf(stdout,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");\r
58   }\r
59   \r
60 // set the seed environment variable\r
61   gSystem->Setenv("CONFIG_SEED",sseed);\r
62   gSystem->Setenv("CONFIG_RUN_TYPE",sprocess); // kPythia6 or kPhojet\r
63   gSystem->Setenv("CONFIG_FIELD",sfield);      // kNoField or k5kG\r
64   gSystem->Setenv("CONFIG_ENERGY",senergy);    // 900 or 10000 (GeV)\r
65   gSystem->Setenv("DC_RUN",srun); // Not used in Config.C\r
66   gSystem->Setenv("DC_EVENT",sevent); // Not used in Config.C\r
67   \r
68 // Needed to produce simulated RAW data\r
69   gSystem->Setenv("ALIMDC_RAWDB1","./mdc1");\r
70   gSystem->Setenv("ALIMDC_RAWDB2","./mdc2");\r
71   gSystem->Setenv("ALIMDC_TAGDB","./mdc1/tag");\r
72   gSystem->Setenv("ALIMDC_RUNDB","./mdc1/meta");\r
73   cout    << "SIMRUN:: Run " << gSystem->Getenv("DC_RUN") << " Event " << gSystem->Getenv("DC_EVENT")\r
74           << endl;\r
75 \r
76 \r
77   // Background simulation\r
78   gSystem->Setenv("CONFIG_EMBEDDING","kBackground");\r
79 \r
80   cout<<">>>>> BACKGROUND SIMULATION <<<<<"<<endl;\r
81   gSystem->Exec("mkdir BackgroundFull");\r
82   gSystem->Exec("cp Config.C BackgroundFull/");\r
83   gSystem->Exec("cp sim.C BackgroundFull/");\r
84   gSystem->Exec("cp rec.C BackgroundFull/");\r
85   gSystem->ChangeDirectory("BackgroundFull/");\r
86   gSystem->Exec("aliroot -b -q 'sim.C(0)' > sim.log 2>&1");\r
87   cout<<">>>>> BACKGROUND RECONSTRUCTION <<<<<"<<endl;\r
88   gSystem->Exec("aliroot -b -q 'rec.C(0)' > rec.log 2>&1");\r
89   gSystem->ChangeDirectory("../");\r
90 \r
91   // Convert Raw to SDigits\r
92   cout << ">>>>> CONVERTING RAW 2 SDIGITS <<<<<" << endl;\r
93   gSystem->Exec("mkdir Background");\r
94   gSystem->Exec("cp BackgroundFull/raw.root Background/");\r
95   gSystem->Exec("cp BackgroundFull/AliESDs.root Background/");\r
96   gSystem->Exec("cp -a BackgroundFull/GRP Background/");\r
97   gSystem->Exec("cp sim.C Background/");\r
98   gSystem->Exec("cp Config.C Background/");\r
99   gSystem->ChangeDirectory("Background/");\r
100   gSystem->Exec("aliroot -b -q 'sim.C(4)' > sim.log 2>&1");\r
101   gSystem->ChangeDirectory("../");\r
102   gSystem->Exec("mkdir BackgroundSDigits");\r
103   gSystem->Exec("cp Background/*SDigits.root BackgroundSDigits");\r
104   gSystem->Exec("cp BackgroundFull/galice.root BackgroundSDigits/");\r
105   gSystem->Exec("cp BackgroundFull/AliESDs.root BackgroundSDigits/");\r
106 \r
107   // Merged simulation\r
108   gSystem->Setenv("CONFIG_EMBEDDING","kMerged");\r
109 \r
110   cout<<">>>>> MERGED SIMULATION <<<<<<"<< endl;\r
111   gSystem->Exec("mkdir Merged");\r
112   gSystem->Exec("cp Config.C Merged/");\r
113   gSystem->Exec("cp sim.C Merged/");\r
114   gSystem->Exec("cp rec.C Merged/");\r
115   gSystem->ChangeDirectory("Merged/");\r
116   gSystem->Exec("aliroot -b -q 'sim.C(1)' > sim.log 2>&1");\r
117   cout<<">>>>> MERGED RECONSTRUCTION <<<<<"<<endl;\r
118   gSystem->Exec("aliroot -b -q 'rec.C(1)' > rec.log 2>&1");\r
119   gSystem->ChangeDirectory("../");\r
120 \r
121   // Pure signal re-reconstruction\r
122   gSystem->Setenv("CONFIG_EMBEDDING","kSignal");\r
123   \r
124   cout<<">>>>> SIGNAL SIMULATION <<<<<<"<< endl;\r
125   gSystem->Exec("mkdir Signal");\r
126   gSystem->Exec("cp Config.C Signal/");\r
127   gSystem->Exec("cp sim.C Signal/");\r
128   gSystem->Exec("cp rec.C Signal/");\r
129   gSystem->Exec("cp Merged/*SDigits*.root Signal/");\r
130   gSystem->Exec("cp Merged/galice.root Signal/");\r
131   gSystem->Exec("cp Merged/Kinematics.root Signal/");\r
132   gSystem->Exec("cp -a Merged/GRP Signal/");\r
133   gSystem->ChangeDirectory("Signal/");\r
134   gSystem->Exec("aliroot -b -q 'sim.C(2)' > sim.log 2>&1");\r
135   cout<<">>>>> SIGNAL RECONSTRUCTION <<<<<"<<endl;\r
136   gSystem->Exec("aliroot -b -q 'rec.C(2)' > rec.log 2>&1");\r
137   gSystem->ChangeDirectory("../");\r
138   \r
139   //  cout<<">>>>> TAG <<<<<"<<endl;\r
140   //  gSystem->Exec("aliroot -b -q tag.C > tag.log 2>&1");\r
141   //  cout<<">>>>> CHECK ESD <<<<<"<<endl;\r
142   //  gSystem->Exec("aliroot -b -q CheckESD.C > check.log 2>&1");\r
143   //  cout<<">>>>> AOD <<<<<"<<endl;\r
144   //  gSystem->Exec("aliroot -b -q CreateAODfromESD.C > aod.log 2>&1");\r
145 }\r