ROOT logo
//
// Class AliMixEventCutObj
//
// AliMixEventCutObj object contains information about one cut on for event mixing
// used by AliMixEventPool class
//
// authors:
//          Martin Vala (martin.vala@cern.ch)
//

#include "AliLog.h"
#include "AliESDEvent.h"
#include "AliAODEvent.h"
#include "AliMultiplicity.h"
#include "AliAODVertex.h"
#include "AliEventplane.h"

#include "AliMixEventCutObj.h"

ClassImp(AliMixEventCutObj)

//_________________________________________________________________________________________________
AliMixEventCutObj::AliMixEventCutObj(AliMixEventCutObj::EEPAxis_t type, Float_t min, Float_t max, Float_t step, const char *opt) : TObject(),
   fCutType((Int_t)type),
   fCutOpt(opt),
   fCutMin(min),
   fCutMax(max),
   fCutStep(step),
   fCutSmallVal(0),
   fCurrentVal(min)
{
   //
   // Default constructor
   //
   AliDebug(AliLog::kDebug + 5, "<-");
   if (fCutStep < 1e-5) AliError("fCutStep is too small !!! This cut will not work !!!");
   AliDebug(AliLog::kDebug + 5, "->");
}

//_________________________________________________________________________________________________
AliMixEventCutObj::AliMixEventCutObj(const AliMixEventCutObj &obj) : TObject(obj),
   fCutType(obj.fCutType),
   fCutOpt(obj.fCutOpt),
   fCutMin(obj.fCutMin),
   fCutMax(obj.fCutMax),
   fCutStep(obj.fCutStep),
   fCutSmallVal(obj.fCutSmallVal),
   fCurrentVal(obj.fCurrentVal)
{
   //
   // Copy constructor
   //
   AliDebug(AliLog::kDebug + 5, "<-");
   AliDebug(AliLog::kDebug + 5, "->");
}

//_________________________________________________________________________________________________
AliMixEventCutObj &AliMixEventCutObj::operator=(const AliMixEventCutObj &obj)
{
   //
   // Assigned operator
   //
   if (&obj != this) {
      TObject::operator=(obj);
      fCutType = obj.fCutType;
      fCutOpt = obj.fCutOpt;
      fCutMin = obj.fCutMin;
      fCutMax = obj.fCutMax;
      fCutStep = obj.fCutStep;
      fCutSmallVal = obj.fCutSmallVal;
      fCurrentVal = obj.fCurrentVal;
//       fNoMore = obj.fNoMore;
   }
   return *this;
}


//_________________________________________________________________________________________________
void AliMixEventCutObj::Reset()
{
   //
   // Reset cut
   //
   AliDebug(AliLog::kDebug + 5, "<-");
   fCurrentVal = fCutMin - fCutStep;
   AliDebug(AliLog::kDebug + 5, "->");
}
//_________________________________________________________________________________________________
Bool_t AliMixEventCutObj::HasMore() const
{
   //
   // Return kTRUE when fCurrentVal is in interval of cut range
   //
   return ((fCurrentVal + fCutStep) < fCutMax);
}

//_________________________________________________________________________________________________
void AliMixEventCutObj::AddStep()
{
   //
   // Adds step
   //
   fCurrentVal += fCutStep;
}

//_________________________________________________________________________________________________
void AliMixEventCutObj::Print(const Option_t *) const
{
   //
   // Prints cut information
   //
   AliInfo(Form("%s %f %f %f", GetCutName(fCutType), fCutMin, fCutMax, fCutStep));
}
//_________________________________________________________________________________________________
void AliMixEventCutObj::PrintCurrentInterval()
{
   //
   // Prints current cut interval information
   //
   AliDebug(AliLog::kDebug, Form("%s <%f,%f>", GetCutName(fCutType), GetCurrentMin(), GetCurrentMax()));
}

//_________________________________________________________________________________________________
Int_t AliMixEventCutObj::GetNumberOfBins() const
{
   //
   // Returns number of bins
   //
   if (fCutStep < 1e-5) return -1;
   return (Int_t)((fCutMax - fCutMin) / fCutStep);
}

