ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

// $Id$
// $MpId: AliMpVIndexed.cxx,v 1.7 2006/05/24 13:58:29 ivana Exp $
// Category: basic

//-----------------------------------------------------------------------------
// Class AliMpVIndexed
// -------------------
// Class that defines the limits of global pad indices.
// Included in AliRoot: 2003/05/02
// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
//-----------------------------------------------------------------------------

#include "AliMpVIndexed.h"

/// \cond CLASSIMP
ClassImp(AliMpVIndexed)
/// \endcond

//_____________________________________________________________________________
AliMpVIndexed::AliMpVIndexed()
  : TObject(),
    fLowLimit(0),
    fHighLimit(0),
    fLowValid(false),
    fHighValid(false)
{
/// Default constructor
}

//_____________________________________________________________________________
AliMpVIndexed::~AliMpVIndexed()
{
/// Destructor 
}

//_____________________________________________________________________________
MpPair_t AliMpVIndexed::GlobalIndices(MpPair_t localIndices) const
{
/// Return the global indices corresponding to the given local indices.

  return fLowLimit + localIndices;
}

//_____________________________________________________________________________
Int_t  AliMpVIndexed::GlobalIx(Int_t localIx) const
{
/// Return the global indices ix corresponding to the given local indices

  return GetLowLimitIx() + localIx;
}  


//_____________________________________________________________________________
Int_t  AliMpVIndexed::GlobalIy(Int_t localIy) const
{
/// Return the global indices iy corresponding to the given local indices

  return GetLowLimitIy() + localIy;
}  

//_____________________________________________________________________________
void AliMpVIndexed::SetLowIndicesLimit(MpPair_t limit, Bool_t valid)
{ 
/// Set low indices limit

  fLowLimit = limit; 
  fLowValid = valid ; 
}
  
//_____________________________________________________________________________
void AliMpVIndexed::SetLowIndicesLimit(Int_t ix, Int_t iy, Bool_t valid)
{ 
/// Set low indices limit

  fLowLimit = AliMp::Pair(ix, iy); 
  fLowValid = valid; 
}
  
//_____________________________________________________________________________
void AliMpVIndexed::SetHighIndicesLimit(MpPair_t limit, Bool_t valid)
{ 
/// Set high indices limit

  fHighLimit = limit; 
  fHighValid = valid ; 
}
  
//_____________________________________________________________________________
void AliMpVIndexed::SetHighIndicesLimit(Int_t ix, Int_t iy, Bool_t valid)
{ 
/// Set high indices limit

  fHighLimit = AliMp::Pair(ix, iy); 
  fHighValid = valid; 
}

//_____________________________________________________________________________
Bool_t AliMpVIndexed::HasIndices(MpPair_t indices) const
{
/// Return true in the specified indices are within the limits.
  
  return ( AliMp::PairFirst(indices)  >= GetLowLimitIx() && 
           AliMp::PairSecond(indices) >= GetLowLimitIy() && 
           AliMp::PairFirst(indices)  <= GetHighLimitIx() && 
           AliMp::PairSecond(indices) <= GetHighLimitIy() );
}  

//_____________________________________________________________________________
Bool_t AliMpVIndexed::HasIndices(Int_t ix, Int_t iy) const
{
/// Return true in the specified indices are within the limits.
  
  return (ix  >= GetLowLimitIx() && 
          iy  >= GetLowLimitIy() && 
          ix  <= GetHighLimitIx() && 
          iy  <= GetHighLimitIy() );
}  

//_____________________________________________________________________________
Bool_t AliMpVIndexed::HasValidIndices() const
{
/// Returns true if both indices limits have valid values.
  
  return ( fLowValid && fHighValid );
}	   

//_____________________________________________________________________________
MpPair_t AliMpVIndexed::GetLowIndicesLimit() const
{ 
/// Return low indices limit

  // if ( ! fLowValid )  return 0;

  return fLowLimit; 
}

//_____________________________________________________________________________
Int_t  AliMpVIndexed::GetLowLimitIx() const
{ 
/// Return low indices ix limit

  // if ( ! fLowValid )  return 0;

  return AliMp::PairFirst(fLowLimit); 
}

//_____________________________________________________________________________
Int_t  AliMpVIndexed::GetLowLimitIy() const
{ 
/// Return low indices iy limit

  // if ( ! fLowValid )  return 0;

  return AliMp::PairSecond(fLowLimit); 
}

//_____________________________________________________________________________
Bool_t AliMpVIndexed::IsLowLimitValid() const  
{
/// Return true, if low indices limit is set 

  return fLowValid; 
}

//_____________________________________________________________________________
MpPair_t AliMpVIndexed::GetHighIndicesLimit() const
{ 
/// Return high indices limit

  // if ( ! fHighValid )  return 0;

  return fHighLimit; 
}

//_____________________________________________________________________________
Int_t  AliMpVIndexed::GetHighLimitIx() const
{ 
/// Return high indices ix limit

  // if ( ! fHighValid )  return 0;

  return AliMp::PairFirst(fHighLimit); 
}

