ROOT logo
//
// Class AliRsnCutPIDNSigma
//
// General implementation of a single cut strategy, which can be:
// - a value contained in a given interval  [--> IsBetween()   ]
// - a value equal to a given reference     [--> MatchesValue()]
//
// In all cases, the reference value(s) is (are) given as data members
// and each kind of cut requires a given value type (Int, UInt, Double),
// but the cut check procedure is then automatized and chosen thanks to
// an enumeration of the implemented cut types.
// At the end, the user (or any other point which uses this object) has
// to use the method IsSelected() to check if this cut has been passed.
//
// authors: Martin Vala (martin.vala@cern.ch)
//          Alberto Pulvirenti (alberto.pulvirenti@ct.infn.it)
//

#include "AliPIDResponse.h"
#include "AliESDpid.h"
#include "AliAODpidUtil.h"

#include "AliRsnCutPIDNSigma.h"

ClassImp(AliRsnCutPIDNSigma)

//_________________________________________________________________________________________________
AliRsnCutPIDNSigma::AliRsnCutPIDNSigma() :
   AliRsnCut("cut", AliRsnTarget::kDaughter),
   fSpecies(AliPID::kUnknown),
   fDetector(kDetectors),
   fRejectUnmatched(kTRUE),
   fTrackNSigma(0.0),
   fTrackMom(0.0),
   fMyPID(0x0),
   fRanges("AliRsnPIDRange", 0)
{
//
// Main constructor.
//
}

//_________________________________________________________________________________________________
AliRsnCutPIDNSigma::AliRsnCutPIDNSigma
(const char *name, AliPID::EParticleType species, EDetector det) :
   AliRsnCut(name, AliRsnTarget::kDaughter),
   fSpecies(species),
   fDetector(det),
   fRejectUnmatched(kTRUE),
   fTrackNSigma(0.0),
   fTrackMom(0.0),
   fMyPID(0x0),
   fRanges("AliRsnPIDRange", 0)
{
//
// Main constructor.
//
}

//_________________________________________________________________________________________________
AliRsnCutPIDNSigma::AliRsnCutPIDNSigma
(const AliRsnCutPIDNSigma &copy) :
   AliRsnCut(copy),
   fSpecies(copy.fSpecies),
   fDetector(copy.fDetector),
   fRejectUnmatched(copy.fRejectUnmatched),
   fTrackNSigma(0.0),
   fTrackMom(0.0),
   fMyPID(copy.fMyPID),
   fRanges(copy.fRanges)
{
//
// Copy constructor.
//
}

//_________________________________________________________________________________________________
AliRsnCutPIDNSigma &AliRsnCutPIDNSigma::operator=(const AliRsnCutPIDNSigma &copy)
{
//
// Assignment operator
//

   AliRsnCut::operator=(copy);
   if (this == &copy)
      return *this;
   fSpecies = copy.fSpecies;
   fDetector = copy.fDetector;
   fRejectUnmatched = copy.fRejectUnmatched;
   fMyPID = copy.fMyPID;
   fRanges = copy.fRanges;

   return (*this);
}

//__________________________________________________________________________________________________
void AliRsnCutPIDNSigma::InitMyPID(Bool_t isMC, Bool_t isESD)
{
//
// Initialize manual PID object
//

   if (isESD)
      fMyPID = new AliESDpid(isMC);
   else
      fMyPID = new AliAODpidUtil(isMC);
}

