AliPhysics  4646b6b (4646b6b)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliAODConversionPhoton.h
Go to the documentation of this file.
1 #ifndef ALIAODCONVERSIONPHOTON_H
2 #define ALIAODCONVERSIONPHOTON_H
3 
7 
9 
10  public:
11 
13  kIsPhoton = 0x001, kIsElectron = 0x002, kIsConversion = 0x004, kIsConversionFullyContained = 0x008,
14  kIsMerged = 0x010, kIsMergedPartConv = 0x020, kIsDalitz = 0x040, kIsDalitzMerged = 0x080,
16  };
17 
18  //Constructors
21  AliAODConversionPhoton(TLorentzVector *vec);
22 
23  //Copy Constructor
25  //assignment operator
27 
28  //Destructor
29  virtual ~AliAODConversionPhoton();
30 
31  // Overwrite GetLabelFunctions to Make it accessible via AliAODConversionParticle
35 
36  virtual Double_t GetPhotonMass() const {return AliAODConversionParticle::M();}
37  virtual Double_t GetPhotonPt() const {return AliAODConversionParticle::Pt();}
38  virtual Double_t GetPhotonP() const {return AliAODConversionParticle::P();}
39  virtual Double_t GetPhotonEta() const {return AliAODConversionParticle::Eta();}
40  virtual Double_t GetPhotonTheta() const {return AliAODConversionParticle::Theta();}
42  virtual Double_t GetPx() const { return AliAODConversionParticle::Px();}
43  virtual Double_t GetPy() const { return AliAODConversionParticle::Py();}
44  virtual Double_t GetPz() const { return AliAODConversionParticle::Pz();}
45  void CalculateDistanceOfClossetApproachToPrimVtx(const AliVVertex* primVertex);
46  void SetMassToZero() { SetE(P()); }
47 
50 
52  fCaloPhoton = 0;
53  fCaloPhotonMCFlags = 1;
54  }
55 
58 
61  void SetCaloPhotonMCLabel(Int_t i, Int_t labelCaloPhoton){fCaloPhotonMCLabels[i] = labelCaloPhoton;}
67 
68  void SetCaloPhotonMCFlags(AliMCEvent *mcEvent, Bool_t enableSort);
69  void SetCaloPhotonMCFlagsAOD(AliVEvent* event, Bool_t enableSort);
70  void SetCaloClusterRef(Long_t ref){fCaloClusterRef = ref;}
71  Long_t GetCaloClusterRef()const {return fCaloClusterRef;}
72  void PrintCaloMCLabelsAndInfo(AliMCEvent *mcEvent);
73  void PrintCaloMCFlags ();
74 
75  //Calo cluster MC identifiers
76  Bool_t IsLargestComponentPhoton(){return fCaloPhotonMCFlags&kIsPhoton;} // largest contribution to cluster is photon
77  Bool_t IsLargestComponentElectron(){return fCaloPhotonMCFlags&kIsElectron;} // largest contribution to cluster is electron
78  Bool_t IsConversion(){return fCaloPhotonMCFlags&kIsConversion;} // largest contribution to cluster is converted electron
79  Bool_t IsConversionFullyContained(){return fCaloPhotonMCFlags&kIsConversionFullyContained;} // largest contribution to cluster is converted electron & other electron has been found in cluster as well
80  Bool_t IsMerged(){return fCaloPhotonMCFlags&kIsMerged;} // largest contribution to cluster is photon, second photon or electron from dalitz decay is found in cluster as well
81  Bool_t IsMergedPartConv(){return fCaloPhotonMCFlags&kIsMergedPartConv;} // cluster contains more than 1 particle belonging to the same mother particle (i.e. pi0, eta ...)
82  // & at least one of the decays was a conversion
83  Bool_t IsDalitz(){return fCaloPhotonMCFlags&kIsDalitz;} // cluster contains particle from Dalitz decay
84  Bool_t IsDalitzMerged(){return fCaloPhotonMCFlags&kIsDalitzMerged;} // cluster contains particle from Dalitz decay & more than one particle of this decay is contained in cluster
85  Bool_t IsPhotonWithElecMother(){return fCaloPhotonMCFlags&kIsPhotonWithElecMother;} // largest contribution to cluster is photon which stems from an electron (i.e. radiation)
86  Bool_t IsShower(){return fCaloPhotonMCFlags&kIsShower;} // largest contribution to cluster seems to stem from a shower
87  Bool_t IsEMNonLeading(){return !(fCaloPhotonMCFlags&kIsPhoton) && !(fCaloPhotonMCFlags&kIsElectron);} // largest contribution is from hadron
88  Bool_t IsSubLeadingEM(){return fCaloPhotonMCFlags&kIsSubLeadingEM;} // cluster contains at least one electron or photon from a pi0 or eta in subleading contribution
89 
91  if (!fCaloPhoton && fCaloPhotonMCFlags == 1) return kTRUE;
92  else return kFALSE;
93  }
94 
105 
106  ClassDef(AliAODConversionPhoton,5)
107 };
108 
109 
110 #endif
111 
112 
113 
virtual Double_t GetPy() const
virtual Double_t GetPhotonPhi() const
void SetCaloClusterRef(Long_t ref)
#define P(T, U, S)
double Double_t
Definition: External.C:58
void SetCaloPhotonMCFlags(AliMCEvent *mcEvent, Bool_t enableSort)
virtual Double_t GetPz() const
Double_t mass
virtual Double_t GetPhotonTheta() const
Float_t GetDCAzToPrimVtx() const
virtual Int_t GetLabel(Int_t i) const
void SetCaloPhotonMCLabel(Int_t i, Int_t labelCaloPhoton)
AliAODConversionPhoton & operator=(const AliAODConversionPhoton &g)
Int_t GetCaloPhotonMotherMCLabel(Int_t i)
virtual Int_t GetLabel1() const
void PrintCaloMCLabelsAndInfo(AliMCEvent *mcEvent)
virtual Double_t GetPhotonP() const
int Int_t
Definition: External.C:63
float Float_t
Definition: External.C:68
Int_t GetTrackLabel(Int_t i) const
void SetInvMassPair(Float_t mass)
Float_t GetDCArToPrimVtx() const
virtual Double_t GetPhotonEta() const
virtual Int_t GetLabel2() const
virtual Double_t GetPx() const
void SetNCaloPhotonMCLabels(Int_t nLabels)
virtual Double_t GetPhotonPt() const
bool Bool_t
Definition: External.C:53
void CalculateDistanceOfClossetApproachToPrimVtx(const AliVVertex *primVertex)
void SetCaloPhotonMCFlagsAOD(AliVEvent *event, Bool_t enableSort)
virtual Double_t GetPhotonMass() const