| 1 |
#include <TObject.h> |
| 2 |
#include <string.h> |
| 3 |
#include <option.h> |
| 4 |
#include "TString.h" |
| 5 |
#include <iostream> |
| 6 |
|
| 7 |
using namespace std; |
| 8 |
|
| 9 |
OptionParam::OptionParam() : TObject(){ |
| 10 |
|
| 11 |
debug = false; opt.Neve = 0; opt.Nverb = -1; opt.Nstart = 0; |
| 12 |
opt.DoTr = false; |
| 13 |
//opt.PX.PamExpOn = false; opt.AH.AnglHystOn = false; opt.PE.PamEffOn = false; opt.DH.DiffHystOn = false; |
| 14 |
//opt.DH.Z = false; opt.DH.Az = false; |
| 15 |
|
| 16 |
}; |
| 17 |
|
| 18 |
OptionParam::~OptionParam(){ |
| 19 |
} |
| 20 |
|
| 21 |
void OptionParam::helprint(){ |
| 22 |
cout<<"Help is Empty now"<<endl; |
| 23 |
} |
| 24 |
|
| 25 |
Double_t OptionParam::CheckDouble(char* Arg, char* Mess){ |
| 26 |
if(strcmp(Arg,"0")){ |
| 27 |
if(!atof(Arg)){ |
| 28 |
cout<<"ERROR!: Incorect Number of "<<Mess<<" : "<<Mess<<" "<<Arg<<"\n"; |
| 29 |
exit(1); |
| 30 |
}else return atof(Arg); |
| 31 |
}else return 0; |
| 32 |
} |
| 33 |
|
| 34 |
Int_t OptionParam::CheckInt(char* Arg, char* Mess){ |
| 35 |
if(strcmp(Arg,"0")){ |
| 36 |
if(!atoi(Arg)){ |
| 37 |
cout<<"ERROR!: Incorect Number of "<<Mess<<" : "<<Mess<<" "<<Arg<<"\n"; |
| 38 |
exit(1); |
| 39 |
}else return atoi(Arg); |
| 40 |
}else return 0; |
| 41 |
} |
| 42 |
|
| 43 |
/*Int_t FindSS(Double_t Rmin, Double_t Rmax, Int_t detrminf, Int_t detrmaxf, Double_t detrmore, Double_t detrless, Float_t betamin, Float_t betamax, Bool_t AC, Bool_t Calo){ |
| 44 |
Int_t NS = 0; |
| 45 |
if(debug) cout<<"\tFind earlier SelectionScheme's\n"; |
| 46 |
for(Int_t sen=0; sen<US.size();sen++){ |
| 47 |
if(SS[sen].SP.Rmin == Rmin && SS[sen].SP.Rmax == Rmax && SS[sen].SP.detrminf == detrminf && SS[sen].SP.detrmaxf && |
| 48 |
SS[sen].SP.detrmore == detrmore && SS[sen].SP.detrless == detrless && SS[sen].SP.betamin == betamin && |
| 49 |
SS[sen].SP.betamax == betamax && SS[sen].SP.AC == AC && SS[sen].SP.Calo == Calo) NS = sen; |
| 50 |
} |
| 51 |
if(NS==0){ |
| 52 |
if(debug) cout<<"\tNot found SS with such parameters\n"; |
| 53 |
SS.resize(SS.size()+1); |
| 54 |
if(debug) cout<<"\t\tsize of SS was increased...\tNew size = "<<SS.size()<<"\n"; |
| 55 |
NS = SS.size()-1; |
| 56 |
} |
| 57 |
return NS; |
| 58 |
}*/ |
| 59 |
|
| 60 |
Int_t OptionParam::FindUS(Double_t altmore, Double_t altless, Double_t Bmore, Double_t Bless, Double_t Lmore, Double_t Lless, Double_t Rmore, Double_t Rless){ |
| 61 |
Int_t NS = -1; |
| 62 |
if(debug) cout<<"\tFind earlier US's\n"; |
| 63 |
for(Int_t sen=0; sen<US.size();sen++){ |
| 64 |
Bool_t bay = false; |
| 65 |
for(Int_t zen=0; zen<US[sen].USP.size();zen++){ |
| 66 |
if(US[sen].USP[zen].altmore == altmore && US[sen].USP[zen].altless == altless && US[sen].USP[zen].Bmore == Bmore && US[sen].USP[zen].Bless == Bless && US[sen].USP[zen].Lmore == Lmore && US[sen].USP[zen].Lless == Lless && US[sen].USP[zen].Rmore == Rmore && US[sen].USP[zen].Rless == Rless) bay = true;else bay = false; |
| 67 |
} |
| 68 |
if(bay) NS = sen; |
| 69 |
} |
| 70 |
if(NS==-1){ |
| 71 |
if(debug) cout<<"\tNot found US with such boundaries\n"; |
| 72 |
US.resize(US.size()+1); |
| 73 |
if(debug) cout<<"\t\tsize of US was increased...\tNew size = "<<US.size()<<"\n"; |
| 74 |
NS = US.size()-1; |
| 75 |
} |
| 76 |
return NS; |
| 77 |
} |
| 78 |
|
| 79 |
void OptionParam::SetupGeo(Double_t altmore, Double_t altless, Double_t Bmore, Double_t Bless, Double_t Lmore, Double_t Lless, Double_t Rmore, Double_t Rless, Int_t N, Int_t k){ |
| 80 |
if(debug) cout<<"\tSet Geo Selection boundaries:\n"; |
| 81 |
if(k==0) tmpNUS = FindUS(altmore,altless,Bmore,Bless,Lmore,Lless,Rmore,Rless); |
| 82 |
if(tmpNUS==US.size()-1){ |
| 83 |
if(debug)cout<<"\tFill USP["<<k<<"]...\n"; |
| 84 |
if(US[tmpNUS].USP.size()!=N) US[tmpNUS].USP.resize(N); |
| 85 |
US[tmpNUS].USP[k].altmore = altmore; |
| 86 |
US[tmpNUS].USP[k].altless = altless; |
| 87 |
US[tmpNUS].USP[k].Bmore = Bmore; |
| 88 |
US[tmpNUS].USP[k].Bless = Bless; |
| 89 |
US[tmpNUS].USP[k].Lmore = Lmore; |
| 90 |
US[tmpNUS].USP[k].Lless = Lless; |
| 91 |
US[tmpNUS].USP[k].Rmore = Rmore; |
| 92 |
US[tmpNUS].USP[k].Rless = Rless; |
| 93 |
//US[tmpNUS].USP[k].Pmore = Pmore; |
| 94 |
//US[tmpNUS].USP[k].Pless = Pless; |
| 95 |
} |
| 96 |
if(debug) cout<<"\t\taltmore = "<<altmore<<"\taltless = "<<altless<<"\n\t\tBmore = "<<Bmore<<"\tBless = "<<Bless<<"\n\t\tLmore = "<<Lmore<<"\tLless = "<<Lless<<"\n\n"; |
| 97 |
} |
| 98 |
|
| 99 |
void OptionParam::SimpleCheck(char* hystname,char* NBinsx, char* firstx, char* lastx, char* NBinsy, char* firsty, char* lasty, char* NBinsz, char* firstz, char* lastz, char* filename, char* format, char* extype, Int_t Dim){ |
| 100 |
Int_t NBinsX = CheckInt(NBinsx,"NBinsx"); |
| 101 |
if(debug) cout<<"\t\tNbinsx is correct... "<<NBinsX<<"\n"; |
| 102 |
Int_t NBinsY = CheckInt(NBinsy,"NBinsy"); |
| 103 |
if(debug) cout<<"\t\tNbinsy is correct... "<<NBinsY<<"\n"; |
| 104 |
Int_t NBinsZ = CheckInt(NBinsz,"NBinsz"); |
| 105 |
if(debug) cout<<"\t\tNbinsz is correct... "<<NBinsZ<<"\n"; |
| 106 |
Double_t Firstx = CheckDouble(firstx,"firstx"); |
| 107 |
if(debug) cout<<"\t\tfirstx is correct... "<<Firstx<<"\n"; |
| 108 |
Double_t Lastx = CheckDouble(lastx,"lastx"); |
| 109 |
if(debug) cout<<"\t\tlastx is correct... "<<Lastx<<"\n"; |
| 110 |
if(Lastx<=Firstx){ |
| 111 |
cout<<"ERROR!: Incorect hystogramm diapason: NBins "<<NBinsx<<"\tfirst x bin "<<firstx<<"\tlast x bin "<<lastx<<"\n"; |
| 112 |
exit(1); |
| 113 |
} |
| 114 |
Double_t Firsty = CheckDouble(firsty,"firsty"); |
| 115 |
if(debug) cout<<"\t\tfirsty is correct... "<<Firsty<<"\n"; |
| 116 |
Double_t Lasty = CheckDouble(lasty,"lasty"); |
| 117 |
if(debug) cout<<"\t\tlasty is correct... "<<Lasty<<"\n"; |
| 118 |
if(NBinsY!=0 && Lasty<=Firsty){ |
| 119 |
cout<<"ERROR!: Incorect hystogramm diapason: NBinsy "<<NBinsY<<"\tfirst Y bin "<<firsty<<"\tlast y bin "<<lasty<<"\n"; |
| 120 |
exit(1); |
| 121 |
} |
| 122 |
Double_t Firstz = CheckDouble(firstz,"firstz"); |
| 123 |
if(debug) cout<<"\t\tfirstz is correct... "<<Firstz<<"\n"; |
| 124 |
Double_t Lastz = CheckDouble(lastz,"lastz"); |
| 125 |
if(debug) cout<<"\t\tlastz is correct... "<<Lastz<<"\n"; |
| 126 |
if(NBinsZ!=0 && Lastz<=Firstz){ |
| 127 |
cout<<"ERROR!: Incorect hystogramm diapason: NBinsz "<<NBinsZ<<"\tfirst Z bin "<<firstz<<"\tlast z bin "<<lastz<<"\n"; |
| 128 |
exit(1); |
| 129 |
} |
| 130 |
if(debug) cout<<"\t\tHystogramm diapason is correct... \n"; |
| 131 |
Int_t TypeExt; |
| 132 |
if(!strcmp(format,"RootOnly")) TypeExt = 0; else |
| 133 |
if(!strcmp(format,"PictureOnly")) TypeExt = 1; else |
| 134 |
if(!strcmp(format,"All")) TypeExt = 2;else{ |
| 135 |
cout<<"ERROR!: Incorrect format of output - "<<format<<"\n"; |
| 136 |
exit(1); |
| 137 |
} |
| 138 |
if(debug) cout<<"\t\tformat is correct... \n"; |
| 139 |
Int_t Extype = CheckInt(extype,"extype"); |
| 140 |
if(Extype<0 || Extype>7){ |
| 141 |
cout<<"ERROR!: Incorect Type of Exposure: Extype "<<Extype<<"\n"; |
| 142 |
exit(1); |
| 143 |
} |
| 144 |
if(debug) cout<<"\t\textype is correct... Exposure = "<<Extype<<" \n"; |
| 145 |
if (Dim==1){ |
| 146 |
//Hyst1D.resize(Hyst1D.size()+1); |
| 147 |
//if(debug) cout<<"\tvector of Hyst1D was increased, New size is "<<Hyst1D.size()<<endl; |
| 148 |
if(debug)cout<<"\tFilling 1D hystogramm"<<endl; |
| 149 |
Hyst1D[Hyst1D.size()-1].Hyst1DF.SetName(hystname); |
| 150 |
if(debug)cout<<"\thystname = "<<hystname<<endl; |
| 151 |
Hyst1D[Hyst1D.size()-1].Hyst1DF.SetBins(NBinsX,Firstx,Lastx); |
| 152 |
Hyst1D[Hyst1D.size()-1].HI.NUS = tmpNUS; |
| 153 |
if(debug)cout<<"\tNUS = "<<tmpNUS<<endl; |
| 154 |
Hyst1D[Hyst1D.size()-1].HI.NED = ED.size()-1; |
| 155 |
if(debug)cout<<"\tNED = "<<ED.size()-1<<endl; |
| 156 |
Hyst1D[Hyst1D.size()-1].HI.NSS = tmpSS; |
| 157 |
if(debug)cout<<"\tNSS = "<<tmpSS<<endl; |
| 158 |
Hyst1D[Hyst1D.size()-1].HI.NPT = PS.size()-1; |
| 159 |
if(debug)cout<<"\tNPT = "<<PS.size()-1<<endl; |
| 160 |
Hyst1D[Hyst1D.size()-1].HI.TypeExt = TypeExt; |
| 161 |
Hyst1D[Hyst1D.size()-1].HI.ExpType = Extype; |
| 162 |
Hyst1D[Hyst1D.size()-1].HI.LieveTime = 0; |
| 163 |
Hyst1D[Hyst1D.size()-1].HI.DeathTime = 0; |
| 164 |
Hyst1D[Hyst1D.size()-1].HI.filename = filename; |
| 165 |
if(debug)cout<<"\tfilename = "<<filename<<endl; |
| 166 |
US[tmpNUS].NAH1D.resize(US[tmpNUS].NAH1D.size()+1); |
| 167 |
if(debug)cout<<"US["<<tmpNUS<<"].NAH1D.size = "<<US[tmpNUS].NAH1D.size()<<endl; |
| 168 |
US[tmpNUS].NAH1D[US[tmpNUS].NAH1D.size()-1] = Hyst1D.size()-1; |
| 169 |
SS[tmpSS].NAH1D.resize(SS[tmpSS].NAH1D.size()+1); |
| 170 |
SS[tmpSS].NAH1D[SS[tmpSS].NAH1D.size()-1] = Hyst1D.size()-1; |
| 171 |
PS[PS.size()-1].NAH1D.resize(PS[PS.size()-1].NAH1D.size()+1); |
| 172 |
PS[PS.size()-1].NAH1D[PS[PS.size()-1].NAH1D.size()-1] = Hyst1D.size()-1; |
| 173 |
if(debug)cout<<"PS["<<PS.size()-1<<"].NAH1D["<<PS[PS.size()-1].NAH1D.size()-1<<"] = "<<Hyst1D.size()-1; |
| 174 |
if(Extype!=0){ |
| 175 |
if(debug)cout<<"\tHyst1DExpFilling..."<<endl; |
| 176 |
Hyst1D[Hyst1D.size()-1].Hyst1DFExp.SetName(hystname); |
| 177 |
Hyst1D[Hyst1D.size()-1].Hyst1DFExp.SetBins(NBinsX,Firstx,Lastx); |
| 178 |
} |
| 179 |
} |
| 180 |
if (Dim==2){ |
| 181 |
//Hyst2D.resize(Hyst2D.size()+1); |
| 182 |
//if(debug) cout<<"\tvector of Hyst2D was increased, New size is "<<Hyst2D.size()<<endl; |
| 183 |
if(debug)cout<<"\tFilling 2D hystogramm"<<endl; |
| 184 |
//cout<<"Hyst2D.size() = "<<Hyst2D.size()<<endl; |
| 185 |
Hyst2D[Hyst2D.size()-1].Hyst2DF.SetName(hystname); |
| 186 |
if(debug)cout<<"\thystname = "<<hystname<<endl; |
| 187 |
Hyst2D[Hyst2D.size()-1].Hyst2DF.SetBins(NBinsX,Firstx,Lastx,NBinsY,Firsty,Lasty); |
| 188 |
Hyst2D[Hyst2D.size()-1].HI.NUS = tmpNUS; |
| 189 |
if(debug)cout<<"\tNUS = "<<tmpNUS<<endl; |
| 190 |
Hyst2D[Hyst2D.size()-1].HI.NED = ED.size()-1; |
| 191 |
if(debug)cout<<"\tNED = "<<ED.size()-1<<endl; |
| 192 |
Hyst2D[Hyst2D.size()-1].HI.NSS = tmpSS; |
| 193 |
if(debug)cout<<"\tNSS = "<<tmpSS<<endl; |
| 194 |
Hyst2D[Hyst2D.size()-1].HI.NPT = PS.size()-1; |
| 195 |
if(debug)cout<<"\tNPT = "<<PS.size()-1<<endl; |
| 196 |
Hyst2D[Hyst2D.size()-1].HI.TypeExt = TypeExt; |
| 197 |
Hyst2D[Hyst2D.size()-1].HI.ExpType = Extype; |
| 198 |
if(debug) cout<<"\tTypeExt = "<<Hyst2D[Hyst2D.size()-1].HI.TypeExt<<endl; |
| 199 |
Hyst2D[Hyst2D.size()-1].HI.LieveTime = 0; |
| 200 |
Hyst2D[Hyst2D.size()-1].HI.DeathTime = 0; |
| 201 |
Hyst2D[Hyst2D.size()-1].HI.filename = filename; |
| 202 |
if(debug)cout<<"\tfilename = "<<filename<<endl; |
| 203 |
//if(debug)cout<<"\ttmpNUS = "<<tmpNUS<<endl; |
| 204 |
US[tmpNUS].NAH2D.resize(US[tmpNUS].NAH2D.size()+1); |
| 205 |
if(debug)cout<<"US["<<tmpNUS<<"].NAH2D.size = "<<US[tmpNUS].NAH2D.size()<<endl; |
| 206 |
US[tmpNUS].NAH2D[US[tmpNUS].NAH2D.size()-1] = Hyst2D.size()-1; |
| 207 |
SS[tmpSS].NAH2D.resize(SS[tmpSS].NAH2D.size()+1); |
| 208 |
SS[tmpSS].NAH2D[SS[tmpSS].NAH2D.size()-1] = Hyst2D.size()-1; |
| 209 |
PS[PS.size()-1].NAH2D.resize(PS[PS.size()-1].NAH2D.size()+1); |
| 210 |
PS[PS.size()-1].NAH2D[PS[PS.size()-1].NAH2D.size()-1] = Hyst2D.size()-1; |
| 211 |
if(Extype!=0){ |
| 212 |
if(debug)cout<<"\tHyst1DExpFilling..."<<endl; |
| 213 |
Hyst2D[Hyst2D.size()-1].Hyst2DFExp.SetName(hystname); |
| 214 |
Hyst2D[Hyst2D.size()-1].Hyst2DFExp.SetBins(NBinsX,Firstx,Lastx,NBinsY,Firsty,Lasty); |
| 215 |
} |
| 216 |
} |
| 217 |
if (Dim==3){ |
| 218 |
//Hyst2D.resize(Hyst2D.size()+1); |
| 219 |
//if(debug) cout<<"\tvector of Hyst2D was increased, New size is "<<Hyst2D.size()<<endl; |
| 220 |
if(debug)cout<<"\tFilling 3D hystogramm"<<endl; |
| 221 |
//cout<<"Hyst2D.size() = "<<Hyst2D.size()<<endl; |
| 222 |
Hyst3D[Hyst3D.size()-1].Hyst3DF.SetName(hystname); |
| 223 |
if(debug)cout<<"\thystname = "<<hystname<<endl; |
| 224 |
Hyst3D[Hyst3D.size()-1].Hyst3DF.SetBins(NBinsX,Firstx,Lastx,NBinsY,Firsty,Lasty,NBinsZ,Firstx,Lastz); |
| 225 |
Hyst3D[Hyst3D.size()-1].HI.NUS = tmpNUS; |
| 226 |
if(debug)cout<<"\tNUS = "<<tmpNUS<<endl; |
| 227 |
Hyst3D[Hyst3D.size()-1].HI.NED = ED.size()-1; |
| 228 |
if(debug)cout<<"\tNED = "<<ED.size()-1<<endl; |
| 229 |
Hyst3D[Hyst3D.size()-1].HI.NSS = tmpSS; |
| 230 |
if(debug)cout<<"\tNSS = "<<tmpSS<<endl; |
| 231 |
Hyst3D[Hyst3D.size()-1].HI.NPT = PS.size()-1; |
| 232 |
if(debug)cout<<"\tNPT = "<<PS.size()-1<<endl; |
| 233 |
Hyst3D[Hyst3D.size()-1].HI.TypeExt = TypeExt; |
| 234 |
Hyst3D[Hyst3D.size()-1].HI.ExpType = Extype; |
| 235 |
if(debug) cout<<"\tTypeExt = "<<Hyst3D[Hyst3D.size()-1].HI.TypeExt<<endl; |
| 236 |
Hyst3D[Hyst3D.size()-1].HI.LieveTime = 0; |
| 237 |
Hyst3D[Hyst3D.size()-1].HI.DeathTime = 0; |
| 238 |
Hyst3D[Hyst3D.size()-1].HI.filename = filename; |
| 239 |
if(debug)cout<<"\tfilename = "<<filename<<endl; |
| 240 |
//if(debug)cout<<"\ttmpNUS = "<<tmpNUS<<endl; |
| 241 |
US[tmpNUS].NAH3D.resize(US[tmpNUS].NAH2D.size()+1); |
| 242 |
if(debug)cout<<"US["<<tmpNUS<<"].NAH2D.size = "<<US[tmpNUS].NAH3D.size()<<endl; |
| 243 |
US[tmpNUS].NAH3D[US[tmpNUS].NAH3D.size()-1] = Hyst3D.size()-1; |
| 244 |
SS[tmpSS].NAH3D.resize(SS[tmpSS].NAH3D.size()+1); |
| 245 |
SS[tmpSS].NAH3D[SS[tmpSS].NAH3D.size()-1] = Hyst3D.size()-1; |
| 246 |
PS[PS.size()-1].NAH3D.resize(PS[PS.size()-1].NAH3D.size()+1); |
| 247 |
PS[PS.size()-1].NAH3D[PS[PS.size()-1].NAH3D.size()-1] = Hyst3D.size()-1; |
| 248 |
if(Extype!=0){ |
| 249 |
if(debug)cout<<"\tHyst1DExpFilling..."<<endl; |
| 250 |
Hyst3D[Hyst3D.size()-1].Hyst3DFExp.SetName(hystname); |
| 251 |
Hyst3D[Hyst3D.size()-1].Hyst3DFExp.SetBins(NBinsX,Firstx,Lastx); |
| 252 |
} |
| 253 |
} |
| 254 |
} |
| 255 |
|
| 256 |
void OptionParam::CheckBrackets(int Argc, char* Argv[], Int_t& i){ |
| 257 |
if(debug) cout<<"\tCheck brackets expresion...\n\n"; |
| 258 |
if(!strcmp(Argv[i],"[") && !strcmp(Argv[i+8],"]")){ //Dlya tempov scheta v savisimosti ot Pitch dlya GEO stroitsya eshe i zavisimosti ot L, B, LB, Altitude - eto i est' 9-yi parametr |
| 259 |
SimpleCheck(Argv[i+1],Argv[i+2],Argv[i+3], Argv[i+4],"0","0","0","0","0","0", Argv[i+6], Argv[i+5],Argv[i+7],1); |
| 260 |
i+=8; |
| 261 |
}else |
| 262 |
if(!strcmp(Argv[i],"[") && !strcmp(Argv[i+11],"]")){ |
| 263 |
SimpleCheck(Argv[i+1],Argv[i+2],Argv[i+3], Argv[i+4],Argv[i+5],Argv[i+6],Argv[i+7],"0","0","0",Argv[i+9],Argv[i+8],Argv[i+10],2); |
| 264 |
i+=11; |
| 265 |
}else |
| 266 |
if(!strcmp(Argv[i],"[") && !strcmp(Argv[i+14],"]")){ |
| 267 |
SimpleCheck(Argv[i+1],Argv[i+2],Argv[i+3], Argv[i+4],Argv[i+5],Argv[i+6],Argv[i+7],Argv[i+8],Argv[i+9],Argv[i+10],Argv[i+12],Argv[i+11],Argv[i+13],3); |
| 268 |
i+=14; |
| 269 |
}else{ |
| 270 |
cout<<"ERROR!\tYou must indicate Parameters of Hystogramm and outputh file for saving!\t See --help\n\n"; |
| 271 |
exit(1); |
| 272 |
} |
| 273 |
} |
| 274 |
|
| 275 |
void OptionParam::Run(int Argc, char* Argv[], Int_t& i){ |
| 276 |
i++; |
| 277 |
if(debug) cout<<"\tRUN FUNCTION AnglCount....\n\n"; |
| 278 |
while(i<Argc && ((!strcmp(Argv[i],"-Brazil")) || (!strcmp(Argv[i],"-Br")) || (!strcmp(Argv[i],"-WithoutBrazil")) || (!strcmp(Argv[i],"-WBr")) || |
| 279 |
(!strcmp(Argv[i],"-Equator")) || (!strcmp(Argv[i],"-Eq")) || (!strcmp(Argv[i],"-Polar")) || (!strcmp(Argv[i],"-Po")) || (!strcmp(Argv[i],"-UserSelection")) || |
| 280 |
(!strcmp(Argv[i],"-US")) || (!strcmp(Argv[i],"-AllGeography")) || (!strcmp(Argv[i],"-AGP")) || (!strcmp(Argv[i],"-Mode")) || (!strcmp(Argv[i],"[")))){ |
| 281 |
|
| 282 |
if(debug)cout<<"Argv["<<i<<"] = "<<Argv[i]<<endl; |
| 283 |
if((!strcmp(Argv[i],"-Brazil")) || (!strcmp(Argv[i],"-Br"))){ |
| 284 |
SetupGeo(350,500,0,0.216,0,1.15,0.1,0.5,34,0); //altmore altless; Bmore Bless; Lmore Lless; Rmore Rless; |
| 285 |
SetupGeo(350,600,0,0.216,0,1.15,0.1,1,34,1); |
| 286 |
SetupGeo(350,400,0,0.216,1.15,1.2,0.1,0.5,34,2); |
| 287 |
SetupGeo(500,600,0,0.213,0,1.15,0.1,0.5,34,3); |
| 288 |
SetupGeo(400,500,0,0.213,1.35,1.4,0,1,34,4); |
| 289 |
SetupGeo(550,600,0,0.213,1.35,1.4,0.5,1,34,5); |
| 290 |
SetupGeo(350,600,0,0.210,0,1.15,1,1.5,34,6); |
| 291 |
SetupGeo(350,400,0,0.210,0,1.15,1.5,2,34,7); |
| 292 |
SetupGeo(400,600,0,0.210,1.15,1.2,0.1,1,34,8); |
| 293 |
SetupGeo(350,400,0,0.210,1.15,1.2,0.5,1,34,9); |
| 294 |
SetupGeo(350,400,0,0.210,1.2,1.25,0.1,1,34,10); |
| 295 |
SetupGeo(450,600,0,0.210,1.2,1.25,0.5,1,34,11); |
| 296 |
SetupGeo(450,500,0,0.210,1.2,1.25,0.1,0.5,34,12); |
| 297 |
SetupGeo(350,400,0,0.210,1.25,1.3,0.1,1,34,13); |
| 298 |
SetupGeo(450,600,0,0.210,1.25,1.3,0.1,1,34,14); |
| 299 |
SetupGeo(350,550,0,0.210,1.3,1.35,0.1,1,34,15); |
| 300 |
SetupGeo(350,400,0,0.210,1.35,1.4,0.1,1,34,16); |
| 301 |
SetupGeo(550,600,0,0.210,1.35,1.4,0.1,0.5,34,17); |
| 302 |
SetupGeo(550,600,0,0.208,1.3,1.35,0.1,1,34,18); |
| 303 |
SetupGeo(550,600,0,0.208,1.35,1.4,0.1,1,34,19); |
| 304 |
SetupGeo(450,500,0,0.205,0,1.15,1.5,2,34,20); |
| 305 |
SetupGeo(550,600,0,0.205,0,1.15,1.5,2,34,21); |
| 306 |
SetupGeo(350,600,0,0.205,1.2,1.25,0.1,1,34,22); |
| 307 |
SetupGeo(400,450,0,0.205,1.2,1.25,0.1,1,34,23); |
| 308 |
SetupGeo(500,600,0,0.205,1.2,1.25,0.1,0.5,34,24); |
| 309 |
SetupGeo(400,450,0,0.205,1.25,1.3,0.1,1,34,25); |
| 310 |
SetupGeo(500,550,0,0.202,0,1.2,1.5,2,34,26); |
| 311 |
SetupGeo(450,550,0,0.202,1.2,1.25,1,1.5,34,27); |
| 312 |
SetupGeo(550,600,0,0.198,1.15,1.2,1.5,2,34,28); |
| 313 |
SetupGeo(350,450,0,0.198,1.2,1.25,1,1.5,34,29); |
| 314 |
SetupGeo(550,600,0,0.198,1.2,1.25,1,1.5,34,30); |
| 315 |
SetupGeo(450,500,0,0.195,1.15,1.2,1.5,2,34,31); |
| 316 |
SetupGeo(350,600,0,0.195,1.25,1.3,1,1.5,34,32); |
| 317 |
SetupGeo(350,600,0,0.211,1.1,1.4,2,1000,34,33); |
| 318 |
} |
| 319 |
if((!strcmp(Argv[i],"-WithoutBrazil")) || (!strcmp(Argv[i],"-WBr"))) SetupGeo(300,700,0.24,100,0.1,1000,0.1,1000,1,0); |
| 320 |
if((!strcmp(Argv[i],"-Equator")) || (!strcmp(Argv[i],"-Eq"))) SetupGeo(300,700,0.24,100,0,1.2,0.1,1000,1,0); |
| 321 |
if((!strcmp(Argv[i],"-Polar")) || (!strcmp(Argv[i],"-Po"))) SetupGeo(300,700,0,100,6,1000,0.1,1000,1,0); |
| 322 |
if((!strcmp(Argv[i],"-AllGeography")) || (!strcmp(Argv[i],"-AGP"))) SetupGeo(300,700,0,100,0,1000,0.1,1000,1,0); |
| 323 |
if((!strcmp(Argv[i],"-UserSelection")) || (!strcmp(Argv[i],"-US"))){ |
| 324 |
if(debug) cout<<"\tUser Selection Option was selected: \n\n"; |
| 325 |
Int_t j = i+1; |
| 326 |
Double_t Bmore = 0; Double_t Bless = 100; |
| 327 |
Double_t Lmore = 0; Double_t Lless = 1000; |
| 328 |
Double_t altmore = 0; Double_t altless = 700; |
| 329 |
Double_t Rmore = 0.1; Double_t Rless = 1000; |
| 330 |
//Double_t Pmore = -360; Double_t Pless = 360; |
| 331 |
while(j<Argc && ((!strcmp(Argv[j],"-Bmore")) || (!strcmp(Argv[j],"-Bless")) || (!strcmp(Argv[j],"-Lmore")) || |
| 332 |
(!strcmp(Argv[j],"-Lless")) || (!strcmp(Argv[j],"-altmore")) || (!strcmp(Argv[j],"-altless")) || |
| 333 |
(!strcmp(Argv[j],"-Pmore")) || (!strcmp(Argv[j],"-Pless")) || atof(Argv[j]))){ |
| 334 |
|
| 335 |
if(!strcmp(Argv[j],"-Bmore")) Bmore = CheckDouble(Argv[j+1],Argv[j]); |
| 336 |
if(!strcmp(Argv[j],"-Bless")) Bless = CheckDouble(Argv[j+1],Argv[j]); |
| 337 |
if(!strcmp(Argv[j],"-Lmore")) Lmore = CheckDouble(Argv[j+1],Argv[j]); |
| 338 |
if(!strcmp(Argv[j],"-Lless")) Lless = CheckDouble(Argv[j+1],Argv[j]); |
| 339 |
if(!strcmp(Argv[j],"-altmore")) altmore = CheckDouble(Argv[j+1],Argv[j]); |
| 340 |
if(!strcmp(Argv[j],"-altless")) altless = CheckDouble(Argv[j+1],Argv[j]); |
| 341 |
if(!strcmp(Argv[j],"-Rmore")) Rmore = CheckDouble(Argv[j+1],Argv[j]); |
| 342 |
if(!strcmp(Argv[j],"-Rless")) Rless = CheckDouble(Argv[j+1],Argv[j]); |
| 343 |
//if(!strcmp(Argv[j],"-Pmore")) Pmore = CheckDouble(Argv[j+1],Argv[j]); |
| 344 |
//if(!strcmp(Argv[j],"-Pless")) Pless = CheckDouble(Argv[j+1],Argv[j]); |
| 345 |
j++;i++; |
| 346 |
} |
| 347 |
SetupGeo(altmore,altless,Bmore,Bless,Lmore,Lless,Rmore,Rless,1,0); |
| 348 |
} |
| 349 |
i++; |
| 350 |
}//While |
| 351 |
if(debug){Int_t u; cin>>u;} |
| 352 |
} |
| 353 |
|
| 354 |
void OptionParam::CheckAD(int Argc, char* Argv[], Int_t& i){ |
| 355 |
if(debug) cout<<"\t"<<Argv[i]<<" Option was selected: \n\n"; |
| 356 |
i++; |
| 357 |
while(i<Argc && ((!strcmp(Argv[i],"-Emin")) || (!strcmp(Argv[i],"-Emax")) || (!strcmp(Argv[i],"-detrmin")) || (!strcmp(Argv[i],"-detrmax")))){ |
| 358 |
if(debug)cout<<"Argv["<<i<<"] = "<<Argv[i]<<endl; |
| 359 |
if(!strcmp(Argv[i],"-Emin")){ |
| 360 |
ED.resize(ED.size()+1); |
| 361 |
if(debug) cout<<"\tvector EnergyDiapason was increased...\tNew size = "<<ED.size()<<"\n\n"; |
| 362 |
ED[ED.size()-1].Emin = CheckDouble(Argv[i+1],Argv[i]); |
| 363 |
ED[ED.size()-1].Emax = 1000; |
| 364 |
ED[ED.size()-1].detrmin = 0; |
| 365 |
ED[ED.size()-1].detrmax = 1000; |
| 366 |
//ED[ED.size()-1].NAH = -1; |
| 367 |
if(debug) cout<<"\t\t Emin = "<<ED[ED.size()-1].Emin<<"\n"; |
| 368 |
i++; |
| 369 |
} |
| 370 |
if(!strcmp(Argv[i],"-Emax")){ |
| 371 |
ED[ED.size()-1].Emax = CheckDouble(Argv[i+1],Argv[i]); |
| 372 |
if(debug) cout<<"\t\t Emax = "<<ED[ED.size()-1].Emax<<"\n"; |
| 373 |
i++; |
| 374 |
} |
| 375 |
if(ED[ED.size()-1].Emax<=ED[ED.size()-1].Emin || ED[ED.size()-1].Emax<=0 || ED[ED.size()-1].Emin<0){ |
| 376 |
cout<<"ERROR! Incorrect Energy Diapason Emin = "<<ED[ED.size()-1].Emin<<" Emax = "<<ED[ED.size()-1].Emax<<"\n\n"; |
| 377 |
exit(1); |
| 378 |
} |
| 379 |
if(ED[ED.size()-1].Emin>1000) cout<<"WARNING\tPamela don't able to register particles of SUCH high energy\n\n"; |
| 380 |
if(!strcmp(Argv[i],"-detrmin")){ |
| 381 |
ED[ED.size()-1].detrmin = CheckDouble(Argv[i+1],Argv[i]); |
| 382 |
if(debug) cout<<"\t\t detrmin = "<<ED[ED.size()-1].detrmin<<"\n"; |
| 383 |
i++; |
| 384 |
} |
| 385 |
if(!strcmp(Argv[i],"-detrmax")){ |
| 386 |
ED[ED.size()-1].detrmax = CheckDouble(Argv[i+1],Argv[i]); |
| 387 |
if(debug) cout<<"\t\t detrmax = "<<ED[ED.size()-1].detrmax<<"\n"; |
| 388 |
i++; |
| 389 |
} |
| 390 |
if(ED[ED.size()-1].detrmax<=ED[ED.size()-1].detrmin || ED[ED.size()-1].detrmax<=0 || ED[ED.size()-1].detrmin<0){ |
| 391 |
cout<<"ERROR! Incorrect Energy Diapason detrmin = "<<ED[ED.size()-1].detrmin<<" detrmax = "<<ED[ED.size()-1].detrmax<<"\n\n"; |
| 392 |
exit(1); |
| 393 |
} |
| 394 |
|
| 395 |
i++; |
| 396 |
} |
| 397 |
if(debug)cout<<"LastArgv["<<i<<"] = "<<Argv[i]<<endl<<endl; |
| 398 |
} |
| 399 |
|
| 400 |
void OptionParam::CheckPitch(int Argc, char* Argv[], Int_t& i){ |
| 401 |
if(debug) cout<<"\t"<<Argv[i]<<" Option was selected: \n\n"; |
| 402 |
i++; |
| 403 |
while(i<Argc && ((!strcmp(Argv[i],"-Pthmin")) || (!strcmp(Argv[i],"-Pthmax")))){ |
| 404 |
if(debug)cout<<"Argv["<<i<<"] = "<<Argv[i]<<endl; |
| 405 |
if(!strcmp(Argv[i],"-Pthmin")){ |
| 406 |
PS.resize(PS.size()+1); |
| 407 |
PS[PS.size()-1].PitchMin = CheckDouble(Argv[i+1],Argv[i]); |
| 408 |
PS[PS.size()-1].PitchMax = 360; |
| 409 |
if(debug)cout<<"\tPitchmin = "<<PS[PS.size()-1].PitchMin<<endl; |
| 410 |
i++; |
| 411 |
} |
| 412 |
if(!strcmp(Argv[i],"-Pthmax")){ |
| 413 |
PS[PS.size()-1].PitchMax = CheckDouble(Argv[i+1],Argv[i]); |
| 414 |
if(debug)cout<<"\tPitchmax = "<<PS[PS.size()-1].PitchMax<<endl; |
| 415 |
i++; |
| 416 |
} |
| 417 |
i++; |
| 418 |
} |
| 419 |
} |
| 420 |
|
| 421 |
void OptionParam::SetExpOption(int Argc, char* Argv[], Int_t& i){ |
| 422 |
if(debug) cout<<"\t Exposition Option was selected: \n\n"; |
| 423 |
i++; |
| 424 |
while(i<Argc && ((!strcmp(Argv[i],"-infile")) || (!strcmp(Argv[i],"-effhyst")))){ |
| 425 |
if(!strcmp(Argv[i],"-infile")){ |
| 426 |
EffHyst.resize(EffHyst.size()+1); |
| 427 |
EffHyst[EffHyst.size()-1].inputfile = Argv[i+1]; |
| 428 |
i++; |
| 429 |
} |
| 430 |
if(!strcmp(Argv[i],"-effhyst")){ |
| 431 |
EffHyst[EffHyst.size()-1].inputhyst = Argv[i+1]; |
| 432 |
} |
| 433 |
i++; |
| 434 |
} |
| 435 |
} |
| 436 |
|
| 437 |
/* |
| 438 |
void OptionParam::ShowSSInfo(vector<SelectScheme> SS){ |
| 439 |
for(UInt_t i = 0; i<SS.size(); i++){ |
| 440 |
cout<<"\t\tSS["<<i<<"].Rmin = "<<SS[i].Rmin<<"\n"; |
| 441 |
cout<<"\t\tSS["<<i<<"].Rmax = "<<SS[i].Rmax<<"\n"; |
| 442 |
cout<<"\t\tSS["<<i<<"].detrminf = "<<SS[i].detrminf<<"\n"; |
| 443 |
cout<<"\t\tSS["<<i<<"].detrmaxf = "<<SS[i].detrmaxf<<"\n"; |
| 444 |
cout<<"\t\tSS["<<i<<"].detrmore = "<<SS[i].detrmore<<"\n"; |
| 445 |
cout<<"\t\tSS["<<i<<"].detrless = "<<SS[i].detrless<<"\n"; |
| 446 |
cout<<"\t\tSS["<<i<<"].betamin = "<<SS[i].betamin<<"\n"; |
| 447 |
cout<<"\t\tSS["<<i<<"].betamax = "<<SS[i].betamax<<"\n"; |
| 448 |
cout<<"\t\tSS["<<i<<"].AC = "<<SS[i].AC<<"\n"; |
| 449 |
cout<<"\t\tSS["<<i<<"].Calo = "<<SS[i].Calo<<"\n\n"; |
| 450 |
} |
| 451 |
} |
| 452 |
*/ |
| 453 |
Int_t OptionParam::CheckSS(Double_t Rmin, Double_t Rmax, Int_t detrminf, Int_t detrmaxf, Double_t detrmore, Double_t detrless, Float_t betamin, Float_t betamax, Bool_t AC, Bool_t Calo, Int_t NSP){ |
| 454 |
if(debug)cout<<"\tCHeckUS function..."<<endl; |
| 455 |
if(debug)cout<<"US.size = "<<US.size()<<endl; |
| 456 |
for(Int_t sen=0; sen<US.size();sen++){ |
| 457 |
if(SS[sen].SP.size()>NSP){ |
| 458 |
if(SS[sen].SP[NSP].Rmin == Rmin && SS[sen].SP[NSP].Rmax == Rmax && SS[sen].SP[NSP].detrminf == detrminf && SS[sen].SP[NSP].detrmaxf && |
| 459 |
SS[sen].SP[NSP].detrmore == detrmore && SS[sen].SP[NSP].detrless == detrless && SS[sen].SP[NSP].betamin == betamin && |
| 460 |
SS[sen].SP[NSP].betamax == betamax && SS[sen].SP[NSP].AC == AC && SS[sen].SP[NSP].Calo == Calo) return sen; |
| 461 |
} |
| 462 |
} |
| 463 |
cout<<"end"<<endl; |
| 464 |
return -1; |
| 465 |
} |
| 466 |
|
| 467 |
void OptionParam::FillSS(SelectParam& SP, Double_t Rmin, Double_t Rmax, Int_t detrmin, Int_t detrmax, Double_t detrmore, Double_t detrless, Float_t betamin, Float_t betamax, Bool_t AC, Bool_t Calo){ |
| 468 |
SP.Rmin = Rmin; |
| 469 |
SP.Rmax = Rmax; |
| 470 |
SP.detrminf = detrmin; |
| 471 |
SP.detrmaxf = detrmax; |
| 472 |
SP.detrmore = detrmore; |
| 473 |
SP.detrless = detrless; |
| 474 |
SP.betamin = betamin; |
| 475 |
SP.betamax = betamax; |
| 476 |
SP.AC = AC; |
| 477 |
SP.Calo = Calo; |
| 478 |
} |
| 479 |
|
| 480 |
void OptionParam::DefaultSelect(Int_t Np){ |
| 481 |
if(debug) cout<<"\tCreating default selection scheme for "<<Np; |
| 482 |
if(Np == 0){ |
| 483 |
if(debug) cout<<"All particle...\n\n"; |
| 484 |
Int_t u=CheckSS(-1000,1000,0,0,0,200,0.2,1,false,false,0); |
| 485 |
if(u!=-1){if(SS[u].SP.size()==1) tmpSS = u;}else{ |
| 486 |
SS[SS.size()-1].SP.resize(1); |
| 487 |
tmpSS = SS.size()-1; |
| 488 |
if(debug) cout<<"\tvector SelectParam was increased...\tNew size = "<<SS[SS.size()-1].SP.size()<<"\n\n"; |
| 489 |
FillSS(SS[SS.size()-1].SP[0],-1000,1000,0,0,0,200,0.2,1,false,false); |
| 490 |
} |
| 491 |
}else |
| 492 |
if(Np == 1){ |
| 493 |
if(debug) cout<<" Proton...\n\n"; |
| 494 |
Int_t u = 0; |
| 495 |
u=CheckSS(0,0.4,1,0,0,20,0.2,1,false,false,0); |
| 496 |
if(u!=-1) u=CheckSS(0.4,0.8,1,2,0,0,0.2,1,false,false,1); |
| 497 |
if(u!=-1) u=CheckSS(0.8,3.0,0,2,0,0,0.2,1,false,true,2); |
| 498 |
if(u!=-1) u=CheckSS(3.0,1000,0,3,0,0,0.2,1,false,false,3); |
| 499 |
if(debug) cout<<"\tu = "<<u<<endl; |
| 500 |
if(u!=-1){if(SS[u].SP.size()==4) tmpSS = u;}else{ |
| 501 |
SS[SS.size()-1].SP.resize(4); |
| 502 |
tmpSS = SS.size()-1; |
| 503 |
if(debug) cout<<"\tvector SelectParam was increased...\tNew size = "<<SS[SS.size()-1].SP.size()<<"\n\n"; |
| 504 |
FillSS(SS[SS.size()-1].SP[0],0,0.4,1,0,0,20,0.2,1,false,false); |
| 505 |
FillSS(SS[SS.size()-1].SP[1],0.4,0.8,1,2,0,0,0.2,1,false,false); |
| 506 |
FillSS(SS[SS.size()-1].SP[2],0.8,3.0,0,2,0,0,0.2,1,false,true); |
| 507 |
FillSS(SS[SS.size()-1].SP[3],3.0,1000,0,3,0,0,0.2,1,false,true); |
| 508 |
} |
| 509 |
if(debug)cout<<"\tProton Selection scheme was filled"<<endl; |
| 510 |
//if(debug) ShowSSInfo(SS); |
| 511 |
}else |
| 512 |
if(Np == 2){ |
| 513 |
if(debug) cout<<"Electron...\n\n"; |
| 514 |
Int_t u=0; |
| 515 |
u=CheckSS(-0.8,0,0,1,0,0,0.8,1,true,false,0); |
| 516 |
if(u!=-1) u=CheckSS(-1000,-0.8,0,2,0,0,0.8,1,false,true,1); |
| 517 |
if(u!=-1){if(SS[u].SP.size()==2) tmpSS = u;}else{ |
| 518 |
SS[SS.size()-1].SP.resize(2); |
| 519 |
tmpSS = SS.size()-1; |
| 520 |
if(debug) cout<<"\tvector SelectScheme was increased...\tNew size = "<<SS.size()<<"\n\n"; |
| 521 |
FillSS(SS[SS.size()-1].SP[0],-0.8,0,0,1,0,0,0.8,1,true,false); |
| 522 |
FillSS(SS[SS.size()-1].SP[1],-1000,-0.8,0,2,0,0,0.8,1,false,true); |
| 523 |
} |
| 524 |
//if(debug) ShowSSInfo(SS); |
| 525 |
}else |
| 526 |
if(Np == 3){ |
| 527 |
if(debug) cout<<"Positron...\n\n"; |
| 528 |
Int_t u = 0; |
| 529 |
u=CheckSS(0,0.8,0,1,0,0,0.8,1,true,false,0); |
| 530 |
if(u!=-1) u=CheckSS(0.8,1000,0,2,0,0,0.8,1,false,true,1); |
| 531 |
if(u!=-1){if(SS[u].SP.size()==2) tmpSS = u;}else{ |
| 532 |
SS[SS.size()-1].SP.resize(2); |
| 533 |
tmpSS = SS.size()-1; |
| 534 |
if(debug) cout<<"\tvector SelectScheme was increased...\tNew size = "<<SS.size()<<"\n\n"; |
| 535 |
FillSS(SS[SS.size()-1].SP[0],0,0.8,0,1,0,0,0.8,1,true,false); |
| 536 |
FillSS(SS[SS.size()-1].SP[1],0.8,1000,0,2,0,0,0.8,1,false,true); |
| 537 |
} |
| 538 |
//if(debug) ShowSSInfo(SS); |
| 539 |
}else |
| 540 |
if(Np == 4){ |
| 541 |
if(debug) cout<<"Antiproton...\n\n"; |
| 542 |
Int_t u = 0; |
| 543 |
u=CheckSS(-0.8,0,1,0,0,30,0.2,1,false,false,0); |
| 544 |
if(u!=-1) u=CheckSS(-1000,-0.8,0,0,0,0,0.2,1,false,true,1); |
| 545 |
if(u!=-1){if(SS[u].SP.size()==2) tmpSS = u;}else{ |
| 546 |
SS[SS.size()-1].SP.resize(2); |
| 547 |
tmpSS = SS.size()-1; |
| 548 |
if(debug) cout<<"\tvector SelectScheme was increased...\tNew size = "<<SS.size()<<"\n\n"; |
| 549 |
FillSS(SS[SS.size()-1].SP[0],-0.8,0,1,0,0,30,0.2,1,false,false); |
| 550 |
FillSS(SS[SS.size()-1].SP[1],-1000,-0.8,0,0,0,0,0.2,1,false,true); |
| 551 |
//tmpSS = |
| 552 |
} |
| 553 |
//if(debug) ShowSSInfo(SS); |
| 554 |
} |
| 555 |
cout<<"\ttmpSS = "<<tmpSS<<endl; |
| 556 |
SS[tmpSS].PartType = Np; |
| 557 |
if(debug){Int_t ut; cin>>ut;} |
| 558 |
} |
| 559 |
|
| 560 |
void OptionParam::MakeSelectScheme(int Argc, char* Argv[], Int_t& i, Int_t type){ |
| 561 |
if(debug) cout<<"\tSelect separation Scheme...\n\n"; |
| 562 |
if(type==-1 && i==Argc){ |
| 563 |
cout<<"ERROR!: SelectionScheme option needs in at least 1 parameters!\n"; |
| 564 |
exit(1); |
| 565 |
} |
| 566 |
SS.resize(SS.size()+1); |
| 567 |
if(type!=-1) DefaultSelect(type);else{ |
| 568 |
i++; |
| 569 |
SS[SS.size()-1].PartType = -1; |
| 570 |
tmpSS=SS.size()-1; |
| 571 |
while(i<Argc && ((!strcmp(Argv[i],"-Rmin")) || (!strcmp(Argv[i],"-Rmax")) || (!strcmp(Argv[i],"-detrminf")) || (!strcmp(Argv[i],"-detrmaxf")) || |
| 572 |
(!strcmp(Argv[i],"-detrmore")) || (!strcmp(Argv[i],"-detrless")) || (!strcmp(Argv[i],"-AC")) || (!strcmp(Argv[i],"-Calo")) || |
| 573 |
(!strcmp(Argv[i],"-betamin")) || (!strcmp(Argv[i],"-betamax")))){ |
| 574 |
|
| 575 |
if(!strcmp(Argv[i],"-Rmin")){ |
| 576 |
SS[SS.size()-1].SP.resize(SS[SS.size()-1].SP.size()+1); |
| 577 |
if(debug) cout<<"\tvector SelectScheme was increased...\tNew size = "<<SS[SS.size()-1].SP.size()<<"\n\n"; |
| 578 |
SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].Rmin = CheckDouble(Argv[i+1],Argv[i]); |
| 579 |
if(debug) cout<<"\t\t Rmin = "<<SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].Rmin<<"\n"; |
| 580 |
SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].Rmax = 1000; |
| 581 |
SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].detrminf = 0; |
| 582 |
SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].detrmaxf = 0; |
| 583 |
SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].detrmore = 0; |
| 584 |
SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].detrless = 1000; |
| 585 |
SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].betamin = 0.2; |
| 586 |
SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].betamax = 1; |
| 587 |
SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].AC = false; |
| 588 |
SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].Calo = false; |
| 589 |
i++; |
| 590 |
} |
| 591 |
if(!strcmp(Argv[i],"-Rmax")){ |
| 592 |
SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].Rmax = CheckDouble(Argv[i+1],Argv[i]); |
| 593 |
if(debug) cout<<"\t\t Rmax = "<<SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].Rmax<<"\n"; |
| 594 |
i++; |
| 595 |
} |
| 596 |
if(SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].Rmax <= SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].Rmin){ |
| 597 |
cout<<"SelectionScheme: ERROR!!\tYou have incorrect rigidity diapason...\n\n"; |
| 598 |
exit(1); |
| 599 |
} |
| 600 |
if(!strcmp(Argv[i],"-detrminf")){ |
| 601 |
SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].detrminf = CheckInt(Argv[i+1],Argv[i]); |
| 602 |
if(debug) cout<<"\t\t detrminf = "<<SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].detrminf<<"\n"; |
| 603 |
if(SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].detrminf<0 || SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].detrminf>3){ |
| 604 |
cout<<"ERROR:\t-detrminf have incorrect value of argument: -detrminf = "<<Argv[i+1]<<"\n\n"; |
| 605 |
exit(1); |
| 606 |
} |
| 607 |
i++; |
| 608 |
} |
| 609 |
if(!strcmp(Argv[i],"-detrmaxf")){ |
| 610 |
SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].detrmaxf = CheckInt(Argv[i+1],Argv[i]);; |
| 611 |
if(debug) cout<<"\t\t detrmaxf = "<<SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].detrmaxf<<"\n"; |
| 612 |
if(SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].detrmaxf<0 || SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].detrmaxf>3){ |
| 613 |
cout<<"ERROR:\t-detrmaxf have incorrect value of argument: -detrmaxf = "<<Argv[i+1]<<"\n\n"; |
| 614 |
exit(1); |
| 615 |
} |
| 616 |
i++; |
| 617 |
} |
| 618 |
if(!strcmp(Argv[i],"-detrmore")){ |
| 619 |
SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].detrmore = CheckDouble(Argv[i+1],Argv[i]); |
| 620 |
if(debug) cout<<"\t\t detrmore = "<<SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].detrmore<<"\n"; |
| 621 |
i++; |
| 622 |
} |
| 623 |
if(!strcmp(Argv[i],"-detrless")){ |
| 624 |
SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].detrless = CheckDouble(Argv[i+1],Argv[i]); |
| 625 |
if(debug) cout<<"\t\t detrless = "<<SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].detrless<<"\n"; |
| 626 |
i++; |
| 627 |
} |
| 628 |
if(!strcmp(Argv[i],"-betamin")){ |
| 629 |
SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].betamin = CheckDouble(Argv[i+1],Argv[i]); |
| 630 |
if(debug) cout<<"\t\t betamin = "<<SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].betamin<<"\n"; |
| 631 |
i++; |
| 632 |
} |
| 633 |
if(!strcmp(Argv[i],"-betamax")){ |
| 634 |
SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].betamax = CheckDouble(Argv[i+1],Argv[i]); |
| 635 |
if(debug) cout<<"\t\t betamax = "<<SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].betamax<<"\n"; |
| 636 |
i++; |
| 637 |
} |
| 638 |
if(SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].betamax <= SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].betamin){ |
| 639 |
cout<<"SlectionScheme: ERROR!!\tYou have incorrect detr diapason...\n\n"; |
| 640 |
exit(1); |
| 641 |
} |
| 642 |
if(!strcmp(Argv[i],"-AC")){ |
| 643 |
SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].AC = true; |
| 644 |
if(debug) cout<<"\t\t AntiCounter = "<<SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].AC<<"\n"; |
| 645 |
} |
| 646 |
if(!strcmp(Argv[i],"-Calo")){ |
| 647 |
SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].Calo = true; |
| 648 |
if(debug) cout<<"\t\t Calorimeter = "<<SS[SS.size()-1].SP[SS[SS.size()-1].SP.size()-1].Calo<<"\n"; |
| 649 |
} |
| 650 |
i++; |
| 651 |
}//while |
| 652 |
}//else |
| 653 |
if(debug)cout<<"LastArgv["<<i<<"] = "<<Argv[i]<<endl<<endl; |
| 654 |
if(debug){Int_t u; cin>>u;} |
| 655 |
} |
| 656 |
|
| 657 |
void OptionParam::MakeHystAxis(int Argc, char* Argv[], Int_t& i){ |
| 658 |
i++; |
| 659 |
if(debug)cout<<"MakeHystAxis function..."<<endl; |
| 660 |
|
| 661 |
if(!strcmp(Argv[i],"-Z")){ |
| 662 |
if(Argc<=i+5){ |
| 663 |
cout<<"ERROR! -Z Needs at least 3 argument!"<<endl; |
| 664 |
exit(1); |
| 665 |
} |
| 666 |
if(strcmp(Argv[i+2],"-Y")){ |
| 667 |
cout<<"ERROR! You need indicate meaning for Y-axis of hyst"<<endl; |
| 668 |
exit(1); |
| 669 |
} |
| 670 |
if(strcmp(Argv[i+4],"-X")){ |
| 671 |
cout<<"ERROR! You need indicate meaning for X-axis of hyst"<<endl; |
| 672 |
exit(1); |
| 673 |
} |
| 674 |
//Hyst3D.resize(Hyst3D.size()+1); |
| 675 |
//if(debug)cout<<"Hyst3D was increased. New size is "<<Hyst3D.size()<<endl; |
| 676 |
Int_t size = Hyst3D.size()-1; |
| 677 |
if(!strcmp(Argv[i+1],"-PamAzim")) Hyst3D[size].ZType = 1; |
| 678 |
if(!strcmp(Argv[i+1],"-PamZenith")) Hyst3D[size].ZType = 2; |
| 679 |
if(!strcmp(Argv[i+1],"-Pitch")) Hyst3D[size].ZType = 3; |
| 680 |
if(!strcmp(Argv[i+1],"-detr")) Hyst3D[size].ZType = 4; |
| 681 |
if(!strcmp(Argv[i+1],"-rigev")) Hyst3D[size].ZType = 5; |
| 682 |
if(!strcmp(Argv[i+1],"-lat")) Hyst3D[size].ZType = 6; |
| 683 |
if(!strcmp(Argv[i+1],"-lon")) Hyst3D[size].ZType = 7; |
| 684 |
if(!strcmp(Argv[i+1],"-L")) Hyst3D[size].ZType = 8; |
| 685 |
if(!strcmp(Argv[i+1],"-Babs")) Hyst3D[size].ZType = 9; |
| 686 |
if(!strcmp(Argv[i+1],"-Alt")) Hyst3D[size].ZType = 10; |
| 687 |
if(!strcmp(Argv[i+1],"-LieveTime")) Hyst3D[size].ZType = 11; |
| 688 |
if(!strcmp(Argv[i+1],"-DeathTime")) Hyst3D[size].ZType = 12; |
| 689 |
if(!strcmp(Argv[i+1],"-PNO")) Hyst3D[size].ZType = 13; |
| 690 |
if(!strcmp(Argv[i+1],"-MA")) Hyst3D[size].ZType = 14; |
| 691 |
if(!strcmp(Argv[i+1],"-Eff")) Hyst3D[size].ZType = 15; |
| 692 |
if(!strcmp(Argv[i+1],"-dS")) Hyst3D[size].ZType = 16; |
| 693 |
if(!strcmp(Argv[i+1],"-LogE")) Hyst3D[size].XType = 17; |
| 694 |
if(!strcmp(Argv[i+3],"-PamAzim")) Hyst3D[size].YType = 1; |
| 695 |
if(!strcmp(Argv[i+3],"-PamZenith")) Hyst3D[size].YType = 2; |
| 696 |
if(!strcmp(Argv[i+3],"-Pitch")) Hyst3D[size].YType = 3; |
| 697 |
if(!strcmp(Argv[i+3],"-detr")) Hyst3D[size].YType = 4; |
| 698 |
if(!strcmp(Argv[i+3],"-rigev")) Hyst3D[size].YType = 5; |
| 699 |
if(!strcmp(Argv[i+3],"-lat")) Hyst3D[size].YType = 6; |
| 700 |
if(!strcmp(Argv[i+3],"-lon")) Hyst3D[size].YType = 7; |
| 701 |
if(!strcmp(Argv[i+3],"-L")) Hyst3D[size].YType = 8; |
| 702 |
if(!strcmp(Argv[i+3],"-Babs")) Hyst3D[size].YType = 9; |
| 703 |
if(!strcmp(Argv[i+3],"-Alt")) Hyst3D[size].YType = 10; |
| 704 |
if(!strcmp(Argv[i+3],"-LieveTime")) Hyst3D[size].YType = 11; |
| 705 |
if(!strcmp(Argv[i+3],"-DeathTime")) Hyst3D[size].YType = 12; |
| 706 |
if(!strcmp(Argv[i+3],"-PNO")) Hyst3D[size].YType = 13; |
| 707 |
if(!strcmp(Argv[i+3],"-MA")) Hyst3D[size].YType = 14; |
| 708 |
if(!strcmp(Argv[i+3],"-Eff")) Hyst3D[size].YType = 15; |
| 709 |
if(!strcmp(Argv[i+3],"-dS")) Hyst3D[size].YType = 16; |
| 710 |
if(!strcmp(Argv[i+3],"-LogE")) Hyst3D[size].YType = 17; |
| 711 |
if(!strcmp(Argv[i+5],"-PamAzim")) Hyst3D[size].XType = 1; |
| 712 |
if(!strcmp(Argv[i+5],"-PamZenith")) Hyst3D[size].XType = 2; |
| 713 |
if(!strcmp(Argv[i+5],"-Pitch")) Hyst3D[size].XType = 3; |
| 714 |
if(!strcmp(Argv[i+5],"-detr")) Hyst3D[size].XType = 4; |
| 715 |
if(!strcmp(Argv[i+5],"-rigev")) Hyst3D[size].XType = 5; |
| 716 |
if(!strcmp(Argv[i+5],"-lat")) Hyst3D[size].XType = 6; |
| 717 |
if(!strcmp(Argv[i+5],"-lon")) Hyst3D[size].XType = 7; |
| 718 |
if(!strcmp(Argv[i+5],"-L")) Hyst3D[size].XType = 8; |
| 719 |
if(!strcmp(Argv[i+5],"-Babs")) Hyst3D[size].XType = 9; |
| 720 |
if(!strcmp(Argv[i+5],"-Alt")) Hyst3D[size].XType = 10; |
| 721 |
if(!strcmp(Argv[i+5],"-LieveTime")) Hyst3D[size].XType = 11; |
| 722 |
if(!strcmp(Argv[i+5],"-DeathTime")) Hyst3D[size].XType = 12; |
| 723 |
if(!strcmp(Argv[i+5],"-PNO")) Hyst3D[size].XType = 13; |
| 724 |
if(!strcmp(Argv[i+5],"-MA")) Hyst3D[size].XType = 14; |
| 725 |
if(!strcmp(Argv[i+5],"-Eff")) Hyst3D[size].XType = 15; |
| 726 |
if(!strcmp(Argv[i+5],"-dS")) Hyst3D[size].XType = 16; |
| 727 |
if(!strcmp(Argv[i+5],"-LogE")) Hyst3D[size].XType = 17; |
| 728 |
Hyst3D[size].NEI = EffHyst.size()-1; |
| 729 |
i+=5; |
| 730 |
}; |
| 731 |
|
| 732 |
if(!strcmp(Argv[i],"-Y")){ |
| 733 |
if(Argc<=i+3){ |
| 734 |
cout<<"ERROR! -Y Needs at least 3 argument!"<<endl; |
| 735 |
exit(1); |
| 736 |
} |
| 737 |
if(strcmp(Argv[i+2],"-X")){ |
| 738 |
cout<<"ERROR! You need indicate meaning for X-axis of hyst"<<endl; |
| 739 |
exit(1); |
| 740 |
} |
| 741 |
Hyst2D.resize(Hyst2D.size()+1); |
| 742 |
if(debug)cout<<"Hyst2D was increased. New size is "<<Hyst2D.size()<<endl; |
| 743 |
Int_t size = Hyst2D.size()-1; |
| 744 |
if(!strcmp(Argv[i+1],"-PamAzim")) Hyst2D[size].YType = 1; |
| 745 |
if(!strcmp(Argv[i+1],"-PamZenith")) Hyst2D[size].YType = 2; |
| 746 |
if(!strcmp(Argv[i+1],"-Pitch")) Hyst2D[size].YType = 3; |
| 747 |
if(!strcmp(Argv[i+1],"-detr")) Hyst2D[size].YType = 4; |
| 748 |
if(!strcmp(Argv[i+1],"-rigev")) Hyst2D[size].YType = 5; |
| 749 |
if(!strcmp(Argv[i+1],"-lat")) Hyst2D[size].YType = 6; |
| 750 |
if(!strcmp(Argv[i+1],"-lon")) Hyst2D[size].YType = 7; |
| 751 |
if(!strcmp(Argv[i+1],"-L")) Hyst2D[size].YType = 8; |
| 752 |
if(!strcmp(Argv[i+1],"-Babs")) Hyst2D[size].YType = 9; |
| 753 |
if(!strcmp(Argv[i+1],"-Alt")) Hyst2D[size].YType = 10; |
| 754 |
if(!strcmp(Argv[i+1],"-LieveTime")) Hyst2D[size].YType = 11; |
| 755 |
if(!strcmp(Argv[i+1],"-DeathTime")) Hyst2D[size].YType = 12; |
| 756 |
if(!strcmp(Argv[i+1],"-PNO")) Hyst2D[size].YType = 13; |
| 757 |
if(!strcmp(Argv[i+1],"-MA")) Hyst2D[size].YType = 14; |
| 758 |
if(!strcmp(Argv[i+1],"-LogE")) Hyst2D[size].YType = 17; |
| 759 |
if(!strcmp(Argv[i+3],"-PamAzim")) Hyst2D[size].XType = 1; |
| 760 |
if(!strcmp(Argv[i+3],"-PamZenith")) Hyst2D[size].XType = 2; |
| 761 |
if(!strcmp(Argv[i+3],"-Pitch")) Hyst2D[size].XType = 3; |
| 762 |
if(!strcmp(Argv[i+3],"-detr")) Hyst2D[size].XType = 4; |
| 763 |
if(!strcmp(Argv[i+3],"-rigev")) Hyst2D[size].XType = 5; |
| 764 |
if(!strcmp(Argv[i+3],"-lat")) Hyst2D[size].XType = 6; |
| 765 |
if(!strcmp(Argv[i+3],"-lon")) Hyst2D[size].XType = 7; |
| 766 |
if(!strcmp(Argv[i+3],"-L")) Hyst2D[size].XType = 8; |
| 767 |
if(!strcmp(Argv[i+3],"-Babs")) Hyst2D[size].XType = 9; |
| 768 |
if(!strcmp(Argv[i+3],"-Alt")) Hyst2D[size].XType = 10; |
| 769 |
if(!strcmp(Argv[i+3],"-LieveTime")) Hyst2D[size].XType = 11; |
| 770 |
if(!strcmp(Argv[i+3],"-DeathTime")) Hyst2D[size].XType = 12; |
| 771 |
if(!strcmp(Argv[i+3],"-PNO")) Hyst2D[size].XType = 13; |
| 772 |
if(!strcmp(Argv[i+3],"-MA")) Hyst2D[size].XType = 14; |
| 773 |
if(!strcmp(Argv[i+2],"-LogE")) Hyst2D[size].XType = 17; |
| 774 |
i+=3; |
| 775 |
} |
| 776 |
if(!strcmp(Argv[i],"-X")){ |
| 777 |
if(Argc<=i+1){ |
| 778 |
cout<<"ERROR! -X Needs at least 1 argument!"<<endl; |
| 779 |
exit(1); |
| 780 |
} |
| 781 |
Hyst1D.resize(Hyst1D.size()+1); |
| 782 |
if(debug)cout<<"Hyst1D was increased. New size is "<<Hyst1D.size()<<endl; |
| 783 |
Int_t size = Hyst1D.size()-1; |
| 784 |
if(!strcmp(Argv[i+1],"-PamAzim")) Hyst1D[size].XType = 1; |
| 785 |
if(!strcmp(Argv[i+1],"-PamZenith")) Hyst1D[size].XType = 2; |
| 786 |
if(!strcmp(Argv[i+1],"-Pitch")) Hyst1D[size].XType = 3; |
| 787 |
if(!strcmp(Argv[i+1],"-detr")) Hyst1D[size].XType = 4; |
| 788 |
if(!strcmp(Argv[i+1],"-rigev")) Hyst1D[size].XType = 5; |
| 789 |
if(!strcmp(Argv[i+1],"-lat")) Hyst1D[size].XType = 6; |
| 790 |
if(!strcmp(Argv[i+1],"-lon")) Hyst1D[size].XType = 7; |
| 791 |
if(!strcmp(Argv[i+1],"-L")) Hyst1D[size].XType = 8; |
| 792 |
if(!strcmp(Argv[i+1],"-Babs")) Hyst1D[size].XType = 9; |
| 793 |
if(!strcmp(Argv[i+1],"-Alt")) Hyst1D[size].XType = 10; |
| 794 |
if(!strcmp(Argv[i+1],"-LieveTime")) Hyst1D[size].XType = 11; |
| 795 |
if(!strcmp(Argv[i+1],"-DeathTime")) Hyst1D[size].XType = 12; |
| 796 |
if(!strcmp(Argv[i+1],"-PNO")) Hyst1D[size].XType = 13; |
| 797 |
if(!strcmp(Argv[i+1],"-MA")) Hyst1D[size].XType = 14; |
| 798 |
if(!strcmp(Argv[i+1],"-LogE")) Hyst1D[size].XType = 17; |
| 799 |
i++; |
| 800 |
} |
| 801 |
} |
| 802 |
|
| 803 |
void OptionParam::PamEffFunc(int Argc, char* Argv[]){ |
| 804 |
Int_t i = 0; |
| 805 |
while(i<Argc){ |
| 806 |
if(debug)cout<<"Argv["<<i<<"] = "<<Argv[i]<<endl; |
| 807 |
if(!strcmp(Argv[i],"-p") || !strcmp(Argv[i],"-Antiproton")) MakeSelectScheme(Argc, Argv, i, 4); |
| 808 |
if(!strcmp(Argv[i],"+p") || !strcmp(Argv[i],"-Proton")) MakeSelectScheme(Argc, Argv, i, 1); |
| 809 |
if(!strcmp(Argv[i],"-e") || !strcmp(Argv[i],"-Electron")) MakeSelectScheme(Argc, Argv, i, 2); |
| 810 |
if(!strcmp(Argv[i],"+e") || !strcmp(Argv[i],"-Positron")) MakeSelectScheme(Argc, Argv, i, 3); |
| 811 |
if(!strcmp(Argv[i],"-all") || !strcmp(Argv[i],"-AllParticles")) MakeSelectScheme(Argc, Argv, i, 0); |
| 812 |
if(!strcmp(Argv[i],"-SS") || !strcmp(Argv[i],"-SelectionScheme")) MakeSelectScheme(Argc, Argv, i, -1); |
| 813 |
if(!strcmp(Argv[i],"-ED") || !strcmp(Argv[i],"-EnergyDiapason")) CheckAD(Argc, Argv, i); |
| 814 |
if(!strcmp(Argv[i],"-GS") || !strcmp(Argv[i],"-GeoSelect")) Run(Argc, Argv, i); |
| 815 |
if(!strcmp(Argv[i],"-PS") || !strcmp(Argv[i],"-PitchSelect")) CheckPitch(Argc, Argv, i); |
| 816 |
if(!strcmp(Argv[i],"-Exp") || !strcmp(Argv[i],"-Exposition")) SetExpOption(Argc, Argv, i); |
| 817 |
if(!strcmp(Argv[i],"-HM") || !strcmp(Argv[i],"-HystMeaning")) MakeHystAxis(Argc, Argv, i); |
| 818 |
if(!strcmp(Argv[i],"[")) CheckBrackets(Argc, Argv, i); |
| 819 |
i++; |
| 820 |
} |
| 821 |
if(debug){ |
| 822 |
for(Int_t se = 0; se<Hyst1D.size(); se++){ |
| 823 |
cout<<"Hyst1D["<<se<<"]..."<<endl; |
| 824 |
cout<<"filename "<<Hyst1D[se].HI.filename<<endl; |
| 825 |
cout<<"X axis is "<<Hyst1D[se].XType<<endl; |
| 826 |
cout<<"NUS = "<<Hyst1D[se].HI.NUS<<endl; |
| 827 |
for(Int_t U = 0; U<US[Hyst1D[se].HI.NUS].USP.size(); U++){ |
| 828 |
cout<<"\tBmore = "<<US[Hyst1D[se].HI.NUS].USP[U].Bmore<<"\tBless = "<<US[Hyst1D[se].HI.NUS].USP[U].Bless<<endl; |
| 829 |
cout<<"\tLmore = "<<US[Hyst1D[se].HI.NUS].USP[U].Lmore<<"\tLless = "<<US[Hyst1D[se].HI.NUS].USP[U].Lless<<endl; |
| 830 |
cout<<"\taltmore = "<<US[Hyst1D[se].HI.NUS].USP[U].altmore<<"\taltless = "<<US[Hyst1D[se].HI.NUS].USP[U].altless<<endl; |
| 831 |
cout<<"\tRmore = "<<US[Hyst1D[se].HI.NUS].USP[U].Rmore<<"\tRless = "<<US[Hyst1D[se].HI.NUS].USP[U].Rless<<endl; |
| 832 |
cout<<"\t\tNumbers of according 1D hystogramms:\t"; |
| 833 |
for(Int_t su = 0; su<US[Hyst1D[se].HI.NUS].NAH1D.size(); su++){ |
| 834 |
cout<<US[Hyst1D[se].HI.NUS].NAH1D[su]<<" "; |
| 835 |
} |
| 836 |
} |
| 837 |
cout<<"NED = "<<Hyst1D[se].HI.NED<<endl; |
| 838 |
cout<<"\tRmax = "<<ED[Hyst1D[se].HI.NED].Emax<<"\tRmin = "<<ED[Hyst1D[se].HI.NED].Emin<<endl; |
| 839 |
cout<<"\tDetrmax = "<<ED[Hyst1D[se].HI.NED].detrmax<<"\tDetrmin = "<<ED[Hyst1D[se].HI.NED].detrmin<<endl; |
| 840 |
cout<<"NSS = "<<Hyst1D[se].HI.NSS<<endl; |
| 841 |
cout<<"NPT = "<<Hyst1D[se].HI.NPT<<endl; |
| 842 |
cout<<"\tPitchmax = "<<PS[Hyst1D[se].HI.NPT].PitchMax<<"\tPitchmin = "<<PS[Hyst1D[se].HI.NPT].PitchMin<<endl; |
| 843 |
cout<<"\t\t Size of PS["<<Hyst1D[se].HI.NPT<<"].NAH1D = "<<PS[Hyst1D[se].HI.NPT].NAH1D.size()<<endl; |
| 844 |
cout<<"\t\tNumbers of according 1D hystogramms:\t"; |
| 845 |
for(Int_t su = 0; su<PS[Hyst1D[se].HI.NPT].NAH1D.size(); su++){ |
| 846 |
cout<<PS[Hyst1D[se].HI.NPT].NAH1D[su]<<" "; |
| 847 |
} |
| 848 |
//Int_t ytr; |
| 849 |
//cin>>ytr; |
| 850 |
} |
| 851 |
for(Int_t se = 0; se<Hyst2D.size(); se++){ |
| 852 |
cout<<"Hyst1D["<<se<<"]..."<<endl; |
| 853 |
cout<<"filename "<<Hyst2D[se].HI.filename<<endl; |
| 854 |
cout<<"X axis is "<<Hyst2D[se].XType<<endl; |
| 855 |
cout<<"Y axis is "<<Hyst2D[se].YType<<endl; |
| 856 |
cout<<"NUS = "<<Hyst2D[se].HI.NUS<<endl; |
| 857 |
for(Int_t U = 0; U<US[Hyst2D[se].HI.NUS].USP.size(); U++){ |
| 858 |
cout<<"\tBmore = "<<US[Hyst2D[se].HI.NUS].USP[U].Bmore<<"\tBless = "<<US[Hyst2D[se].HI.NUS].USP[U].Bless<<endl; |
| 859 |
cout<<"\tLmore = "<<US[Hyst2D[se].HI.NUS].USP[U].Lmore<<"\tLless = "<<US[Hyst2D[se].HI.NUS].USP[U].Lless<<endl; |
| 860 |
cout<<"\taltmore = "<<US[Hyst2D[se].HI.NUS].USP[U].altmore<<"\taltless = "<<US[Hyst2D[se].HI.NUS].USP[U].altless<<endl; |
| 861 |
cout<<"\tRmore = "<<US[Hyst2D[se].HI.NUS].USP[U].Rmore<<"\tRless = "<<US[Hyst2D[se].HI.NUS].USP[U].Rless<<endl; |
| 862 |
cout<<"\t\tNumbers of according 2D hystogramms:\t"; |
| 863 |
for(Int_t su = 0; su<US[Hyst2D[se].HI.NUS].NAH2D.size(); su++){ |
| 864 |
cout<<US[Hyst2D[se].HI.NUS].NAH2D[su]<<" "; |
| 865 |
} |
| 866 |
} |
| 867 |
cout<<"NED = "<<Hyst2D[se].HI.NED<<endl; |
| 868 |
cout<<"\tRmax = "<<ED[Hyst2D[se].HI.NED].Emax<<"\tRmin = "<<ED[Hyst2D[se].HI.NED].Emin<<endl; |
| 869 |
cout<<"\tDetrmax = "<<ED[Hyst2D[se].HI.NED].detrmax<<"\tDetrmin = "<<ED[Hyst2D[se].HI.NED].detrmin<<endl; |
| 870 |
cout<<"NSS = "<<Hyst2D[se].HI.NSS<<endl; |
| 871 |
cout<<"NPT = "<<Hyst2D[se].HI.NPT<<endl; |
| 872 |
cout<<"\tPitchmax = "<<PS[Hyst2D[se].HI.NPT].PitchMax<<"\tPitchmin = "<<PS[Hyst2D[se].HI.NPT].PitchMin<<endl; |
| 873 |
cout<<"\t\tNumbers of according 2D hystogramms:\t"; |
| 874 |
for(Int_t su = 0; su<PS[Hyst2D[se].HI.NPT].NAH2D.size(); su++){ |
| 875 |
cout<<PS[Hyst2D[se].HI.NPT].NAH2D[su]<<" "; |
| 876 |
} |
| 877 |
//Int_t ytr; |
| 878 |
//cin>>ytr; |
| 879 |
} |
| 880 |
} |
| 881 |
} |
| 882 |
/* |
| 883 |
void OptionParam::SelectParam(int Argc, char* Argv[], Int_t& i, DHBuild& DHB){ |
| 884 |
i++; |
| 885 |
while(i<Argc && ((!strcmp(Argv[i],"-AGD")) || (!strcmp(Argv[i],"-BGD")) || (!strcmp(Argv[i],"-LGD")) || (!strcmp(Argv[i],"-LTGD")))){ |
| 886 |
if(!strcmp(Argv[i],"-AGD")){DHB.AltNAH.resize(DHB.AltNAH.size()+1);DHB.AltNAH[DHB.AltNAH.size()-1] = Hyst1D.size();Run(Argc, Argv, i, DHB.AltNUS);}else |
| 887 |
if(!strcmp(Argv[i],"-BGD")){DHB.BNAH.resize(DHB.BNAH.size()+1);DHB.BNAH[DHB.BNAH.size()-1] = Hyst1D.size();Run(Argc, Argv, i, DHB.BNUS);}else |
| 888 |
if(!strcmp(Argv[i],"-LGD")){DHB.LNAH.resize(DHB.LNAH.size()+1);DHB.LNAH[DHB.LNAH.size()-1] = Hyst1D.size();Run(Argc, Argv, i, DHB.LNUS);}else |
| 889 |
if(!strcmp(Argv[i],"-LTGD")){DHB.LTNAH.resize(DHB.LTNAH.size()+1);DHB.LTNAH[DHB.LTNAH.size()-1] = Hyst1D.size();Run(Argc, Argv, i, DHB.LTNUS);} //LiveTime |
| 890 |
i++; |
| 891 |
} |
| 892 |
} |
| 893 |
|
| 894 |
void OptionParam::DiffHystFunc(int Argc, char* Argv[]){ |
| 895 |
Int_t i=0; |
| 896 |
if(debug) cout<<"DiffHyst Function...\n\n"; |
| 897 |
while(i<Argc){ |
| 898 |
if(!strcmp(Argv[i],"-GS") || !strcmp(Argv[i],"-GeoSelect")) SelectParam(Argc, Argv, i, opt.DH.GEOS);else |
| 899 |
if(!strcmp(Argv[i],"-BS") || !strcmp(Argv[i],"-BSelect")) SelectParam(Argc, Argv, i, opt.DH.BS);else |
| 900 |
if(!strcmp(Argv[i],"-LS") || !strcmp(Argv[i],"-LSelect")) SelectParam(Argc, Argv, i, opt.DH.LS);else |
| 901 |
if(!strcmp(Argv[i],"-C") || !strcmp(Argv[i],"-Count")) SelectParam(Argc, Argv, i, opt.DH.Count);else |
| 902 |
if(!strcmp(Argv[i],"-Z")) opt.DH.Z = true;else |
| 903 |
if(!strcmp(Argv[i],"-Az")) opt.DH.Az = true; |
| 904 |
i++; |
| 905 |
} |
| 906 |
} |
| 907 |
|
| 908 |
void OptionParam::PamExpFunc(int Argc, char* Argv[]){ |
| 909 |
opt.PX.PamExpOn = true; |
| 910 |
Int_t i = 0; |
| 911 |
while(i<Argc){ |
| 912 |
if(!strcmp(Argv[i],"-EO") || !strcmp(Argv[i],"-ExpOnly")){} |
| 913 |
if(!strcmp(Argv[i],"-GS") || !strcmp(Argv[i],"-GeoSelect")){}// SelectParam(Argc, Argv, i, opt.PX.In[opt.PX.In.size()-1].NUS); |
| 914 |
if(!strcmp(Argv[i],"-FN") || !strcmp(Argv[i],"-filename")){ |
| 915 |
if(i+1<Argc){ |
| 916 |
opt.PX.In.resize(opt.PX.In.size()+1); |
| 917 |
opt.PX.In[opt.PX.In.size()-1].file = (TString)Argv[i]; |
| 918 |
opt.PX.In[opt.PX.In.size()-1].HystName = Argv[i+1]; |
| 919 |
} |
| 920 |
} |
| 921 |
i++; |
| 922 |
} |
| 923 |
} |
| 924 |
*/ |