]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDCalibTask.h
Linking with libOADB needed by libANALYSISalice
[u/mrichter/AliRoot.git] / TRD / AliTRDCalibTask.h
index 50a4a7d558fccd9d9d1579433c62ae7d222a32ce..5c56ed2b8c6755f1db1d0d2d6d567fc67189f4de 100644 (file)
@@ -28,19 +28,24 @@ class AliESDtrackCuts;
 class AliTRDCalDet;
 
 #include "TObjString.h"
-#include "AliAnalysisTask.h" 
+#include "AliAnalysisTaskSE.h" 
+#include "TMath.h"
 
-class AliTRDCalibTask : public AliAnalysisTask {
+class AliTRDCalibTask : public AliAnalysisTaskSE {
  public:
   AliTRDCalibTask(const char *name = "AliTRDCalibTask");
   virtual ~AliTRDCalibTask();
   
-  virtual void   ConnectInputData(Option_t *);
-  virtual void   CreateOutputObjects();
-  virtual void   Exec(Option_t *option);
+  //  virtual void   ConnectInputData(Option_t *);
+  virtual void   UserCreateOutputObjects();
+  virtual void   UserExec(Option_t *);
   virtual void   Terminate(Option_t *);
   virtual Bool_t Load(const Char_t *filename);
+  virtual Bool_t Load(TList *lister);
   void           Plot();
+  virtual Long64_t  Merge(TCollection *li);
+  void           AddTask(const AliTRDCalibTask * calibTask);
+  TList          *GetList() const {return fListHist;};
 
   void SetHisto2d(Bool_t histo2d)                                   {fHisto2d=histo2d;};
   void SetVector2d(Bool_t vector2d)                                 {fVector2d=vector2d;};
@@ -53,11 +58,21 @@ class AliTRDCalibTask : public AliAnalysisTask {
   void AddSelectedTriggerClass(const char*name)                        {fSelectedTrigger->Add(new TObjString(name));};
   void SetReject(Bool_t rejected)                                      {fRejected = rejected;};
   
-  void SetESDtrackCuts(AliESDtrackCuts * const esdtrackCuts)                  {fEsdTrackCuts = esdtrackCuts;};
+  void SetESDtrackCuts(AliESDtrackCuts * const esdtrackCuts)           {fEsdTrackCuts = esdtrackCuts;};
   void SetRequirePrimaryVertex(Bool_t requirePrimaryVertex)            {fRequirePrimaryVertex = requirePrimaryVertex;};
   void SetUseTPCVertex()                                               {fVtxTPC=kTRUE ; fVtxSPD=kFALSE;} 
   void SetUseSPDVertex()                                               {fVtxTPC=kFALSE; fVtxSPD=kTRUE ;} 
   void SetMinNbOfContributors(Int_t minNbOfContributors)               {fMinNbContributors = minNbOfContributors;};  
+  void SetRangePrimaryVertexZ(Double_t rangePrimaryVertexZ)            {fRangePrimaryVertexZ = TMath::Abs(rangePrimaryVertexZ);}; 
+  void SetMinNbTracks(Int_t minNbTracks)                               {fMinNbTracks = minNbTracks;};
+  void SetMaxNbTracks(Int_t maxNbTracks)                               {fMaxNbTracks = maxNbTracks;};
+  void SetVersionGainUsed(Int_t versionGainUsed)                       { fVersionGainUsed = versionGainUsed;   }
+  void SetSubVersionGainUsed(Int_t subVersionGainUsed)                 { fSubVersionGainUsed = subVersionGainUsed;   }
+  void SetVersionGainLocalUsed(Int_t versionGainLocalUsed)             { fVersionGainLocalUsed = versionGainLocalUsed;   }
+  void SetSubVersionGainLocalUsed(Int_t subVersionGainLocalUsed)       { fSubVersionGainLocalUsed = subVersionGainLocalUsed;   }
+  void SetVersionVdriftUsed(Int_t versionVdriftUsed)                   { fVersionVdriftUsed = versionVdriftUsed;   }
+  void SetSubVersionVdriftUsed(Int_t subVersionVdriftUsed)             { fSubVersionVdriftUsed = subVersionVdriftUsed;   }
   
   void SetLow(Int_t low)                                               {fLow=low;};
   void SetHigh(Int_t high)                                             {fHigh=high;};
@@ -67,13 +82,16 @@ class AliTRDCalibTask : public AliAnalysisTask {
   void SetNbMaxCluster(Short_t nbMaxCluster)                           {fNbMaxCluster =  nbMaxCluster; }; 
   void SetOfflineTracks()                                              {fOfflineTracks=kTRUE; fStandaloneTracks=kFALSE; };
   void SetStandaloneTracks()                                           {fStandaloneTracks=kTRUE; fOfflineTracks=kFALSE; };
-
-  void SetCalDetGain(AliTRDCalDet * const calDetGain)                         {fCalDetGain = calDetGain;};  
+  
+  void SetCalDetGain(AliTRDCalDet * const calDetGain)                  {fCalDetGain = calDetGain;};  
 
   void SetMaxEvent(Int_t nbevents)                                     { fMaxEvent = nbevents; };
   void SetDebug(Int_t debug)                                           { fDebug = debug; };
 
  private:
+  Bool_t SetVersionSubversion();
+  Bool_t ParticleGood(int i) const;
+
   AliESDEvent  *fESD;                            //! ESD object
   AliESDfriend *fESDfriend;                      //! ESD friend
   const AliESDtrack *fkEsdTrack;                  //! ESD track
@@ -87,11 +105,13 @@ class AliTRDCalibTask : public AliAnalysisTask {
   AliTRDCalibraFillHisto *fTRDCalibraFillHisto;  //! calibration analyse object
 
   TH1I        *fNEvents;                         //! counter  
+  TH1I        *fNEventsInput;                    //! counter  
   
   TH1F        *fNbTRDTrack;                      //! nb ESD tracks with TRD clusters
   TH1F        *fNbTRDTrackOffline;               //! nb ESD tracks with TRD clusters
   TH1F        *fNbTRDTrackStandalone;            //! nb ESD tracks with TRD clusters
   TH2F        *fNbTPCTRDtrack;                   //! nb TPC and TRD tracks when problems
+  TH2F        *fNbGoodTracks;                    //! nb of good tracks
    
   TH1F        *fNbTimeBin;                       //! nb Time Bin
   TH1F        *fNbTimeBinOffline;                //! nb Time Bin offline
@@ -103,16 +123,17 @@ class AliTRDCalibTask : public AliAnalysisTask {
   TH1F        *fNbTrackletsOffline;              //! nb Tracklets offline
   TH1F        *fNbTrackletsStandalone;           //! nb Tracklets standalone
   
+  TH2F        *fAbsoluteGain;                    //! Absolute Gain without AliESDfriend
   TH2I        *fCH2dSum;                         //! CH2d charge all
   TProfile2D  *fPH2dSum;                         //! PH2d PH all
   TH2I        *fCH2dSM;                          //! CH2d per SM
   TProfile2D  *fPH2dSM;                          //! PH2d per SM
 
-  Bool_t      fHisto2d;                          //! histo
-  Bool_t      fVector2d;                         //! vector
-  Bool_t      fVdriftLinear;                     //! vdrift Linear
+  Bool_t      fHisto2d;                          // histo
+  Bool_t      fVector2d;                         // vector
+  Bool_t      fVdriftLinear;                     // vdrift Linear
 
-  Int_t       fNbTimeBins;                       //! number of timebins 
+  Int_t       fNbTimeBins;                       // number of timebins 
 
   Short_t     fNz[3];                            // Nz mode 
   Short_t     fNrphi[3];                         // Nrphi mode
@@ -125,6 +146,9 @@ class AliTRDCalibTask : public AliAnalysisTask {
   Bool_t      fVtxTPC;                           // Flag for use of TPC vertex
   Bool_t      fVtxSPD;                           // Flag for use of SPD vertex
   Int_t       fMinNbContributors;                // Min number of contributors
+  Double_t    fRangePrimaryVertexZ;              // Were the primary vertex is
+  Int_t       fMinNbTracks;                      // Min Nb Tracks
+  Int_t       fMaxNbTracks;                      // Max Nb Tracks
   
   Int_t       fLow;                              // lower limit of nb of TRD clusters per tracklet
   Int_t       fHigh;                             // higher limit of nb of TRD clusters per tracklet
@@ -136,11 +160,21 @@ class AliTRDCalibTask : public AliAnalysisTask {
   Bool_t      fOfflineTracks;                    // Only Offline refitted tracks
   Bool_t      fStandaloneTracks;                 // Take only standalone tracks
 
+  Int_t       fFirstRunGain;                     // FirstRunGainUsed 
+  Int_t       fVersionGainUsed;                  // VersionGainUsed 
+  Int_t       fSubVersionGainUsed;               // SubVersionGainUsed
+  Int_t       fFirstRunGainLocal;                // FirstRunGainLocalUsed 
+  Int_t       fVersionGainLocalUsed;             // VersionGainLocalUsed 
+  Int_t       fSubVersionGainLocalUsed;          // SubVersionGainLocalUsed
+  Int_t       fFirstRunVdrift;                   // FirstRunVdriftUsed 
+  Int_t       fVersionVdriftUsed;                // VersionVdriftUsed 
+  Int_t       fSubVersionVdriftUsed;             // SubVersionVdriftUsed
+
   AliTRDCalDet *fCalDetGain;                     // Calib object gain
 
   Int_t       fMaxEvent;                         // max events
   Int_t       fCounter;                          // max events
-  Int_t       fDebug;                            //! fDebug
+  Int_t       fDebug;                            // fDebug
 
   AliTRDCalibTask(const AliTRDCalibTask&); 
   AliTRDCalibTask& operator=(const AliTRDCalibTask&); 
@@ -150,3 +184,4 @@ class AliTRDCalibTask : public AliAnalysisTask {
 
 #endif
 
+