ROOT logo
/* $Id:  $ */
//--------------------------------------------------
// Example macro to do Calorimeters filtering
// copy ESDs into AODs
//
// Pay attention to the options and definitions
// set in the lines below
//
//  Author : Gustavo Conesa Balbastre (INFN-LNF)
//
//-------------------------------------------------
enum anaModes {mLocal, mLocalCAF,mPROOF,mGRID};
//mLocal: Analyze locally files in your computer
//mLocalCAF: Analyze locally CAF files
//mPROOF: Analyze CAF files with PROOF

//---------------------------------------------------------------------------
//Settings to read locally several files, only for "mLocal" mode
//The different values are default, they can be set with environmental 
//variables: INDIR, PATTERN, NFILES, respectivelly
char * kInDir = "/user/data/files/"; 
char * kPattern = ""; // Data are in files kInDir/kPattern+i 
Int_t kFile = 1; // Number of files
//---------------------------------------------------------------------------
//Collection file for grid analysis
char * kXML = "collection.xml";
//---------------------------------------------------------------------------

const TString kInputData = "ESD"; //ESD, AOD, MC
TString kTreeName = "esdTree";
Bool_t kUsePhysSel = kTRUE;

void anaCaloFilter(Int_t mode=mLocal)
{
  // Main
  char cmd[200] ; 
  sprintf(cmd, ".! rm -rf AliAOD.root") ; 
  gROOT->ProcessLine(cmd) ; 
  //--------------------------------------------------------------------
  // Load analysis libraries
  // Look at the method below, 
  // change whatever you need for your analysis case
  // ------------------------------------------------------------------
  LoadLibraries(mode) ;
  
  //-------------------------------------------------------------------------------------------------
  //Create chain from ESD and from cross sections files, look below for options.
  //-------------------------------------------------------------------------------------------------
  if(kInputData == "ESD") kTreeName = "esdTree" ;
  else if(kInputData == "AOD") kTreeName = "aodTree" ;
  else {
    cout<<"Wrong  data type "<<kInputData<<endl;
    break;
  }
  
  TChain *chain       = new TChain(kTreeName) ;
  CreateChain(mode, chain);  
  
  if(chain){
    AliLog::SetGlobalLogLevel(AliLog::kError);//Minimum prints on screen
    
    //--------------------------------------
    // Make the analysis manager
    //-------------------------------------
    AliAnalysisManager *mgr  = new AliAnalysisManager("Manager", "Manager");
    
    // AOD output handler
    AliAODHandler* aodoutHandler   = new AliAODHandler();
    aodoutHandler->SetOutputFileName("AliAOD.root");
    ////aodoutHandler->SetCreateNonStandardAOD();
    mgr->SetOutputEventHandler(aodoutHandler);
    
    //input
    if(kInputData == "ESD")
    {
      // ESD handler
      AliESDInputHandler *esdHandler = new AliESDInputHandler();
      mgr->SetInputEventHandler(esdHandler);
      esdHandler->SetReadFriends(kFALSE);
      cout<<"ESD handler "<<mgr->GetInputEventHandler()<<endl;
    }
    if(kInputData == "AOD")
    {
      // AOD handler
      AliAODInputHandler *aodHandler = new AliAODInputHandler();
      mgr->SetInputEventHandler(aodHandler);
      cout<<"AOD handler "<<mgr->GetInputEventHandler()<<endl;
      
    }
    
    // mgr->SetDebugLevel(1);
    
    //-------------------------------------------------------------------------
    //Define task, put here any other task that you want to use.
    //-------------------------------------------------------------------------    
    // ESD physics selection task
    if(kInputData == "ESD" && kUsePhysSel)
    {
      gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
      AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection();
    }
    
    gROOT->LoadMacro("AddTaskCaloFilter.C");
    AliAnalysisTaskCaloFilter* filter = AddTaskCaloFilter();
            
    //AliAnalysisTaskCaloFilter * filter = new AliAnalysisTaskCaloFilter();
    //filter->SetConfigFileName("ConfigCaloFilter.C");
    //mgr->AddTask(filter);
      
    // Create containers for input/output
    AliAnalysisDataContainer *cinput1    = mgr->GetCommonInputContainer();
    AliAnalysisDataContainer *coutput1   = mgr->GetCommonOutputContainer();
    AliAnalysisDataContainer *coutntuple = mgr->CreateContainer("EventNtuple", TNtuple::Class(), 
                                                                AliAnalysisManager::kOutputContainer, "eventselection.root");
    
    mgr->ConnectInput  (filter, 0, cinput1);
    mgr->ConnectOutput (filter, 0, coutput1 );
    mgr->ConnectOutput (filter, 1, coutntuple );
    
    //-----------------------
    // Run the analysis
    //-----------------------    
    TString smode = "";
    if (mode==mLocal || mode == mLocalCAF) 
      smode = "local";
    else if (mode==mPROOF) 
      smode = "proof";
    else if (mode==mGRID) 
      smode = "local";
    
    mgr->InitAnalysis();
    mgr->PrintStatus();
    mgr->StartAnalysis(smode.Data(),chain);
    
    cout <<" Analysis ended sucessfully "<< endl ;
    
  }
  else cout << "Chain was not produced ! "<<endl;
  
  //sprintf(cmd, ".! rm -rf CorrectionFiles") ;
  
}

