]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliLHCData.cxx
Changed default behaviour of processor to consider the time span
[u/mrichter/AliRoot.git] / STEER / AliLHCData.cxx
index 16867b6b47d4db2e397f8c664bf87a12986342bf..d9b3da3276f37a3dd4d48096759f4a5a37ce2d53 100755 (executable)
@@ -94,16 +94,20 @@ const Char_t* AliLHCData::fgkDCSColJaws[] = {
   "left_upstream","right_downstream","right_upstream"};\r
 \r
 //___________________________________________________________________\r
-AliLHCData::AliLHCData(const TMap* dcsMap, double tmin, double tmax)\r
+AliLHCData::AliLHCData(const TMap* dcsMap, double tmin, double tmax, Bool_t ignoreSOR,Bool_t ignoreEOR)\r
   : fTMin(0),fTMax(0),fFillNumber(0),fData(0),fFile2Process(0),fMap2Process(0)\r
 {\r
+  SetIgnoreSOR(ignoreSOR);\r
+  SetIgnoreEOR(ignoreEOR);\r
   FillData(dcsMap,tmin,tmax);\r
 }\r
 \r
 //___________________________________________________________________\r
-AliLHCData::AliLHCData(const Char_t* dcsFile, double tmin, double tmax)\r
+AliLHCData::AliLHCData(const Char_t* dcsFile, double tmin, double tmax, Bool_t ignoreSOR,Bool_t ignoreEOR)\r
   : fTMin(0),fTMax(0),fFillNumber(0),fData(0),fFile2Process(dcsFile),fMap2Process(0)\r
 {\r
+  SetIgnoreSOR(ignoreSOR);\r
+  SetIgnoreEOR(ignoreEOR);\r
   FillData(dcsFile,tmin,tmax);\r
 }\r
 \r
@@ -140,7 +144,9 @@ Bool_t AliLHCData::FillData(double tmin, double tmax)
   //\r
   // -------------------------- extract Fill Number\r
   int iEntry;\r
-  TObjArray* arr = GetDCSEntry(fgkDCSNames[kFillNum],iEntry,fTMin,fTMax);\r
+  if (IsSORIgnored()) tmin -= kTimeMargin;\r
+  if (IsSORIgnored()) tmax += kTimeMargin;\r
+  TObjArray* arr = GetDCSEntry(fgkDCSNames[kFillNum],iEntry,tmin,tmax);\r
   if (arr) SetFillNumber( ExtractInt( (AliDCSArray*)arr->At(iEntry), 0) );\r
   if (fFile2Process) delete arr; // array was created on demand\r
   //\r
