//  
// Author: Oliver Maria Kind <mailto: kind@mail.desy.de>
// Update: $Id: AtlTRTDigit.h,v 1.4 2010/12/23 15:16:21 herrberg Exp $
// Copyright: 2008 (C) Oliver Maria Kind
//
#ifndef ATLAS_AtlTRTDigit
#define ATLAS_AtlTRTDigit
#ifndef ROOT_HepDriftChamberDigit
#include <HepDriftChamberDigit.h>
#endif
#ifndef ROOT_TString
#include "TString.h"
#endif


class AtlTRTDigit : public HepDriftChamberDigit {

protected:
    UInt_t  fDigit;          // TRT digitisation bit pattern
    Int_t   fEndCapOrBarrel; // Hit is barrel or endcap
    Int_t   fPhiSector;      // Phi sector of the hit
    Int_t   fModuleOrWheel;  // Module (barrel) or wheel (endcap) of the hit
    Int_t   fStrawLayer;     // Straw layer of the hit
    Int_t   fStraw;          // Straw number of the hit in a layer
    
public:
    AtlTRTDigit();
    AtlTRTDigit(Int_t Id, Float_t DriftTime, Float_t DriftRadius,
		UInt_t Digit);
    virtual ~AtlTRTDigit();
    virtual void Clear(Option_t* option = "");
    virtual void Print(Option_t* option = "") const;
    static void PrintHeader();
    static void PrintFooter();
          
    inline UInt_t  Digit() const { return fDigit; }
    inline Int_t   EndCapOrBarrel() const { return fEndCapOrBarrel; }
    inline Int_t   PhiSector() const { return fPhiSector; }
    inline Int_t   ModuleOrWheel() const { return fModuleOrWheel; }
    inline Int_t   StrawLayer() const { return fStrawLayer; }
    inline Int_t   Straw() const { return fStraw; }
    
    inline void SetEndCapOrBarrel(Int_t EndCapOrBarrel) {
	fEndCapOrBarrel = EndCapOrBarrel;
    }

    inline void SetPhiSector(Int_t PhiSector) {
	fPhiSector = PhiSector;
    }

    inline void SetModuleOrWheel(Int_t ModuleOrWheel) {
	fModuleOrWheel = ModuleOrWheel;
    }

    inline void SetStrawLayer(Int_t StrawLayer) {
	fStrawLayer = StrawLayer;
    }

    inline void SetStraw(Int_t Straw) {
	fStraw = Straw;
    }

    inline Bool_t  IsHighThrHit() const;
    inline Bool_t  HasSetBitAt(Int_t bit);
    inline Int_t   FirstSetBit();
    inline Int_t   LastSetBit();
    inline Int_t   LeadingEdge();
    inline Int_t   TrailingEdge();
    inline Int_t   GetN_Transitions();
    inline Int_t   GetN_Islands();
    inline Int_t   GetN_Zeros(Int_t island);
    inline Float_t TimeOverThreshold(Option_t* option = "prsnt") const;
    
    ClassDef(AtlTRTDigit,2) // Atlas TRT digitisation
};

//____________________________________________________________________

Bool_t AtlTRTDigit::IsHighThrHit() const {
    //
    // Check if hit is a high-threshold hit
    //
    UInt_t mask = 0x4020100;
    if (fDigit & mask) return kTRUE;
    else return kFALSE;
}

//____________________________________________________________________

Bool_t AtlTRTDigit::HasSetBitAt(Int_t bit) {
    //
    // Check whether a bit is set. Choose the bit in the
    // range: 0 < bit < 28.
    //
    if ( (fDigit >> (27-bit)) & 0x1)
	return kTRUE;
    else return kFALSE;
}

//____________________________________________________________________

Int_t AtlTRTDigit::FirstSetBit() {
  //
  // Returns the first set LT bit in the digit. 1 < bit < 24.
  //
  for (Int_t bit = 1; bit < 28; ++bit) {
    
    // Leave out HT bits
    if ( bit == 1 || bit == 10 || bit == 19 )
      continue;
    
    if ( HasSetBitAt(bit) ) 
      return (bit - (bit-1)/9 - 1);
  }
  return 0;
}

//____________________________________________________________________

Int_t AtlTRTDigit::LastSetBit() {
  //
  // Returns the last set LT bit in the digit. 1 < bit < 24.
  //
  for (Int_t bit = 1; bit < 28; ++bit) {

    Int_t testbit = 28 - bit;
   
    // Leave out HT bits
    if ( testbit == 1 || testbit == 10 || testbit == 19 )
      continue;

    if ( HasSetBitAt(testbit) ) 
      return (testbit - (testbit-1)/9 - 1);
  }  
  return 0;
}  

//____________________________________________________________________