//_____________________________________________________________________________
Int_t  AliMpVIndexed::GetHighLimitIy() const
{ 
/// Return high indices iy limit

  // if ( ! fHighValid )  return 0;

  return AliMp::PairSecond(fHighLimit); 
}

//_____________________________________________________________________________
Bool_t AliMpVIndexed::IsHighLimitValid() const  
{
/// Return true, if high indices limit is set 

  return fHighValid; 
}



  
 AliMpVIndexed.cxx:1
 AliMpVIndexed.cxx:2
 AliMpVIndexed.cxx:3
 AliMpVIndexed.cxx:4
 AliMpVIndexed.cxx:5
 AliMpVIndexed.cxx:6
 AliMpVIndexed.cxx:7
 AliMpVIndexed.cxx:8
 AliMpVIndexed.cxx:9
 AliMpVIndexed.cxx:10
 AliMpVIndexed.cxx:11
 AliMpVIndexed.cxx:12
 AliMpVIndexed.cxx:13
 AliMpVIndexed.cxx:14
 AliMpVIndexed.cxx:15
 AliMpVIndexed.cxx:16
 AliMpVIndexed.cxx:17
 AliMpVIndexed.cxx:18
 AliMpVIndexed.cxx:19
 AliMpVIndexed.cxx:20
 AliMpVIndexed.cxx:21
 AliMpVIndexed.cxx:22
 AliMpVIndexed.cxx:23
 AliMpVIndexed.cxx:24
 AliMpVIndexed.cxx:25
 AliMpVIndexed.cxx:26
 AliMpVIndexed.cxx:27
 AliMpVIndexed.cxx:28
 AliMpVIndexed.cxx:29
 AliMpVIndexed.cxx:30
 AliMpVIndexed.cxx:31
 AliMpVIndexed.cxx:32
 AliMpVIndexed.cxx:33
 AliMpVIndexed.cxx:34
 AliMpVIndexed.cxx:35
 AliMpVIndexed.cxx:36
 AliMpVIndexed.cxx:37
 AliMpVIndexed.cxx:38
 AliMpVIndexed.cxx:39
 AliMpVIndexed.cxx:40
 AliMpVIndexed.cxx:41
 AliMpVIndexed.cxx:42
 AliMpVIndexed.cxx:43
 AliMpVIndexed.cxx:44
 AliMpVIndexed.cxx:45
 AliMpVIndexed.cxx:46
 AliMpVIndexed.cxx:47
 AliMpVIndexed.cxx:48
 AliMpVIndexed.cxx:49
 AliMpVIndexed.cxx:50
 AliMpVIndexed.cxx:51
 AliMpVIndexed.cxx:52
 AliMpVIndexed.cxx:53
 AliMpVIndexed.cxx:54
 AliMpVIndexed.cxx:55
 AliMpVIndexed.cxx:56
 AliMpVIndexed.cxx:57
 AliMpVIndexed.cxx:58
 AliMpVIndexed.cxx:59
 AliMpVIndexed.cxx:60
 AliMpVIndexed.cxx:61
 AliMpVIndexed.cxx:62
 AliMpVIndexed.cxx:63
 AliMpVIndexed.cxx:64
 AliMpVIndexed.cxx:65
 AliMpVIndexed.cxx:66
 AliMpVIndexed.cxx:67
 AliMpVIndexed.cxx:68
 AliMpVIndexed.cxx:69
 AliMpVIndexed.cxx:70
 AliMpVIndexed.cxx:71
 AliMpVIndexed.cxx:72
 AliMpVIndexed.cxx:73
 AliMpVIndexed.cxx:74
 AliMpVIndexed.cxx:75
 AliMpVIndexed.cxx:76
 AliMpVIndexed.cxx:77
 AliMpVIndexed.cxx:78
 AliMpVIndexed.cxx:79
 AliMpVIndexed.cxx:80
 AliMpVIndexed.cxx:81
 AliMpVIndexed.cxx:82
 AliMpVIndexed.cxx:83
 AliMpVIndexed.cxx:84
 AliMpVIndexed.cxx:85
 AliMpVIndexed.cxx:86
 AliMpVIndexed.cxx:87
 AliMpVIndexed.cxx:88
 AliMpVIndexed.cxx:89
 AliMpVIndexed.cxx:90
 AliMpVIndexed.cxx:91
 AliMpVIndexed.cxx:92
 AliMpVIndexed.cxx:93
 AliMpVIndexed.cxx:94
 AliMpVIndexed.cxx:95
 AliMpVIndexed.cxx:96
 AliMpVIndexed.cxx:97
 AliMpVIndexed.cxx:98
 AliMpVIndexed.cxx:99
 AliMpVIndexed.cxx:100
 AliMpVIndexed.cxx:101
 AliMpVIndexed.cxx:102
 AliMpVIndexed.cxx:103
 AliMpVIndexed.cxx:104
 AliMpVIndexed.cxx:105
 AliMpVIndexed.cxx:106
 AliMpVIndexed.cxx:107
 AliMpVIndexed.cxx:108
 AliMpVIndexed.cxx:109
 AliMpVIndexed.cxx:110
 AliMpVIndexed.cxx:111
 AliMpVIndexed.cxx:112
 AliMpVIndexed.cxx:113
 AliMpVIndexed.cxx:114
 AliMpVIndexed.cxx:115
 AliMpVIndexed.cxx:116
 AliMpVIndexed.cxx:117
 AliMpVIndexed.cxx:118
 AliMpVIndexed.cxx:119
 AliMpVIndexed.cxx:120
 AliMpVIndexed.cxx:121
 AliMpVIndexed.cxx:122
 AliMpVIndexed.cxx:123
 AliMpVIndexed.cxx:124
 AliMpVIndexed.cxx:125
 AliMpVIndexed.cxx:126
 AliMpVIndexed.cxx:127
 AliMpVIndexed.cxx:128
 AliMpVIndexed.cxx:129
 AliMpVIndexed.cxx:130
 AliMpVIndexed.cxx:131
 AliMpVIndexed.cxx:132
 AliMpVIndexed.cxx:133
 AliMpVIndexed.cxx:134
 AliMpVIndexed.cxx:135
 AliMpVIndexed.cxx:136
 AliMpVIndexed.cxx:137
 AliMpVIndexed.cxx:138
 AliMpVIndexed.cxx:139
 AliMpVIndexed.cxx:140
 AliMpVIndexed.cxx:141
 AliMpVIndexed.cxx:142
 AliMpVIndexed.cxx:143
 AliMpVIndexed.cxx:144
 AliMpVIndexed.cxx:145
 AliMpVIndexed.cxx:146
 AliMpVIndexed.cxx:147
 AliMpVIndexed.cxx:148
 AliMpVIndexed.cxx:149
 AliMpVIndexed.cxx:150
 AliMpVIndexed.cxx:151
 AliMpVIndexed.cxx:152
 AliMpVIndexed.cxx:153
 AliMpVIndexed.cxx:154
 AliMpVIndexed.cxx:155
 AliMpVIndexed.cxx:156
 AliMpVIndexed.cxx:157
 AliMpVIndexed.cxx:158
 AliMpVIndexed.cxx:159
 AliMpVIndexed.cxx:160
 AliMpVIndexed.cxx:161
 AliMpVIndexed.cxx:162
 AliMpVIndexed.cxx:163
 AliMpVIndexed.cxx:164
 AliMpVIndexed.cxx:165
 AliMpVIndexed.cxx:166
 AliMpVIndexed.cxx:167
 AliMpVIndexed.cxx:168
 AliMpVIndexed.cxx:169
 AliMpVIndexed.cxx:170
 AliMpVIndexed.cxx:171
 AliMpVIndexed.cxx:172
 AliMpVIndexed.cxx:173
 AliMpVIndexed.cxx:174
 AliMpVIndexed.cxx:175
 AliMpVIndexed.cxx:176
 AliMpVIndexed.cxx:177
 AliMpVIndexed.cxx:178
 AliMpVIndexed.cxx:179
 AliMpVIndexed.cxx:180
 AliMpVIndexed.cxx:181
 AliMpVIndexed.cxx:182
 AliMpVIndexed.cxx:183
 AliMpVIndexed.cxx:184
 AliMpVIndexed.cxx:185
 AliMpVIndexed.cxx:186
 AliMpVIndexed.cxx:187
 AliMpVIndexed.cxx:188
 AliMpVIndexed.cxx:189
 AliMpVIndexed.cxx:190
 AliMpVIndexed.cxx:191
 AliMpVIndexed.cxx:192
 AliMpVIndexed.cxx:193
 AliMpVIndexed.cxx:194
 AliMpVIndexed.cxx:195
 AliMpVIndexed.cxx:196
 AliMpVIndexed.cxx:197
 AliMpVIndexed.cxx:198
 AliMpVIndexed.cxx:199
 AliMpVIndexed.cxx:200
 AliMpVIndexed.cxx:201
 AliMpVIndexed.cxx:202
 AliMpVIndexed.cxx:203
 AliMpVIndexed.cxx:204
 AliMpVIndexed.cxx:205
 AliMpVIndexed.cxx:206
 AliMpVIndexed.cxx:207
 AliMpVIndexed.cxx:208
 AliMpVIndexed.cxx:209
 AliMpVIndexed.cxx:210
 AliMpVIndexed.cxx:211
 AliMpVIndexed.cxx:212
 AliMpVIndexed.cxx:213
 AliMpVIndexed.cxx:214
 AliMpVIndexed.cxx:215
 AliMpVIndexed.cxx:216
 AliMpVIndexed.cxx:217
 AliMpVIndexed.cxx:218
 AliMpVIndexed.cxx:219
 AliMpVIndexed.cxx:220