]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/EMCALJetTasks/AliJetModelBaseTask.h
added classes for background and jet modeling from Salvatore
[u/mrichter/AliRoot.git] / PWGGA / EMCALJetTasks / AliJetModelBaseTask.h
CommitLineData
762e8424 1#ifndef ALIJETMODELBASETASK_H
2#define ALIJETMODELBASETASK_H
3
4// $Id$
5
6class TClonesArray;
7class AliEMCALGeometry;
8class AliVCluster;
9class AliPicoTrack;
10
11#include "AliAnalysisTaskSE.h"
12
13class 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 = -1, 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 = -1, 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