ROOT logo
// @(#)root/tree:$Id: TSelectorCint.cxx 24077 2008-05-31 19:39:09Z brun $
// Author: Rene Brun   05/02/97

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// This class is a special version of TSelector for user interpreted    //
// classes.                                                             //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#include "TROOT.h"
#include "TTree.h"
#include "THashList.h"
#include "TSelectorCint.h"
#include "TError.h"

ClassImp(TSelectorCint)

//______________________________________________________________________________
TSelectorCint::TSelectorCint() : TSelector(),
   fClass(0),
   fFuncVersion  (0),
   fFuncInit     (0),
   fFuncBegin    (0),
   fFuncSlBegin  (0),
   fFuncNotif    (0),
   fFuncSlTerm   (0),
   fFuncTerm     (0),
   fFuncCut      (0),
   fFuncFill     (0),
   fFuncProc     (0),
   fFuncOption   (0),
   fFuncObj      (0),
   fFuncInp      (0),
   fFuncOut      (0),
   fFuncGetAbort (0),
   fFuncGetStat  (0),
   fIntSelector(0),fIsOwner(kFALSE)


{
   // Default constructor for a Selector.

}

//______________________________________________________________________________
TSelectorCint::~TSelectorCint()
{
   // destructor for a Selector.

   gCint->CallFunc_Delete(fFuncVersion);
   gCint->CallFunc_Delete(fFuncInit);
   gCint->CallFunc_Delete(fFuncBegin);
   gCint->CallFunc_Delete(fFuncSlBegin);
   gCint->CallFunc_Delete(fFuncNotif);
   gCint->CallFunc_Delete(fFuncSlTerm);
   gCint->CallFunc_Delete(fFuncTerm);
   gCint->CallFunc_Delete(fFuncCut);
   gCint->CallFunc_Delete(fFuncFill);
   gCint->CallFunc_Delete(fFuncProc);
   gCint->CallFunc_Delete(fFuncOption);
   gCint->CallFunc_Delete(fFuncObj);
   gCint->CallFunc_Delete(fFuncInp);
   gCint->CallFunc_Delete(fFuncOut);
   gCint->CallFunc_Delete(fFuncGetAbort);
   gCint->CallFunc_Delete(fFuncGetStat);

   if (fIsOwner && fIntSelector) gCint->ClassInfo_Delete(fClass,fIntSelector);
   gCint->ClassInfo_Delete(fClass);
}

//______________________________________________________________________________
void TSelectorCint::SetFuncProto(CallFunc_t *cf, ClassInfo_t *cl,
                                 const char* fname, const char* argtype,
                                 Bool_t required)
{
   // Set the function prototype.

   Long_t offset = 0;

   gCint->CallFunc_SetFuncProto(cf, cl,fname,argtype,&offset);

   if (gDebug > 2)
      Info("SetFuncProto","set %s(%s) offset = %ld",fname,argtype,offset);

   if (!gCint->CallFunc_IsValid(cf) && required)
      Error("SetFuncProto","cannot set %s(%s)",fname,argtype);
}

