During simulation: fill STU region w/ non null time sums
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibV0.h
1 #ifndef AliTPCCALIBV0_H
2 #define AliTPCCALIBV0_H
3
4
5 #include <AliTPCcalibBase.h>
6
7
8 class TTreeSRedirector;
9 class AliTPCROC;
10 class AliTPCseed;
11 class AliESDtrack;
12 class AliESDEvent;
13 class TH3F;
14 class TH1F;
15 class TH2F;
16 class TH1I;
17 class TDatabasePDG;
18 class AliKFParticle;
19 class AliKFVertex;
20 class AliESDv0;
21 class TArrayI;
22 class TTree;
23 class AliStack;
24 class  AliExternalTrackParam;
25 class  AliTPCCorrection;
26
27 class AliTPCcalibV0 : public AliTPCcalibBase {
28 public :
29
30    // List of branches
31
32   AliTPCcalibV0();
33   AliTPCcalibV0(const Text_t *name, const Text_t *title);
34   virtual ~AliTPCcalibV0();
35   virtual void     Process(AliESDEvent *event) {return ProcessESD(event,0);}
36   Long64_t Merge(TCollection *const li);
37   void AddTree(TTree * treeInput);
38   void AddTreeHPT(TTree * treeInput);
39   static AliExternalTrackParam * RefitTrack(AliTPCseed *seed, AliTPCCorrection * corr, Double_t xstart, Double_t xstop, Double_t mass);
40   static void MakeFitTreeTrack(const TObjArray * corrArray, Double_t ptCut, Int_t run);
41   static void MakeFitTreeV0(const TObjArray * corrArray, Double_t ptCut, Int_t run);
42   //
43   //
44   //
45   void ProcessESD(AliESDEvent *esd, AliStack *stack=0);
46   void DumpToTree(AliESDEvent *esd);
47   void DumpToTreeHPT(AliESDEvent *esd);
48   TTree * GetV0Tree(){return fV0Tree;}
49   TTree * GetHPTTree(){return fHPTTree;}
50   //  
51   void MakeMC();
52   void MakeV0s();
53   void ProcessV0(Int_t ftype);
54   void ProcessPI0();
55   void BinLogX(TH2F * h);
56   //
57   //
58   //  
59   static AliKFParticle * Fit(AliKFVertex & primVtx, AliESDv0 *v0, Int_t PDG1, Int_t PDG2);
60
61 protected:
62 private:
63
64   AliTPCcalibV0(const AliTPCcalibV0&); // Not implemented
65   AliTPCcalibV0& operator=(const AliTPCcalibV0&); // Not implemented
66   TTree          *fV0Tree;      // tree with full V0 information
67   TTree          *fHPTTree;      // tree with high mometa tracks - full calib info
68   //
69   AliStack       *fStack;        // pointer to kinematic tree        
70   AliESDEvent    *fESD;              //! current ED to proccess - NOT OWNER
71   TDatabasePDG   *fPdg;              //! particle database
72   TObjArray      *fParticles;         // array of selected MC particles
73   TObjArray      *fV0s;               // array of V0s
74   TObjArray      *fGammas;           // gamma conversion candidates
75   //
76   void     Process(AliESDtrack *track, Int_t runNo=-1){AliTPCcalibBase::Process(track,runNo);};
77   void     Process(AliTPCseed *track){return AliTPCcalibBase::Process(track);}  
78   //       
79   ClassDef(AliTPCcalibV0,3);
80 };
81
82
83 #endif