In AliMUONChamberCalibrationTask:
[u/mrichter/AliRoot.git] / MUON / AliMUONChamberCalibrationTask.h
1 #ifndef ALIMUONCHAMBERCALIBRATIONTASK_H
2 #define ALIMUONCHAMBERCALIBRATIONTASK_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice                               */
6
7 // $Id$
8
9 /// \ingroup calign
10 /// \class  AliMUONChamberCalibrationTask
11 /// \brief  Definition of the task to extract cluster information 
12 ///  from MCH tracks after applying the calibration on an aligned ESD
13 /// \author Andry Rakotozafindrabe CEA/IRFU/SPhN
14
15 class AliMUONRecoParam;
16 class AliMUONClusterInfo;
17 class AliMUONPadInfo;
18 class AliMUONCalibrationData;
19 class AliMUONESDInterface;
20 class AliMUONVClusterStore;
21 class AliMUONVDigitStore;
22 class AliMUONTrack;
23
24 class AliESDInputHandler;
25 class AliESDEvent;
26
27 #include "AliAnalysisTaskSE.h"
28 #include "TTree.h" 
29 #include "TString.h" 
30
31 class AliMUONChamberCalibrationTask : public AliAnalysisTaskSE
32 {
33
34  public:
35
36   // enumarate the list of the available modes for the calibration
37   enum Calibration_t { NOGAIN, GAINCONSTANTCAPA, GAIN, INJECTIONGAIN }; 
38   typedef Calibration_t Calibration_t;
39
40   // Constructors
41   AliMUONChamberCalibrationTask();
42   AliMUONChamberCalibrationTask( const char* name, 
43                                  char* ocdbpath, 
44                                  const Int_t my_calib_option );
45
46   // Destructor
47   virtual ~AliMUONChamberCalibrationTask();
48
49   // Implementation of interface methods
50   virtual void CreateOutputObjects(); 
51   virtual void LocalInit(); 
52   virtual void ConnectInputData( Option_t* option = "" );
53   virtual void Exec( Option_t* option  = "" ); 
54   virtual void Terminate( Option_t* option = "" ); 
55
56   // Getters
57   TTree* OutputTree() { return fClusterInfoTree; }
58
59   UInt_t BuildClusterMap( AliMUONTrack &track );
60
61  private:
62   /// Not implemented
63   AliMUONChamberCalibrationTask(const AliMUONChamberCalibrationTask& right);
64   /// Not implemented
65   AliMUONChamberCalibrationTask&  operator = (const AliMUONChamberCalibrationTask& right);
66
67   TString fOCDBPath;                    //!< default path to the condition database
68   Calibration_t fCalibChoice;           //!< calibration option
69   TTree* fClusterInfoTree;              //!< TTree filled with the cluster information
70   AliMUONRecoParam* fMuonRecoParam;     //!< reconstruction parameters for track refitting
71   AliMUONClusterInfo* fClusterInfo;     //!< cluster info used to fill the output TTree
72   AliMUONCalibrationData* fCalibData;   //!< needed to access to the calibration data for each pad within each cluster
73   AliMUONESDInterface* fESDInterface;   //!< interface to easily access to the ESD content
74   AliMUONVDigitStore* fDigitStore;      //!< pointer to the digit stored for the current input ESD event 
75   AliESDInputHandler* fESDInputHandler; //!< ESD input handler
76   AliESDEvent* fESDInputEvent;          //!< pointer to the current input ESD event
77
78   ClassDef( AliMUONChamberCalibrationTask, 1 ) // Task to extract cluster information after applying calibration
79
80 };
81
82
83 #endif