//______________________________________________________________________________
void TSelectorCint::Build(TSelector *iselector, ClassInfo_t *cl, Bool_t isowner)
{
   // Initialize the CallFunc objects when selector is interpreted.

   gCint->CallFunc_Delete(fFuncVersion);
   gCint->CallFunc_Delete(fFuncInit);
   gCint->CallFunc_Delete(fFuncBegin);
   gCint->CallFunc_Delete(fFuncSlBegin);
   gCint->CallFunc_Delete(fFuncNotif);
   gCint->CallFunc_Delete(fFuncSlTerm);
   gCint->CallFunc_Delete(fFuncTerm);
   gCint->CallFunc_Delete(fFuncCut);
   gCint->CallFunc_Delete(fFuncFill);
   gCint->CallFunc_Delete(fFuncProc);
   gCint->CallFunc_Delete(fFuncOption);
   gCint->CallFunc_Delete(fFuncObj);
   gCint->CallFunc_Delete(fFuncInp);
   gCint->CallFunc_Delete(fFuncOut);
   gCint->CallFunc_Delete(fFuncGetAbort);
   gCint->CallFunc_Delete(fFuncGetStat);

   if (fIsOwner && fIntSelector) gCint->ClassInfo_Delete(fClass, fIntSelector);
   gCint->ClassInfo_Delete(fClass);

   R__ASSERT(cl);

   // The CINT MethodInfo created by SetFuncProto will remember the address
   // of cl, so we need to keep it around.
   fClass        = gCint->ClassInfo_Factory(cl);

   fIntSelector  = iselector;
   fIsOwner      = isowner;
   fFuncVersion  = gCint->CallFunc_Factory();
   fFuncInit     = gCint->CallFunc_Factory();
   fFuncBegin    = gCint->CallFunc_Factory();
   fFuncSlBegin  = gCint->CallFunc_Factory();
   fFuncNotif    = gCint->CallFunc_Factory();
   fFuncSlTerm   = gCint->CallFunc_Factory();
   fFuncTerm     = gCint->CallFunc_Factory();
   fFuncCut      = gCint->CallFunc_Factory();
   fFuncFill     = gCint->CallFunc_Factory();
   fFuncProc     = gCint->CallFunc_Factory();
   fFuncOption   = gCint->CallFunc_Factory();
   fFuncObj      = gCint->CallFunc_Factory();
   fFuncInp      = gCint->CallFunc_Factory();
   fFuncOut      = gCint->CallFunc_Factory();
   fFuncGetAbort = gCint->CallFunc_Factory();
   fFuncGetStat  = gCint->CallFunc_Factory();

   SetFuncProto(fFuncVersion,fClass,"Version","",kFALSE);
   SetFuncProto(fFuncInit,fClass,"Init","TTree*");
   SetFuncProto(fFuncBegin,fClass,"Begin","TTree*");
   SetFuncProto(fFuncSlBegin,fClass,"SlaveBegin","TTree*",kFALSE);
   SetFuncProto(fFuncNotif,fClass,"Notify","");
   SetFuncProto(fFuncSlTerm,fClass,"SlaveTerminate","",kFALSE);
   SetFuncProto(fFuncTerm,fClass,"Terminate","");
   SetFuncProto(fFuncCut,fClass,"ProcessCut","Long64_t",kFALSE);
   SetFuncProto(fFuncFill,fClass,"ProcessFill","Long64_t",kFALSE);
   SetFuncProto(fFuncProc,fClass,"Process","Long64_t",kFALSE);
   SetFuncProto(fFuncOption,fClass,"SetOption","const char*");
   SetFuncProto(fFuncObj,fClass,"SetObject","TObject*");
   SetFuncProto(fFuncInp,fClass,"SetInputList","TList*");
   SetFuncProto(fFuncOut,fClass,"GetOutputList","");
   SetFuncProto(fFuncGetAbort,fClass,"GetAbort","",kFALSE);
   SetFuncProto(fFuncGetStat,fClass,"GetStatus","");
}

//______________________________________________________________________________
int TSelectorCint::Version() const
{
   // Invoke the Version function via the interpreter.

   if (gDebug > 2)
      Info("Version","Call Version");

   if (gCint->CallFunc_IsValid(fFuncVersion)) {
      gCint->CallFunc_ResetArg(fFuncVersion);
      return gCint->CallFunc_ExecInt(fFuncVersion, fIntSelector);
   } else {
      return 0; // emulate for old version
   }
}

//______________________________________________________________________________
void TSelectorCint::Init(TTree *tree)
{
   // Invoke the Init function via the interpreter.

   if (gDebug > 2)
      Info("Init","Call Init tree = %p", tree);

   gCint->CallFunc_ResetArg(fFuncInit);
   gCint->CallFunc_SetArg(fFuncInit, (Long_t)tree);
   gCint->CallFunc_Exec(fFuncInit, fIntSelector);
}

//______________________________________________________________________________
void TSelectorCint::Begin(TTree *tree)
{
   // Invoke the Begin function via the interpreter.

   if (gDebug > 2)
      Info("Begin","Call Begin tree = %p", tree);
   gCint->CallFunc_ResetArg(fFuncBegin);
   gCint->CallFunc_SetArg(fFuncBegin, (Long_t)tree);
   gCint->CallFunc_ExecInt(fFuncBegin, fIntSelector);
}

//______________________________________________________________________________
void TSelectorCint::SlaveBegin(TTree *tree)
{
   // Invoke the SlaveBegin function via the interpreter if available.

   if (gDebug > 2)
      Info("SlaveBegin","Call SlaveBegin tree = %p", tree);

   if (gCint->CallFunc_IsValid(fFuncSlBegin)) {
      gCint->CallFunc_ResetArg(fFuncSlBegin);
      gCint->CallFunc_SetArg(fFuncSlBegin, (Long_t)tree);
      gCint->CallFunc_ExecInt(fFuncSlBegin, fIntSelector);
   } else {
      if (gDebug > 1)
         Info("SlaveBegin","SlaveBegin unavailable");
   }
}

//______________________________________________________________________________
Bool_t TSelectorCint::Notify()
{
   // Invoke the Notify function via the interpreter.

   if (gDebug > 2)
      Info("Notify","Call Notify");
   Long64_t sel = gCint->CallFunc_ExecInt(fFuncNotif, fIntSelector);
   return (Bool_t)sel;
}