//_________________________________________________________________________________________________
Int_t AliMixEventCutObj::GetBinNumber(Float_t num) const
{
   //
   // Returns bin (index) number in current cut.
   // Returns -1 in case of out of range
   //
   Int_t binNum = 0;
   for (Float_t iCurrent = fCutMin; iCurrent < fCutMax; iCurrent += fCutStep) {
      binNum++;
      if ((num >= iCurrent) && (num < iCurrent + fCutStep - fCutSmallVal)) {
         return binNum;
      }
   }
   return -1;
}

//_________________________________________________________________________________________________
Int_t AliMixEventCutObj::GetIndex(AliVEvent *ev)
{
   //
   // Finds bin (index) in current cut from event information.
   //
   return GetBinNumber(GetValue(ev));
}

//_________________________________________________________________________________________________
Double_t AliMixEventCutObj::GetValue(AliVEvent *ev)
{
   //
   // Returns value from event
   //

   AliESDEvent *esd = dynamic_cast<AliESDEvent *>(ev);
   if (esd) return GetValue(esd);
   AliAODEvent *aod = dynamic_cast<AliAODEvent *>(ev);
   if (aod) return GetValue(aod);

   AliFatal("Event is not supported in Event Mixing cuts!!!!");
   return -99999;
}

//_________________________________________________________________________________________________
Double_t AliMixEventCutObj::GetValue(AliESDEvent *ev)
{
   //
   // Returns value from esd event
   //

   const AliMultiplicity *multESD = 0;

   switch (fCutType) {
      case kMultiplicity:
         return (Double_t)ev->GetNumberOfTracks();
      case kZVertex:
         return ev->GetVertex()->GetZ();
      case kNumberV0s:
         return ev->GetNumberOfV0s();
      case kNumberTracklets:
         multESD = ev->GetMultiplicity();
         if (multESD) return multESD->GetNumberOfTracklets();
         else AliFatal("esd->GetMultiplicity() is null");
         break;
      case kCentrality:
      {
         AliCentrality *c = ev->GetCentrality();
         if (!c) AliFatal("esd->GetCentrality() is null");
         return c->GetCentralityPercentile(fCutOpt.Data());
      }
      case kEventPlane:
      {
         AliEventplane *evtPlane = ev->GetEventplane();
         if (!evtPlane) evtPlane = new AliEventplane();
         Double_t val = evtPlane->GetEventplane("V0",ev,fCutOpt.Atoi());
         if (!ev->GetEventplane()) delete evtPlane;
         return val;
      }
      case kEventPlaneV0A:
      {
         AliEventplane *evtPlane = ev->GetEventplane();
         if (!evtPlane) evtPlane = new AliEventplane();
         Double_t val = evtPlane->GetEventplane("V0A",ev,fCutOpt.Atoi());
         if (!ev->GetEventplane()) delete evtPlane;
         return val;
      }
      case kEventPlaneV0C:
      {
         AliEventplane *evtPlane = ev->GetEventplane();
         if (!evtPlane) evtPlane = new AliEventplane();
         Double_t val = evtPlane->GetEventplane("V0C",ev,fCutOpt.Atoi());
         if (!ev->GetEventplane()) delete evtPlane;
         return val;
      }
   }

   AliFatal("Mixing Cut TYPE is not supported for ESD");
   return -99999;

}

//_________________________________________________________________________________________________
Double_t AliMixEventCutObj::GetValue(AliAODEvent *ev)
{
   //
   // Returns value from aod event
   //

   AliAODVertex *v=0;
   switch (fCutType) {
      case kMultiplicity:
         return (Double_t) ev->GetNumberOfTracks();
      case kZVertex:
         v = ev->GetVertex(0);
         if (!v)  return -99999;
         return ev->GetVertex(0)->GetZ();
         // if verttex is null return -9999
         return -99999;
      case kNumberV0s:
         return ev->GetNumberOfV0s();
      case kCentrality:
      {
         AliCentrality *c = ev->GetCentrality();
         if (!c) AliFatal("esd->GetCentrality() is null");
         return c->GetCentralityPercentile(fCutOpt.Data());
      }
      case kEventPlane:
      {
         AliEventplane *evtPlane = ev->GetEventplane();
         if (!evtPlane) evtPlane = new AliEventplane();
         Double_t val = evtPlane->GetEventplane("V0A",ev,fCutOpt.Atoi());
         if (!ev->GetEventplane()) delete evtPlane;
         return val;
      }
      case kEventPlaneV0A:
      {
         AliEventplane *evtPlane = ev->GetEventplane();
         if (!evtPlane) evtPlane = new AliEventplane();
         Double_t val = evtPlane->GetEventplane("V0A",ev,fCutOpt.Atoi());
         if (!ev->GetEventplane()) delete evtPlane;
         return val;
      }
      case kEventPlaneV0C:
      {
         AliEventplane *evtPlane = ev->GetEventplane();
         if (!evtPlane) evtPlane = new AliEventplane();
         Double_t val = evtPlane->GetEventplane("V0C",ev,fCutOpt.Atoi());
         if (!ev->GetEventplane()) delete evtPlane;
         return val;
      }
   }

   AliFatal("Mixing Cut TYPE is not supported for AOD");
   return -99999;
}

