Changeset 632


Ignore:
Timestamp:
Jan 13, 2012, 12:19:04 PM (12 years ago)
Author:
torrento
Message:

Added: elements to ntuple; treatment of NoGain data; function meanRawDiffOnOffAllClusters

File:
1 edited

Legend:

Unmodified
Added
Removed
  • BAORadio/AmasNancay/trunk/mergeAnaFiles.cc

    r626 r632  
    5959  string calibBandFreq_;  //band of freq. used for calibration
    6060  r_4 rcalibBandFreq_;    //float version
    61   int maxNumberCycles_;//maximum number of cycles to be treated
     61  int maxNumberCycles_;//(int)maximum number of cycles to be treated
     62  string maxNumberCyclesStr_;//(string)maximum number of cycles to be treated
    6263} para;
    6364//--------------------------------------------------------------
     
    237238}
    238239//-----
    239 list<string> ListOfFileInDir(string dir, string filePettern) throw(string) {
     240list<string> ListOfFileInDir(string dir, string filePattern) throw(string) {
    240241  list<string> theList;
    241242
     
    253254  while ( (dit = readdir(dip)) != NULL ) {
    254255    fileName = dit->d_name;
    255     found=fileName.find(filePettern);
     256    found=fileName.find(filePattern);
    256257    if (found != string::npos) {
    257258      fullFileName = dir + "/";
     
    14211422  TMatrix<r_4> meanOFFovOFF_noCalib(NUMBER_OF_CHANNELS,NUMBER_OF_FREQ); // OFF/Filtered_OFF
    14221423  //Tuple only for RAW things to follow
    1423   static const int NINFO=11;
     1424  static const int NINFO=25;
    14241425  char* onffTupleName[NINFO]={"cycle"
    14251426                              ,"onoffRaw01420","onoffRaw11420"
    14261427                              ,"onoffRaw01420side","onoffRaw11420side"
    14271428                              ,"onoffRaw0f14101415","onoffRaw1f14101415"
    1428                               ,"offRaw0f14101415","offRaw1f14101415"
    1429                               ,"onRaw0f14101415","onRaw1f14101415"
     1429                              ,"offovoffRaw0f14101415","offovoffRaw1f14101415"
     1430                              ,"onovoffRaw0f14101415","onovoffRaw1f14101415"
     1431                              ,"onoffRaw0f14051415","onoffRaw1f14051415"
     1432                              ,"onoffRaw0f14051410","onoffRaw1f14051410"
     1433                              ,"diffonoffRaw0f14051415","diffonoffRaw1f14051415"
     1434                              ,"diffonoffRaw0f14051410","diffonoffRaw1f14051410"
     1435                              ,"diffonoffRaw0f14101415","diffonoffRaw1f14101415"
     1436                              ,"onRaw0f14001415","onRaw1f14001415"
     1437                              ,"offRaw0f14001415","offRaw1f14001415"
    14301438  };
    14311439  NTuple onoffevolution(NINFO,onffTupleName);
     
    14441452  //1400-1420Mhz
    14451453  sa_size_t ch1400 = freqToChan(1400);
    1446   //  sa_size_t ch1405 = freqToChan(1400);
     1454  sa_size_t ch1405 = freqToChan(1405);
    14471455  sa_size_t ch1410 = freqToChan(1410);
    14481456  sa_size_t ch1415 = freqToChan(1415);
    1449   sa_size_t ch1420 = freqToChan(1420);
     1457  //  sa_size_t ch1420 = freqToChan(1420);
    14501458
    14511459  if (para.debuglev_>0){
     
    15201528   
    15211529    if (para.debuglev_>90){
    1522       cout << "Liste of cycles common to On & Off: <";
     1530      cout << dateOfRun << ": Liste of cycles common to On & Off: <";
    15231531      for (list<int>::iterator i=commonCycles.begin(); i!=commonCycles.end(); ++i){
    15241532        cout << *i << " ";
     
    15601568      TMatrix<r_4> aSpecOff(NUMBER_OF_CHANNELS,NUMBER_OF_FREQ);
    15611569      fin.GetObject(aSpecOff,ppftag);
    1562      
     1570
    15631571      //Perform the difference ON-OFF
    15641572      TMatrix<r_4> diffOnOff_noCalib = aSpecOn - aSpecOff;
     
    15831591      offOvOff.Div(aSpecOffFiltered);
    15841592      meanOFFovOFF_noCalib += offOvOff;
     1593
    15851594
    15861595      totalNumberCycles++;
     
    15951604      xnt[2] = meanInRange_1420Freq_noCalib(1);
    15961605
    1597 
    15981606      //Follow up below the 1420.4MHz Freq.
    15991607      TVector<r_4> meanInRange_1420aFreq_noCalib(NUMBER_OF_CHANNELS);
     
    16301638      xnt[9] = meanInRange_1410a1415Freq_ON_noCalib(0);
    16311639      xnt[10] = meanInRange_1410a1415Freq_ON_noCalib(1);
     1640
     1641      //AST 09/01/12 follow 1405-1415 and 1405-1410 MHz for (ON-OFF)/OFF_filt
     1642      TVector<r_4> meanInRange_1405a1415Freq_noCalib(NUMBER_OF_CHANNELS);
     1643      meanInRange(diffOnOffOvOff_noCalib,ch1405,ch1415,meanInRange_1405a1415Freq_noCalib);
     1644      xnt[11] = meanInRange_1405a1415Freq_noCalib(0);
     1645      xnt[12] = meanInRange_1405a1415Freq_noCalib(1);
     1646     
     1647      TVector<r_4> meanInRange_1405a1410Freq_noCalib(NUMBER_OF_CHANNELS);
     1648      meanInRange(diffOnOffOvOff_noCalib,ch1405,ch1410,meanInRange_1405a1410Freq_noCalib);
     1649      xnt[13] = meanInRange_1405a1410Freq_noCalib(0);
     1650      xnt[14] = meanInRange_1405a1410Freq_noCalib(1);
     1651
     1652      //AST 09/01/12 follow 1405-1415, 1405-1410 and 1410-1415 MHz for (ON-OFF)
     1653      TVector<r_4> meanInRange_1405a1415Freq_diffOnOff_noCalib(NUMBER_OF_CHANNELS);
     1654      meanInRange(diffOnOff_noCalib,ch1405,ch1415,meanInRange_1405a1415Freq_diffOnOff_noCalib);
     1655      xnt[15] = meanInRange_1405a1415Freq_diffOnOff_noCalib(0);
     1656      xnt[16] = meanInRange_1405a1415Freq_diffOnOff_noCalib(1);
     1657     
     1658      TVector<r_4> meanInRange_1405a1410Freq_diffOnOff_noCalib(NUMBER_OF_CHANNELS);
     1659      meanInRange(diffOnOff_noCalib,ch1405,ch1410,meanInRange_1405a1410Freq_diffOnOff_noCalib);
     1660      xnt[17] = meanInRange_1405a1410Freq_diffOnOff_noCalib(0);
     1661      xnt[18] = meanInRange_1405a1410Freq_diffOnOff_noCalib(1);
     1662
     1663      TVector<r_4> meanInRange_1410a1415Freq_diffOnOff_noCalib(NUMBER_OF_CHANNELS);
     1664      meanInRange(diffOnOff_noCalib,ch1410,ch1415,meanInRange_1410a1415Freq_diffOnOff_noCalib);
     1665      xnt[19] = meanInRange_1410a1415Freq_diffOnOff_noCalib(0);
     1666      xnt[20] = meanInRange_1410a1415Freq_diffOnOff_noCalib(1);
     1667
     1668      //AST 10/01/12 follow 1400-1415 MHz ON, OFF (to continue plot on internal notes)
     1669      TVector<r_4> meanInRange_1400a1415Freq_On_noCalib(NUMBER_OF_CHANNELS);
     1670      meanInRange(aSpecOn,ch1400,ch1415,meanInRange_1400a1415Freq_On_noCalib);
     1671      xnt[21] = meanInRange_1400a1415Freq_On_noCalib(0);
     1672      xnt[22] = meanInRange_1400a1415Freq_On_noCalib(1);
     1673      TVector<r_4> meanInRange_1400a1415Freq_Off_noCalib(NUMBER_OF_CHANNELS);
     1674      meanInRange(aSpecOff,ch1400,ch1415,meanInRange_1400a1415Freq_Off_noCalib);
     1675      xnt[23] = meanInRange_1400a1415Freq_Off_noCalib(0);
     1676      xnt[24] = meanInRange_1400a1415Freq_Off_noCalib(1);
    16321677     
    16331678      //store infos to Ntuple
     
    16531698    stringstream tmp;
    16541699    tmp << totalNumberCycles;
    1655     string fileName = para.outPath_+"/rawOnOffDiff_"+StringToLower(para.sourceName_)+"-"+tmp.str()+"Cycles.ppf";
    1656 
     1700    string fileName;
     1701    if ( para.ppfFile_ == "dataRawNoGain" ) {
     1702      fileName = para.outPath_+"/rawOnOffDiffNoGain_"+StringToLower(para.sourceName_)+"-"+tmp.str()+"Cycles.ppf";
     1703    } else {
     1704      fileName = para.outPath_+"/rawOnOffDiff_"+StringToLower(para.sourceName_)+"-"+tmp.str()+"Cycles.ppf";
     1705    }
    16571706    POutPersist fos(fileName);
    16581707    cout << "Save output in " << fileName << endl;
     
    18031852  }
    18041853
    1805  
    18061854
    18071855  {//Save the result
     
    18281876    fos << PPFNameTag(tag) << tarr;
    18291877  }
     1878}
     1879
     1880// AST 5/12/2011
     1881//-------------------------------------------------------
     1882// Take all statistics from cluster data to compute Raw sensitivity vs. t_int
     1883
     1884void meanRawDiffOnOffAllClusters() throw(string) {
     1885
     1886  // Sources names
     1887  std::vector < std::string > sources;      //we'll put all of the tokens in here
     1888  std::string  temp, insources = para.sourceName_;
     1889  std::cout << insources << std::endl;
     1890  while (insources.find("-", 0) != std::string::npos) { //does the string a comma in it?
     1891    size_t  pos = insources.find("-", 0); //store the position of the delimiter
     1892    temp = insources.substr(0, pos);      //get the token
     1893    insources.erase(0, pos + 1);          //erase it from the source
     1894    sources.push_back(temp);              //and put it into the array
     1895  }
     1896  sources.push_back(insources);           //the last token is all alone
     1897  std::cout << "Processing " << sources.size() << " sources" << std::endl;
     1898
     1899  // Sources max number of cycles
     1900  std::vector < std::string > cycles;      //we'll put all of the tokens in here
     1901  std::string  temp1, incycles = para.maxNumberCyclesStr_;
     1902  while (incycles.find("-", 0) != std::string::npos) { //does the string a hyphen in it?
     1903    size_t  pos = incycles.find("-", 0);               //store the position of the delimiter
     1904    temp1 = incycles.substr(0, pos);                   //get the token
     1905    incycles.erase(0, pos + 1);                        //erase it from the source
     1906    cycles.push_back(temp1);               //and put it into the array
     1907  }
     1908  cycles.push_back(incycles);              //the last token is all alone
     1909
     1910  if ( sources.size() != cycles.size() ) {
     1911    std::cout << "Problem: a max number of cycles for each source must be entered" << std::endl;
     1912    exit (1);
     1913  } else {
     1914    for (uint j=0;j<cycles.size();j++) {
     1915      cout<<"Source "<<sources.at(j)<<": max "<<cycles.at(j)<<" cycles"<< endl;
     1916    }
     1917  }
     1918
     1919  // Begin analysis for each source
     1920  list<string> listOfFiles,copylistOfFiles;
     1921  string directoryName;
     1922 
     1923  //mean ON-OFF over the list of cycles
     1924  TMatrix<r_4> meanDiffONOFF_noCalib(NUMBER_OF_CHANNELS,NUMBER_OF_FREQ);      //(ON-OFF)/GAIN
     1925  TMatrix<r_4> meanDiffONOFFovOFF_noCalib(NUMBER_OF_CHANNELS,NUMBER_OF_FREQ); //(ON-OFF)/Filtered_OFF
     1926  TMatrix<r_4> meanONovOFF_noCalib(NUMBER_OF_CHANNELS,NUMBER_OF_FREQ);        // ON/Filtered_OFF
     1927  TMatrix<r_4> meanOFFovOFF_noCalib(NUMBER_OF_CHANNELS,NUMBER_OF_FREQ);       // OFF/Filtered_OFF
     1928  //Tuple only for RAW things to follow
     1929  static const int NINFO=11;
     1930  char* onffTupleName[NINFO]={"srcID","date","run","cycletot","cyclesource"
     1931                              ,"onoffRaw0f14101415","onoffRaw1f14101415"
     1932                              ,"onoffRaw0f141014125","onoffRaw1f141014125"
     1933                              ,"onoffRaw0f14101411","onoffRaw1f14101411"
     1934  };
     1935  NTuple onoffevolution(NINFO,onffTupleName);
     1936  r_4 xnt[NINFO];
     1937
     1938  //Loop on Sources
     1939  int numberCyclesSource;  // running number of cycles for each source
     1940  int maxCyclesSource;     // maximum number of cycles for each source
     1941  int totalNumberRuns=0;   //total number of runs (for all clusters)
     1942  int totalNumberCycles=0; //total number of cycles (for all clusters)
     1943  std::string dumm;
     1944
     1945  for (uint iSource=0;iSource<sources.size();iSource++){
     1946    directoryName = para.inPath_ + "/" + sources.at(iSource);
     1947    maxCyclesSource = atoi(cycles.at(iSource).c_str());
     1948    cout<<"Processing "<< maxCyclesSource<<" cycles for source "<<sources.at(iSource)<<endl;
     1949
     1950    //Make the listing of the directory
     1951    listOfFiles = ListOfFileInDir(directoryName,para.ppfFile_);
     1952    cout << "Total number of files loaded..." << listOfFiles.size() << endl;
     1953    //    cout << endl;
     1954
     1955    list<string>::const_iterator iFile, iFileEnd, iSpec, iSpecEnd;
     1956    iFileEnd = listOfFiles.end();
     1957
     1958    //1410-1415Mhz
     1959    sa_size_t ch1410 = freqToChan(1410);
     1960    sa_size_t ch1411 = freqToChan(1411);
     1961    sa_size_t ch14125 = freqToChan(1412.5);
     1962    sa_size_t ch1415 = freqToChan(1415);
     1963
     1964    if (para.debuglev_>0){
     1965      cout << "(1) freq. band for follow up [" <<  ch1410 << ", "<< ch1415 << "]" << endl;
     1966      cout << "(2) freq. band for follow up [" <<  ch1410 << ", "<< ch14125 << "]" << endl;
     1967      cout << "(3) freq. band for follow up [" <<  ch1410 << ", "<< ch1411 << "]" << endl;
     1968    }
     1969
     1970    numberCyclesSource=0; //total number of cycles in this source
     1971    //Loop on files
     1972    for (iFile = listOfFiles.begin(); iFile != iFileEnd; ++iFile) {
     1973      if (para.debuglev_>90){
     1974        cout << "load file <" << *iFile << ">" << endl;
     1975      }
     1976     
     1977      vector<string> tokens;
     1978      split(*iFile,"_",tokens);
     1979      string dateOfRun = tokens[1];
     1980      r_4 rdateOfRun = atoi(dateOfRun.c_str()) - 2011*1.e4;
     1981      if (para.debuglev_>90){
     1982        cout << "date <" << dateOfRun << ">" << endl;
     1983        cout << "rdate <" << rdateOfRun << ">" << endl;
     1984      }
     1985      vector<string> tokens2;
     1986      split(tokens[2],".",tokens2);
     1987      string srcLower = tokens2[0], csrcID;
     1988      size_t found;
     1989      found=srcLower.find_first_of("0123456789");
     1990      while (found!=string::npos){
     1991        csrcID.push_back(srcLower[found]);
     1992        found=srcLower.find_first_of("0123456789",found+1);
     1993      }
     1994      r_4 srcID = atoi(csrcID.c_str());
     1995      if (para.debuglev_>1000){
     1996        cout << "source <" << srcLower << ">" << endl;
     1997        cout << "srcID <" << srcID << ">" << endl;
     1998      }
     1999
     2000      // AST remove bad data of Abell1205
     2001      if ( (dateOfRun=="20110822"||dateOfRun=="20110903"||dateOfRun=="20110905"||dateOfRun=="20110912"||dateOfRun=="20110915") && srcLower == "abell1205" ) {
     2002        cout << ">>> Skipping bad period " << dateOfRun << endl;
     2003        continue;
     2004      }
     2005
     2006      PInPersist fin(*iFile);
     2007      vector<string> vec = fin.GetNameTags();
     2008
     2009      vector<string> modeList;
     2010      modeList.push_back("On");
     2011      modeList.push_back("Off");
     2012      vector<string>::const_iterator iMode;
     2013   
     2014      map<string, list<int> > cycleModeCollect;
     2015
     2016      for (iMode = modeList.begin(); iMode!=modeList.end(); ++iMode) {
     2017        list<string> listOfSpectra;
     2018        //Keep only required PPF objects
     2019        string matchstr = "specRaw"+(*iMode)+"[0-9]+";
     2020        std::remove_copy_if(
     2021                            vec.begin(), vec.end(), back_inserter(listOfSpectra),
     2022                            not1(StringMatch(matchstr))
     2023                            );
     2024     
     2025        listOfSpectra.sort(stringCompare);
     2026        iSpecEnd = listOfSpectra.end();
     2027       
     2028        matchstr = "[0-9]+";
     2029        //Loop of spectra matrix
     2030        list<int> listOfCycles;
     2031        for (iSpec = listOfSpectra.begin(); iSpec!=iSpecEnd;  ++iSpec){
     2032          int b,e;
     2033          regexp(iSpec->c_str(),matchstr.c_str(),&b,&e);
     2034          if (para.debuglev_>90){
     2035            cout << " spectra <" << *iSpec << ">" << endl;
     2036            cout << " cycle " << iSpec->substr(b) << endl;
     2037          }
     2038          listOfCycles.push_back(atoi((iSpec->substr(b)).c_str()));
     2039        }//end loop spectra
     2040        cycleModeCollect[*iMode] = listOfCycles;
     2041      }//end of mode
     2042
     2043      //Take the Intersection of the list Of cycles in mode Off and On   
     2044      list<int> commonCycles;
     2045      set_intersection(cycleModeCollect["On"].begin(),
     2046                       cycleModeCollect["On"].end(),
     2047                       cycleModeCollect["Off"].begin(),
     2048                       cycleModeCollect["Off"].end(),
     2049                       back_inserter(commonCycles)
     2050                       );
     2051     
     2052      if (para.debuglev_>90){
     2053        cout << "Liste of cycles common to On & Off: <";
     2054        for (list<int>::iterator i=commonCycles.begin(); i!=commonCycles.end(); ++i){
     2055          cout << *i << " ";
     2056        }
     2057        cout << ">" << endl;
     2058      }
     2059     
     2060      //Loop on cycles
     2061      for (list<int>::iterator ic=commonCycles.begin(); ic!=commonCycles.end(); ++ic){
     2062       
     2063        // AST 28.11.11 remove non-calibrated cycles for Abell1205 and Abell2440
     2064        if ( *ic == 1 && srcLower == "abell1205" ) {
     2065          if ( dateOfRun == "20110502" || dateOfRun == "20110607" || dateOfRun == "20110818" ) {
     2066            cout << "Skipping non-calibrated cycle " << *ic << endl;
     2067            continue;
     2068          }
     2069        } else if ( *ic == 1 && srcLower == "abell2440" ) {
     2070          if ( dateOfRun == "20110516" ) {
     2071            cout << "Skipping non-calibrated cycle " << *ic << endl;
     2072            continue;
     2073          }
     2074        } else if ( *ic == 3 && srcLower == "abell1205" ) {
     2075          if ( dateOfRun == "20110810" ) {
     2076            cout << "Skipping non-calibrated cycle " << *ic << endl;
     2077            continue;
     2078          }
     2079        }
     2080       
     2081        string ppftag;
     2082        //load ON phase
     2083        stringstream cycle;
     2084        cycle << *ic;
     2085        ppftag = "specRawOn"+cycle.str();
     2086        TMatrix<r_4> aSpecOn(NUMBER_OF_CHANNELS,NUMBER_OF_FREQ);
     2087        fin.GetObject(aSpecOn,ppftag);
     2088       
     2089        //Load OFF phase
     2090        ppftag = "specRawOff"+cycle.str();
     2091        TMatrix<r_4> aSpecOff(NUMBER_OF_CHANNELS,NUMBER_OF_FREQ);
     2092        fin.GetObject(aSpecOff,ppftag);
     2093       
     2094      //Perform the difference ON-OFF
     2095        TMatrix<r_4> diffOnOff_noCalib = aSpecOn - aSpecOff;
     2096        meanDiffONOFF_noCalib += diffOnOff_noCalib;
     2097       
     2098        TMatrix<r_4> diffOnOffOvOff_noCalib(diffOnOff_noCalib,false); //do not share data
     2099        TMatrix<r_4> aSpecOffFiltered(NUMBER_OF_CHANNELS,NUMBER_OF_FREQ);
     2100        sa_size_t halfWidth = 35; //number of freq. bin for the 1/2 width of the filtering window
     2101        medianFiltering(aSpecOff,halfWidth,aSpecOffFiltered);
     2102        diffOnOffOvOff_noCalib.Div(aSpecOffFiltered); //division in place
     2103        meanDiffONOFFovOFF_noCalib += diffOnOffOvOff_noCalib;
     2104       
     2105        numberCyclesSource++;
     2106        totalNumberCycles++;
     2107       
     2108        //Fill NTuple
     2109        xnt[0] = srcID;
     2110        xnt[1] = rdateOfRun;
     2111        xnt[2] = totalNumberRuns;
     2112        xnt[3] = totalNumberCycles;
     2113        xnt[4] = numberCyclesSource;
     2114       
     2115        TVector<r_4> meanInRange_1410a1415Freq_noCalib(NUMBER_OF_CHANNELS);
     2116        meanInRange(diffOnOffOvOff_noCalib,ch1410,ch1415,meanInRange_1410a1415Freq_noCalib);
     2117        TVector<r_4> meanInRange_1410a14125Freq_noCalib(NUMBER_OF_CHANNELS);
     2118        meanInRange(diffOnOffOvOff_noCalib,ch1410,ch14125,meanInRange_1410a14125Freq_noCalib);
     2119        TVector<r_4> meanInRange_1410a1411Freq_noCalib(NUMBER_OF_CHANNELS);
     2120        meanInRange(diffOnOffOvOff_noCalib,ch1410,ch1411,meanInRange_1410a1411Freq_noCalib);
     2121
     2122        xnt[5] = meanInRange_1410a1415Freq_noCalib(0);
     2123        xnt[6] = meanInRange_1410a1415Freq_noCalib(1);
     2124        xnt[7] = meanInRange_1410a14125Freq_noCalib(0);
     2125        xnt[8] = meanInRange_1410a14125Freq_noCalib(1);
     2126        xnt[9] = meanInRange_1410a1411Freq_noCalib(0);
     2127        xnt[10] = meanInRange_1410a1411Freq_noCalib(1);
     2128
     2129        onoffevolution.Fill(xnt);
     2130       
     2131        //Quit if enough
     2132        if ( numberCyclesSource >= maxCyclesSource ) break;
     2133      }//end loop on cycles
     2134      if (numberCyclesSource >= maxCyclesSource) break;
     2135      totalNumberRuns++;
     2136    } // end loop on files
     2137    cout << "End of job on source: we have treated " << numberCyclesSource << " cycles" << endl;       
     2138  } // end loop on sources
     2139  cout << "End of jobs: we have treated " << totalNumberCycles << " cycles" << endl;
     2140
     2141  //Normalisation
     2142  if(totalNumberCycles > 0){
     2143    meanDiffONOFF_noCalib       /= (r_4)totalNumberCycles;
     2144    meanDiffONOFFovOFF_noCalib  /= (r_4)totalNumberCycles;
     2145  }
     2146
     2147  {//save results
     2148    stringstream tmp;
     2149    tmp << totalNumberCycles;
     2150    string fileName = para.outPath_+"/rawOnOffDiff_"+StringToLower(para.sourceName_)+"-"+tmp.str()+"Cycles.ppf";
     2151
     2152    POutPersist fos(fileName);
     2153    cout << "Save output in " << fileName << endl;
     2154
     2155    string tag = "meanNoCalib";
     2156    fos << PPFNameTag(tag) << meanDiffONOFF_noCalib;
     2157   
     2158    tag = "meanOvOffNoCalib";
     2159    fos << PPFNameTag(tag) << meanDiffONOFFovOFF_noCalib;
     2160
     2161    tag = "onoffevol";
     2162    fos << PPFNameTag(tag) << onoffevolution;
     2163
     2164  }//end save
     2165 
    18302166}
    18312167
     
    18562192    if (strcmp(arg[ka],"-h")==0) {
    18572193      cout << "Usage:  -act [meanRawDiffOnOff]|medianRawDiffOnOff|meanCalibBAODiffOnOff\n"
    1858            << " -mxcycles <number> (max. number of cycles to be treated)\n"
     2194           << " -mxcycles <number> (max. number of cycles to be treated) or <list-of-numbers> if several sources are analysed \n"
    18592195           << " -calibfreq <number> (cf. freq. used by calibration operation)\n"
    18602196           << " -calibbandfreq <number> (cf. band of freq. used by calibration operation)\n"
    1861            << " -src [Abell85]\n"
     2197           << " -src [Abell85] or list of sources [Abell85-Abell1205-Abell2440]\n"
    18622198           << " -inPath [.]|<top_root_dir of the ppf file>\n"
    18632199           << " (ex. /sps/baoradio/AmasNancay/JEC/\n "
     
    19242260  if (mxcycles != "") {
    19252261    para.maxNumberCycles_ = atoi(mxcycles.c_str());
     2262    para.maxNumberCyclesStr_ = mxcycles;
    19262263  } else {
    19272264    para.maxNumberCycles_ = std::numeric_limits<int>::max();
     2265    para.maxNumberCyclesStr_ = "500";
    19282266  }
    19292267
     
    19622300    } else if (action == "calibCoeffNtp") {
    19632301      calibCoeffNtp();
     2302    } else if (action == "meanRawDiffOnOffAllClusters") {
     2303      meanRawDiffOnOffAllClusters();
    19642304    } else {
    19652305      msg = "Unknown action " + action;
Note: See TracChangeset for help on using the changeset viewer.