//______________________________________________________________________________
Bool_t TSelectorCint::ProcessCut(Long64_t entry)
{
   // Invoke the ProcessCut function via the interpreter.

   if (gDebug > 3)
      Info("ProcessCut","Call ProcessCut entry = %d", entry);

   if(gCint->CallFunc_IsValid(fFuncCut)) {
      gCint->CallFunc_ResetArg(fFuncCut);
      gCint->CallFunc_SetArg(fFuncCut, (Long_t)entry);
      Int_t sel = gCint->CallFunc_ExecInt(fFuncCut, fIntSelector);
      return (Bool_t)sel;
   } else {
      Error("ProcessCut","ProcessCut unavailable");
      return kFALSE;
   }
}

//______________________________________________________________________________
void TSelectorCint::ProcessFill(Long64_t entry)
{
   // Invoke the ProcessFill function via the interpreter.

   if (gDebug > 3)
      Info("ProcessFill","Call ProcessFill entry = %d", entry);

   if(gCint->CallFunc_IsValid(fFuncFill)) {
      gCint->CallFunc_ResetArg(fFuncFill);
      gCint->CallFunc_SetArg(fFuncFill, (Long_t)entry);
      gCint->CallFunc_Exec(fFuncFill, fIntSelector);
   } else {
      Error("ProcessFill","ProcessFill unavailable");
   }
}

//______________________________________________________________________________
Bool_t TSelectorCint::Process(Long64_t entry)
{
   // Invoke the ProcessCut function via the interpreter.

   if (gDebug > 3)
      Info("Process","Call Process entry = %d", entry);

   if(gCint->CallFunc_IsValid(fFuncProc)) {
      gCint->CallFunc_ResetArg(fFuncProc);
      gCint->CallFunc_SetArg(fFuncProc, (Long_t)entry);
      Int_t sel = gCint->CallFunc_ExecInt(fFuncProc, fIntSelector);
      return (Bool_t)sel;
   } else {
      Error("Process","Process unavailable");
      return kFALSE;
   }
}

//______________________________________________________________________________
void TSelectorCint::SetOption(const char *option)
{
   // Set the selector option.

   if (gDebug > 2)
      Info("SetOption","Option = %s", option);
   gCint->CallFunc_ResetArg(fFuncOption);
   gCint->CallFunc_SetArg(fFuncOption, (Long_t)option);
   gCint->CallFunc_Exec(fFuncOption, fIntSelector);
}

//______________________________________________________________________________
void TSelectorCint::SetObject(TObject *obj)
{
   // Set the current object.

   if (gDebug > 3)
      Info("SetObject","Object = %p", obj);
   gCint->CallFunc_ResetArg(fFuncObj);
   gCint->CallFunc_SetArg(fFuncObj, (Long_t)obj);
   gCint->CallFunc_Exec(fFuncObj, fIntSelector);
}

//______________________________________________________________________________
void TSelectorCint::SetInputList(TList *input)
{
   // Set the selector list of input objects.

   if (gDebug > 2)
      Info("SetInputList","Object = %p", input);
   gCint->CallFunc_ResetArg(fFuncInp);
   gCint->CallFunc_SetArg(fFuncInp,(Long_t)input);
   gCint->CallFunc_Exec(fFuncInp,fIntSelector);
}

//______________________________________________________________________________
TList *TSelectorCint::GetOutputList() const
{
   // Return the list of output object.

   TList *out = (TList *) gCint->CallFunc_ExecInt(fFuncOut, fIntSelector);

   if (gDebug > 2)
      Info("GetOutputList","List = %p", out);

   return out;
}

//______________________________________________________________________________
void TSelectorCint::SlaveTerminate()
{
   // Invoke the SlaveTerminate function via the interpreter if available.

   if (gDebug > 2)
      Info("SlaveTerminate","Call SlaveTerminate");

   if(gCint->CallFunc_IsValid(fFuncSlTerm)) {
      gCint->CallFunc_Exec(fFuncSlTerm, fIntSelector);
   } else {
      if (gDebug > 1)
         Info("SlaveTerminate","SlaveTerminate unavailable");
   }
}

//______________________________________________________________________________
void TSelectorCint::Terminate()
{
   // Invoke the Terminate function via the interpreter.

   if (gDebug > 2)
      Info("Terminate","Call Terminate");
   gCint->CallFunc_Exec(fFuncTerm,fIntSelector);
}

//______________________________________________________________________________
TSelector::EAbort TSelectorCint::GetAbort() const
{
   // Invoke the GetAbort function via the interpreter.

   if (gDebug > 2)
      Info("GetAbort","Call GetAbort");

   if (gCint->CallFunc_IsValid(fFuncGetAbort)) {
      gCint->CallFunc_ResetArg(fFuncGetAbort);
      return (EAbort)gCint->CallFunc_ExecInt(fFuncGetAbort, fIntSelector);
   } else {
      return kContinue; // emulate for old version
   }
}

//______________________________________________________________________________
Long64_t TSelectorCint::GetStatus() const
{
   // Invoke the GetStatus function via the interpreter.

   if (gDebug > 2)
      Info("GetStatus","Call GetStatus");

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