Line data Source code
1 : #ifndef ALITPCCALIBCOSMIC_H
2 : #define ALITPCCALIBCOSMIC_H
3 :
4 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 : * See cxx source for full Copyright notice */
6 :
7 : #include "AliTPCcalibBase.h"
8 : class TH2F;
9 : class TH1F;
10 : class TList;
11 : class AliESDEvent;
12 : class AliESDtrack;
13 : class THnSparse;
14 :
15 : class AliTPCcalibCosmic:public AliTPCcalibBase {
16 : public:
17 : AliTPCcalibCosmic();
18 : AliTPCcalibCosmic(const Text_t *name, const Text_t *title);
19 : virtual ~AliTPCcalibCosmic();
20 :
21 : virtual void Process(AliESDEvent *event);
22 : virtual Long64_t Merge(TCollection *const li);
23 : void Add(const AliTPCcalibCosmic* cosmic);
24 : //
25 : //
26 : void Init();
27 : void FindPairs(const AliESDEvent *event);
28 : void FindCosmicPairs(const AliESDEvent * event);
29 :
30 : Bool_t IsPair(AliExternalTrackParam *tr0, AliExternalTrackParam *tr1) const;
31 : static void CalculateBetheParams(TH2F *hist, Double_t * initialParam);
32 : static Double_t CalculateMIPvalue(TH1F * hist);
33 : static AliExternalTrackParam *MakeTrack(const AliExternalTrackParam *track0, const AliExternalTrackParam *track1);
34 : static AliExternalTrackParam *MakeCombinedTrack(const AliExternalTrackParam *track0, const AliExternalTrackParam *track1);
35 :
36 : static void UpdateTrack(AliExternalTrackParam &track0, const AliExternalTrackParam &track1);
37 : //
38 : void FillHistoPerformance(const AliExternalTrackParam *par0, const AliExternalTrackParam *par1, const AliExternalTrackParam *inner0, const AliExternalTrackParam *inner1, AliTPCseed *seed0, AliTPCseed *seed1, const AliExternalTrackParam *param0Combined, Int_t cross);
39 : static void MakeFitTree(TTree * treeInput, TTreeSRedirector *pcstream, const TObjArray * corrArray, Int_t step, Int_t run);
40 0 : TTree * GetCosmicTree() const {return fCosmicTree;}
41 : //
42 0 : TH1F * GetHistNTracks() const {return fHistNTracks;};
43 0 : TH1F * GetHistClusters() const {return fClusters;};
44 0 : TH2F * GetHistAcorde()const {return fModules;};
45 0 : TH1F * GetHistPt() const {return fHistPt;};
46 0 : TH2F * GetHistDeDx() const {return fDeDx;};
47 0 : TH1F * GetHistMIP() const {return fDeDxMIP;};
48 : //
49 0 : Double_t GetMIPvalue()const {return fMIPvalue;};
50 : //
51 : static void BinLogX(TH1 *const h); // method for correct histogram binning
52 : static void BinLogX(THnSparse *const h, Int_t axisDim); // method for correct histogram binning
53 :
54 0 : void Process(AliESDtrack *const track, Int_t runNo=-1) {AliTPCcalibBase::Process(track,runNo);};
55 0 : void Process(AliTPCseed *const track) {return AliTPCcalibBase::Process(track);}
56 : virtual void Terminate();
57 : static Double_t GetDeltaTime(Double_t rmin0, Double_t rmax0, Double_t rmin1, Double_t rmax1, Double_t tmin0, Double_t tmax0, Double_t tmin1, Double_t tmax1, Double_t dcaR, TVectorD& vectorDT);
58 : public:
59 : //
60 : // Performance histograms
61 : //
62 : THnSparse *fHistoDelta[6]; // histograms of tracking performance delta
63 : THnSparse *fHistoPull[6]; // histograms of tracking performance pull
64 : THnSparse *fHistodEdxMax[4]; // histograms of dEdx perfomance - max charge
65 : THnSparse *fHistodEdxTot[4]; // histograms of dEdx perfomance - tot charge
66 : static void AddTree(TTree* treeOutput, TTree * treeInput);
67 : private:
68 :
69 : void FillAcordeHist(AliESDtrack *upperTrack);
70 :
71 :
72 :
73 : TH1F *fHistNTracks; // histogram showing number of ESD tracks per event
74 : TH1F *fClusters; // histogram showing the number of clusters per track
75 : TH2F *fModules; // 2d histogram of tracks which are propagated to the ACORDE scintillator array
76 : TH1F *fHistPt; // Pt histogram of reconstructed tracks
77 : TH2F *fDeDx; // dEdx spectrum showing the different particle types
78 : TH1F *fDeDxMIP; // TPC signal close to the MIP region of muons 0.4 < p < 0.45 GeV
79 :
80 : Double_t fMIPvalue; // MIP value calculated via a fit to fDeDxMIP
81 : //
82 : // cuts
83 : //
84 : Float_t fCutMaxD; // maximal distance in rfi ditection
85 : Float_t fCutMaxDz; // maximal distance in z ditection
86 : Float_t fCutTheta; // maximal distance in theta ditection
87 : Float_t fCutMinDir; // direction vector products
88 :
89 : TTree *fCosmicTree; // tree with the cosmic tracks
90 : AliTPCcalibCosmic(const AliTPCcalibCosmic&);
91 : AliTPCcalibCosmic& operator=(const AliTPCcalibCosmic&);
92 :
93 6 : ClassDef(AliTPCcalibCosmic, 3);
94 : };
95 :
96 : #endif
97 :
|