bug fixed for alignment, removed alignment database access from AliPMDUtility class
[u/mrichter/AliRoot.git] / PWG1 / AliAnalysisTaskITSTPCalignment.h
CommitLineData
4a84c20d 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
d6d927ac 11#include <AliAnalysisTaskSE.h>
51cfc50d 12class TList;
4a84c20d 13class TTree;
14class AliESDEvent;
51cfc50d 15class AliESDfriend;
16class AliMCEvent;
4a84c20d 17class AliRelAlignerKalman;
8b04dae1 18class AliRelAlignerKalmanArray;
d6d927ac 19class AliExternalTrackParam;
4a84c20d 20class TH2F;
21
d6d927ac 22class AliAnalysisTaskITSTPCalignment : public AliAnalysisTaskSE
4a84c20d 23{
24public:
d6d927ac 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
4a84c20d 36 AliAnalysisTaskITSTPCalignment();
37 AliAnalysisTaskITSTPCalignment(const char *name);
38 virtual ~AliAnalysisTaskITSTPCalignment() {}
39
51cfc50d 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;}
d6d927ac 47 void DoQA(AliExternalTrackParam* paramsITS,
48 AliExternalTrackParam* paramsTPC);
51cfc50d 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);
d6d927ac 58 void AnalyzeESDevent(AliESDEvent* event);
4a84c20d 59
d6d927ac 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 *);
4a84c20d 65
66private:
51cfc50d 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; //
4a84c20d 88
89 AliAnalysisTaskITSTPCalignment(const AliAnalysisTaskITSTPCalignment&); // not implemented
90 AliAnalysisTaskITSTPCalignment& operator=(const AliAnalysisTaskITSTPCalignment&); // not implemented
91
d6d927ac 92 ClassDef(AliAnalysisTaskITSTPCalignment, 3);
4a84c20d 93};
94
95#endif