1 void UpdateCDBGRPEntryMC() {
2 // produce the GRP entry in CDB
3 // reading MC parameter from Config.C
5 AliCDBManager* man = AliCDBManager::Instance();
6 man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
8 AliCDBId id(AliQA::GetGRPPath(), 0, AliCDBRunRange::Infinity());
9 AliCDBMetaData *metadata= new AliCDBMetaData();
12 const char* rootv = gROOT->GetVersion();
13 metadata->SetResponsible("Yves.Schutz@cern.ch");
14 metadata->SetComment("GRP parameters for Monte Carlo");
17 TMap *mappp = GetGRPList();
19 // Printf("Storing in CDB the default values for the GRP %d parameters produced with root %s and AliRoot version %s",list->GetEntries(),rootv,alirootv);
21 man->Put(mappp,id,metadata);
24 TString ParseConfig(char * option)
26 // Parse Config file to retrieve usefull information for the GRP
28 ifstream in("Config.C", ios::in) ;
30 AliError("Config.C file not found in current path") ;
34 TString soption(option) ;
39 // search for the system p-p or Pb-Pb or .....
40 if (soption.Contains("system") || soption.Contains("fAliceBeamType")){
41 while (getline(in, line)) {
43 if (sline.Contains("gAlice->SetTriggerDescriptor"))
46 TString sarg1 = sline(sline.Index("[")+1, sline.Index("]") - sline.Index("[")-1) ;
47 sarg1 = sarg1.Strip(TString::kLeading) ;
48 sarg1 = sarg1.Strip(TString::kTrailing) ;
49 TString sarg2 = sline(sline.Index("(")+1, sline.Index("[") - sline.Index("(")-1) ;
50 sarg2 = sarg2.Strip(TString::kLeading) ;
51 sarg2 = sarg2.Strip(TString::kTrailing) ;
53 while (getline(in, line)) {
55 if (sline.Contains(sarg1)) {
56 sarg1 = sline(sline.Index("=")+1, sline.Index(";")-sline.Index("=")-1) ;
57 sarg1 = sarg1.Strip(TString::kLeading) ;
58 sarg1 = sarg1.Strip(TString::kTrailing) ;
64 while (getline(in, line)) {
66 if (sline.Contains(sarg1)) {
67 sline = sline.Strip(TString::kLeading) ;
68 Ssiz_t deb = sline.Index(sarg1) ;
69 Ssiz_t kom = sline.Index(",") ;
70 if ( deb == 0 || deb < kom)
76 if (sline.Contains(sarg2)) {
77 Ssiz_t deb = sline.First("\"") ;
82 sline.ReplaceAll("\"", "") ;
83 sline = sline.Strip(TString::kLeading) ;
85 rv = sline(0, sline.Index(",")) ;
87 rv = sline(sline.Index(",")+1, sline.Length()-sline.Index(",")) ;
92 // get the beam energy
93 else if (soption.Contains("fAliceBeamEnergy")) {
94 while (getline(in, line)) {
96 if ( sline.Contains("->SetEnergyCMS(") ) {
97 rv = sline(sline.Index("(")+1, sline.Index(")")-sline.Index("(")-1) ;
102 // get the number of active detectors
103 else if (soption.Contains("fNumberOfDetectors")) {
105 while (getline(in, line)) {
107 sline.ReplaceAll(" ", "") ;
108 if (sline.Contains("iITS=1") ||
109 sline.Contains("iTPC=1") ||
110 sline.Contains("iTRD=1") ||
111 sline.Contains("iTOF=1") ||
112 sline.Contains("iPHOS=1") ||
113 sline.Contains("iHMPID=1") ||
114 sline.Contains("iEMCAL=1") ||
115 sline.Contains("iMUON=1") ||
116 sline.Contains("iFMD=1") ||
117 sline.Contains("iPMD=1") ||
118 sline.Contains("iT0=1") ||
119 sline.Contains("iVZERO=1") ||
120 sline.Contains("iZDC=1") ||
121 sline.Contains("iACORDE=1"))
124 rv = Form("%d", det) ;
126 else if (soption.Contains("fL3Current")) {
128 while (getline(in, line)) {
130 sline.ReplaceAll(" ", "") ;
131 if (sline.Contains("AliMagF*field=newAliMagF(")) {
132 sarg = sline(sline.Last(',')+1, sline.Last(')')-sline.Last(',')-1) ;
137 while (getline(in, line)) {
139 sline.ReplaceAll(" ", "") ;
140 if (sline.Contains(Form("%s=",sarg.Data()))) {
141 sarg = sline(sline.Index("=")+1, sline.Index(";")-sline.Index("=")-1) ;
144 else if (sarg == "k2kG")
151 rv.Strip(TString::kLeading) ;
156 //_______________________________________//
159 TString system = ParseConfig("fAliceBeamType") ;
160 TString fSystem = system;
161 TMap *map = new TMap();
162 map->SetName("MONTECARLO");
165 map->Add(new TObjString("fRunType"),new TObjString(AliQA::GetRunTypeName(AliQA::kPHYSICS)));
166 map->Add(new TObjString("fAliceStartTime"),new TObjString("0"));
167 map->Add(new TObjString("fAliceStopTime"),new TObjString("9999"));
168 map->Add(new TObjString("fAliceBeamEnergy"),new TObjString(ParseConfig("fAliceBeamEnergy")));
169 map->Add(new TObjString("fAliceBeamType"),new TObjString(system));
170 map->Add(new TObjString("fNumberOfDetectors"),new TObjString(ParseConfig("fNumberOfDetectors")));
171 map->Add(new TObjString("fDetectorMask"),new TObjString("1074790399"));
172 map->Add(new TObjString("fLHCPeriod"),new TObjString("LHC08c"));
175 map->Add(new TObjString("fLHCState"),new TObjString("0"));
176 map->Add(new TObjString("fLHCCondition"),new TObjString("0"));
177 map->Add(new TObjString("fLHCLuminosity"),new TObjString("0"));
178 map->Add(new TObjString("fBeamIntensity"),new TObjString("0"));
179 map->Add(new TObjString("fL3Current"),new TObjString(ParseConfig("fL3Current")));
180 map->Add(new TObjString("fL3Polarity"),new TObjString("0"));
181 map->Add(new TObjString("fDipoleCurrent"),new TObjString("6000"));
182 map->Add(new TObjString("fDipolePolarity"),new TObjString("0"));
183 map->Add(new TObjString("fCavernTemperature"),new TObjString("0"));
184 map->Add(new TObjString("fCavernPressure"),new TObjString("0"));