1 //#define VERBOSEARGS
\r
3 // set job and simulation variables as : alienoutner needed for seed
\r
4 // root run.C --run <x> --event <y> --aliencounter <counter> --process <proc> --minhard <min> --maxhard <max> --minpt <minpt>
\r
7 char* program = "aliroot";
\r
8 // char* program = "alienaliroot";
\r
13 int naliencounter = 0;
\r
18 char saliencounter[1024];
\r
19 char sprocess[1024];
\r
20 char sminpthard[1024];
\r
21 char smaxpthard[1024];
\r
22 char sminptgammapi0[1024];
\r
26 Int_t npthardbin = 0;
\r
27 const Int_t nPtHardBins = 3;
\r
28 const Int_t ptHardLo[nPtHardBins] = {15,50,100};
\r
29 const Int_t ptHardHi[nPtHardBins] = {50,100,-1};
\r
36 sprintf(saliencounter,"");
\r
37 sprintf(sprocess,"");
\r
38 sprintf(sminpthard,"");
\r
39 sprintf(smaxpthard,"");
\r
40 sprintf(sminptgammapi0,"");
\r
41 sprintf(squench,"");
\r
44 for (int i=0; i< gApplication->Argc();i++){
\r
46 printf("Arg %d: %s\n",i,gApplication->Argv(i));
\r
48 if (!(strcmp(gApplication->Argv(i),"--run")))
\r
49 nrun = atoi(gApplication->Argv(i+1));
\r
50 sprintf(srun,"%d",nrun);
\r
51 if (!(strcmp(gApplication->Argv(i),"--event")))
\r
52 nevent = atoi(gApplication->Argv(i+1));
\r
53 sprintf(sevent,"%d",nevent);
\r
54 if (!(strcmp(gApplication->Argv(i),"--aliencounter")))
\r
55 naliencounter = atoi(gApplication->Argv(i+1));
\r
56 sprintf(saliencounter,"%d",naliencounter);
\r
58 if (!(strcmp(gApplication->Argv(i),"--process")))
\r
59 sprintf(sprocess, gApplication->Argv(i+1));
\r
61 if (!(strcmp(gApplication->Argv(i),"--pthardbin")))
\r
62 npthardbin = atoi(gApplication->Argv(i+1));
\r
65 if (!(strcmp(gApplication->Argv(i),"--minhard")))
\r
66 sprintf(sminpthard,gApplication->Argv(i+1));
\r
68 if (!(strcmp(gApplication->Argv(i),"--maxhard")))
\r
69 sprintf(smaxpthard,gApplication->Argv(i+1));
\r
72 if (!(strcmp(gApplication->Argv(i),"--minpt")))
\r
73 sprintf(sminptgammapi0,gApplication->Argv(i+1));
\r
75 if (!(strcmp(gApplication->Argv(i),"--quench")))
\r
76 sprintf(squench,gApplication->Argv(i+1));
\r
78 if (!(strcmp(gApplication->Argv(i),"--qhat")))
\r
79 sprintf(sqhat,gApplication->Argv(i+1));
\r
83 if(!(strcmp(sminpthard,""))){
\r
84 sprintf(sminpthard,"%d",ptHardLo[npthardbin%nPtHardBins]);
\r
85 Printf(">>> MinPtHard %s %d",sminpthard,npthardbin%nPtHardBins);
\r
87 if(!(strcmp(smaxpthard,""))){
\r
88 sprintf(smaxpthard,"%d",ptHardHi[npthardbin%nPtHardBins]);
\r
89 Printf(">>> MaxPtHard %s %d",smaxpthard,npthardbin%nPtHardBins);
\r
96 sprintf(cmd, ".! tar zxvf DBpp.tgz") ;
\r
97 gROOT->ProcessLine(cmd) ;
\r
98 sprintf(cmd, ".! tar zxvf TPCCalib_v4-16-Rev-01.tgz") ;
\r
99 gROOT->ProcessLine(cmd) ;
\r
101 gSystem->Exec("echo $PWD ");
\r
102 gSystem->Exec("ls -l ");
\r
104 seed = nrun * 100000 + naliencounter * 1000 + nevent;
\r
105 sprintf(sseed,"%d",seed);
\r
108 fprintf(stderr,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
\r
109 fprintf(stderr,"!!!! WARNING! Seeding variable for MC is 0 !!!!\n");
\r
110 fprintf(stderr,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
\r
112 fprintf(stdout,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
\r
113 fprintf(stdout,"!!! MC Seed is %d \n",seed);
\r
114 fprintf(stdout,"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
\r
117 // set the seed environment variable
\r
118 gSystem->Setenv("CONFIG_SEED",sseed);
\r
119 gSystem->Setenv("DC_RUN",srun);
\r
120 gSystem->Setenv("DC_EVENT",sevent);
\r
121 gSystem->Setenv("DC_RUN_TYPE",sprocess);//"kPyGammaJetPHOS");
\r
122 gSystem->Setenv("PTHARDMIN",sminpthard);//"20");
\r
123 gSystem->Setenv("PTHARDMAX",smaxpthard);//"30");
\r
124 // gSystem->Setenv("DC_RUN_TYPE","kPyJetJet");
\r
125 // gSystem->Setenv("PTHARDMIN","40");
\r
126 // gSystem->Setenv("PTHARDMAX","-1");
\r
128 gSystem->Setenv("PTGAMMAPI0MIN",sminptgammapi0);//"1");
\r
129 gSystem->Setenv("QUENCHING",squench);
\r
130 gSystem->Setenv("QHAT",sqhat);
\r
131 // gSystem->Setenv("QUENCHING","0");
\r
132 // gSystem->Setenv("QHAT","0");
\r
134 gSystem->Setenv("ECMS","10000");
\r
135 // gSystem->Setenv("ECMS","14000");
\r
136 gSystem->Setenv("ALIMDC_RAWDB1","./mdc1");
\r
137 gSystem->Setenv("ALIMDC_RAWDB2","./mdc2");
\r
138 gSystem->Setenv("ALIMDC_TAGDB","./mdc1/tag");
\r
139 gSystem->Setenv("ALIMDC_RUNDB","./mdc1/meta");
\r
140 cout<< "SIMRUN:: Run " << gSystem->Getenv("DC_RUN") << " Event " << gSystem->Getenv("DC_EVENT")
\r
141 << " Process " << gSystem->Getenv("DC_RUN_TYPE")
\r
142 << " minpthard " << gSystem->Getenv("PTHARDMIN")
\r
143 << " maxpthard " << gSystem->Getenv("PTHARDMAX")
\r
144 << " minpt " << gSystem->Getenv("PTGAMMAPI0MIN")
\r
146 //gSystem->Exec("cp $ROOTSYS/etc/system.rootrc .rootrc");
\r
147 cout<<">>>>> SIMULATION <<<<<"<<endl;
\r
149 gSystem->Exec("echo ALICE_ROOT $ALICE_ROOT");
\r
150 gSystem->Exec("echo ROOTSYS $ROOTSYS");
\r
151 gSystem->Exec("echo LD_LIB $LD_LIBRARY_PATH");
\r
152 gSystem->Exec("echo PATH $PATH");
\r
153 gSystem->Exec("ls -l $ALICE_ROOT/bin/");
\r
154 gSystem->Exec("ls -l $ALICE_ROOT/bin/*");
\r
156 gSystem->Exec(Form("%s -b -q \"sim.C(%d)\" > sim.log 2>&1",program,nevent));
\r
162 gSystem->MakeDirectory("residual");
\r
163 gSystem->Exec("rm residual/*.root");
\r
164 gSystem->Exec("ln -s ${PWD}/*.root residual/");
\r
167 gSystem->MakeDirectory("residual_trd");
\r
168 gSystem->Exec("rm residual_trd/*.root");
\r
169 gSystem->Exec("ln -s ${PWD}/*.root residual_trd/");
\r
171 gSystem->ChangeDirectory("residual");
\r
172 cout<<">>>>> RECONSTRUCTION <<<<<"<<endl;
\r
174 iStatus = gSystem->Exec(Form("%s -b -q ../rec.C > rec.log 2>&1",program));
\r
175 Printf("%d",iStatus);
\r
176 cout<<">>>>> TAG <<<<<"<<endl;
\r
177 // iStatus = gSystem->Exec("aliroot -b -q ../tag.C 2>&1 tag.log");
\r
178 iStatus = gSystem->Exec(Form("%s -b -q ../tag.C > tag.log 2>&1",program));
\r
179 Printf("%d",iStatus);
\r
180 cout<<">>>>> CHECK ESD <<<<<"<<endl;
\r
181 iStatus = gSystem->Exec(Form("%s -b -q ../CheckESD.C > check.log 2>&1",program));
\r
182 cout<<">>>>> CREATE AOD <<<<<"<<endl;
\r
183 iStatus = gSystem->Exec(Form("%s -b -q ../runAODFilterJets.C > aod.log 2>&1",program));
\r
184 Printf("%d",iStatus);
\r
186 gSystem->Exec(Form("mv Run*tag.root ../"));
\r
187 gSystem->Exec(Form("mv *RecPoints.root ../")); // for debugging
\r
188 TString addString("");
\r
190 gSystem->Exec(Form("mv rec.log ../rec%s.log",addString.Data()));
\r
191 gSystem->Exec(Form("mv tag.log ../tag%s.log",addString.Data()));
\r
192 gSystem->Exec(Form("mv check.log ../check%s.log",addString.Data()));
\r
193 gSystem->Exec(Form("mv aod.log ../aod%s.log",addString.Data()));
\r
195 gSystem->Exec(Form("mv AliESDs.root ../AliESDs%s.root",addString.Data()));
\r
196 gSystem->Exec(Form("mv AliESDfriends.root ../AliESDfriends%s.root",addString.Data()));
\r
197 gSystem->Exec(Form("mv AliAOD.root ../AliAOD%s.root",addString.Data()));
\r
198 gSystem->ChangeDirectory("../");
\r
205 gSystem->ChangeDirectory("residual_trd");
\r
207 sprintf(cmd, ".! tar zxvf ../DBpp.tgz") ;
\r
208 gROOT->ProcessLine(cmd) ;
\r
209 sprintf(cmd, ".! tar zxvf ../TPCCalib_v4-16-Rev-01.tgz") ;
\r
210 gROOT->ProcessLine(cmd) ;
\r
212 gSystem->Exec("ls -l");
\r
213 cout<<">>>>> REC <<<<<"<<endl;
\r
214 iStatus = gSystem->Exec(Form("%s -b -q ../rec2.C > rec.log 2>&1",program));
\r
216 Printf("%d",iStatus);
\r
217 cout<<">>>>> CHECK ESD <<<<<"<<endl;
\r
218 iStatus = gSystem->Exec(Form("%s -b -q ../CheckESD.C > check.log 2>&1",program));
\r
219 Printf("%d",iStatus);
\r
220 cout<<">>>>> CREATE AOD <<<<<"<<endl;
\r
221 iStatus = gSystem->Exec(Form("%s -b -q ../runAODFilterJets.C > aod.log 2>&1",program));
\r
222 Printf("%d",iStatus);
\r
223 TString addString("TRD");
\r
225 gSystem->Exec(Form("mv rec.log ../rec%s.log",addString.Data()));
\r
226 gSystem->Exec(Form("mv check.log ../check%s.log",addString.Data()));
\r
227 gSystem->Exec(Form("mv aod.log ../aod%s.log",addString.Data()));
\r
229 gSystem->Exec(Form("mv AliESDs.root ../AliESDs%s.root",addString.Data()));
\r
230 gSystem->Exec(Form("mv AliESDfriends.root ../AliESDfriends%s.root",addString.Data()));
\r
231 gSystem->Exec(Form("mv AliAOD.root ../AliAOD%s.root",addString.Data()));
\r
232 gSystem->ChangeDirectory("../");
\r
233 gSystem->Exec("ls -l");
\r