]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliLHCData.h
AddTrial method added, changed trials to unsigned int
[u/mrichter/AliRoot.git] / STEER / AliLHCData.h
index 0e7e2e3a60ec5ef98b35ff5241e28de5af8e2a0a..cac97013c5b1e1c4d442f53cbc46a64bb04967ca 100755 (executable)
@@ -37,6 +37,7 @@ class TObjArray;
 class AliDCSArray;\r
 class TString;\r
 class TMap;\r
+class AliLHCReader;\r
 \r
 \r
 class AliLHCData : public TObject\r
@@ -49,6 +50,8 @@ class AliLHCData : public TObject
   enum Collim_t {kTCTVB4L2, kTCTVB4R2, kTCLIA4R2, kNCollimators};\r
   enum ColJaw_t {kGapDn,kGapUp,kLeftDn,kLeftUp,kRightDn,kRightUp,kNJaws};\r
   enum          {kMaxBSlots = 3564};\r
+  enum          {kMarginSOR = 60*60*24*30, // use margin of 30 days for SOR, when looking for the 1st record\r
+                kMarginEOR = 60*15};      // use margin of 15 min for EOR, when looking for the last record\r
   //\r
   enum {kIntTot,kIntTotAv,kIntBunchAv,\r
        kLumAcqMode,kLumTot,kLumTotErr,kLumBunch,kLumBunchErr,kLumCrossAng,kLumCrossAngErr,\r
@@ -60,19 +63,21 @@ class AliLHCData : public TObject
   //le\r
  public:\r
   //\r
- AliLHCData() : fTMin(0),fTMax(1e10),fFillNumber(0),fData(0) {Clear();}\r
-  AliLHCData(const TMap* dcsMap, double tmin=0, double tmax=1.e10);\r
+ AliLHCData() : fTMin(0),fTMax(1e10),fFillNumber(0),fData(0),fFile2Process(0),fMap2Process(0) {Clear();}\r
+  AliLHCData(const TMap*   dcsMap,  double tmin=0, double tmax=1.e10);\r
+  AliLHCData(const Char_t* dcsFile, double tmin=0, double tmax=1.e10);\r
   virtual ~AliLHCData() {}\r
   //\r
-  Bool_t                FillData(const TMap* dcsMap, double tmin=0, double tmax=1.e20);\r
+  Bool_t                FillData(const TMap*   dcsMap,  double tmin=0, double tmax=1.e20);\r
+  Bool_t                FillData(const Char_t* dcsFile, double tmin=0, double tmax=1.e20);\r
   Double_t              GetTMin()                                    const {return fTMin;}\r
   Double_t              GetTMax()                                    const {return fTMax;}\r
   Int_t                 GetFillNumber()                              const {return fFillNumber;}\r
   void                  SetFillNumber(Int_t fill)                          {fFillNumber = fill;}\r
   void                  SetTMin(Double_t t)                                {fTMin = t<0?0:(t>1e10?1e10:t);}\r
   void                  SetTMax(Double_t t)                                {fTMax = t<0?0:(t>1e10?1e10:t);}\r
+  //\r
   virtual void          Print(const Option_t *opt="")                const;\r
-  virtual void          Clear(const Option_t *opt="");\r
   //\r
   Int_t GetNBunchConfigMeasured(int bm)           const {return GoodPairID(bm)?fBunchConfMeas[bm][kNStor]:-1;}\r
   Int_t GetNBunchConfigDeclared(int bm)           const {return GoodPairID(bm)?fBunchConfDecl[bm][kNStor]:-1;}\r
@@ -151,21 +156,26 @@ class AliLHCData : public TObject
   //\r
   const TObjArray&  GetData()                             const {return fData;}\r
   //\r
+  // analysis methods\r
+  Int_t GetMeanIntensity(int beamID, Double_t &colliding, Double_t &noncolliding) const;\r
+  //\r
  protected:\r
   //\r
-  void                  PrintAux(Bool_t full,const Int_t refs[2]) const;\r
-  TObjArray*            GetDCSEntry(const TMap* dcsMap,const char* key,int &entry,double tmin,double tmax) const;\r
-  Int_t                 FillScalarRecord(  const TMap* dcsMap, int refs[2], const char* rec, const char* recErr=0);\r
-  Int_t                 FillBunchConfig(   const TMap* dcsMap, int refs[2], const char* rec);\r
-  Int_t                 FillStringRecord(  const TMap* dcsMap, int refs[2], const char* rec);\r
-  Int_t                 FillAcqMode(       const TMap* dcsMap, int refs[2], const char* rec);\r
-  Int_t                 FillBunchInfo(     const TMap* dcsMap, int refs[2], const char* rec,int ibm, Bool_t inRealSlots);\r
-  Int_t                 FillBCLuminosities(const TMap* dcsMap, int refs[2], const char* rec, const char* recErr, Int_t useBeam);\r
+  Bool_t                FillData(double tmin=0, double tmax=1.e20);\r
+  virtual void          Clear(const Option_t *opt="");\r
+  void                  PrintAux(Bool_t full,const Int_t refs[2],const Option_t *opt="") const;\r
+  TObjArray*            GetDCSEntry(const char* key,int &entry,int &last,double tmin,double tmax) const;\r
+  Int_t                 FillScalarRecord(  int refs[2], const char* rec, const char* recErr=0);\r
+  Int_t                 FillBunchConfig(   int refs[2], const char* rec);\r
+  Int_t                 FillStringRecord(  int refs[2], const char* rec);\r
+  Int_t                 FillAcqMode(       int refs[2], const char* rec);\r
+  Int_t                 FillBunchInfo(     int refs[2], const char* rec,int ibm, Bool_t inRealSlots);\r
+  Int_t                 FillBCLuminosities(int refs[2], const char* rec, const char* recErr, Int_t useBeam);\r
   //\r
   Int_t                 ExtractInt(AliDCSArray* dcsArray,Int_t el)    const;\r
   Double_t              ExtractDouble(AliDCSArray* dcsArray,Int_t el) const;\r
   TString&              ExtractString(AliDCSArray* dcsArray)          const;\r
- AliLHCData(const AliLHCData& src) : TObject(src),fTMin(0),fTMax(0),fFillNumber(0),fData(0) { /*dummy*/ }\r
+ AliLHCData(const AliLHCData& src) : TObject(src),fTMin(0),fTMax(0),fFillNumber(0),fData(0),fFile2Process(0),fMap2Process(0) { /*dummy*/ }\r
   AliLHCData& operator=(const AliLHCData& ) { /*dummy*/ return *this;}\r
   Int_t                 TimeDifference(double v1,double v2,double tol=0.9) const;\r
   Bool_t                IzZero(double val, double tol=1e-16)         const {return TMath::Abs(val)<tol;}\r
@@ -210,6 +220,11 @@ class AliLHCData : public TObject
   static const Char_t *fgkDCSNames[];                 // beam related DCS names to extract\r
   static const Char_t *fgkDCSColNames[];              // collimators to extract\r
   static const Char_t *fgkDCSColJaws[];               // names of collimator pieces\r
+  //\r
+ private:\r
+  // non-persistent objects used at the filling time\r
+  const Char_t*   fFile2Process;                      //! name of DCS file\r
+  const TMap*     fMap2Process;                       //! DCS map to process \r
 \r
   ClassDef(AliLHCData,1)\r
 };\r