////
#include "TNamed.h"
+#include "TObjString.h"
class AliTPCseed;
-class AliESDevent;
+class AliESDEvent;
+class AliESDtrack;
+class AliESDfriendTrack;
class TCollection;
+class TTreeSRedirector;
+class TGraph;
+class TGraphErrors;
+class THnSparse;
+class TH1;
class AliTPCcalibBase:public TNamed {
public:
- AliTPCcalibBase();
+ AliTPCcalibBase();
+ AliTPCcalibBase(const char * name, const char * title);
+ AliTPCcalibBase(const AliTPCcalibBase&calib);
+ AliTPCcalibBase &operator=(const AliTPCcalibBase&calib);
virtual ~AliTPCcalibBase();
- virtual void Process(AliESDevent *event){return;}
- virtual void Process(AliTPCseed *track){return;}
- virtual Long64_t Merge(TCollection *li){return 0;}
+ virtual void Process(AliESDEvent *event){ fCurrentEvent = event; return;}
+ virtual void Process(AliTPCseed *track){fCurrentSeed = track; return;}
+ virtual void Process(AliESDtrack *track, Int_t /*runNo=-1*/){fCurrentTrack=track; return;}
+ virtual Long64_t Merge(TCollection */*li*/){return 0;}
virtual void Analyze(){return;}
- private:
- ClassDef(AliTPCcalibBase,1)
+ virtual void Terminate();
+ virtual void UpdateEventInfo(AliESDEvent * event);
+ virtual Bool_t AcceptTrigger();
+ virtual void SetTriggerMask(Int_t accept, Int_t reject, Bool_t rejectLaser){fTriggerMaskAccept=accept;fTriggerMaskReject=reject; fRejectLaser = rejectLaser;}
+
+ //
+ // debug streamer support
+ TTreeSRedirector *GetDebugStreamer();
+ void SetStreamLevel(Int_t streamLevel){fStreamLevel=streamLevel;}
+ void SetDebugLevel(Int_t level) {fDebugLevel = level;}
+ Int_t GetStreamLevel() const {return fStreamLevel;}
+ Int_t GetDebugLevel() const {return fDebugLevel;}
+ virtual void RegisterDebugOutput(const char *path);
+ static Bool_t HasLaser(AliESDEvent *event);
+ static TGraphErrors * FitSlices(THnSparse *h, Int_t axisDim1, Int_t axisDim2, Int_t minEntries, Int_t nmaxBin, Float_t fracLow=0.1, Float_t fracUp=0.9, Bool_t useMedian=kFALSE, TTreeSRedirector *cstream=0, Int_t ival=1);
+ static void BinLogX(THnSparse *h, Int_t axisDim);
+ static void BinLogX(TH1 *h);
+ void SetRun(Int_t run){ fRun=run;}
+protected:
+ TTreeSRedirector *fDebugStreamer; //! debug streamer
+ Int_t fStreamLevel; // debug stream level
+ Int_t fRun; //! current Run number
+ Int_t fEvent; //! current Event number
+ Int_t fTime; //! current Time
+ ULong64_t fTrigger; //! current trigger mask
+ Float_t fMagF; // current magnetic field
+ Int_t fTriggerMaskReject; //trigger mask - non accept trigger
+ Int_t fTriggerMaskAccept; //trigger mask - accept
+ Bool_t fHasLaser; //flag the laser is overlayed with given event
+ Bool_t fRejectLaser; //flag- reject laser
+ TObjString fTriggerClass; // trigger class
+ AliESDEvent *fCurrentEvent; //! current event
+ AliESDtrack *fCurrentTrack; //! current esd track
+ AliESDfriendTrack *fCurrentFriendTrack; //! current friend track
+ AliTPCseed *fCurrentSeed; //! current seed
+private:
+ Int_t fDebugLevel; // debug level
+
+ ClassDef(AliTPCcalibBase,2)
};
#endif