Merge branch 'master' into TPCdev
[u/mrichter/AliRoot.git] / PWGPP / AliAnalysisTaskITSTPCalignment.h
1 #ifndef ALIANALYSISTASKITSTPCALIGNMENT_H
2 #define ALIANALYSISTASKITSTPCALIGNMENT_H
3
4 ///////////////////////////////////////////////////////////////////////////
5 //  Class AliAnalysisTaskITSTPCalignment
6 //  runs ITS-TPC alignment with TPC vdrift calibration
7 //
8 //    Origin: Mikolaj Krzewicki, mikolaj.krzewicki@cern.ch
9 ///////////////////////////////////////////////////////////////////////////
10
11 #include <AliAnalysisTaskSE.h>
12 class TList;
13 class TTree;
14 class AliESDEvent;
15 class AliESDfriend;
16 class AliMCEvent;
17 class AliRelAlignerKalman;
18 class AliRelAlignerKalmanArray;
19 class AliExternalTrackParam;
20 class TH2F;
21
22 class AliAnalysisTaskITSTPCalignment : public AliAnalysisTaskSE
23 {
24 public:
25
26   enum { kNoESD=0,
27          kNoESDfriend=1,
28          kNoFriendTrack=2,
29          kNoITSoutParams=3,
30          kESDfriend=4,
31          kFriendsSkipBit=5,
32          kFriendTrack=6,
33          kITSoutParams=7
34        };
35
36   AliAnalysisTaskITSTPCalignment();
37   AliAnalysisTaskITSTPCalignment(const char *name);
38   virtual ~AliAnalysisTaskITSTPCalignment() {}
39
40   void SetupAlignerArray( Int_t t0, Int_t tend, Int_t slotwidth )
41     { fT0=t0; fTend=tend; fSlotWidth=slotwidth; }
42   void SetFillDebugTree(Bool_t m=kTRUE) {fFillDebugTree=m;}
43   void SetDoQA(Bool_t d=kTRUE) {fDoQA=d;}
44   void SetMinPt(Double_t m) {fMinPt=m;}
45   void SetMinNclsITS(Int_t m) {fMinPointsVol1=m;}
46   void SetMinNclsTPC(Int_t m) {fMinPointsVol2=m;}
47   void DoQA(AliExternalTrackParam* paramsITS,
48             AliExternalTrackParam* paramsTPC);
49   void SetRejectOutliers(Bool_t set=kTRUE){fRejectOutliers=set;}
50   void SetRejectOutliersSigma2Median(Bool_t set=kTRUE){fRejectOutliersSigma2Median=set;}
51   void SetOutRejSigma(Double_t d){fOutRejSigma=d;}
52   void SetOutRejSigma2Median(Double_t d){fOutRejSigma2Median=d;}
53   void SetOutRejSigmaOnMerge(Double_t d){fOutRejSigmaOnMerge=d;}
54   void SetUseITSoutGlobalTrack(Bool_t b){fUseITSoutGlobalTrack=b;}
55   void SetUseITSoutITSSAtrack(Bool_t b){fUseITSoutITSSAtrack=b;}
56
57   Int_t FindMatchingTracks(TObjArray& arrITS, TObjArray& arrTPC, AliESDEvent* pESD);
58   void AnalyzeESDevent(AliESDEvent* event);
59   
60   //AnalysisTaskSE interface methods
61   virtual void   UserCreateOutputObjects();
62   virtual void   UserExec(Option_t *option);
63   virtual Bool_t UserNotify();
64   void Terminate(Option_t *);
65
66 private:
67   AliRelAlignerKalmanArray* fArrayITSglobal;   //! array of aligners with ITS global
68   AliRelAlignerKalmanArray* fArrayITSsa;   //! array of aligners ITS standalone
69   TTree* fDebugTree;                  //! tree
70   AliRelAlignerKalman* fAligner;      //! aligner
71   TList* fList;                       //! list with QA histograms
72  
73   Bool_t fFillDebugTree;              // do we write the debug tree?
74   Bool_t fDoQA;                       // do QA?
75   Int_t fT0;                          // t0
76   Int_t fTend;                        // tend
77   Int_t fSlotWidth;                   // slotwidth
78   Double_t fMinPt;                    // min pt for tracks
79   Int_t fMinPointsVol1;               // min clusters its
80   Int_t fMinPointsVol2;               // min clusters tpc
81   Bool_t fRejectOutliers;             // reject outliers?
82   Double_t fOutRejSigma;              // how many outliers
83   Bool_t fRejectOutliersSigma2Median; // 
84   Double_t fOutRejSigma2Median;       // 
85   Double_t fOutRejSigmaOnMerge;       // 
86   Bool_t fUseITSoutGlobalTrack;       //
87   Bool_t fUseITSoutITSSAtrack;       //
88
89   AliAnalysisTaskITSTPCalignment(const AliAnalysisTaskITSTPCalignment&); // not implemented
90   AliAnalysisTaskITSTPCalignment& operator=(const AliAnalysisTaskITSTPCalignment&); // not implemented
91
92   ClassDef(AliAnalysisTaskITSTPCalignment, 3);
93 };
94
95 #endif