//_________________________________________________________________________________________________
const char *AliMixEventCutObj::GetCutName(Int_t index) const
{
   //
   // Retruns name of cut
   //

   if (index < 0) index = fCutType;
   switch (index) {
      case kMultiplicity:
         return "Multiplicity";
      case kZVertex:
         return "ZVertex";
      case kNumberV0s:
         return "NumberV0s";
      case kNumberTracklets:
         return "NumberTracklets";
      case kCentrality:
         return Form("kCentrality[%s]", fCutOpt.Data());
      case kEventPlane:
         return Form("EventPlane[%s]", fCutOpt.Data());
      case kEventPlaneV0A:
         return Form("EventPlaneV0A[%s]", fCutOpt.Data());
      case kEventPlaneV0C:
         return Form("EventPlaneV0A[%s]", fCutOpt.Data());
   }
   return "";
}

//_________________________________________________________________________________________________
void AliMixEventCutObj::SetCurrentValueToIndex(Int_t index)
{
   //
   // Sets current value to index
   //

   fCurrentVal = fCutMin;
   for (Int_t i = 0; i < index-1; i++) AddStep();
}

//_________________________________________________________________________________________________
void AliMixEventCutObj::PrintValues(AliVEvent *main, AliVEvent *mix)
{
   //
   // Prints values of both events for current type
   //
   AliInfo(Form("name=%s main=%f mix=%f", GetCutName(), GetValue(main), GetValue(mix)));
}

