]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/totEt/AliAnalysisEtSelector.h
Propagate generator names to headers
[u/mrichter/AliRoot.git] / PWGLF / totEt / AliAnalysisEtSelector.h
CommitLineData
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 14class AliESDCaloCluster;
f61cec2f 15class AliVTrack;
ef647350 16class TRefArray;
17class AliAnalysisEtCuts;
f61cec2f 18class TParticle;
19class TParticlePDG;
20class AliStack;
21
22class AliAnalysisEtSelector : public AliAnalysisEtCommon
ef647350 23{
24
25public:
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 76protected:
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 88private:
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