#ifndef ALIDIELECTRONSIGNALMC_H
#define ALIDIELECTRONSIGNALMC_H
#include <TNamed.h>
#include <TMCProcess.h>
class AliDielectronSignalMC : public TNamed {
public:
enum EBranchRelation {kUndefined=0, kSame, kDifferent};
enum ESource {kDontCare=0, kPrimary, kFinalState, kDirect, kSecondary, kNoCocktail, kSecondaryFromWeakDecay, kSecondaryFromMaterial};
enum EJpsiRadiativ {kAll=0, kIsRadiative, kIsNotRadiative};
AliDielectronSignalMC();
AliDielectronSignalMC(const Char_t* name, const Char_t* title);
virtual ~AliDielectronSignalMC();
void SetLegPDGs(Int_t pdg1, Int_t pdg2, Bool_t exclude1=kFALSE, Bool_t exclude2=kFALSE)
{fLeg1 = pdg1; fLeg2 = pdg2; fLeg1Exclude=exclude1; fLeg2Exclude=exclude2;}
void SetMotherPDGs(Int_t pdg1, Int_t pdg2, Bool_t exclude1=kFALSE, Bool_t exclude2=kFALSE)
{fMother1 = pdg1; fMother2 = pdg2; fMother1Exclude=exclude1; fMother2Exclude=exclude2;}
void SetGrandMotherPDGs(Int_t pdg1, Int_t pdg2, Bool_t exclude1=kFALSE, Bool_t exclude2=kFALSE)
{fGrandMother1 = pdg1; fGrandMother2 = pdg2; fGrandMother1Exclude=exclude1; fGrandMother2Exclude=exclude2;}
void SetLegSources(ESource s1, ESource s2) {fLeg1Source = s1; fLeg2Source = s2;}
void SetMotherSources(ESource s1, ESource s2) {fMother1Source = s1; fMother2Source = s2;}
void SetGrandMotherSources(ESource s1, ESource s2) {fGrandMother1Source = s1; fGrandMother2Source = s2;}
void SetCheckBothChargesLegs(Bool_t flag1, Bool_t flag2) {fCheckBothChargesLeg1 = flag1; fCheckBothChargesLeg2 = flag2;}
void SetCheckBothChargesMothers(Bool_t flag1, Bool_t flag2) {fCheckBothChargesMother1 = flag1; fCheckBothChargesMother2 = flag2;}
void SetCheckBothChargesGrandMothers(Bool_t flag1, Bool_t flag2) {fCheckBothChargesGrandMother1 = flag1; fCheckBothChargesGrandMother2 = flag2;}
void SetMothersRelation(EBranchRelation relation) {fMothersRelation = relation;}
void SetGEANTProcess(TMCProcess processID) {fGEANTProcess = processID; fCheckGEANTProcess=kTRUE;}
void SetFillPureMCStep(Bool_t fill=kTRUE) {fFillPureMCStep = fill;}
Int_t GetLegPDG(Int_t branch) const {return (branch==1 ? fLeg1 : fLeg2);}
Int_t GetMotherPDG(Int_t branch) const {return (branch==1 ? fMother1 : fMother2);}
Int_t GetGrandMotherPDG(Int_t branch) const {return (branch==1 ? fGrandMother1 : fGrandMother2);}
Bool_t GetLegPDGexclude(Int_t branch) const {return (branch==1 ? fLeg1Exclude : fLeg2Exclude);}
Bool_t GetMotherPDGexclude(Int_t branch) const {return (branch==1 ? fMother1Exclude : fMother2Exclude);}
Bool_t GetGrandMotherPDGexclude(Int_t branch) const {return (branch==1 ? fGrandMother1Exclude : fGrandMother2Exclude);}
ESource GetLegSource(Int_t branch) const {return (branch==1 ? fLeg1Source : fLeg2Source);}
ESource GetMotherSource(Int_t branch) const {return (branch==1 ? fMother1Source : fMother2Source);}
ESource GetGrandMotherSource(Int_t branch) const {return (branch==1 ? fGrandMother1Source : fGrandMother2Source);}
Bool_t GetCheckBothChargesLegs(Int_t branch) const {return (branch==1 ? fCheckBothChargesLeg1 : fCheckBothChargesLeg2);}
Bool_t GetCheckBothChargesMothers(Int_t branch) const {return (branch==1 ? fCheckBothChargesMother1 : fCheckBothChargesMother2);}
Bool_t GetCheckBothChargesGrandMothers(Int_t branch) const {return (branch==1 ? fCheckBothChargesGrandMother1 : fCheckBothChargesGrandMother2);}
EBranchRelation GetMothersRelation() const {return fMothersRelation;}
TMCProcess GetGEANTProcess() const {return fGEANTProcess;}
Bool_t GetCheckGEANTProcess() const {return fCheckGEANTProcess;}
Bool_t GetFillPureMCStep() const {return fFillPureMCStep;}
void SetJpsiRadiative(EJpsiRadiativ rad) { fJpsiRadiative=rad; }
EJpsiRadiativ GetJpsiRadiative() const { return fJpsiRadiative; }
private:
Int_t fLeg1;
Int_t fLeg2;
Int_t fMother1;
Int_t fMother2;
Int_t fGrandMother1;
Int_t fGrandMother2;
Bool_t fLeg1Exclude;
Bool_t fLeg2Exclude;
Bool_t fMother1Exclude;
Bool_t fMother2Exclude;
Bool_t fGrandMother1Exclude;
Bool_t fGrandMother2Exclude;
ESource fLeg1Source;
ESource fLeg2Source;
ESource fMother1Source;
ESource fMother2Source;
ESource fGrandMother1Source;
ESource fGrandMother2Source;
Bool_t fCheckBothChargesLeg1;
Bool_t fCheckBothChargesLeg2;
Bool_t fCheckBothChargesMother1;
Bool_t fCheckBothChargesMother2;
Bool_t fCheckBothChargesGrandMother1;
Bool_t fCheckBothChargesGrandMother2;
Bool_t fCheckGEANTProcess;
EBranchRelation fMothersRelation;
TMCProcess fGEANTProcess;
EJpsiRadiativ fJpsiRadiative;
Bool_t fFillPureMCStep;
ClassDef(AliDielectronSignalMC,3);
};
#endif
AliDielectronSignalMC.h:1 AliDielectronSignalMC.h:2 AliDielectronSignalMC.h:3 AliDielectronSignalMC.h:4 AliDielectronSignalMC.h:5 AliDielectronSignalMC.h:6 AliDielectronSignalMC.h:7 AliDielectronSignalMC.h:8 AliDielectronSignalMC.h:9 AliDielectronSignalMC.h:10 AliDielectronSignalMC.h:11 AliDielectronSignalMC.h:12 AliDielectronSignalMC.h:13 AliDielectronSignalMC.h:14 AliDielectronSignalMC.h:15 AliDielectronSignalMC.h:16 AliDielectronSignalMC.h:17 AliDielectronSignalMC.h:18 AliDielectronSignalMC.h:19 AliDielectronSignalMC.h:20 AliDielectronSignalMC.h:21 AliDielectronSignalMC.h:22 AliDielectronSignalMC.h:23 AliDielectronSignalMC.h:24 AliDielectronSignalMC.h:25 AliDielectronSignalMC.h:26 AliDielectronSignalMC.h:27 AliDielectronSignalMC.h:28 AliDielectronSignalMC.h:29 AliDielectronSignalMC.h:30 AliDielectronSignalMC.h:31 AliDielectronSignalMC.h:32 AliDielectronSignalMC.h:33 AliDielectronSignalMC.h:34 AliDielectronSignalMC.h:35 AliDielectronSignalMC.h:36 AliDielectronSignalMC.h:37 AliDielectronSignalMC.h:38 AliDielectronSignalMC.h:39 AliDielectronSignalMC.h:40 AliDielectronSignalMC.h:41 AliDielectronSignalMC.h:42 AliDielectronSignalMC.h:43 AliDielectronSignalMC.h:44 AliDielectronSignalMC.h:45 AliDielectronSignalMC.h:46 AliDielectronSignalMC.h:47 AliDielectronSignalMC.h:48 AliDielectronSignalMC.h:49 AliDielectronSignalMC.h:50 AliDielectronSignalMC.h:51 AliDielectronSignalMC.h:52 AliDielectronSignalMC.h:53 AliDielectronSignalMC.h:54 AliDielectronSignalMC.h:55 AliDielectronSignalMC.h:56 AliDielectronSignalMC.h:57 AliDielectronSignalMC.h:58 AliDielectronSignalMC.h:59 AliDielectronSignalMC.h:60 AliDielectronSignalMC.h:61 AliDielectronSignalMC.h:62 AliDielectronSignalMC.h:63 AliDielectronSignalMC.h:64 AliDielectronSignalMC.h:65 AliDielectronSignalMC.h:66 AliDielectronSignalMC.h:67 AliDielectronSignalMC.h:68 AliDielectronSignalMC.h:69 AliDielectronSignalMC.h:70 AliDielectronSignalMC.h:71 AliDielectronSignalMC.h:72 AliDielectronSignalMC.h:73 AliDielectronSignalMC.h:74 AliDielectronSignalMC.h:75 AliDielectronSignalMC.h:76 AliDielectronSignalMC.h:77 AliDielectronSignalMC.h:78 AliDielectronSignalMC.h:79 AliDielectronSignalMC.h:80 AliDielectronSignalMC.h:81 AliDielectronSignalMC.h:82 AliDielectronSignalMC.h:83 AliDielectronSignalMC.h:84 AliDielectronSignalMC.h:85 AliDielectronSignalMC.h:86 AliDielectronSignalMC.h:87 AliDielectronSignalMC.h:88 AliDielectronSignalMC.h:89 AliDielectronSignalMC.h:90 AliDielectronSignalMC.h:91 AliDielectronSignalMC.h:92 AliDielectronSignalMC.h:93 AliDielectronSignalMC.h:94 AliDielectronSignalMC.h:95 AliDielectronSignalMC.h:96 AliDielectronSignalMC.h:97 AliDielectronSignalMC.h:98 AliDielectronSignalMC.h:99 AliDielectronSignalMC.h:100 AliDielectronSignalMC.h:101 AliDielectronSignalMC.h:102 AliDielectronSignalMC.h:103 AliDielectronSignalMC.h:104 AliDielectronSignalMC.h:105 AliDielectronSignalMC.h:106 AliDielectronSignalMC.h:107 AliDielectronSignalMC.h:108 AliDielectronSignalMC.h:109 AliDielectronSignalMC.h:110 AliDielectronSignalMC.h:111 AliDielectronSignalMC.h:112 AliDielectronSignalMC.h:113 AliDielectronSignalMC.h:114 AliDielectronSignalMC.h:115 AliDielectronSignalMC.h:116 AliDielectronSignalMC.h:117 AliDielectronSignalMC.h:118 AliDielectronSignalMC.h:119 AliDielectronSignalMC.h:120 AliDielectronSignalMC.h:121 AliDielectronSignalMC.h:122 AliDielectronSignalMC.h:123 AliDielectronSignalMC.h:124 AliDielectronSignalMC.h:125 AliDielectronSignalMC.h:126 AliDielectronSignalMC.h:127 AliDielectronSignalMC.h:128 AliDielectronSignalMC.h:129 AliDielectronSignalMC.h:130 AliDielectronSignalMC.h:131 AliDielectronSignalMC.h:132 AliDielectronSignalMC.h:133 AliDielectronSignalMC.h:134 AliDielectronSignalMC.h:135 AliDielectronSignalMC.h:136 AliDielectronSignalMC.h:137 AliDielectronSignalMC.h:138 AliDielectronSignalMC.h:139 AliDielectronSignalMC.h:140 AliDielectronSignalMC.h:141 AliDielectronSignalMC.h:142 AliDielectronSignalMC.h:143 AliDielectronSignalMC.h:144 AliDielectronSignalMC.h:145 AliDielectronSignalMC.h:146 AliDielectronSignalMC.h:147 AliDielectronSignalMC.h:148 AliDielectronSignalMC.h:149 AliDielectronSignalMC.h:150 AliDielectronSignalMC.h:151 AliDielectronSignalMC.h:152 AliDielectronSignalMC.h:153 AliDielectronSignalMC.h:154 AliDielectronSignalMC.h:155 AliDielectronSignalMC.h:156