//_________________________________________________________________________________________________
Bool_t AliMixEventCutObj::IsValid()
{
   //
   // Check if cut is valid
   //
   switch (fCutType) {

      case kCentrality:
      {
         if (fCutOpt.IsNull()) {
            AliError("fCutOpt is null");
            return kFALSE;
         }
         break;
      }
      case kEventPlane:
      {
         if (fCutOpt.IsNull()) {
            AliError("fCutOpt is null");
            return kFALSE;
         }
         if (!fCutOpt.IsDigit()) {
            AliError("fCutOpt is not a digit string");
            return kFALSE;
         }
         break;
      }
      case kEventPlaneV0A:
      {
         if (fCutOpt.IsNull()) {
            AliError("fCutOpt is null");
            return kFALSE;
         }
         if (!fCutOpt.IsDigit()) {
            AliError("fCutOpt is not a digit string");
            return kFALSE;
         }
         break;
      }
      case kEventPlaneV0C:
      {
         if (fCutOpt.IsNull()) {
            AliError("fCutOpt is null");
            return kFALSE;
         }
         if (!fCutOpt.IsDigit()) {
            AliError("fCutOpt is not a digit string");
            return kFALSE;
         }
         break;
      }
      default: {
         break;
      }
   }

   return kTRUE;
}
 AliMixEventCutObj.cxx:1
 AliMixEventCutObj.cxx:2
 AliMixEventCutObj.cxx:3
 AliMixEventCutObj.cxx:4
 AliMixEventCutObj.cxx:5
 AliMixEventCutObj.cxx:6
 AliMixEventCutObj.cxx:7
 AliMixEventCutObj.cxx:8
 AliMixEventCutObj.cxx:9
 AliMixEventCutObj.cxx:10
 AliMixEventCutObj.cxx:11
 AliMixEventCutObj.cxx:12
 AliMixEventCutObj.cxx:13
 AliMixEventCutObj.cxx:14
 AliMixEventCutObj.cxx:15
 AliMixEventCutObj.cxx:16
 AliMixEventCutObj.cxx:17
 AliMixEventCutObj.cxx:18
 AliMixEventCutObj.cxx:19
 AliMixEventCutObj.cxx:20
 AliMixEventCutObj.cxx:21
 AliMixEventCutObj.cxx:22
 AliMixEventCutObj.cxx:23
 AliMixEventCutObj.cxx:24
 AliMixEventCutObj.cxx:25
 AliMixEventCutObj.cxx:26
 AliMixEventCutObj.cxx:27
 AliMixEventCutObj.cxx:28
 AliMixEventCutObj.cxx:29
 AliMixEventCutObj.cxx:30
 AliMixEventCutObj.cxx:31
 AliMixEventCutObj.cxx:32
 AliMixEventCutObj.cxx:33
 AliMixEventCutObj.cxx:34
 AliMixEventCutObj.cxx:35
 AliMixEventCutObj.cxx:36
 AliMixEventCutObj.cxx:37
 AliMixEventCutObj.cxx:38
 AliMixEventCutObj.cxx:39
 AliMixEventCutObj.cxx:40
 AliMixEventCutObj.cxx:41
 AliMixEventCutObj.cxx:42
 AliMixEventCutObj.cxx:43
 AliMixEventCutObj.cxx:44
 AliMixEventCutObj.cxx:45
 AliMixEventCutObj.cxx:46
 AliMixEventCutObj.cxx:47
 AliMixEventCutObj.cxx:48
 AliMixEventCutObj.cxx:49
 AliMixEventCutObj.cxx:50
 AliMixEventCutObj.cxx:51
 AliMixEventCutObj.cxx:52
 AliMixEventCutObj.cxx:53
 AliMixEventCutObj.cxx:54
 AliMixEventCutObj.cxx:55
 AliMixEventCutObj.cxx:56
 AliMixEventCutObj.cxx:57
 AliMixEventCutObj.cxx:58
 AliMixEventCutObj.cxx:59
 AliMixEventCutObj.cxx:60
 AliMixEventCutObj.cxx:61
 AliMixEventCutObj.cxx:62
 AliMixEventCutObj.cxx:63
 AliMixEventCutObj.cxx:64
 AliMixEventCutObj.cxx:65
 AliMixEventCutObj.cxx:66
 AliMixEventCutObj.cxx:67
 AliMixEventCutObj.cxx:68
 AliMixEventCutObj.cxx:69
 AliMixEventCutObj.cxx:70
 AliMixEventCutObj.cxx:71
 AliMixEventCutObj.cxx:72
 AliMixEventCutObj.cxx:73
 AliMixEventCutObj.cxx:74
 AliMixEventCutObj.cxx:75
 AliMixEventCutObj.cxx:76
 AliMixEventCutObj.cxx:77
 AliMixEventCutObj.cxx:78
 AliMixEventCutObj.cxx:79
 AliMixEventCutObj.cxx:80
 AliMixEventCutObj.cxx:81
 AliMixEventCutObj.cxx:82
 AliMixEventCutObj.cxx:83
 AliMixEventCutObj.cxx:84
 AliMixEventCutObj.cxx:85
 AliMixEventCutObj.cxx:86
 AliMixEventCutObj.cxx:87
 AliMixEventCutObj.cxx:88
 AliMixEventCutObj.cxx:89
 AliMixEventCutObj.cxx:90
 AliMixEventCutObj.cxx:91
 AliMixEventCutObj.cxx:92
 AliMixEventCutObj.cxx:93
 AliMixEventCutObj.cxx:94
 AliMixEventCutObj.cxx:95
 AliMixEventCutObj.cxx:96
 AliMixEventCutObj.cxx:97
 AliMixEventCutObj.cxx:98
 AliMixEventCutObj.cxx:99
 AliMixEventCutObj.cxx:100
 AliMixEventCutObj.cxx:101
 AliMixEventCutObj.cxx:102
 AliMixEventCutObj.cxx:103
 AliMixEventCutObj.cxx:104
 AliMixEventCutObj.cxx:105
 AliMixEventCutObj.cxx:106
 AliMixEventCutObj.cxx:107
 AliMixEventCutObj.cxx:108
 AliMixEventCutObj.cxx:109
 AliMixEventCutObj.cxx:110
 AliMixEventCutObj.cxx:111
 AliMixEventCutObj.cxx:112
 AliMixEventCutObj.cxx:113
 AliMixEventCutObj.cxx:114
 AliMixEventCutObj.cxx:115
 AliMixEventCutObj.cxx:116
 AliMixEventCutObj.cxx:117
 AliMixEventCutObj.cxx:118
 AliMixEventCutObj.cxx:119
 AliMixEventCutObj.cxx:120
 AliMixEventCutObj.cxx:121
 AliMixEventCutObj.cxx:122
 AliMixEventCutObj.cxx:123
 AliMixEventCutObj.cxx:124
 AliMixEventCutObj.cxx:125
 AliMixEventCutObj.cxx:126
 AliMixEventCutObj.cxx:127
 AliMixEventCutObj.cxx:128
 AliMixEventCutObj.cxx:129
 AliMixEventCutObj.cxx:130
 AliMixEventCutObj.cxx:131
 AliMixEventCutObj.cxx:132
 AliMixEventCutObj.cxx:133
 AliMixEventCutObj.cxx:134
 AliMixEventCutObj.cxx:135
 AliMixEventCutObj.cxx:136
 AliMixEventCutObj.cxx:137
 AliMixEventCutObj.cxx:138
 AliMixEventCutObj.cxx:139
 AliMixEventCutObj.cxx:140
 AliMixEventCutObj.cxx:141
 AliMixEventCutObj.cxx:142
 AliMixEventCutObj.cxx:143
 AliMixEventCutObj.cxx:144
 AliMixEventCutObj.cxx:145
 AliMixEventCutObj.cxx:146
 AliMixEventCutObj.cxx:147
 AliMixEventCutObj.cxx:148
 AliMixEventCutObj.cxx:149
 AliMixEventCutObj.cxx:150
 AliMixEventCutObj.cxx:151
 AliMixEventCutObj.cxx:152
 AliMixEventCutObj.cxx:153
 AliMixEventCutObj.cxx:154
 AliMixEventCutObj.cxx:155
 AliMixEventCutObj.cxx:156
 AliMixEventCutObj.cxx:157
 AliMixEventCutObj.cxx:158
 AliMixEventCutObj.cxx:159
 AliMixEventCutObj.cxx:160
 AliMixEventCutObj.cxx:161
 AliMixEventCutObj.cxx:162
 AliMixEventCutObj.cxx:163
 AliMixEventCutObj.cxx:164
 AliMixEventCutObj.cxx:165
 AliMixEventCutObj.cxx:166
 AliMixEventCutObj.cxx:167
 AliMixEventCutObj.cxx:168
 AliMixEventCutObj.cxx:169
 AliMixEventCutObj.cxx:170
 AliMixEventCutObj.cxx:171
 AliMixEventCutObj.cxx:172
 AliMixEventCutObj.cxx:173
 AliMixEventCutObj.cxx:174
 AliMixEventCutObj.cxx:175
 AliMixEventCutObj.cxx:176
 AliMixEventCutObj.cxx:177
 AliMixEventCutObj.cxx:178
 AliMixEventCutObj.cxx:179
 AliMixEventCutObj.cxx:180
 AliMixEventCutObj.cxx:181
 AliMixEventCutObj.cxx:182
 AliMixEventCutObj.cxx:183
 AliMixEventCutObj.cxx:184
 AliMixEventCutObj.cxx:185
 AliMixEventCutObj.cxx:186
 AliMixEventCutObj.cxx:187
 AliMixEventCutObj.cxx:188
 AliMixEventCutObj.cxx:189
 AliMixEventCutObj.cxx:190
 AliMixEventCutObj.cxx:191
 AliMixEventCutObj.cxx:192
 AliMixEventCutObj.cxx:193
 AliMixEventCutObj.cxx:194
 AliMixEventCutObj.cxx:195
 AliMixEventCutObj.cxx:196
 AliMixEventCutObj.cxx:197
 AliMixEventCutObj.cxx:198
 AliMixEventCutObj.cxx:199
 AliMixEventCutObj.cxx:200
 AliMixEventCutObj.cxx:201
 AliMixEventCutObj.cxx:202
 AliMixEventCutObj.cxx:203
 AliMixEventCutObj.cxx:204
 AliMixEventCutObj.cxx:205
 AliMixEventCutObj.cxx:206
 AliMixEventCutObj.cxx:207
 AliMixEventCutObj.cxx:208
 AliMixEventCutObj.cxx:209
 AliMixEventCutObj.cxx:210
 AliMixEventCutObj.cxx:211
 AliMixEventCutObj.cxx:212
 AliMixEventCutObj.cxx:213
 AliMixEventCutObj.cxx:214
 AliMixEventCutObj.cxx:215
 AliMixEventCutObj.cxx:216
 AliMixEventCutObj.cxx:217
 AliMixEventCutObj.cxx:218
 AliMixEventCutObj.cxx:219
 AliMixEventCutObj.cxx:220
 AliMixEventCutObj.cxx:221
 AliMixEventCutObj.cxx:222
 AliMixEventCutObj.cxx:223
 AliMixEventCutObj.cxx:224
 AliMixEventCutObj.cxx:225
 AliMixEventCutObj.cxx:226
 AliMixEventCutObj.cxx:227
 AliMixEventCutObj.cxx:228
 AliMixEventCutObj.cxx:229
 AliMixEventCutObj.cxx:230
 AliMixEventCutObj.cxx:231
 AliMixEventCutObj.cxx:232
 AliMixEventCutObj.cxx:233
 AliMixEventCutObj.cxx:234
 AliMixEventCutObj.cxx:235
 AliMixEventCutObj.cxx:236
 AliMixEventCutObj.cxx:237
 AliMixEventCutObj.cxx:238
 AliMixEventCutObj.cxx:239
 AliMixEventCutObj.cxx:240
 AliMixEventCutObj.cxx:241
 AliMixEventCutObj.cxx:242
 AliMixEventCutObj.cxx:243
 AliMixEventCutObj.cxx:244
 AliMixEventCutObj.cxx:245
 AliMixEventCutObj.cxx:246
 AliMixEventCutObj.cxx:247
 AliMixEventCutObj.cxx:248
 AliMixEventCutObj.cxx:249
 AliMixEventCutObj.cxx:250
 AliMixEventCutObj.cxx:251
 AliMixEventCutObj.cxx:252
 AliMixEventCutObj.cxx:253
 AliMixEventCutObj.cxx:254
 AliMixEventCutObj.cxx:255
 AliMixEventCutObj.cxx:256
 AliMixEventCutObj.cxx:257
 AliMixEventCutObj.cxx:258
 AliMixEventCutObj.cxx:259
 AliMixEventCutObj.cxx:260
 AliMixEventCutObj.cxx:261
 AliMixEventCutObj.cxx:262
 AliMixEventCutObj.cxx:263
 AliMixEventCutObj.cxx:264
 AliMixEventCutObj.cxx:265
 AliMixEventCutObj.cxx:266
 AliMixEventCutObj.cxx:267
 AliMixEventCutObj.cxx:268
 AliMixEventCutObj.cxx:269
 AliMixEventCutObj.cxx:270
 AliMixEventCutObj.cxx:271
 AliMixEventCutObj.cxx:272
 AliMixEventCutObj.cxx:273
 AliMixEventCutObj.cxx:274
 AliMixEventCutObj.cxx:275
 AliMixEventCutObj.cxx:276
 AliMixEventCutObj.cxx:277
 AliMixEventCutObj.cxx:278
 AliMixEventCutObj.cxx:279
 AliMixEventCutObj.cxx:280
 AliMixEventCutObj.cxx:281
 AliMixEventCutObj.cxx:282
 AliMixEventCutObj.cxx:283
 AliMixEventCutObj.cxx:284
 AliMixEventCutObj.cxx:285
 AliMixEventCutObj.cxx:286
 AliMixEventCutObj.cxx:287
 AliMixEventCutObj.cxx:288
 AliMixEventCutObj.cxx:289
 AliMixEventCutObj.cxx:290
 AliMixEventCutObj.cxx:291
 AliMixEventCutObj.cxx:292
 AliMixEventCutObj.cxx:293
 AliMixEventCutObj.cxx:294
 AliMixEventCutObj.cxx:295
 AliMixEventCutObj.cxx:296
 AliMixEventCutObj.cxx:297
 AliMixEventCutObj.cxx:298
 AliMixEventCutObj.cxx:299
 AliMixEventCutObj.cxx:300
 AliMixEventCutObj.cxx:301
 AliMixEventCutObj.cxx:302
 AliMixEventCutObj.cxx:303
 AliMixEventCutObj.cxx:304
 AliMixEventCutObj.cxx:305
 AliMixEventCutObj.cxx:306
 AliMixEventCutObj.cxx:307
 AliMixEventCutObj.cxx:308
 AliMixEventCutObj.cxx:309
 AliMixEventCutObj.cxx:310
 AliMixEventCutObj.cxx:311
 AliMixEventCutObj.cxx:312
 AliMixEventCutObj.cxx:313
 AliMixEventCutObj.cxx:314
 AliMixEventCutObj.cxx:315
 AliMixEventCutObj.cxx:316
 AliMixEventCutObj.cxx:317
 AliMixEventCutObj.cxx:318
 AliMixEventCutObj.cxx:319
 AliMixEventCutObj.cxx:320
 AliMixEventCutObj.cxx:321
 AliMixEventCutObj.cxx:322
 AliMixEventCutObj.cxx:323
 AliMixEventCutObj.cxx:324
 AliMixEventCutObj.cxx:325
 AliMixEventCutObj.cxx:326
 AliMixEventCutObj.cxx:327
 AliMixEventCutObj.cxx:328
 AliMixEventCutObj.cxx:329
 AliMixEventCutObj.cxx:330
 AliMixEventCutObj.cxx:331
 AliMixEventCutObj.cxx:332
 AliMixEventCutObj.cxx:333
 AliMixEventCutObj.cxx:334
 AliMixEventCutObj.cxx:335
 AliMixEventCutObj.cxx:336
 AliMixEventCutObj.cxx:337
 AliMixEventCutObj.cxx:338
 AliMixEventCutObj.cxx:339
 AliMixEventCutObj.cxx:340
 AliMixEventCutObj.cxx:341
 AliMixEventCutObj.cxx:342
 AliMixEventCutObj.cxx:343
 AliMixEventCutObj.cxx:344
 AliMixEventCutObj.cxx:345
 AliMixEventCutObj.cxx:346
 AliMixEventCutObj.cxx:347
 AliMixEventCutObj.cxx:348
 AliMixEventCutObj.cxx:349
 AliMixEventCutObj.cxx:350
 AliMixEventCutObj.cxx:351
 AliMixEventCutObj.cxx:352
 AliMixEventCutObj.cxx:353
 AliMixEventCutObj.cxx:354
 AliMixEventCutObj.cxx:355
 AliMixEventCutObj.cxx:356
 AliMixEventCutObj.cxx:357
 AliMixEventCutObj.cxx:358
 AliMixEventCutObj.cxx:359
 AliMixEventCutObj.cxx:360
 AliMixEventCutObj.cxx:361
 AliMixEventCutObj.cxx:362
 AliMixEventCutObj.cxx:363
 AliMixEventCutObj.cxx:364
 AliMixEventCutObj.cxx:365
 AliMixEventCutObj.cxx:366
 AliMixEventCutObj.cxx:367
 AliMixEventCutObj.cxx:368
 AliMixEventCutObj.cxx:369
 AliMixEventCutObj.cxx:370
 AliMixEventCutObj.cxx:371
 AliMixEventCutObj.cxx:372
 AliMixEventCutObj.cxx:373
 AliMixEventCutObj.cxx:374
 AliMixEventCutObj.cxx:375
 AliMixEventCutObj.cxx:376
 AliMixEventCutObj.cxx:377
 AliMixEventCutObj.cxx:378
 AliMixEventCutObj.cxx:379
 AliMixEventCutObj.cxx:380
 AliMixEventCutObj.cxx:381
 AliMixEventCutObj.cxx:382
 AliMixEventCutObj.cxx:383
 AliMixEventCutObj.cxx:384
 AliMixEventCutObj.cxx:385
 AliMixEventCutObj.cxx:386
 AliMixEventCutObj.cxx:387
 AliMixEventCutObj.cxx:388
 AliMixEventCutObj.cxx:389
 AliMixEventCutObj.cxx:390
 AliMixEventCutObj.cxx:391
 AliMixEventCutObj.cxx:392
 AliMixEventCutObj.cxx:393
 AliMixEventCutObj.cxx:394
 AliMixEventCutObj.cxx:395