+
+ // Select events with fragmentation photon, decay photon, pi0 or eta going to PHOS or EMCAL and central barrel
+ virtual Bool_t TriggerOnSelectedParticles(Int_t np);
+
+ virtual void SetCheckPHOS (Bool_t b) {fCheckPHOS = b;}
+ virtual void SetCheckEMCAL (Bool_t b) {fCheckEMCAL = b;}
+ virtual void SetCheckBarrel (Bool_t b) {fCheckBarrel = b;}
+
+ //virtual void SetElectronInEMCAL (Bool_t b) {fEleInEMCAL = b;}
+ //virtual void SetPhotonInPHOS (Bool_t b) {fCheckPHOS = b; fPhotonInCalo = b;} // Not in use
+
+ virtual void SetFragPhotonInCalo (Bool_t b) { fFragPhotonInCalo = b;}
+ virtual void SetFragPhotonInBarrel(Bool_t b) {fCheckBarrel = b; fFragPhotonInCalo = b;}
+ virtual void SetFragPhotonInEMCAL (Bool_t b) {fCheckEMCAL = b; fFragPhotonInCalo = b;}
+ virtual void SetFragPhotonInPHOS (Bool_t b) {fCheckPHOS = b; fFragPhotonInCalo = b;}
+
+ virtual void SetHadronInCalo (Bool_t b) { fHadronInCalo = b;}
+ virtual void SetHadronInBarrel (Bool_t b) {fCheckBarrel = b; fHadronInCalo = b;}
+ virtual void SetHadronInEMCAL (Bool_t b) {fCheckEMCAL = b; fHadronInCalo = b;}
+ virtual void SetHadronInPHOS (Bool_t b) {fCheckPHOS = b; fHadronInCalo = b;}
+
+ virtual void SetElectronInCalo (Bool_t b) { fEleInCalo = b;}
+ virtual void SetElectronInBarrel (Bool_t b) {fCheckBarrel = b; fEleInCalo = b;}
+ virtual void SetElectronInEMCAL (Bool_t b) {fCheckEMCAL = b; fEleInCalo = b;}
+ virtual void SetElectronInPHOS (Bool_t b) {fCheckPHOS = b; fEleInCalo = b;}
+
+ virtual void SetDecayPhotonInCalo (Bool_t d) {fDecayPhotonInCalo = d;}
+ virtual void SetDecayPhotonInBarrel(Bool_t d) {fDecayPhotonInCalo = d; fCheckBarrel = d;}
+ virtual void SetDecayPhotonInEMCAL(Bool_t d) {fDecayPhotonInCalo = d; fCheckEMCAL = d;}
+ virtual void SetDecayPhotonInPHOS (Bool_t d) {fDecayPhotonInCalo = d; fCheckPHOS = d;}
+
+ virtual void SetPi0InCalo (Bool_t b, Bool_t f = kFALSE) {fPi0InCalo = b; fForceNeutralMeson2PhotonDecay = f;}
+ virtual void SetPi0InBarrel (Bool_t b, Bool_t f = kFALSE) {fPi0InCalo = b; fForceNeutralMeson2PhotonDecay = f; fCheckBarrel= b; }
+ virtual void SetPi0InEMCAL (Bool_t b, Bool_t f = kFALSE) {fPi0InCalo = b; fForceNeutralMeson2PhotonDecay = f; fCheckEMCAL = b; }
+ virtual void SetPi0InPHOS (Bool_t b, Bool_t f = kFALSE) {fPi0InCalo = b; fForceNeutralMeson2PhotonDecay = f; fCheckPHOS = b; }
+
+ virtual void SetEtaInCalo (Bool_t b, Bool_t f = kFALSE) {fEtaInCalo = b; fForceNeutralMeson2PhotonDecay = f;}
+ virtual void SetEtaInBarrel (Bool_t b, Bool_t f = kFALSE) {fEtaInCalo = b; fForceNeutralMeson2PhotonDecay = f; fCheckBarrel= b; }
+ virtual void SetEtaInEMCAL (Bool_t b, Bool_t f = kFALSE) {fEtaInCalo = b; fForceNeutralMeson2PhotonDecay = f; fCheckEMCAL = b; }
+ virtual void SetEtaInPHOS (Bool_t b, Bool_t f = kFALSE) {fEtaInCalo = b; fForceNeutralMeson2PhotonDecay = f; fCheckPHOS = b; }
+
+ virtual void SetPi0PhotonDecayInBarrel(Bool_t b, Bool_t f = kFALSE) {fPi0InCalo = b; fDecayPhotonInCalo = b; fForceNeutralMeson2PhotonDecay = f; fCheckBarrel = b; }
+ virtual void SetPi0PhotonDecayInEMCAL (Bool_t b, Bool_t f = kFALSE) {fPi0InCalo = b; fDecayPhotonInCalo = b; fForceNeutralMeson2PhotonDecay = f; fCheckEMCAL = b; }
+ virtual void SetPi0PhotonDecayInPHOS (Bool_t b, Bool_t f = kFALSE) {fPi0InCalo = b; fDecayPhotonInCalo = b; fForceNeutralMeson2PhotonDecay = f; fCheckPHOS = b; }
+
+ virtual void SetEtaPhotonDecayInBarrel(Bool_t b, Bool_t f = kFALSE) {fEtaInCalo = b; fDecayPhotonInCalo = b; fForceNeutralMeson2PhotonDecay = f; fCheckBarrel = b; }
+ virtual void SetEtaPhotonDecayInEMCAL (Bool_t b, Bool_t f = kFALSE) {fEtaInCalo = b; fDecayPhotonInCalo = b; fForceNeutralMeson2PhotonDecay = f; fCheckEMCAL = b; }
+ virtual void SetEtaPhotonDecayInPHOS (Bool_t b, Bool_t f = kFALSE) {fEtaInCalo = b; fDecayPhotonInCalo = b; fForceNeutralMeson2PhotonDecay = f; fCheckPHOS = b; }
+
+
+ // Trigger on a minimum multiplicity
+ virtual void SetTriggerChargedMultiplicity(Int_t multiplicity, Float_t etamax = 0, Float_t ptmin = -1.)
+ {fTriggerMultiplicity = multiplicity; fTriggerMultiplicityEta = etamax;
+ fTriggerMultiplicityPtMin = ptmin;}
+
+ // Trigger on a minimum multiplicity for a given eta range
+ virtual void SetTriggerMultiplicityEtaRange(Int_t multiplicity, Float_t etamin = 0., Float_t etamax = 0., Float_t ptmin = -1.)
+ {fTriggerMultiplicity = multiplicity; fTriggerMultiplicityEtaMin = etamin; fTriggerMultiplicityEtaMax = etamax;
+ fTriggerMultiplicityPtMin = ptmin;}
+
+ // Calorimeters acceptance
+ // Set Phi in degrees, and Eta coverage, should not be negative
+ virtual void SetBarrelAcceptance(Float_t deta) {fTriggerEta = deta ;}
+ virtual void SetTriggerY(Float_t dy) {fTriggerY = dy;}
+ virtual void SetEMCALAcceptance (Float_t phimin, Float_t phimax, Float_t deta) {fEMCALMinPhi = phimin ; fEMCALMaxPhi = phimax ; fEMCALEta = deta ; }
+ virtual void SetPHOSAcceptance (Float_t phimin, Float_t phimax, Float_t deta) {fPHOSMinPhi = phimin ; fPHOSMaxPhi = phimax ; fPHOSEta = deta ; }
+ virtual void SetRotateParticleInPHOSeta(Bool_t b) {fCheckPHOSeta = b;}
+
+ virtual void SetTriggerParticleMinPt(Float_t pt) {fTriggerParticleMinPt = pt;}
+// virtual void SetPhotonMinPt(Float_t pt) {fPhotonMinPt = pt;}
+// virtual void SetElectronMinPt(Float_t pt) {fElectronMinPt = pt;}
+ // Trigger and rotate event
+ void RotatePhi(Bool_t& okdd);
+
+ // Trigger on a single particle (not related to calorimeter trigger above)
+ virtual void SetTriggerParticle(Int_t particle = 0, Float_t etamax = 0.9, Float_t ptmin = -1, Float_t ptmax = 1000)
+ {fTriggerParticle = particle; fTriggerEta = etamax; fTriggerEtaMin = etamax; fTriggerMinPt = ptmin; fTriggerMaxPt = ptmax;}
+ virtual void SetTriggerParticle(Int_t particle, Float_t etamin, Float_t etamax, Float_t ptmin, Float_t ptmax)
+ {fTriggerParticle = particle; fTriggerEtaMin = etamin, fTriggerEta = etamax; fTriggerMinPt = ptmin; fTriggerMaxPt = ptmax;}
+
+ //
+ // Heavy flavor options
+ //