]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDCalibTask.h
AliTPCcalibCalib.cxx - use also alignmnet - not implemented yet
[u/mrichter/AliRoot.git] / TRD / AliTRDCalibTask.h
1 #ifndef ALITRDCALIBTASK_H\r
2 #define ALITRDCALIBTASK_H\r
3 \r
4 ///////////////////////////////////////////////////////////////////////////////\r
5 //                                                                           //\r
6 //  TRD calibration task for offline calibration                             //\r
7 //                                                                           //\r
8 ///////////////////////////////////////////////////////////////////////////////\r
9 \r
10 \r
11 class TList;\r
12 class TObject;\r
13 class TObjArray;\r
14 class TH2F;\r
15 class TH1F;\r
16 class TH1I;\r
17 class TProfile2D;\r
18 class TH2I;\r
19 class TTree;\r
20 class AliESDEvent;\r
21 class AliESDfriend;\r
22 class AliESDtrack;\r
23 class AliESDfriendTrack;\r
24 class AliTRDtrackV1;\r
25 class AliTRDCalibraFillHisto;\r
26 class AliTRDcluster;\r
27 class AliESDtrackCuts;\r
28 class AliTRDCalDet;\r
29 \r
30 #include "TObjString.h"\r
31 #include "AliAnalysisTask.h" \r
32 \r
33 class AliTRDCalibTask : public AliAnalysisTask {\r
34  public:\r
35   AliTRDCalibTask(const char *name = "AliTRDCalibTask");\r
36   virtual ~AliTRDCalibTask();\r
37   \r
38   virtual void   ConnectInputData(Option_t *);\r
39   virtual void   CreateOutputObjects();\r
40   virtual void   Exec(Option_t *option);\r
41   virtual void   Terminate(Option_t *);\r
42   virtual Bool_t Load(const Char_t *filename);\r
43   void           Plot();\r
44 \r
45   void SetHisto2d(Bool_t histo2d)                                   {fHisto2d=histo2d;};\r
46   void SetVector2d(Bool_t vector2d)                                 {fVector2d=vector2d;};\r
47   void SetVdriftLinear(Bool_t vdriftLinear)                         {fVdriftLinear = vdriftLinear;};\r
48   void SetNbTimeBins(Int_t nbTimeBins)                              {fNbTimeBins=nbTimeBins;};  \r
49   \r
50   void SetNz(Short_t nz, Int_t i)                                      {fNz[i]=nz;};\r
51   void SetNrphi(Short_t nrphi, Int_t i)                                {fNrphi[i]=nrphi;};\r
52   \r
53   void AddSelectedTriggerClass(const char*name)                        {fSelectedTrigger->Add(new TObjString(name));};\r
54   void SetReject(Bool_t rejected)                                      {fRejected = rejected;};\r
55   \r
56   void SetESDtrackCuts(AliESDtrackCuts * const esdtrackCuts)                  {fEsdTrackCuts = esdtrackCuts;};\r
57   void SetRequirePrimaryVertex(Bool_t requirePrimaryVertex)            {fRequirePrimaryVertex = requirePrimaryVertex;};\r
58   void SetMinNbOfContributors(Int_t minNbOfContributors)               {fMinNbContributors = minNbOfContributors;};  \r
59   \r
60   void SetLow(Int_t low)                                               {fLow=low;};\r
61   void SetHigh(Int_t high)                                             {fHigh=high;};\r
62   void SetFillZero(Bool_t fillZero)                                    {fFillZero =  fillZero;};\r
63   void SetNormalizeNbOfCluster(Bool_t normalizeNbOfCluster =  kTRUE)   {fNormalizeNbOfCluster = normalizeNbOfCluster;};\r
64   void SetMaxCluster(Float_t maxCluster)                               {fMaxCluster =  maxCluster; }; \r
65   void SetNbMaxCluster(Short_t nbMaxCluster)                           {fNbMaxCluster =  nbMaxCluster; }; \r
66   void SetOfflineTracks()                                              {fOfflineTracks=kTRUE; fStandaloneTracks=kFALSE; };\r
67   void SetStandaloneTracks()                                           {fStandaloneTracks=kTRUE; fOfflineTracks=kFALSE; };\r
68 \r
69   void SetCalDetGain(AliTRDCalDet * const calDetGain)                         {fCalDetGain = calDetGain;};  \r
70 \r
71   void SetMaxEvent(Int_t nbevents)                                     { fMaxEvent = nbevents; };\r
72   void SetDebug(Int_t debug)                                           { fDebug = debug; };\r
73 \r
74  private:\r
75   AliESDEvent  *fESD;                            //! ESD object\r
76   AliESDfriend *fESDfriend;                      //! ESD friend\r
77   const AliESDtrack *fkEsdTrack;                  //! ESD track\r
78   AliESDfriendTrack *fFriendTrack;               //! ESD friend track\r
79   TObject *fCalibObject;                         //! calibration objects attached to the ESD friend\r
80   AliTRDtrackV1 *fTrdTrack;                      //! trdtrack\r
81   AliTRDcluster *fCl;                            //! cluster\r
82   \r
83   TList       *fListHist;                        //! list of histograms\r
84 \r
85   AliTRDCalibraFillHisto *fTRDCalibraFillHisto;  //! calibration analyse object\r
86 \r
87   TH1I        *fNEvents;                         //! counter  \r
88   \r
89   TH1F        *fNbTRDTrack;                      //! nb ESD tracks with TRD clusters\r
90   TH1F        *fNbTRDTrackOffline;               //! nb ESD tracks with TRD clusters\r
91   TH1F        *fNbTRDTrackStandalone;            //! nb ESD tracks with TRD clusters\r
92   TH2F        *fNbTPCTRDtrack;                   //! nb TPC and TRD tracks when problems\r
93    \r
94   TH1F        *fNbTimeBin;                       //! nb Time Bin\r
95   TH1F        *fNbTimeBinOffline;                //! nb Time Bin offline\r
96   TH1F        *fNbTimeBinStandalone;             //! nb Time Bin standalone\r
97   TH1F        *fNbClusters;                      //! nb Clusters\r
98   TH1F        *fNbClustersOffline;               //! nb Clusters offline\r
99   TH1F        *fNbClustersStandalone;            //! nb Clusters standalone\r
100   TH1F        *fNbTracklets;                     //! nb Tracklets\r
101   TH1F        *fNbTrackletsOffline;              //! nb Tracklets offline\r
102   TH1F        *fNbTrackletsStandalone;           //! nb Tracklets standalone\r
103   \r
104   TH2I        *fCH2dSum;                         //! CH2d charge all\r
105   TProfile2D  *fPH2dSum;                         //! PH2d PH all\r
106   TH2I        *fCH2dSM;                          //! CH2d per SM\r
107   TProfile2D  *fPH2dSM;                          //! PH2d per SM\r
108 \r
109   Bool_t      fHisto2d;                          //! histo\r
110   Bool_t      fVector2d;                         //! vector\r
111   Bool_t      fVdriftLinear;                     //! vdrift Linear\r
112 \r
113   Int_t       fNbTimeBins;                       //! number of timebins \r
114 \r
115   Short_t     fNz[3];                            // Nz mode \r
116   Short_t     fNrphi[3];                         // Nrphi mode\r
117    \r
118   TObjArray   *fSelectedTrigger;                 // Trigger class names accepted/rejected\r
119   Bool_t      fRejected;                         // Reject the selected trigger class\r
120   \r
121   AliESDtrackCuts *fEsdTrackCuts;                // Quality cut on the AliESDtrack\r
122   Bool_t      fRequirePrimaryVertex;             // Primary Vertex\r
123   Int_t       fMinNbContributors;                // Min number of contributors\r
124   \r
125   Int_t       fLow;                              // lower limit of nb of TRD clusters per tracklet\r
126   Int_t       fHigh;                             // higher limit of nb of TRD clusters per tracklet\r
127   Bool_t      fFillZero;                         // fill zero\r
128   Bool_t      fNormalizeNbOfCluster;             // normalize with number of clusters (per default not) \r
129   Float_t     fRelativeScale;                    // relative scale for gas gain\r
130   Float_t     fMaxCluster;                       // Maxcluster \r
131   Short_t     fNbMaxCluster;                     // Number of tb at the end\r
132   Bool_t      fOfflineTracks;                    // Only Offline refitted tracks\r
133   Bool_t      fStandaloneTracks;                 // Take only standalone tracks\r
134 \r
135   AliTRDCalDet *fCalDetGain;                     // Calib object gain\r
136 \r
137   Int_t       fMaxEvent;                         // max events\r
138   Int_t       fCounter;                          // max events\r
139   Int_t       fDebug;                            //! fDebug\r
140 \r
141   AliTRDCalibTask(const AliTRDCalibTask&); \r
142   AliTRDCalibTask& operator=(const AliTRDCalibTask&); \r
143 \r
144   ClassDef(AliTRDCalibTask, 1); \r
145 };\r
146 \r
147 #endif\r