class TChain;
class TTree;
class TMutex;
+class AliESDEvent;
using namespace std;
virtual ~AliTPCcalibTracks(); // destructor
- void Process(AliTPCseed *track); // to be called by the Selector
+ virtual void Process(AliTPCseed *track); // to be called by the Selector
+ void Process(AliESDEvent *event) {AliTPCcalibBase::Process(event);};
+ void Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);};
virtual Long64_t Merge(TCollection *li);
- void MakeResPlotsQTree(Int_t minEntries = 100, char* pathName = "plots");
- static void MakeQPosNormAll(TTree * chain, AliTPCClusterParam * param, Int_t maxPoints=1000000, Int_t verbose=0);
- void MakeReport(Int_t stat, char* pathName = "plots"); // calls all functions that procude pictures, results are written to pathName, stat is the minimal statistic threshold
+ void AddHistos(AliTPCcalibTracks* calib);
+ void MakeResPlotsQTree(Int_t minEntries = 100, const char* pathName = "plots");
+ static void MakeQPosNormAll(TTree * chain, AliTPCClusterParam * param, Int_t maxPoints=1000000);
+ void MakeReport(Int_t stat, const char* pathName = "plots"); // calls all functions that procude pictures, results are written to pathName, stat is the minimal statistic threshold
//
void SetStyle() const;
void Draw(Option_t* opt); // draw some exemplaric histograms for fast result-check
- void MakeAmpPlots(Int_t stat, char* pathName = "plots");
- void MakeDeltaPlots(char* pathName = "plots");
- void MakeChargeVsDriftLengthPlotsOld(char* pathName = "plots");
- void MakeChargeVsDriftLengthPlots(char* pathName = "plots");
- void FitResolutionNew(char* pathName = "plots");
- void FitRMSNew(char* pathName = "plots");
+ void MakeAmpPlots(Int_t stat, const char* pathName = "plots");
+ void MakeDeltaPlots(const char* pathName = "plots");
+ void MakeChargeVsDriftLengthPlotsOld(const char* pathName = "plots");
+ void MakeChargeVsDriftLengthPlots(const char* pathName = "plots");
+ void FitResolutionNew(const char* pathName = "plots");
+ void FitRMSNew(const char* pathName = "plots");
- TObjArray* GetfArrayAmpRow() {return fArrayAmpRow;}
- TObjArray* GetfArrayAmp() {return fArrayAmp;}
- TObjArray* GetfArrayQDY() {return fArrayQDY;}
- TObjArray* GetfArrayQDZ() {return fArrayQDZ;}
- TObjArray* GetfArrayQRMSY() {return fArrayQRMSY;}
- TObjArray* GetfArrayQRMSZ() {return fArrayQRMSZ;}
- TObjArray* GetfArrayChargeVsDriftlength() {return fArrayChargeVsDriftlength;}
- TH1F* GetfDeltaY() {return fDeltaY;}
- TH1F* GetfDeltaZ() {return fDeltaZ;}
- TObjArray* GetfResolY() {return fResolY;}
- TObjArray* GetfResolZ() {return fResolZ;}
- TObjArray* GetfRMSY() {return fRMSY;}
- TObjArray* GetfRMSZ() {return fRMSZ;}
- TH1I* GetfHclus() {return fHclus;}
- TH1I* GetfRejectedTracksHisto() {return fRejectedTracksHisto;}
- TH1I* GetfHclusterPerPadrow() {return fHclusterPerPadrow;}
- TH1I* GetfHclusterPerPadrowRaw() {return fHclusterPerPadrowRaw;}
- TH2I* GetfClusterCutHisto() {return fClusterCutHisto;}
- AliTPCCalPad* GetfCalPadClusterPerPad() {return fCalPadClusterPerPad; }
- AliTPCCalPad* GetfCalPadClusterPerPadRaw() {return fCalPadClusterPerPadRaw;}
- AliTPCCalPadRegion* GetCalPadRegionchargeVsDriftlength() {return fcalPadRegionChargeVsDriftlength;}
+ TObjArray* GetfArrayAmpRow() const {return fArrayAmpRow;}
+ TObjArray* GetfArrayAmp() const {return fArrayAmp;}
+ TObjArray* GetfArrayQDY() const {return fArrayQDY;}
+ TObjArray* GetfArrayQDZ() const {return fArrayQDZ;}
+ TObjArray* GetfArrayQRMSY() const {return fArrayQRMSY;}
+ TObjArray* GetfArrayQRMSZ() const {return fArrayQRMSZ;}
+ TObjArray* GetfArrayChargeVsDriftlength() const {return fArrayChargeVsDriftlength;}
+ TH1F* GetfDeltaY() const {return fDeltaY;}
+ TH1F* GetfDeltaZ() const {return fDeltaZ;}
+ TObjArray* GetfResolY() const {return fResolY;}
+ TObjArray* GetfResolZ() const {return fResolZ;}
+ TObjArray* GetfRMSY() const {return fRMSY;}
+ TObjArray* GetfRMSZ() const {return fRMSZ;}
+ TH1I* GetfHclus() const {return fHclus;}
+ TH1I* GetfRejectedTracksHisto() const {return fRejectedTracksHisto;}
+ TH1I* GetfHclusterPerPadrow() const {return fHclusterPerPadrow;}
+ TH1I* GetfHclusterPerPadrowRaw() const {return fHclusterPerPadrowRaw;}
+ TH2I* GetfClusterCutHisto() const {return fClusterCutHisto;}
+ AliTPCCalPad* GetfCalPadClusterPerPad() const {return fCalPadClusterPerPad; }
+ AliTPCCalPad* GetfCalPadClusterPerPadRaw() const {return fCalPadClusterPerPadRaw;}
+ AliTPCCalPadRegion* GetCalPadRegionchargeVsDriftlength() const {return fcalPadRegionChargeVsDriftlength;}
AliTPCcalibTracksCuts* GetCuts() {return fCuts;}
+ void MakeHistos(); //make THnSparse
protected:
private:
+
static Int_t GetBin(Float_t q, Int_t pad);
static Int_t GetBin(Int_t iq, Int_t pad);
static Float_t GetQ(Int_t bin);
void FillResolutionHistoLocalDebugPart(AliTPCseed *track, AliTPCclusterMI *cluster0, Int_t irow, Float_t angley, Float_t anglez, Int_t nclFound, Int_t kDelta);
AliTPCClusterParam *fClusterParam; // pointer to cluster parameterization
AliTPCROC *fROC; //!
+ THnSparse *fHisDeltaY; // THnSparse - delta Y
+ THnSparse *fHisDeltaZ; // THnSparse - delta Z
+ THnSparse *fHisRMSY; // THnSparse - rms Y
+ THnSparse *fHisRMSZ; // THnSparse - rms Z
+ THnSparse *fHisQmax; // THnSparse - qmax
+ THnSparse *fHisQtot; // THnSparse - qtot
+
+
TObjArray *fArrayAmpRow; // array with amplitudes versus row for given sector
TObjArray *fArrayAmp; // array with amplitude for sectors
TObjArray *fArrayQDY; // q binned delta Y histograms
TObjArray *fArrayQRMSZ; // q binned delta Z histograms
TObjArray *fArrayChargeVsDriftlength; // array of arrays of TProfiles with charge vs. driftlength for each padsize and sector
AliTPCCalPadRegion *fcalPadRegionChargeVsDriftlength; // CalPadRegion, one TProfile for charge vs. driftlength for each padsize and sector
+
TH1F *fDeltaY; // integrated delta y histo
TH1F *fDeltaZ; // integrated delta z histo
TObjArray *fResolY; // array of resolution histograms Y