@@ -322,12 +328,17 @@ Int_t AliLHCData::FillScalarRecord(int refs[2], const char* rec, const char* rec
   refs[kStart] = fData.GetEntriesFast();\r
   refs[kNStor] = 0;\r
   //\r
-  if ( !(arr=GetDCSEntry(rec,iEntry,fTMin,fTMax)) ) return -1;\r
+  double tmin = fTMin;\r
+  double tmax = fTMax;\r
+  if (IsSORIgnored()) tmin -= kTimeMargin;\r
+  if (IsSORIgnored()) tmax += kTimeMargin;\r
+  //\r
+  if ( !(arr=GetDCSEntry(rec,iEntry,tmin,tmax)) ) return -1;\r
   nEntries = arr->GetEntriesFast();\r
   //\r
   int dim = 1;\r
   if (recErr) {\r
-    if ( !(arrE=GetDCSEntry(recErr,iEntryE,fTMin,fTMax)) ) nEntriesE = -999;\r
+    if ( !(arrE=GetDCSEntry(recErr,iEntryE,tmin,tmax)) ) nEntriesE = -999;\r
     else nEntriesE = arrE->GetEntriesFast();\r
     dim += 1;\r
   }\r
@@ -382,7 +393,12 @@ Int_t AliLHCData::FillBunchConfig(int refs[2],const char* rec)
   refs[kStart] = fData.GetEntriesFast();\r
   refs[kNStor] = 0;\r
   //\r
-  if ( !(arr=GetDCSEntry(rec,iEntry,fTMin,fTMax)) ) return -1;\r
+  double tmin = fTMin;\r
+  double tmax = fTMax;\r
+  if (IsSORIgnored()) tmin -= kTimeMargin;\r
+  if (IsSORIgnored()) tmax += kTimeMargin;\r
+  //\r
+  if ( !(arr=GetDCSEntry(rec,iEntry,tmin,tmax)) ) return -1;\r
   nEntries = arr->GetEntriesFast();\r
   //\r
   AliLHCDipValI* prevRecI=0;\r
@@ -423,7 +439,12 @@ Int_t AliLHCData::FillAcqMode(int refs[2],const char* rec)
   refs[kStart] = fData.GetEntriesFast();\r
   refs[kNStor] = 0;\r
   //\r
-  if ( !(arr=GetDCSEntry(rec,iEntry,fTMin,fTMax)) ) return -1;\r
+  double tmin = fTMin;\r
+  double tmax = fTMax;\r
+  if (IsSORIgnored()) tmin -= kTimeMargin;\r
+  if (IsSORIgnored()) tmax += kTimeMargin;\r
+  //\r
+  if ( !(arr=GetDCSEntry(rec,iEntry,tmin,tmax)) ) return -1;\r
   nEntries = arr->GetEntriesFast();\r
   //\r
   AliLHCDipValI* prevRecI=0;\r
@@ -460,7 +481,12 @@ Int_t AliLHCData::FillStringRecord(int refs[2],const char* rec)
   refs[kStart] = fData.GetEntriesFast();\r
   refs[kNStor] = 0;\r
   //\r
-  if ( !(arr=GetDCSEntry(rec,iEntry,fTMin,fTMax)) ) return -1;\r
+  double tmin = fTMin;\r
+  double tmax = fTMax;\r
+  if (IsSORIgnored()) tmin -= kTimeMargin;\r
+  if (IsSORIgnored()) tmax += kTimeMargin;\r
+  //\r
+  if ( !(arr=GetDCSEntry(rec,iEntry,tmin,tmax)) ) return -1;\r
   nEntries = arr->GetEntriesFast();\r
   //\r
   while (iEntry<nEntries) {\r
@@ -496,7 +522,12 @@ Int_t AliLHCData::FillBunchInfo(int refs[2],const char* rec, int ibm, Bool_t inR
   refs[kStart] = fData.GetEntriesFast();\r
   refs[kNStor] = 0;\r
   //\r
-  if ( !(arr=GetDCSEntry(rec,iEntry,fTMin,fTMax)) ) return -1;\r
+  double tmin = fTMin;\r
+  double tmax = fTMax;\r
+  if (IsSORIgnored()) tmin -= kTimeMargin;\r
+  if (IsSORIgnored()) tmax += kTimeMargin;\r
+  //\r
+  if ( !(arr=GetDCSEntry(rec,iEntry,tmin,tmax)) ) return -1;\r
   nEntries = arr->GetEntriesFast();\r
   //\r
   while (iEntry<nEntries) {\r
@@ -549,7 +580,12 @@ Int_t AliLHCData::FillBCLuminosities(int refs[2],const char* rec, const char* re
   refs[kStart] = fData.GetEntriesFast();\r
   refs[kNStor] = 0;\r
   //\r
-  if ( !(arr=GetDCSEntry(rec,iEntry,fTMin,fTMax)) ) return -1;\r
+  double tmin = fTMin;\r
+  double tmax = fTMax;\r
+  if (IsSORIgnored()) tmin -= kTimeMargin;\r
+  if (IsSORIgnored()) tmax += kTimeMargin;\r
+  //\r
+  if ( !(arr=GetDCSEntry(rec,iEntry,tmin,tmax)) ) return -1;\r
   nEntries = arr->GetEntriesFast();\r
   //\r
   while (iEntry<nEntries) {\r
@@ -585,7 +621,7 @@ Int_t AliLHCData::FillBCLuminosities(int refs[2],const char* rec, const char* re
     }\r
     //\r
     if (recErr) {\r
-      if ( !(arrE=GetDCSEntry(recErr,iEntryE,fTMin,fTMax)) || iEntryE<0 ) nEntriesE = -999;\r
+      if ( !(arrE=GetDCSEntry(recErr,iEntryE,tmin,tmax)) || iEntryE<0 ) nEntriesE = -999;\r
       else nEntriesE = arrE->GetEntriesFast();\r
       dim += 1;\r
     }\r
@@ -703,106 +739,108 @@ void AliLHCData::Print(const Option_t* opt) const
   // print full info\r
   TString opts = opt;\r
   opts.ToLower();\r
+  Bool_t utcTime = opts.Contains("loc") ? kFALSE:kTRUE;\r
   Bool_t full = kTRUE;\r
   if (!opts.Contains("f")) {\r
     printf("Use Print(\"f\") to print full info\n");\r
     printf("Printing short info:\n<RecordType>(number of records): <TimeStamp, value> for 1st record only\n");\r
+    printf("Ignoring strict time of SOR: %s, EOR: %s\n",IsSORIgnored()?"ON":"OFF",IsEORIgnored()?"ON":"OFF");\r
     full = kFALSE;\r
   }\r
-  TString sdtmn = AliLHCDipValI::TimeAsString(fTMin);\r
-  TString sdtmx = AliLHCDipValI::TimeAsString(fTMax);\r
-  printf("Fill#%6d Validity: %s - %s\n",fFillNumber,sdtmn.Data(),sdtmx.Data());\r
+  TString sdtmn = AliLHCDipValI::TimeAsString(fTMin,utcTime);\r
+  TString sdtmx = AliLHCDipValI::TimeAsString(fTMax,utcTime);\r
+  printf("Fill#%6d Validity: %s - %s (%s)\n",fFillNumber,sdtmn.Data(),sdtmx.Data(),utcTime ? "UTC":"LOC");\r
   //\r
   printf("********** SETTINGS FROM RUN CONTROL **********\n");\r
   //\r
   printf("* %-38s","Injection Scheme");\r
-  PrintAux(full,fRCInjScheme);\r
+  PrintAux(full,fRCInjScheme,opts);\r
   //\r
   printf("* %-38s","Beta Star");\r
-  PrintAux(full,fRCBeta);\r
+  PrintAux(full,fRCBeta,opts);\r
   //\r
   printf("* %-38s","Horisontal Crossing Angle");\r
-  PrintAux(full,fRCAngH);\r
+  PrintAux(full,fRCAngH,opts);\r
   //\r
   printf("* %-38s","Vertical   Crossing Angle");\r
-  PrintAux(full,fRCAngV);\r
+  PrintAux(full,fRCAngV,opts);\r
   //\r
   for (int ib=0;ib<2;ib++) {\r
     printf("* Beam%d filling  [- interacts at IR2!]  ",ib+1);\r
-    PrintAux(full,fBunchConfDecl[ib]);\r
+    PrintAux(full,fBunchConfDecl[ib],opts);\r
   }\r
   //\r
   printf("\n**********       MEASURED DATA       **********\n");\r
   //\r
   for (int ib=0;ib<2;ib++) {\r
     printf("* Beam%d filling  [- interacts at IR2!]  ",ib+1);\r
-    PrintAux(full,fBunchConfMeas[ib]);\r
+    PrintAux(full,fBunchConfMeas[ib],opts);\r
   } \r
   //\r
   for (int ib=0;ib<2;ib++) {\r
     printf("* Beam%d total intensity                 ",ib+1);\r
-    PrintAux(full,fIntensTotal[ib]);\r
+    PrintAux(full,fIntensTotal[ib],opts);\r
   } \r
   //\r
   for (int ib=0;ib<2;ib++) {\r
     printf("* Beam%d total intensity (bunch average) ",ib+1);\r
-    PrintAux(full,fIntensTotalAv[ib]);\r
+    PrintAux(full,fIntensTotalAv[ib],opts);\r
   } \r
   //\r
   for (int ib=0;ib<2;ib++) {\r
     printf("* Beam%d intensity per bunch             ",ib+1);\r
-    PrintAux(full,fIntensPerBunch[ib]);\r
+    PrintAux(full,fIntensPerBunch[ib],opts);\r
   }\r
   //\r
   for (int ib=0;ib<2;ib++) {\r
     printf("* Beam%d bunch lengths                   ",ib+1);\r
-    PrintAux(full,fBunchLengths[ib]);\r
+    PrintAux(full,fBunchLengths[ib],opts);\r
   } \r
   //\r
   for (int ib=0;ib<2;ib++) {\r
     printf("* Beam%d Horisontal emittance            ",ib+1);\r
-    PrintAux(full,fEmittanceH[ib]);\r
+    PrintAux(full,fEmittanceH[ib],opts);\r
   }\r
   //\r
   for (int ib=0;ib<2;ib++) {\r
     printf("* Beam%d Vertical emittance              ",ib+1);\r
-    PrintAux(full,fEmittanceV[ib]);\r
+    PrintAux(full,fEmittanceV[ib],opts);\r
   }\r
   //\r
   for (int ib=0;ib<2;ib++) {\r
     printf("* Beam%d Horisontal sigma                ",ib+1);\r
-    PrintAux(full,fBeamSigmaH[ib]);\r
+    PrintAux(full,fBeamSigmaH[ib],opts);\r
   }\r
   //\r
   for (int ib=0;ib<2;ib++) {\r
     printf("* Beam%d Vertical sigma                  ",ib+1);\r
-    PrintAux(full,fBeamSigmaV[ib]);\r
+    PrintAux(full,fBeamSigmaV[ib],opts);\r
   }\r
   //\r
   for (int lr=0;lr<2;lr++) {\r
     printf("* Total luminosity from BRANB_4%c2       ",lr ? 'R':'L');\r
-    PrintAux(full,fLuminTotal[lr]);\r
+    PrintAux(full,fLuminTotal[lr],opts);\r
   } \r
   //\r
   for (int lr=0;lr<2;lr++) {\r
     printf("* Luminosity acq.mode, BRANB_4%c2        ",lr ? 'R':'L');\r
-    PrintAux(full,fLuminAcqMode[lr],"bit");\r
+    PrintAux(full,fLuminAcqMode[lr],opts+"bit");\r
   } \r
   //\r
   for (int lr=0;lr<2;lr++) {\r
     printf("* Luminosity per BC from BRANB_4%c2      ",lr ? 'R':'L');\r
-    PrintAux(full,fLuminPerBC[lr]);\r
+    PrintAux(full,fLuminPerBC[lr],opts);\r
   }\r
   //\r
   for (int lr=0;lr<2;lr++) {\r
     printf("* Crossing angle, side %c                ",lr ? 'R':'L');\r
-    PrintAux(full,fCrossAngle[lr]);\r
+    PrintAux(full,fCrossAngle[lr],opts);\r
   }\r
   //\r
   for (int coll=0;coll<kNCollimators;coll++)\r
     for (int jaw=0;jaw<kNJaws;jaw++) {\r
       printf("* Collimator %10s:%16s",fgkDCSColNames[coll],fgkDCSColJaws[jaw]);\r
-      PrintAux(full,fCollimators[coll][jaw]);\r
+      PrintAux(full,fCollimators[coll][jaw],opts);\r
     }\r
   //\r
 }\r