enum Collim_t {kTCTVB4L2, kTCTVB4R2, kTCLIA4R2, kNCollimators};\r
enum ColJaw_t {kGapDn,kGapUp,kLeftDn,kLeftUp,kRightDn,kRightUp,kNJaws};\r
enum {kMaxBSlots = 3564};\r
- enum {kIgnoreSOR = BIT(14), // if set: take all values with t>=SOR - margin, otherwise t>=SOR\r
- kIgnoreEOR = BIT(15), // if set: take all values with t>=EOR + margin, otherwise t<=EOR\r
- kTimeMargin = 60*60*24*30}; // use margin of 30 days\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
public:\r
//\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, Bool_t ignoreSOR=kTRUE,Bool_t ignoreEOR=kTRUE);\r
- AliLHCData(const Char_t* dcsFile, double tmin=0, double tmax=1.e10, Bool_t ignoreSOR=kTRUE,Bool_t ignoreEOR=kTRUE);\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 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
- Bool_t IsSORIgnored() const {return TestBit(kIgnoreSOR);}\r
- Bool_t IsEORIgnored() const {return TestBit(kIgnoreEOR);}\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
- void SetIgnoreSOR(Bool_t v=kTRUE) {SetBit(kIgnoreSOR,v);}\r
- void SetIgnoreEOR(Bool_t v=kTRUE) {SetBit(kIgnoreEOR,v);}\r
//\r
virtual void Print(const Option_t *opt="") const;\r
//\r
//\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
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,double tmin,double tmax) 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