#include "TGraph.h"
#include "TGraphErrors.h"
#include "TF1.h"
+#include "TH1.h"
+#include "THnSparse.h"
#include "TH1D.h"
#include "TH2D.h"
-#include "THnSparse.h"
+#include "TAxis.h"
+#include "AliRecoParam.h"
#include "AliLog.h"
fTriggerClass(),
fCurrentEvent(0), //! current event
fCurrentTrack(0), //! current esd track
+ fCurrentFriendTrack(0), //! current esd track
fCurrentSeed(0), //! current seed
fDebugLevel(0)
{
fTriggerClass(),
fCurrentEvent(0), //! current event
fCurrentTrack(0), //! current esd track
+ fCurrentFriendTrack(0), //! current esd track
fCurrentSeed(0), //! current seed
fDebugLevel(0)
{
fTriggerClass(calib.fTriggerClass),
fCurrentEvent(0), //! current event
fCurrentTrack(0), //! current esd track
+ fCurrentFriendTrack(0), //! current esd track
fCurrentSeed(0), //! current seed
fDebugLevel(calib.fDebugLevel)
{
AliTPCcalibBase &AliTPCcalibBase::operator=(const AliTPCcalibBase&calib){
//
- //
+ // operator=
//
((TNamed *)this)->operator=(calib);
fDebugStreamer=0;
//
//
//
- // Thresholds more than 8 tracks with small dip angle
-
- const Int_t kMinLaserTracks = 8;
- const Float_t kThrLaser = 0.3;
- const Float_t kLaserTgl = 0.01;
-
- Int_t ntracks = event->GetNumberOfTracks();
- if (ntracks<kMinLaserTracks) return kFALSE;
- Float_t nlaser=0;
- Float_t nall=0;
- for (Int_t i=0;i<ntracks;++i) {
- AliESDtrack *track=event->GetTrack(i);
- if (!track) continue;
- if (track->GetTPCNcls()<=0) continue;
- nall++;
- if (TMath::Abs(track->GetTgl())<kLaserTgl) nlaser++;
+ // Use event specie
+ Bool_t isLaser=kFALSE;
+ UInt_t specie = event->GetEventSpecie(); // select only cosmic events
+ if (specie==AliRecoParam::kCalib) {
+ isLaser = kTRUE;
}
- if (nlaser>kMinLaserTracks) return kTRUE;
- if (nall>0 && nlaser/nall>kThrLaser) return kTRUE;
- return kFALSE;
+ return isLaser;
}
TH1D * projectionHist =0;
//
- for(Int_t i=1; i < hist->GetNbinsX(); i++) {
+ for(Int_t i=1; i <= hist->GetNbinsX(); i++) {
Int_t nsum=0;
Int_t imin = i;
Int_t imax = i;
delete hist;
return graphErrors;
}
+
+
+void AliTPCcalibBase::BinLogX(THnSparse *h, Int_t axisDim) {
+
+ // Method for the correct logarithmic binning of histograms
+
+ TAxis *axis = h->GetAxis(axisDim);
+ int bins = axis->GetNbins();
+
+ Double_t from = axis->GetXmin();
+ Double_t to = axis->GetXmax();
+ Double_t *new_bins = new Double_t[bins + 1];
+
+ new_bins[0] = from;
+ Double_t factor = pow(to/from, 1./bins);
+
+ for (int i = 1; i <= bins; i++) {
+ new_bins[i] = factor * new_bins[i-1];
+ }
+ axis->Set(bins, new_bins);
+ delete [] new_bins;
+
+}
+void AliTPCcalibBase::BinLogX(TH1 *h) {
+
+ // Method for the correct logarithmic binning of histograms
+
+ TAxis *axis = h->GetXaxis();
+ int bins = axis->GetNbins();
+
+ Double_t from = axis->GetXmin();
+ Double_t to = axis->GetXmax();
+ Double_t *new_bins = new Double_t[bins + 1];
+
+ new_bins[0] = from;
+ Double_t factor = pow(to/from, 1./bins);
+
+ for (int i = 1; i <= bins; i++) {
+ new_bins[i] = factor * new_bins[i-1];
+ }
+ axis->Set(bins, new_bins);
+ delete [] new_bins;
+
+}