//_________________________________________________________________________________________________
Bool_t AliRsnCutPIDNSigma::IsSelected(TObject *object)
{
//
// Cut checker.
// As usual, there are 'kFALSE' exit points whenever one of the conditions is not passed,
// and at the end, it returns kTRUE since it bypassed all possible exit points.
//

   // coherence check
   if (!TargetOK(object)) return kFALSE;

   // check initialization of PID object
   // if manual PID is used, use that, otherwise get from source event
   AliPIDResponse *pid = 0x0;
   if (fMyPID)
      pid = fMyPID;
   else
      pid = fEvent->GetPIDResponse();
   if (!pid) {
      AliFatal("NULL PID response");
      return kFALSE;
   }

   // convert input object into AliVTrack
   // if this fails, the cut cannot be checked
   AliVTrack *vtrack = fDaughter->Ref2Vtrack();
   if (!vtrack) {
      AliDebugClass(2, "Referenced daughter is not a track");
      return kFALSE;
   }

   // check matching, if required
   // a) if detector is not matched and matching is required, reject the track
   // b) if detector is not matched and matching is not required, accept blindly the track
   //    since missing the matching causes one not to be able to rely that detector
   if (!MatchDetector(vtrack)) {
      AliDebugClass(2, Form("Detector not matched. fRejectUnmatched = %s --> track is %s", (fRejectUnmatched ? "true" : "false"), (fRejectUnmatched ? "rejected" : "accepted")));
      return (!fRejectUnmatched);
   }

   // get reference momentum
   fTrackMom = (fDetector == kTPC) ? vtrack->GetTPCmomentum() : vtrack->P();

   // get number of sigmas
   switch (fDetector) {
      case kITS:
         fTrackNSigma = TMath::Abs(pid->NumberOfSigmasITS(vtrack, fSpecies));
         break;
      case kTPC:
         fTrackNSigma = TMath::Abs(pid->NumberOfSigmasTPC(vtrack, fSpecies));
         break;
      case kTOF:
         fTrackNSigma = TMath::Abs(pid->NumberOfSigmasTOF(vtrack, fSpecies));
         break;
      default:
         AliError("Bad detector chosen. Rejecting track");
         return kFALSE;
   }

   // loop on all ranges, and use the one which contains this momentum
   // if none is found, the cut is not passed
   Bool_t accept = kFALSE;
   Int_t  i, goodRange = -1, nRanges = fRanges.GetEntriesFast();
   for (i = 0; i < nRanges; i++) {
      AliRsnPIDRange *range = (AliRsnPIDRange *)fRanges[i];
      if (!range) continue;
      if (!range->IsInRange(fTrackMom)) continue;
      else {
         goodRange = i;
         accept = range->CutPass(fTrackNSigma);
         AliDebugClass(2, Form("[%s] NSigma = %.3f, max = %.3f, track %s", GetName(), fTrackNSigma, range->NSigmaCut(), (accept ? "accepted" : "rejected")));
         break;
      }
   }
   if (goodRange < 0) {
      AliDebugClass(2, Form("[%s] No good range found. Rejecting track", GetName()));
      return kFALSE;
   } else {
      AliDebugClass(2, Form("[%s] Mom = %.3f, good range found (#%d), track was %s", GetName(), fTrackMom, goodRange, (accept ? "accepted" : "rejected")));
      return accept;
   }
}

//_________________________________________________________________________________________________
void AliRsnCutPIDNSigma::Print(const Option_t *) const
{
//
// Print information on this cut
//

   Char_t mom[200], det[100], match[200];

   if (fRejectUnmatched)
      snprintf(match, 200, "Unmatched tracks are rejected");
   else
      snprintf(match, 200, "No check on track matching");

   switch (fDetector) {
      case kITS: snprintf(det, 3, "ITS"); break;
      case kTPC: snprintf(det, 3, "TPC"); break;
      case kTOF: snprintf(det, 3, "TOF"); break;
      default  : snprintf(det, 3, "undefined");
   }

   AliInfo(Form("Cut name          : %s", GetName()));
   AliInfo(Form("--> PID detector  : %s", det));
   AliInfo(Form("--> match criteria: %s", match));
   AliInfo(Form("--> momentum range: %s", mom));
}

//_________________________________________________________________________________________________
Bool_t AliRsnCutPIDNSigma::MatchITS(const AliVTrack *vtrack) const
{
//
// Checks if the track has the status flags required for an ITS standalone track
//

   if ((vtrack->GetStatus() & AliESDtrack::kITSin)  == 0) return kFALSE;
   if ((vtrack->GetStatus() & AliESDtrack::kITSpid) == 0) return kFALSE;

   return kTRUE;
}
//_________________________________________________________________________________________________
Bool_t AliRsnCutPIDNSigma::MatchTPC(const AliVTrack *vtrack) const
{
//
// Checks if the track has the status flags required for a TPC track
//

   if ((vtrack->GetStatus() & AliESDtrack::kTPCin) == 0) return kFALSE;

   return kTRUE;
}

//_________________________________________________________________________________________________
Bool_t AliRsnCutPIDNSigma::MatchTOF(const AliVTrack *vtrack) const
{
//
// Checks if the track has the status flags required for an ITS standalone track
//

   if ((vtrack->GetStatus() & AliESDtrack::kTOFout) == 0) return kFALSE;
   if ((vtrack->GetStatus() & AliESDtrack::kTIME)   == 0) return kFALSE;

   return kTRUE;
}