void  LoadLibraries(const anaModes mode) {
  
  //--------------------------------------
  // Load the needed libraries most of them already loaded by aliroot
  //--------------------------------------
  gSystem->Load("libTree.so");
  gSystem->Load("libGeom.so");
  gSystem->Load("libVMC.so");
  gSystem->Load("libXMLIO.so");
  gSystem->Load("libMatrix.so");
  gSystem->Load("libPhysics.so");  

  //----------------------------------------------------------
  // >>>>>>>>>>> Local mode <<<<<<<<<<<<<< 
  //----------------------------------------------------------
  if (mode==mLocal || mode == mLocalCAF || mode == mGRID) {
    //--------------------------------------------------------
    // If you want to use already compiled libraries 
    // in the aliroot distribution
    //--------------------------------------------------------

    gSystem->Load("libSTEERBase.so");
    gSystem->Load("libESD.so");
    gSystem->Load("libAOD.so");
    gSystem->Load("libANALYSIS.so");
    gSystem->Load("libANALYSISalice.so");
    gSystem->Load("libANALYSISalice.so");
    gSystem->Load("libCORRFW.so");
    gSystem->Load("libPHOSUtils.so"); 
    gSystem->Load("libEMCALUtils.so");
    gSystem->Load("libPWGGACaloTasks.so");
       
    //--------------------------------------------------------
    //If you want to use root and par files from aliroot
    //--------------------------------------------------------  
    /*     
	   SetupPar("STEERBase");
	   SetupPar("ESD");
	   SetupPar("AOD");
	   SetupPar("ANALYSIS");
	   SetupPar("ANALYSISalice");  
	   SetupPar("PHOSUtils");
	   SetupPar("EMCALUtils");
	   //Create Geometry
	   TGeoManager::Import("geometry.root") ; //need file "geometry.root" in local dir!!!!
	   SetupPar("PWGGACaloTasks");
*/
  }

  //---------------------------------------------------------
  // <<<<<<<<<< PROOF mode >>>>>>>>>>>>
  //---------------------------------------------------------
  else if (mode==mPROOF) {
    //
    // Connect to proof
    // Put appropriate username here
    // TProof::Reset("proof://mgheata@lxb6046.cern.ch"); 
    TProof::Open("proof://mgheata@lxb6046.cern.ch");
    
    //    gProof->ClearPackages();
    //    gProof->ClearPackage("ESD");
    //    gProof->ClearPackage("AOD");
    //    gProof->ClearPackage("ANALYSIS");   
     
    // Enable the STEERBase Package
    gProof->UploadPackage("STEERBase.par");
    gProof->EnablePackage("STEERBase");
    // Enable the ESD Package
    gProof->UploadPackage("ESD.par");
    gProof->EnablePackage("ESD");
    // Enable the AOD Package
    gProof->UploadPackage("AOD.par");
    gProof->EnablePackage("AOD");
    // Enable the Analysis Package
    gProof->UploadPackage("ANALYSIS.par");
    gProof->EnablePackage("ANALYSIS");
    // Enable the PHOS geometry Package
    //gProof->UploadPackage("PHOSUtils.par");
    //gProof->EnablePackage("PHOSUtils");
    gProof->ShowEnabledPackages();
  }  
  
}

void SetupPar(char* pararchivename)
{
  //Load par files, create analysis libraries
  //For testing, if par file already decompressed and modified
  //classes then do not decompress.
 
  TString cdir(Form("%s", gSystem->WorkingDirectory() )) ; 
  TString parpar(Form("%s.par", pararchivename)) ; 
  if ( gSystem->AccessPathName(parpar.Data()) ) {
    gSystem->ChangeDirectory(gSystem->Getenv("ALICE_ROOT")) ;
    TString processline(Form(".! make %s", parpar.Data())) ; 
    gROOT->ProcessLine(processline.Data()) ;
    gSystem->ChangeDirectory(cdir) ; 
    processline = Form(".! mv $ALICE_ROOT/%s .", parpar.Data()) ;
    gROOT->ProcessLine(processline.Data()) ;
  } 
  if ( gSystem->AccessPathName(pararchivename) ) {  
    TString processline = Form(".! tar xvzf %s",parpar.Data()) ;
    gROOT->ProcessLine(processline.Data());
  }
  
  TString ocwd = gSystem->WorkingDirectory();
  gSystem->ChangeDirectory(pararchivename);
  
  // check for BUILD.sh and execute
  if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
    printf("*******************************\n");
    printf("*** Building PAR archive    ***\n");
    cout<<pararchivename<<endl;
    printf("*******************************\n");
    
    if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
      Error("runProcess","Cannot Build the PAR Archive! - Abort!");
      return -1;
    }
  }
  // check for SETUP.C and execute
  if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) {
    printf("*******************************\n");
    printf("*** Setup PAR archive       ***\n");
    cout<<pararchivename<<endl;
    printf("*******************************\n");
    gROOT->Macro("PROOF-INF/SETUP.C");
  }
  
  gSystem->ChangeDirectory(ocwd.Data());
  printf("Current dir: %s\n", ocwd.Data());
}



