Possibility to apply pT-cut in multiplicity trigger.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 5 Oct 2009 07:58:06 +0000 (07:58 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 5 Oct 2009 07:58:06 +0000 (07:58 +0000)
PYTHIA6/AliGenPythia.cxx
PYTHIA6/AliGenPythia.h

index c118daa..bbc7145 100644 (file)
@@ -116,6 +116,7 @@ AliGenPythia::AliGenPythia():
     fTriggerEta(0.9),     
     fTriggerMultiplicity(0),
     fTriggerMultiplicityEta(0),
+    fTriggerMultiplicityPtMin(0),
     fCountMode(kCountAll),      
     fHeader(0),  
     fRL(0),      
@@ -212,6 +213,7 @@ AliGenPythia::AliGenPythia(Int_t npart)
      fTriggerEta(0.9),     
      fTriggerMultiplicity(0),
      fTriggerMultiplicityEta(0),
+     fTriggerMultiplicityPtMin(0),
      fCountMode(kCountAll),      
      fHeader(0),  
      fRL(0),      
@@ -966,10 +968,13 @@ Int_t  AliGenPythia::GenerateMB()
        // Initial state particle
        if (statusCode != 1)
          continue;
-       
+       // eta cut
        if (fTriggerMultiplicityEta > 0 && TMath::Abs(iparticle->Eta()) > fTriggerMultiplicityEta)
          continue;
-       
+       // pt cut
+       if (iparticle->Pt() < fTriggerMultiplicityPtMin) 
+           continue;
+
        TParticlePDG* pdgPart = iparticle->GetPDG();
        if (pdgPart && pdgPart->Charge() == 0)
          continue;
@@ -982,7 +987,7 @@ Int_t  AliGenPythia::GenerateMB()
        return 0;
       }
       
-      Printf("Triggered on event with multiplicity of %d > %d", multiplicity, fTriggerMultiplicity);
+      Printf("Triggered on event with multiplicity of %d >= %d", multiplicity, fTriggerMultiplicity);
     }    
     
      // Select events with a photon  pt > min pt going to PHOS eta acceptance or exactly PHOS eta phi
index 3c44249..83eef4e 100644 (file)
@@ -103,7 +103,9 @@ class AliGenPythia : public AliGenMC
     virtual void  SetPhotonInPHOS(Bool_t b)      {fCheckPHOS    = b; fPhotonInCalo     = b;}
 
     // Trigger on a minimum multiplicity
-    virtual void    SetTriggerChargedMultiplicity(Int_t multiplicity, Float_t etamax = 0) {fTriggerMultiplicity = multiplicity; fTriggerMultiplicityEta = etamax; }
+    virtual void  SetTriggerChargedMultiplicity(Int_t multiplicity, Float_t etamax = 0, Float_t ptmin = -1.) 
+    {fTriggerMultiplicity = multiplicity; fTriggerMultiplicityEta = etamax; 
+      fTriggerMultiplicityPtMin = ptmin;}
        
     virtual void  SetPhotonInPHOSeta(Bool_t b)   {fCheckPHOSeta = b; fPhotonInCalo     = b;}
     virtual void  SetFragPhotonOrPi0MinPt(Float_t pt)      {fFragPhotonOrPi0MinPt = pt;}
@@ -261,8 +263,9 @@ class AliGenPythia : public AliGenMC
     Int_t   fNucPdf;                // Nuclear pdf 0: EKS98 1: EPS08
     Int_t   fTriggerParticle;       // Trigger on this particle ...
     Float_t fTriggerEta;            // .. within |eta| < fTriggerEta
-    Int_t       fTriggerMultiplicity;    // Trigger on events with a minimum charged multiplicity
-    Float_t     fTriggerMultiplicityEta; // in a given eta range
+    Int_t       fTriggerMultiplicity;       // Trigger on events with a minimum charged multiplicity
+    Float_t     fTriggerMultiplicityEta;    // in a given eta range
+    Float_t     fTriggerMultiplicityPtMin;  // above this pT 
     CountMode_t fCountMode;         // Options for counting when the event will be finished.     
     // fCountMode = kCountAll         --> All particles that end up in the
     //                                    stack are counted