ROOT logo
//
// Mini-Event
// Contains only the useful quantities computed on the event
// which can be used for event mixing, or for direct output
// when doing analysis w.r. to multiplicity or event plane, for example.
//
// Author: A. Pulvirenti
//

#include "AliRsnMiniParticle.h"
#include "AliRsnMiniEvent.h"

ClassImp(AliRsnMiniEvent)

//__________________________________________________________________________________________________
void AliRsnMiniEvent::AddParticle(AliRsnMiniParticle copy)
{
//
// Add a new particle to the list and returns a pointer to it,
// in order to allow to se its parameters.
//

   Int_t n = fParticles.GetEntries();
   new (fParticles[n]) AliRsnMiniParticle(copy);
}

//__________________________________________________________________________________________________
AliRsnMiniParticle *AliRsnMiniEvent::GetParticle(Int_t i)
{
//
// Return the particle
//

   if (i < 0 || i > fParticles.GetEntriesFast()) return 0x0;

   return (AliRsnMiniParticle *)fParticles[i];
}

//__________________________________________________________________________________________________
AliRsnMiniParticle *AliRsnMiniEvent::LeadingParticle()
{
//
// Return the leading particle
//

   if (fLeading < 0) return 0x0;
   if (fLeading >= fParticles.GetEntriesFast()) return 0x0;

   return (AliRsnMiniParticle *)fParticles[fLeading];
}

//__________________________________________________________________________________________________
Int_t AliRsnMiniEvent::CountParticles(TArrayI &found, Char_t charge, Int_t cutID)
{
//
// Counts how many particles have the specified charge and cut bit
// if charge is not '+', '-' or '0', all charges are considered
// if cut bit is < 0, it is not checked
//

   Int_t i, npart = fParticles.GetEntriesFast();
   Int_t    count = 0;
   AliRsnMiniParticle *part = 0x0;

   found.Set(npart);

   for (i = 0; i < npart; i++) {
      part = (AliRsnMiniParticle *)fParticles[i];
      if (charge == '+' || charge == '-' || charge == '0') {
         if (part->Charge() != charge) continue;
      }
      if (cutID >= 0) {
         if (!part->HasCutBit(cutID)) continue;
      }
      found[count] = i;
      count++;
   }

   found.Set(count);
   return count;
}
 AliRsnMiniEvent.cxx:1
 AliRsnMiniEvent.cxx:2
 AliRsnMiniEvent.cxx:3
 AliRsnMiniEvent.cxx:4
 AliRsnMiniEvent.cxx:5
 AliRsnMiniEvent.cxx:6
 AliRsnMiniEvent.cxx:7
 AliRsnMiniEvent.cxx:8
 AliRsnMiniEvent.cxx:9
 AliRsnMiniEvent.cxx:10
 AliRsnMiniEvent.cxx:11
 AliRsnMiniEvent.cxx:12
 AliRsnMiniEvent.cxx:13
 AliRsnMiniEvent.cxx:14
 AliRsnMiniEvent.cxx:15
 AliRsnMiniEvent.cxx:16
 AliRsnMiniEvent.cxx:17
 AliRsnMiniEvent.cxx:18
 AliRsnMiniEvent.cxx:19
 AliRsnMiniEvent.cxx:20
 AliRsnMiniEvent.cxx:21
 AliRsnMiniEvent.cxx:22
 AliRsnMiniEvent.cxx:23
 AliRsnMiniEvent.cxx:24
 AliRsnMiniEvent.cxx:25
 AliRsnMiniEvent.cxx:26
 AliRsnMiniEvent.cxx:27
 AliRsnMiniEvent.cxx:28
 AliRsnMiniEvent.cxx:29
 AliRsnMiniEvent.cxx:30
 AliRsnMiniEvent.cxx:31
 AliRsnMiniEvent.cxx:32
 AliRsnMiniEvent.cxx:33
 AliRsnMiniEvent.cxx:34
 AliRsnMiniEvent.cxx:35
 AliRsnMiniEvent.cxx:36
 AliRsnMiniEvent.cxx:37
 AliRsnMiniEvent.cxx:38
 AliRsnMiniEvent.cxx:39
 AliRsnMiniEvent.cxx:40
 AliRsnMiniEvent.cxx:41
 AliRsnMiniEvent.cxx:42
 AliRsnMiniEvent.cxx:43
 AliRsnMiniEvent.cxx:44
 AliRsnMiniEvent.cxx:45
 AliRsnMiniEvent.cxx:46
 AliRsnMiniEvent.cxx:47
 AliRsnMiniEvent.cxx:48
 AliRsnMiniEvent.cxx:49
 AliRsnMiniEvent.cxx:50
 AliRsnMiniEvent.cxx:51
 AliRsnMiniEvent.cxx:52
 AliRsnMiniEvent.cxx:53
 AliRsnMiniEvent.cxx:54
 AliRsnMiniEvent.cxx:55
 AliRsnMiniEvent.cxx:56
 AliRsnMiniEvent.cxx:57
 AliRsnMiniEvent.cxx:58
 AliRsnMiniEvent.cxx:59
 AliRsnMiniEvent.cxx:60
 AliRsnMiniEvent.cxx:61
 AliRsnMiniEvent.cxx:62
 AliRsnMiniEvent.cxx:63
 AliRsnMiniEvent.cxx:64
 AliRsnMiniEvent.cxx:65
 AliRsnMiniEvent.cxx:66
 AliRsnMiniEvent.cxx:67
 AliRsnMiniEvent.cxx:68
 AliRsnMiniEvent.cxx:69
 AliRsnMiniEvent.cxx:70
 AliRsnMiniEvent.cxx:71
 AliRsnMiniEvent.cxx:72
 AliRsnMiniEvent.cxx:73
 AliRsnMiniEvent.cxx:74
 AliRsnMiniEvent.cxx:75
 AliRsnMiniEvent.cxx:76
 AliRsnMiniEvent.cxx:77
 AliRsnMiniEvent.cxx:78
 AliRsnMiniEvent.cxx:79
 AliRsnMiniEvent.cxx:80
 AliRsnMiniEvent.cxx:81