Int_t AtlTRTDigit::LeadingEdge() {
  //
  // Return the leading edge of the signal. For the time being this
  // is just the same as FirstSetBit(), but we might want to change
  // this in the future.
  //
  return FirstSetBit();
}

//____________________________________________________________________

Int_t AtlTRTDigit::TrailingEdge() {
  //
  // Return the trailing edge of the signal. For the time being this
  // is just the same as LastSetBit(), but we might want to change
  // this in the future.
  //
  return LastSetBit();
}

//____________________________________________________________________

Int_t AtlTRTDigit::GetN_Transitions() {
    //
    // Returns the number of transitions in the digit.
    // A transition here means a change in the state
    // of low threshold bits along the bitpattern.
    //
    // The following digit has 5 transitions:
    //
    //          000011111110001111110011
    //
    Bool_t wasSet = kFALSE;
    Bool_t isSet = kFALSE;
    Int_t N_Transitions = 0;

    //////////////////////////////////////////////////////
    // Loop over the digit and see if there is a change
    // in the bit setting from one bit to the next.     //
    //////////////////////////////////////////////////////
    for (Int_t bit = 1; bit < 28; ++bit) {

        // Leave out HT bits
	if ( bit == 1 || bit == 10 || bit == 19 )
	    continue;

	isSet = HasSetBitAt(bit);
	if ( (isSet && !wasSet) || (!isSet && wasSet) )
	    ++N_Transitions;
	wasSet = isSet;
    }
    
    return N_Transitions;
}

//____________________________________________________________________

Int_t AtlTRTDigit::GetN_Islands() {
    //
    // Returns the number of islands in the digit.
    // An island here means a group of subsequenly
    // set bits in the bitpattern.
    //
    // The following digit has 3 islands:
    //
    //          000011111110001111110011
    //
    Int_t N_Islands;
    Int_t Transitions = GetN_Transitions();
    /////////////////////////////////////////////
    // we have to treat even and uneven numbers
    // of transitions differently. First even: //
    /////////////////////////////////////////////
    if ( (Transitions % 2) == 0. ) 
	N_Islands = Transitions/2;
    else 
	// uneven number of transitions
	N_Islands = (Transitions + 1)/2;
    
    return N_Islands;
}

//____________________________________________________________________

Int_t AtlTRTDigit::GetN_Zeros(Int_t hole) {
    //
    // Returns the number of zeros in a given hole.
    //

    // If the chosen hole number is larger than the total 
    // number of holes in the digit the function returns -1.
    if ( hole > (GetN_Islands() - 1) )
	return -1;
    
    else {
	Int_t Count_Holes = 0;
      	Bool_t IsSet = kFALSE;
	Bool_t WasSet = kFALSE;
	Int_t Zeros = 0;
	
	for (Int_t bit = 1; bit < 28 ; ++bit) {

	    // Leave out HT bits
	    if ( bit == 1 || bit == 10 || bit == 19 )
		continue;	        

	    IsSet = HasSetBitAt(bit);

	    // We step in a hole
	    if ( !IsSet && WasSet ) {
		++Count_Holes;
		Zeros = 1;
	    }
	    
	    // We step on an island
	    if ( IsSet && !WasSet && Zeros) {

		// It was the right hole, return result
		if ( Count_Holes == hole )
		    return Zeros;
	    }
		
	    // We are in a hole
	    if ( !IsSet && !WasSet && Count_Holes)
		++Zeros;

	    WasSet = IsSet;
	}
    }

    // This can never happen!
    return -2;
}

//____________________________________________________________________

