]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/EMCALJetTasks/AliJetModelBaseTask.h
update from salvatore
[u/mrichter/AliRoot.git] / PWGGA / EMCALJetTasks / AliJetModelBaseTask.h
1 #ifndef ALIJETMODELBASETASK_H
2 #define ALIJETMODELBASETASK_H
3
4 // $Id$
5
6 class TClonesArray;
7 class AliEMCALGeometry;
8 class AliVCluster;
9 class AliPicoTrack;
10
11 #include "AliAnalysisTaskSE.h"
12
13 class AliJetModelBaseTask : public AliAnalysisTaskSE {
14  public:
15   AliJetModelBaseTask();
16   AliJetModelBaseTask(const char *name); 
17   virtual ~AliJetModelBaseTask();
18
19   virtual void         Init();
20   virtual void         UserExec(Option_t* /*option*/);
21   virtual void         Terminate(const Option_t* /*option*/) {;}
22
23   void         SetClusName(const char *n)            { fCaloName     = n;    }
24   void         SetTracksName(const char *n)          { fTracksName   = n;    }
25   void         SetEtaRange(Float_t min, Float_t max) { fEtaMin       = min;  fEtaMax = max; }
26   void         SetPhiRange(Float_t min, Float_t max) { fPhiMin       = min;  fPhiMax = max; }
27   void         SetPtRange(Float_t min, Float_t max)  { fPtMin        = min;  fPtMax  = max;  }
28   void         SetCopyArray(Bool_t copy)             { fCopyArray    = copy; }
29   void         SetNClusters(Int_t n)                 { fNClusters    = n;    }
30   void         SetNTracks(Int_t n)                   { fNTracks      = n;    }
31   void         SetGeometryName(const char *n)        { fGeomName     = n;    }
32   void         SetSuffix(const char *s)              { fSuffix       = s;    }
33
34  protected:
35
36   virtual void           Run();                                                                 // do jet model action
37   void                   GetRandomCell(Double_t &eta, Double_t &phi, Int_t &absId);             // generate a random cell in the calorimeter
38   Double_t               GetRandomEta();                                                        // generate a random eta value in the given range
39   Double_t               GetRandomPhi();                                                        // generate a random phi value in the given range
40   Double_t               GetRandomPt();                                                         // generate a random pt value in the given range
41   AliVCluster           *AddCluster(Double_t e = -1, Double_t eta = -999, Double_t phi = -1);   // add a cluster; if values are -1 generate random parameters
42   AliVCluster           *AddCluster(Double_t e, Int_t absId);                                   // add a cluster with given energy and position
43   AliPicoTrack          *AddTrack(Double_t pt = -1, Double_t eta = -999, Double_t phi = -1);    // add a track; if values are -1 generate random parameters
44
45   TString                fGeomName;               // EMCal geometry name
46   TString                fTracksName;             // name of track collection
47   TString                fOutTracksName;          // name of output track collection
48   TString                fCaloName;               // name of calo cluster collection
49   TString                fOutCaloName;            // name of output cluster collection
50   TString                fSuffix;                 // suffix to add in the name of new collections
51   Float_t                fEtaMin;                 // eta minimum value
52   Float_t                fEtaMax;                 // eta maximum value
53   Float_t                fPhiMin;                 // phi minimum value
54   Float_t                fPhiMax;                 // phi maximum value
55   Float_t                fPtMin;                  // pt minimum value
56   Float_t                fPtMax;                  // pt maximum value
57   Bool_t                 fCopyArray;              // whether or not the array will be copied to a new one before modelling
58   Int_t                  fNClusters;              // how many clusters are being processed
59   Int_t                  fNTracks;                // how many tracks are being processed
60   AliEMCALGeometry      *fGeom;                   //!pointer to EMCal geometry
61   TClonesArray          *fClusters;               //!cluster collection
62   TClonesArray          *fOutClusters;            //!output cluster collection
63   TClonesArray          *fTracks;                 //!track collection
64   TClonesArray          *fOutTracks;              //!output track collection
65
66  private:
67   AliJetModelBaseTask(const AliJetModelBaseTask&);            // not implemented
68   AliJetModelBaseTask &operator=(const AliJetModelBaseTask&); // not implemented
69
70   ClassDef(AliJetModelBaseTask, 1) // Jet modelling task
71 };
72 #endif