]>
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); | |
c31562f7 | 29 | AliAnalysisEtSelector(); |
ef647350 | 30 | |
31 | // Destructor | |
32 | virtual ~AliAnalysisEtSelector(); | |
33 | ||
34 | // Set the current event | |
95a76eaf | 35 | virtual void SetEvent(const AliESDEvent *event); |
f61cec2f | 36 | |
37 | // Init | |
38 | virtual void Init() {} | |
ef647350 | 39 | |
f61cec2f | 40 | // Init with event |
41 | virtual Int_t Init(const AliESDEvent *event) { fRunNumber = event->GetRunNumber(); return 0; } | |
ef647350 | 42 | |
43 | // Return CaloClusters for the detector | |
f61cec2f | 44 | virtual TRefArray* GetClusters() { return 0; } |
45 | ||
46 | // Return true if cluster has energy > cut | |
86e7d5db | 47 | virtual Bool_t PassMinEnergyCut(const AliESDCaloCluster &/*cluster*/) const { return true; } |
ef647350 | 48 | |
49 | // Return true if cluster has energy > cut | |
86e7d5db | 50 | virtual Bool_t PassMinEnergyCut(const TParticle &/*part*/) const { return true; } |
ef647350 | 51 | |
52 | // Cut on distance to bad channel | |
86e7d5db | 53 | virtual Bool_t PassDistanceToBadChannelCut(const AliESDCaloCluster &/*cluster*/) const { return true; } |
ef647350 | 54 | |
55 | // Cut on track matching | |
86e7d5db | 56 | virtual Bool_t PassTrackMatchingCut(const AliESDCaloCluster &/*cluster*/) const { return true; } |
f61cec2f | 57 | |
58 | // Cut on neutral monte carlo particle | |
86e7d5db | 59 | virtual Bool_t IsNeutralMcParticle(Int_t pIdx, AliStack& s, const TParticlePDG& pdg) const; |
f61cec2f | 60 | |
61 | // Is it an EM E_T particle | |
62 | virtual Bool_t IsEmEtParticle(const Int_t pdgCode) const; | |
63 | ||
64 | // Does the particle come from an EM E_T primary ? | |
65 | virtual Bool_t PrimaryIsEmEtParticle(const Int_t pIdx, AliStack &stack) const; | |
66 | ||
67 | // Get the index of primary particle for the particle | |
68 | Int_t GetPrimary(const Int_t partIdx, AliStack &stack) const; | |
69 | ||
70 | // Cut on geometrical acceptance | |
71 | virtual Bool_t CutGeometricalAcceptance(const TParticle &/*part*/) const { return true; } | |
72 | ||
73 | // Cut on geometrical acceptance | |
74 | virtual Bool_t CutGeometricalAcceptance(const AliVTrack &/*part*/) const { return true; } | |
75 | ||
b2c10007 | 76 | // From secondary vertex? |
77 | virtual Bool_t FromSecondaryInteraction(const TParticle& part, AliStack& stack) const; | |
f61cec2f | 78 | |
b439c315 | 79 | // Cluster is in correct detector |
80 | virtual Bool_t IsDetectorCluster(const AliESDCaloCluster &cluster) const = 0; | |
81 | ||
ef647350 | 82 | protected: |
83 | ||
84 | const AliVEvent *fEvent; // Pointer to current event | |
85 | ||
f61cec2f | 86 | TRefArray *fClusterArray; // Array of clusters |
4d376d01 | 87 | |
88 | AliAnalysisEtCuts *fCuts; // Pointer to the cuts object; DS: also in base class? | |
b2c10007 | 89 | |
90 | Bool_t SuspeciousDecayInChain(const UInt_t suspectMotherPdg, const UInt_t suspectDaughterPdg, const TParticle& part, AliStack& stack) const; | |
91 | ||
92 | Int_t fRunNumber; | |
f61cec2f | 93 | |
95a76eaf | 94 | Bool_t fInitialized; // matrix initialized |
f61cec2f | 95 | |
ef647350 | 96 | private: |
97 | ||
c31562f7 | 98 | //AliAnalysisEtSelector(); // Prohibited |
ef647350 | 99 | AliAnalysisEtSelector(const AliAnalysisEtSelector& other);// Prohibited |
100 | AliAnalysisEtSelector& operator=(const AliAnalysisEtSelector& other);// Prohibited | |
101 | bool operator==(const AliAnalysisEtSelector& other) const;// Prohibited | |
102 | ||
103 | ClassDef(AliAnalysisEtSelector, 1); | |
104 | }; | |
105 | ||
106 | #endif // ALIANALYSISETSELECTOR_H |