//_________________________________________________________________________________________________
Bool_t AliRsnCutPIDNSigma::MatchDetector(const AliVTrack *vtrack) const
{
//
// Checks if the track has matched the required detector.
// If no valid detector is specified, kFALSE is always returned.
//

   switch (fDetector) {
      case kITS: return MatchITS(vtrack);
      case kTPC: return MatchTPC(vtrack);
      case kTOF: return MatchTOF(vtrack);
      default  : return kFALSE;
   }
}

//_________________________________________________________________________________________________
void AliRsnCutPIDNSigma::AddPIDRange(Double_t nsigma, Double_t pmin, Double_t pmax)
{
//
// Add a new slot for checking PID
//

   Int_t n = fRanges.GetEntries();

   new (fRanges[n]) AliRsnPIDRange(nsigma, pmin, pmax);
}

//_________________________________________________________________________________________________
void AliRsnCutPIDNSigma::SinglePIDRange(Double_t nsigma)
{
//
// Clear all slots and sets a unique one
//

   fRanges.Delete();

   new (fRanges[0]) AliRsnPIDRange(nsigma, 0.0, 1E20);
}
 AliRsnCutPIDNSigma.cxx:1
 AliRsnCutPIDNSigma.cxx:2
 AliRsnCutPIDNSigma.cxx:3
 AliRsnCutPIDNSigma.cxx:4
 AliRsnCutPIDNSigma.cxx:5
 AliRsnCutPIDNSigma.cxx:6
 AliRsnCutPIDNSigma.cxx:7
 AliRsnCutPIDNSigma.cxx:8
 AliRsnCutPIDNSigma.cxx:9
 AliRsnCutPIDNSigma.cxx:10
 AliRsnCutPIDNSigma.cxx:11
 AliRsnCutPIDNSigma.cxx:12
 AliRsnCutPIDNSigma.cxx:13
 AliRsnCutPIDNSigma.cxx:14
 AliRsnCutPIDNSigma.cxx:15
 AliRsnCutPIDNSigma.cxx:16
 AliRsnCutPIDNSigma.cxx:17
 AliRsnCutPIDNSigma.cxx:18
 AliRsnCutPIDNSigma.cxx:19
 AliRsnCutPIDNSigma.cxx:20
 AliRsnCutPIDNSigma.cxx:21
 AliRsnCutPIDNSigma.cxx:22
 AliRsnCutPIDNSigma.cxx:23
 AliRsnCutPIDNSigma.cxx:24
 AliRsnCutPIDNSigma.cxx:25
 AliRsnCutPIDNSigma.cxx:26
 AliRsnCutPIDNSigma.cxx:27
 AliRsnCutPIDNSigma.cxx:28
 AliRsnCutPIDNSigma.cxx:29
 AliRsnCutPIDNSigma.cxx:30
 AliRsnCutPIDNSigma.cxx:31
 AliRsnCutPIDNSigma.cxx:32
 AliRsnCutPIDNSigma.cxx:33
 AliRsnCutPIDNSigma.cxx:34
 AliRsnCutPIDNSigma.cxx:35
 AliRsnCutPIDNSigma.cxx:36
 AliRsnCutPIDNSigma.cxx:37
 AliRsnCutPIDNSigma.cxx:38
 AliRsnCutPIDNSigma.cxx:39
 AliRsnCutPIDNSigma.cxx:40
 AliRsnCutPIDNSigma.cxx:41
 AliRsnCutPIDNSigma.cxx:42
 AliRsnCutPIDNSigma.cxx:43
 AliRsnCutPIDNSigma.cxx:44
 AliRsnCutPIDNSigma.cxx:45
 AliRsnCutPIDNSigma.cxx:46
 AliRsnCutPIDNSigma.cxx:47
 AliRsnCutPIDNSigma.cxx:48
 AliRsnCutPIDNSigma.cxx:49
 AliRsnCutPIDNSigma.cxx:50
 AliRsnCutPIDNSigma.cxx:51
 AliRsnCutPIDNSigma.cxx:52
 AliRsnCutPIDNSigma.cxx:53
 AliRsnCutPIDNSigma.cxx:54
 AliRsnCutPIDNSigma.cxx:55
 AliRsnCutPIDNSigma.cxx:56
 AliRsnCutPIDNSigma.cxx:57
 AliRsnCutPIDNSigma.cxx:58
 AliRsnCutPIDNSigma.cxx:59
 AliRsnCutPIDNSigma.cxx:60
 AliRsnCutPIDNSigma.cxx:61
 AliRsnCutPIDNSigma.cxx:62
 AliRsnCutPIDNSigma.cxx:63
 AliRsnCutPIDNSigma.cxx:64
 AliRsnCutPIDNSigma.cxx:65
 AliRsnCutPIDNSigma.cxx:66
 AliRsnCutPIDNSigma.cxx:67
 AliRsnCutPIDNSigma.cxx:68
 AliRsnCutPIDNSigma.cxx:69
 AliRsnCutPIDNSigma.cxx:70
 AliRsnCutPIDNSigma.cxx:71
 AliRsnCutPIDNSigma.cxx:72
 AliRsnCutPIDNSigma.cxx:73
 AliRsnCutPIDNSigma.cxx:74
 AliRsnCutPIDNSigma.cxx:75
 AliRsnCutPIDNSigma.cxx:76
 AliRsnCutPIDNSigma.cxx:77
 AliRsnCutPIDNSigma.cxx:78
 AliRsnCutPIDNSigma.cxx:79
 AliRsnCutPIDNSigma.cxx:80
 AliRsnCutPIDNSigma.cxx:81
 AliRsnCutPIDNSigma.cxx:82
 AliRsnCutPIDNSigma.cxx:83
 AliRsnCutPIDNSigma.cxx:84
 AliRsnCutPIDNSigma.cxx:85
 AliRsnCutPIDNSigma.cxx:86
 AliRsnCutPIDNSigma.cxx:87
 AliRsnCutPIDNSigma.cxx:88
 AliRsnCutPIDNSigma.cxx:89
 AliRsnCutPIDNSigma.cxx:90
 AliRsnCutPIDNSigma.cxx:91
 AliRsnCutPIDNSigma.cxx:92
 AliRsnCutPIDNSigma.cxx:93
 AliRsnCutPIDNSigma.cxx:94
 AliRsnCutPIDNSigma.cxx:95
 AliRsnCutPIDNSigma.cxx:96
 AliRsnCutPIDNSigma.cxx:97
 AliRsnCutPIDNSigma.cxx:98
 AliRsnCutPIDNSigma.cxx:99
 AliRsnCutPIDNSigma.cxx:100
 AliRsnCutPIDNSigma.cxx:101
 AliRsnCutPIDNSigma.cxx:102
 AliRsnCutPIDNSigma.cxx:103
 AliRsnCutPIDNSigma.cxx:104
 AliRsnCutPIDNSigma.cxx:105
 AliRsnCutPIDNSigma.cxx:106
 AliRsnCutPIDNSigma.cxx:107
 AliRsnCutPIDNSigma.cxx:108
 AliRsnCutPIDNSigma.cxx:109
 AliRsnCutPIDNSigma.cxx:110
 AliRsnCutPIDNSigma.cxx:111
 AliRsnCutPIDNSigma.cxx:112
 AliRsnCutPIDNSigma.cxx:113
 AliRsnCutPIDNSigma.cxx:114
 AliRsnCutPIDNSigma.cxx:115
 AliRsnCutPIDNSigma.cxx:116
 AliRsnCutPIDNSigma.cxx:117
 AliRsnCutPIDNSigma.cxx:118
 AliRsnCutPIDNSigma.cxx:119
 AliRsnCutPIDNSigma.cxx:120
 AliRsnCutPIDNSigma.cxx:121
 AliRsnCutPIDNSigma.cxx:122
 AliRsnCutPIDNSigma.cxx:123
 AliRsnCutPIDNSigma.cxx:124
 AliRsnCutPIDNSigma.cxx:125
 AliRsnCutPIDNSigma.cxx:126
 AliRsnCutPIDNSigma.cxx:127
 AliRsnCutPIDNSigma.cxx:128
 AliRsnCutPIDNSigma.cxx:129
 AliRsnCutPIDNSigma.cxx:130
 AliRsnCutPIDNSigma.cxx:131
 AliRsnCutPIDNSigma.cxx:132
 AliRsnCutPIDNSigma.cxx:133
 AliRsnCutPIDNSigma.cxx:134
 AliRsnCutPIDNSigma.cxx:135
 AliRsnCutPIDNSigma.cxx:136
 AliRsnCutPIDNSigma.cxx:137
 AliRsnCutPIDNSigma.cxx:138
 AliRsnCutPIDNSigma.cxx:139
 AliRsnCutPIDNSigma.cxx:140
 AliRsnCutPIDNSigma.cxx:141
 AliRsnCutPIDNSigma.cxx:142
 AliRsnCutPIDNSigma.cxx:143
 AliRsnCutPIDNSigma.cxx:144
 AliRsnCutPIDNSigma.cxx:145
 AliRsnCutPIDNSigma.cxx:146
 AliRsnCutPIDNSigma.cxx:147
 AliRsnCutPIDNSigma.cxx:148
 AliRsnCutPIDNSigma.cxx:149
 AliRsnCutPIDNSigma.cxx:150
 AliRsnCutPIDNSigma.cxx:151
 AliRsnCutPIDNSigma.cxx:152
 AliRsnCutPIDNSigma.cxx:153
 AliRsnCutPIDNSigma.cxx:154
 AliRsnCutPIDNSigma.cxx:155
 AliRsnCutPIDNSigma.cxx:156
 AliRsnCutPIDNSigma.cxx:157
 AliRsnCutPIDNSigma.cxx:158
 AliRsnCutPIDNSigma.cxx:159
 AliRsnCutPIDNSigma.cxx:160
 AliRsnCutPIDNSigma.cxx:161
 AliRsnCutPIDNSigma.cxx:162
 AliRsnCutPIDNSigma.cxx:163
 AliRsnCutPIDNSigma.cxx:164
 AliRsnCutPIDNSigma.cxx:165
 AliRsnCutPIDNSigma.cxx:166
 AliRsnCutPIDNSigma.cxx:167
 AliRsnCutPIDNSigma.cxx:168
 AliRsnCutPIDNSigma.cxx:169
 AliRsnCutPIDNSigma.cxx:170
 AliRsnCutPIDNSigma.cxx:171
 AliRsnCutPIDNSigma.cxx:172
 AliRsnCutPIDNSigma.cxx:173
 AliRsnCutPIDNSigma.cxx:174
 AliRsnCutPIDNSigma.cxx:175
 AliRsnCutPIDNSigma.cxx:176
 AliRsnCutPIDNSigma.cxx:177
 AliRsnCutPIDNSigma.cxx:178
 AliRsnCutPIDNSigma.cxx:179
 AliRsnCutPIDNSigma.cxx:180
 AliRsnCutPIDNSigma.cxx:181
 AliRsnCutPIDNSigma.cxx:182
 AliRsnCutPIDNSigma.cxx:183
 AliRsnCutPIDNSigma.cxx:184
 AliRsnCutPIDNSigma.cxx:185
 AliRsnCutPIDNSigma.cxx:186
 AliRsnCutPIDNSigma.cxx:187
 AliRsnCutPIDNSigma.cxx:188
 AliRsnCutPIDNSigma.cxx:189
 AliRsnCutPIDNSigma.cxx:190
 AliRsnCutPIDNSigma.cxx:191
 AliRsnCutPIDNSigma.cxx:192
 AliRsnCutPIDNSigma.cxx:193
 AliRsnCutPIDNSigma.cxx:194
 AliRsnCutPIDNSigma.cxx:195
 AliRsnCutPIDNSigma.cxx:196
 AliRsnCutPIDNSigma.cxx:197
 AliRsnCutPIDNSigma.cxx:198
 AliRsnCutPIDNSigma.cxx:199
 AliRsnCutPIDNSigma.cxx:200
 AliRsnCutPIDNSigma.cxx:201
 AliRsnCutPIDNSigma.cxx:202
 AliRsnCutPIDNSigma.cxx:203
 AliRsnCutPIDNSigma.cxx:204
 AliRsnCutPIDNSigma.cxx:205
 AliRsnCutPIDNSigma.cxx:206
 AliRsnCutPIDNSigma.cxx:207
 AliRsnCutPIDNSigma.cxx:208
 AliRsnCutPIDNSigma.cxx:209
 AliRsnCutPIDNSigma.cxx:210
 AliRsnCutPIDNSigma.cxx:211
 AliRsnCutPIDNSigma.cxx:212
 AliRsnCutPIDNSigma.cxx:213
 AliRsnCutPIDNSigma.cxx:214
 AliRsnCutPIDNSigma.cxx:215
 AliRsnCutPIDNSigma.cxx:216
 AliRsnCutPIDNSigma.cxx:217
 AliRsnCutPIDNSigma.cxx:218
 AliRsnCutPIDNSigma.cxx:219
 AliRsnCutPIDNSigma.cxx:220
 AliRsnCutPIDNSigma.cxx:221
 AliRsnCutPIDNSigma.cxx:222
 AliRsnCutPIDNSigma.cxx:223
 AliRsnCutPIDNSigma.cxx:224
 AliRsnCutPIDNSigma.cxx:225
 AliRsnCutPIDNSigma.cxx:226
 AliRsnCutPIDNSigma.cxx:227
 AliRsnCutPIDNSigma.cxx:228
 AliRsnCutPIDNSigma.cxx:229
 AliRsnCutPIDNSigma.cxx:230
 AliRsnCutPIDNSigma.cxx:231
 AliRsnCutPIDNSigma.cxx:232
 AliRsnCutPIDNSigma.cxx:233
 AliRsnCutPIDNSigma.cxx:234
 AliRsnCutPIDNSigma.cxx:235
 AliRsnCutPIDNSigma.cxx:236
 AliRsnCutPIDNSigma.cxx:237
 AliRsnCutPIDNSigma.cxx:238
 AliRsnCutPIDNSigma.cxx:239
 AliRsnCutPIDNSigma.cxx:240
 AliRsnCutPIDNSigma.cxx:241
 AliRsnCutPIDNSigma.cxx:242
 AliRsnCutPIDNSigma.cxx:243
 AliRsnCutPIDNSigma.cxx:244
 AliRsnCutPIDNSigma.cxx:245
 AliRsnCutPIDNSigma.cxx:246
 AliRsnCutPIDNSigma.cxx:247
 AliRsnCutPIDNSigma.cxx:248
 AliRsnCutPIDNSigma.cxx:249
 AliRsnCutPIDNSigma.cxx:250
 AliRsnCutPIDNSigma.cxx:251
 AliRsnCutPIDNSigma.cxx:252
 AliRsnCutPIDNSigma.cxx:253
 AliRsnCutPIDNSigma.cxx:254
 AliRsnCutPIDNSigma.cxx:255
 AliRsnCutPIDNSigma.cxx:256
 AliRsnCutPIDNSigma.cxx:257
 AliRsnCutPIDNSigma.cxx:258
 AliRsnCutPIDNSigma.cxx:259
 AliRsnCutPIDNSigma.cxx:260
 AliRsnCutPIDNSigma.cxx:261
 AliRsnCutPIDNSigma.cxx:262
 AliRsnCutPIDNSigma.cxx:263
 AliRsnCutPIDNSigma.cxx:264
 AliRsnCutPIDNSigma.cxx:265
 AliRsnCutPIDNSigma.cxx:266
 AliRsnCutPIDNSigma.cxx:267
 AliRsnCutPIDNSigma.cxx:268
 AliRsnCutPIDNSigma.cxx:269
 AliRsnCutPIDNSigma.cxx:270
 AliRsnCutPIDNSigma.cxx:271
 AliRsnCutPIDNSigma.cxx:272
 AliRsnCutPIDNSigma.cxx:273
 AliRsnCutPIDNSigma.cxx:274
 AliRsnCutPIDNSigma.cxx:275
 AliRsnCutPIDNSigma.cxx:276
 AliRsnCutPIDNSigma.cxx:277
 AliRsnCutPIDNSigma.cxx:278
 AliRsnCutPIDNSigma.cxx:279
 AliRsnCutPIDNSigma.cxx:280
 AliRsnCutPIDNSigma.cxx:281
 AliRsnCutPIDNSigma.cxx:282
 AliRsnCutPIDNSigma.cxx:283
 AliRsnCutPIDNSigma.cxx:284
 AliRsnCutPIDNSigma.cxx:285
 AliRsnCutPIDNSigma.cxx:286
 AliRsnCutPIDNSigma.cxx:287
 AliRsnCutPIDNSigma.cxx:288
 AliRsnCutPIDNSigma.cxx:289
 AliRsnCutPIDNSigma.cxx:290
 AliRsnCutPIDNSigma.cxx:291
 AliRsnCutPIDNSigma.cxx:292
 AliRsnCutPIDNSigma.cxx:293
 AliRsnCutPIDNSigma.cxx:294
 AliRsnCutPIDNSigma.cxx:295