]>
Commit | Line | Data |
---|---|---|
ef647350 | 1 | #ifndef ALIANALYSISETSELECTOR_H |
2 | #define ALIANALYSISETSELECTOR_H | |
4d376d01 | 3 | //_________________________________________________________________________ |
4 | // Utility Class for transverse energy studies | |
5 | // Selector Base class | |
6 | // - | |
7 | // | |
8 | //*-- Authors: Oystein Djuvsland (Bergen) | |
9 | //_________________________________________________________________________ | |
ef647350 | 10 | #include <Rtypes.h> |
f61cec2f | 11 | #include "AliAnalysisEtCommon.h" |
12 | #include "AliESDEvent.h" | |
ef647350 | 13 | |
ef647350 | 14 | class AliESDCaloCluster; |
f61cec2f | 15 | class AliVTrack; |
ef647350 | 16 | class TRefArray; |
17 | class AliAnalysisEtCuts; | |
f61cec2f | 18 | class TParticle; |
19 | class TParticlePDG; | |
20 | class AliStack; | |
21 | ||
22 | class AliAnalysisEtSelector : public AliAnalysisEtCommon | |
ef647350 | 23 | { |
24 | ||
25 | public: | |
26 | ||
27 | // Constructor takes cuts object | |
28 | AliAnalysisEtSelector(AliAnalysisEtCuts *cuts); | |
29 | ||
30 | // Destructor | |
31 | virtual ~AliAnalysisEtSelector(); | |
32 | ||
33 | // Set the current event | |
f61cec2f | 34 | virtual void SetEvent(const AliESDEvent *event) = 0;// { fEvent = event; } |
35 | ||
36 | // Init | |
37 | virtual void Init() {} | |
ef647350 | 38 | |
f61cec2f | 39 | // Init with event |
40 | virtual Int_t Init(const AliESDEvent *event) { fRunNumber = event->GetRunNumber(); return 0; } | |
ef647350 | 41 | |
42 | // Return CaloClusters for the detector | |
f61cec2f | 43 | virtual TRefArray* GetClusters() { return 0; } |
44 | ||
45 | // Return true if cluster has energy > cut | |
46 | virtual Bool_t CutMinEnergy(const AliESDCaloCluster &/*cluster*/) const { return true; } | |
ef647350 | 47 | |
48 | // Return true if cluster has energy > cut | |
f61cec2f | 49 | virtual Bool_t CutMinEnergy(const TParticle &/*part*/) const { return true; } |
ef647350 | 50 | |
51 | // Cut on distance to bad channel | |
f61cec2f | 52 | virtual Bool_t CutDistanceToBadChannel(const AliESDCaloCluster &/*cluster*/) const { return true; } |
ef647350 | 53 | |
54 | // Cut on track matching | |
f61cec2f | 55 | virtual Bool_t CutTrackMatching(const AliESDCaloCluster &/*cluster*/) const { return true; } |
56 | ||
57 | // Cut on neutral monte carlo particle | |
58 | virtual Bool_t CutNeutralMcParticle(Int_t pIdx, AliStack& s, const TParticlePDG& pdg) const; | |
59 | ||
60 | // Is it an EM E_T particle | |
61 | virtual Bool_t IsEmEtParticle(const Int_t pdgCode) const; | |
62 | ||
63 | // Does the particle come from an EM E_T primary ? | |
64 | virtual Bool_t PrimaryIsEmEtParticle(const Int_t pIdx, AliStack &stack) const; | |
65 | ||
66 | // Get the index of primary particle for the particle | |
67 | Int_t GetPrimary(const Int_t partIdx, AliStack &stack) const; | |
68 | ||
69 | // Cut on geometrical acceptance | |
70 | virtual Bool_t CutGeometricalAcceptance(const TParticle &/*part*/) const { return true; } | |
71 | ||
72 | // Cut on geometrical acceptance | |
73 | virtual Bool_t CutGeometricalAcceptance(const AliVTrack &/*part*/) const { return true; } | |
74 | ||
75 | ||
ef647350 | 76 | protected: |
77 | ||
78 | const AliVEvent *fEvent; // Pointer to current event | |
79 | ||
f61cec2f | 80 | TRefArray *fClusterArray; // Array of clusters |
4d376d01 | 81 | |
82 | AliAnalysisEtCuts *fCuts; // Pointer to the cuts object; DS: also in base class? | |
83 | ||
84 | Int_t fRunNumber; // run number | |
ef647350 | 85 | |
f61cec2f | 86 | |
87 | ||
ef647350 | 88 | private: |
89 | ||
90 | AliAnalysisEtSelector(); // Prohibited | |
91 | AliAnalysisEtSelector(const AliAnalysisEtSelector& other);// Prohibited | |
92 | AliAnalysisEtSelector& operator=(const AliAnalysisEtSelector& other);// Prohibited | |
93 | bool operator==(const AliAnalysisEtSelector& other) const;// Prohibited | |
94 | ||
95 | ClassDef(AliAnalysisEtSelector, 1); | |
96 | }; | |
97 | ||
98 | #endif // ALIANALYSISETSELECTOR_H |