void CreateChain(const anaModes mode, TChain * chain){
  //Fills chain with data
  TString ocwd = gSystem->WorkingDirectory();
  
  //-----------------------------------------------------------
  //Analysis of CAF data locally and with PROOF
  //-----------------------------------------------------------
  if(mode ==mPROOF || mode ==mLocalCAF){
    // Chain from CAF
    gROOT->LoadMacro("$ALICE_ROOT/PWG0/CreateESDChain.C");
    // The second parameter is the number of input files in the chain
    chain = CreateESDChain("ESD12001.txt", 5);  
  }
  
  //---------------------------------------
  //Local files analysis
  //---------------------------------------
  else if(mode == mLocal){    
    //If you want to add several ESD files sitting in a common directory INDIR
    //Specify as environmental variables the directory (INDIR), the number of files 
    //to analyze (NFILES) and the pattern name of the directories with files (PATTERN)

    if(gSystem->Getenv("INDIR"))  
      kInDir = gSystem->Getenv("INDIR") ; 
    else cout<<"INDIR not set, use default: "<<kInDir<<endl;	
    
    if(gSystem->Getenv("PATTERN"))   
      kPattern = gSystem->Getenv("PATTERN") ; 
    else  cout<<"PATTERN not set, use default: "<<kPattern<<endl;
    
    if(gSystem->Getenv("NFILES"))
      kFile = atoi(gSystem->Getenv("NFILES")) ;
    else cout<<"NFILES not set, use default: "<<kFile<<endl;
    
    //Check if env variables are set and are correct
    if ( kInDir  && kFile) {
      printf("Get %d files from directory %s\n",kFile,kInDir);
      if ( ! gSystem->cd(kInDir) ) {//check if ESDs directory exist
	printf("%s does not exist\n", kInDir) ;
	return ;
      }

  
      cout<<"INDIR   : "<<kInDir<<endl;
      cout<<"NFILES  : "<<kFile<<endl;
      cout<<"PATTERN : " <<kPattern<<endl;

      TString datafile="";
      if(kInputData == "ESD") datafile = "AliESDs.root" ;
      else if(kInputData == "AOD") datafile = "AliAOD.root" ;
      else if(kInputData == "MC")  datafile = "galice.root" ;
      
      //Loop on ESD files, add them to chain
      Int_t event =0;
      Int_t skipped=0 ; 
      char file[120] ;
      
      for (event = 0 ; event < kFile ; event++) {
	sprintf(file, "%s/%s%d/%s", kInDir,kPattern,event,datafile.Data()) ; 
	TFile * fESD = 0 ; 
	//Check if file exists and add it, if not skip it
	if ( fESD = TFile::Open(file)) {
	  if ( fESD->Get(kTreeName) ) { 
	    printf("++++ Adding %s\n", file) ;
	    chain->AddFile(file);
	  }
	}
	else { 
	  printf("---- Skipping %s\n", file) ;
	  skipped++ ;
	}
      }
      printf("number of entries # %lld, skipped %d\n", chain->GetEntries(), skipped*100) ; 	
    }
    else {
      TString input = "AliESDs.root" ;
      cout<<">>>>>> No list added, take a single file <<<<<<<<< "<<input<<endl;
      chain->AddFile(input);
    }
    
  }// local files analysis
  
  //------------------------------
  //GRID xml files
  //-----------------------------
  else if(mode == mGRID){
    //Get colection file. It is specified by the environmental
    //variable XML

    if(gSystem->Getenv("XML") )
      kXML = gSystem->Getenv("XML");
    else
      sprintf(kXML, "collection.xml") ; 
    
    if (!TFile::Open(kXML)) {
      printf("No collection file with name -- %s -- was found\n",kXML);
      return ;
    }
    else cout<<"XML file "<<kXML<<endl;

    //Load necessary libraries and connect to the GRID
    gSystem->Load("libNetx.so") ; 
    gSystem->Load("libRAliEn.so"); 
    TGrid::Connect("alien://") ;

    //Feed Grid with collection file
    //TGridCollection * collection =  (TGridCollection*)gROOT->ProcessLine(Form("TAlienCollection::Open(\"%s\", 0)", kXML));
    TGridCollection * collection = (TGridCollection*) TAlienCollection::Open(kXML);
    if (! collection) {
      AliError(Form("%s not found", kXML)) ; 
      return kFALSE ; 
    }
    TGridResult* result = collection->GetGridResult("",0 ,0);
   
    // Makes the ESD chain 
    printf("*** Getting the Chain       ***\n");
    for (Int_t index = 0; index < result->GetEntries(); index++) {
      TString alienURL = result->GetKey(index, "turl") ; 
      cout << "================== " << alienURL << endl ; 
      chain->Add(alienURL) ; 
    }
  }// xml analysis
  
  gSystem->ChangeDirectory(ocwd.Data());
}

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