Event embedding tasks for PHOS are added (D.Peressounko)
[u/mrichter/AliRoot.git] / PWG4 / UserTasks / PHOS_embedding / AliPHOSEmbedding.h
1 #ifndef AliPHOSEmbedding_h\r
2 #define AliPHOSEmbedding_h\r
3 \r
4 // Class to perform embedding on the AOD level\r
5 // Author: D.Peressounko\r
6 \r
7 class TChain ;\r
8 class TClonesArray ;\r
9 class TH2F ;\r
10 \r
11 class AliPHOSClusterizerv1 ;\r
12 class AliPHOSReconstructor ;\r
13 class AliAODEvent ;\r
14 class AliESDEvent ;\r
15 class AliESDtrack ;\r
16 class AliESDCaloCells ;\r
17 \r
18 #include "AliAnalysisTaskSE.h"\r
19 \r
20 class AliPHOSEmbedding : public AliAnalysisTaskSE {\r
21 public:\r
22   AliPHOSEmbedding(const char *name = "AliPHOSEmbedding");\r
23   virtual ~AliPHOSEmbedding() {}\r
24   \r
25   virtual void   UserCreateOutputObjects();\r
26   virtual void   UserExec(Option_t *option);\r
27   virtual void   Terminate(Option_t *){}\r
28   \r
29 \r
30   void SetSignalChain(TChain * signal){fAODChain =signal;}\r
31 \r
32   void SetOldCalibration(TH2F **calib) ; \r
33   //Calibration used in reconstruction of real data (ESDs)\r
34   //If not set, assume same calibration as set by default\r
35 \r
36 private:\r
37   AliPHOSEmbedding(const AliPHOSEmbedding&); // not implemented\r
38   AliPHOSEmbedding& operator=(const AliPHOSEmbedding&); // not implemented\r
39 \r
40   void Init() ;\r
41   void InitMF() ; //Mag.Field initialization for track matching\r
42   void InitGeometry() ;\r
43   \r
44   AliAODEvent * GetNextSignalEvent(void) ;\r
45 \r
46   void MakeEmbedding(AliESDEvent * data, AliAODEvent * signal) ;\r
47   void MakeDigits(AliAODEvent* signal) ;  \r
48 \r
49   void ConvertESDtoAOD(AliESDEvent *esd) ;\r
50   void ConvertHeader(AliESDEvent &esd) ;\r
51   void ConvertPrimaryVertices(const AliESDEvent &esd) ;\r
52   void ConvertCaloClusters(const AliESDEvent &esd) ;\r
53   void ConvertEMCALCells(const AliESDEvent &esd) ;\r
54   void ConvertPHOSCells(const AliESDEvent &esd) ;\r
55   \r
56   void ConvertEmbeddedClusters(const AliESDEvent *esd) ;\r
57   void ConvertEmbeddedCells(const AliESDEvent *esd) ;\r
58   void ConvertMCParticles(const AliAODEvent *aod) ;\r
59 \r
60   Double_t TPCrp(const AliESDEvent * event) ;\r
61   Bool_t SelectTrack(AliESDtrack * t) ;  \r
62   Float_t TestCPV(Double_t dx, Double_t dz, Double_t pt, Int_t charge) ;\r
63   \r
64 \r
65   TChain * fAODChain ; //Signal\r
66 \r
67   TTree * fDigitsTree ;  //! Digits\r
68   TTree * fClustersTree; //! Clusters\r
69   TTree * fTreeOut; //Output AOD\r
70   TClonesArray * fDigitsArr ; //!\r
71 \r
72   TClonesArray * fEmbeddedClusters ; //!\r
73   AliAODCaloCells * fEmbeddedCells ; //!\r
74   AliESDCaloCells * fCellsPHOS ; //! Old PHOS cells\r
75 \r
76   AliPHOSClusterizerv1 * fClusterizer ; //!\r
77   AliPHOSReconstructor * fPHOSReconstructor ; //!\r
78   \r
79   TH2F * fOldPHOSCalibration[5] ; //! Calibration coeff. used in ESD production\r
80 \r
81   Int_t fNSignal ; // Number of signal evetns processed  \r
82   Int_t fNCaloClustersOld ; //Number of CaloClusters already in ESD\r
83   Bool_t fInitialized ; //!\r
84   ClassDef(AliPHOSEmbedding, 1); // PHOS analysis task\r
85 };\r
86 \r
87 #endif\r