Float_t AtlTRTDigit::TimeOverThreshold(Option_t* option) const {
    //
    // returns the Time-Over-Threshold of a TRT hit. The option string
    // determines which definition should be used to calculate the
    // Time-Over-Threshold. The following definitions are available:
    //
    //    A) "ctb"    - Definition as to Athena 12.0.6 and Combined Test Beam
    //    B) "smpl"   - Most simple Time-over-Threshold definition
    //    C) "prsnt"  - The present official Time-over-Threshold definition
    //
    //
    //  A) "ctb"
    // ==========
    // This is the standard Time-Over-Threshold of a TRT hit as defined for
    // Combined Test Beam or Athena 12.0.6. The procedure is as follows:
    //
    // 1) We look for a valid trailing edge which in this case is the
    //    very last set bit.
    // 2) We look for a valid leading edge which in this case is the
    //    first set bit.
    // 3) We consider all bits in between the leading and trailing edge set.
    //    The Time-over-Threshold hence is the number of these bits multiplied
    //    by 3.125 ns.
    //
    //
    //  B) "smpl"
    // ==============
    // This is the most simple definition. We count all set bits and multiply
    // the result by 3.125 ns. We do not care about leading edges in the very
    // first or trailing edges in the very last bit.
    //
    //
    //  C) "prsnt"
    // ==============
    // This definition is similar to definition A) but the trailing edge
    // is not allowed to be situated in the very last (the 24th) time bin.
    // This is the present official Time-over-Threshold of the TRT hits.
    //
    //
    
    TString opt = option;
    opt.ToLower();

    Float_t binWidth = 3.125;
    Float_t TimeOverThreshold = 0.;
    
    if ( opt == "ctb" ) {

	//////////////////////////////////////////////////////////////
	// This piece of code is copied from the ATHENA code in:
	//
	// InnerDetector/InDetRawEvent/
	// InDetRawData/src/TRT_TB04_RawData.cxx                   
	//
	// In Addition the code is corrected for a bug returning
	// negative Time-over-Threshold for bit patterns with zeros
	// only.                                                    //
        //////////////////////////////////////////////////////////////
	//
        // UInt_t mask = 0x02000000;
	//
	// Int_t LE;
        // for (LE = 0; LE < 24; ++LE) {
        //	if (fDigit & mask)
        //	    break;
        //	    
        //	 mask >>= 1;
        //	 if (LE == 7 || LE == 15)
        //	    mask >>= 1;
        // }
	//
 	// mask = 0x00000001;
	//
	// Int_t TE;
	// for (TE = 0; TE < 24; ++TE) {
	//     if (fDigit & mask)
	// 	break;
	//    
	//    mask <<= 1;
	//    if (TE == 7 || TE == 15)
	//	mask <<= 1;
	// }
	//
	// // We correct for the bug
	// //
	// if ( (LE == 24) && (TE == 24) )
	//       TimeOverThreshold = 0.;
	// else
	//       TimeOverThreshold = (24 - LE - TE) * binWidth;
	//
	//                                                          // 
	//////////////////////////////////////////////////////////////

	///////////////////////////////////////////
	// Time-over-Threshold Definition A
	// ================================      //
	///////////////////////////////////////////
	
	UInt_t mask = 0x0000001;

	Int_t TE;
    	for (TE = 0 ; TE < 24; ++TE) {
	    if ( mask & fDigit )
		break;
	    mask <<= 1;
	
	    // Leave out HT bits
	    if ( TE == 7 || TE == 15 )
		mask <<= 1;
	}
	
	// If we have only zeros in the digit we can as well stop
	// here and return zero Time-over-Threshold.
	//
	if ( TE == 24 ) return 0.;

	// Step 2: leading edge
	//
	Int_t LE;
	mask = 0x2000000;
    
	for (LE = 0; LE < 24; ++LE) {
	    if ( mask & fDigit )
		break;
	    mask >>= 1;
	
	    // Leave out HT bits
	    if ( LE == 7 || LE == 15 )
		mask >>= 1;
	}

	TimeOverThreshold = (24 - LE - TE) * binWidth;

    } else if ( opt == "smpl" ) {

	//////////////////////////////////////////
	// Time-over-Threshold Definition B
	// ================================     //
	//////////////////////////////////////////
	
	// We just count the set bits
	//
	Int_t set_bits = 0;
	for(Int_t bit=1; bit<28;++bit){
	    if ( bit == 1 || bit == 10 || bit == 19 ) continue;
	    if ( (fDigit >> (27-bit)) & 0x1) ++set_bits;
	}
	
	TimeOverThreshold = set_bits * binWidth;

    } else if ( opt == "prsnt" ) {

	///////////////////////////////////////////////////////////
	// Time-over-Threshold Definition C
	// ================================
	// This piece of code is copied from the ATHENA code in:
	// InnerDetector/InDetRecEvent/InDetPrepRawData/
	// InDetPrepRawData/TRT_DriftCircle.h                    //
	///////////////////////////////////////////////////////////
	UInt_t mask = 0x02000000;

	Int_t LE;
	for (LE = 0; LE < 24; ++LE) {
	    
	    if( fDigit & mask ) break;
	    mask >>= 1;
	    if ( LE == 7 || LE == 15 ) mask >>= 1;
	}
	
	mask = 0x00000001;
	Bool_t SawZero = kFALSE;

	Int_t TE;
	for (TE = 0; TE < 24; ++TE) {
	    
	    if ( (fDigit & mask) && SawZero )
		break;
	    else if ( !(fDigit & mask) )
		SawZero = kTRUE;
	    
	    mask <<= 1;
	    if (TE == 7 || TE == 15)
		mask <<= 1;
	}

	if ( (24 == LE) || (24 == TE) || (0 == TE) || (23 == LE) ) 
	    return 0.;
	
	TimeOverThreshold = (24 - LE - TE) * binWidth;
    }

    return TimeOverThreshold;
}


#endif

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