本文整理汇总了C++中TMap::GetValue方法的典型用法代码示例。如果您正苦于以下问题:C++ TMap::GetValue方法的具体用法?C++ TMap::GetValue怎么用?C++ TMap::GetValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TMap
的用法示例。
在下文中一共展示了TMap::GetValue方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MakeFileList
//___________________________________________________________________
void MakeFileList(const char *searchdir, const char *pattern, const char* outputFileName="calib.list", Int_t timeOut=10)
{
gSystem->Setenv("XRDCLIENTMAXWAIT",Form("%d",timeOut));
gEnv->SetValue("XNet.RequestTimeout", timeOut);
gEnv->SetValue("XNet.ConnectTimeout", timeOut);
gEnv->SetValue("XNet.TransactionTimeout", timeOut);
TFile::SetOpenTimeout(timeOut);
TGrid::Connect("alien");
TString command;
command = Form("find %s %s", searchdir, pattern);
cerr<<"command: "<<command<<endl;
TGridResult *res = gGrid->Command(command);
if (!res) return;
TIter nextmap(res);
TMap *map = 0;
ofstream outputFile;
outputFile.open(Form(outputFileName));
//first identify the largest file and put it at the beginning
Int_t largestFileSize=0;
TString largestFile;
TObject* largestObject;
while((map=(TMap*)nextmap()))
{
TObjString *objs = dynamic_cast<TObjString*>(map->GetValue("turl"));
TObjString *objsSize = dynamic_cast<TObjString*>(map->GetValue("size"));
if (!objs || !objs->GetString().Length()) continue;
if (!objsSize || !objsSize->GetString().Length()) continue;
Int_t currentFileSize=objsSize->GetString().Atoi();
if (currentFileSize>largestFileSize)
{
largestFileSize=currentFileSize;
largestFile=objs->GetString();
largestObject=map;
}
}
outputFile << largestFile.Data()<< endl;
res->Remove(largestObject);
//then write the rest of the entries to the file
nextmap.Reset();
while((map=(TMap*)nextmap()))
{
TObjString *objs = dynamic_cast<TObjString*>(map->GetValue("turl"));
if (!objs || !objs->GetString().Length())
{
delete res;
break;
}
TString src=Form("%s",objs->GetString().Data());
outputFile << src.Data()<< endl;
}
outputFile.close();
return;
}
示例2: WriteMergeObjects
void WriteMergeObjects( TFile *target ) {
cout << "Writing the merged data." << endl;
TIterator *nextobj = MergeObjects.MakeIterator();
TObjString *pathname_obj;
while( (pathname_obj = (TObjString *)nextobj->Next()) ) {
TString path,name;
SplitPathName(pathname_obj->String(),&path,&name);
TObject *obj = MergeObjects.GetValue(pathname_obj);
target->cd(path);
obj->Write( name );
delete obj;
}
MergeObjects.Clear();
target->Write();
// Temporarily let multiple root files remain if > 2GB
// Prevent Target_1.root Target_2.root, ... from happening.
// long long max_tree_size = 200000000000LL; // 200 GB
// if(TTree::GetMaxTreeSize() < max_tree_size ) {
// TTree::SetMaxTreeSize(max_tree_size);
// }
nextobj = MergeChains.MakeIterator();
TObjString *pathname_obj;
while( (pathname_obj = (TObjString *)nextobj->Next()) ) {
TString path,name;
SplitPathName(pathname_obj->String(),&path,&name);
TChain *ch = (TChain *)MergeChains.GetValue(pathname_obj);
target->cd(path);
ch->Merge(target,0,"KEEP");
delete ch;
// in case of multiple objects with same pathname, must remove
// this one from the list so we don't get the same (deleted)
// one next time we look up the same name
MergeChains.Remove(pathname_obj);
}
MergeChains.Clear();
InitializedMergeObjects = false;
}
示例3: MergeFlowd
void MergeFlowd()
{
TGrid *alien = TGrid::Connect("alien");
if (alien->IsZombie())
{
delete alien;
cout << "Fatal: Alien is a zombie!" << endl;
return;
}
Int_t runlist[] = { // Counter
/*170309, 170308, 170306, 170270, 170269, 170268, 170230, 170228,*/ 170204, 170203, // 10
170193, 170163, 170159, 170155, 170081, 170027, 169859, 169858, 169855, 169846, // 20
169838, 169837, 169835, 169417, 169415, 169411, 169238, 169167, 169160, 169156, // 30
169148, 169145, 169144, 169138, 169094, 169091, 169035, 168992, 168988, 168826, // 40
168777, 168514, 168512, 168511, 168467, 168464, 168460, 168458, 168362, 168361, // 50
168342, 168341, 168325, 168322, 168311, 168310, 167988, 167987 // 58
};
TFileMerger merger;
TString dataBaseDir = "/alice/cern.ch/user/m/mpuccio/Flowd_PbPb2011/output/000";
merger.OutputFile("FileMerger.root");
for (int iRun = 0; iRun < 1; ++iRun)
{
TString runDir = Form("%s%i",dataBaseDir.Data(),runlist[iRun]);
TGridResult *res = alien->Command(Form("find %s */mpuccio_Flowd.root",runDir.Data()));
TIter iter(res);
TMap *map;
while ((map = (TMap*)iter()))
{
TObjString *obj = dynamic_cast<TObjString*>(map->GetValue("turl"));
if (!obj || !obj->String().Length())
{
delete res;
break;
}
TFile *f = TFile::Open(obj->String().Data());
if (!f->IsOpen())
{
cout << "File " << obj->String().Data() << " has some problems..." << endl;
continue;
}
merger.AddFile(f);
merger.PartialMerge();
f->Close();
}
}
merger.Merge();
merger.Write();
}
示例4: FindDataSample
bool FindDataSample(const TMap &lookup, TObjArray &sampleinfis){
//
// Find Data sample in the list of samples
//
TObjArray *entry = dynamic_cast<TObjArray *>(lookup.GetValue(g_sample.Data()));
if(!entry){
printf("Sample %s not found in the list of samples", g_sample.Data());
return false;
}
// Copy to output container
sampleinfis.SetOwner(kFALSE);
for(int ival = 0; ival < 4; ival++) sampleinfis.AddAt(entry->At(ival), ival);
return true;
}
示例5: MergeRootfile
void MergeRootfile( TDirectory *target, TString source_name ) {
TFile *source = NULL;
if( !InitializedMergeObjects ) {
InitializedMergeObjects = true;
source = TFile::Open(source_name);
cout << "Initializing merge objects from " << source_name << endl;
InitMergeObjects( target, source );
delete source;
return;
}
// loop over all objects to be merged
TIterator *nextobj = MergeObjects.MakeIterator();
TObjString *pathname_obj;
while( (pathname_obj = (TObjString *)nextobj->Next()) ) {
TString path,name;
SplitPathName(pathname_obj->String(),&path,&name);
TObject *obj = MergeObjects.GetValue(pathname_obj);
if ( obj->IsA()->InheritsFrom( "TH1" ) ) {
// descendant of TH1 -> merge it
TH1 *h1 = (TH1*)obj;
if( !source ) {
source = TFile::Open(source_name);
}
// make sure we are at the correct directory level by cd'ing to path
source->cd( path );
TH1 *h2 = (TH1*)gDirectory->Get( h1->GetName() );
if ( h2 ) {
h1->Add( h2 );
delete h2;
}
}
}
delete nextobj;
nextobj = NULL;
// loop over all chains to be merged
nextobj = MergeChains.MakeIterator();
TObjString *pathname_obj;
while( (pathname_obj = (TObjString *)nextobj->Next()) ) {
TString path,name;
SplitPathName(pathname_obj->String(),&path,&name);
TChain *ch = (TChain *)MergeChains.GetValue(pathname_obj);
ch->Add(source_name);
}
delete nextobj;
nextobj = NULL;
if( source ) {
delete source;
}
}
示例6: r3ball
void r3ball(Int_t nEvents = 1,
TMap& fDetList,
TString Target = "LeadTarget",
Bool_t fVis = kFALSE,
TString fMC = "TGeant3",
TString fGenerator = "box",
Bool_t fUserPList = kFALSE,
Bool_t fR3BMagnet = kTRUE,
Bool_t fCalifaHitFinder = kFALSE,
Bool_t fStarTrackHitFinder = kFALSE,
Double_t fMeasCurrent = 2000.,
TString OutFile = "r3bsim.root",
TString ParFile = "r3bpar.root",
TString InFile = "evt_gen.dat",
double energy1, double energy2)
{
TString dir = getenv("VMCWORKDIR");
TString r3bdir = dir + "/macros";
TString r3b_geomdir = dir + "/geometry";
gSystem->Setenv("GEOMPATH",r3b_geomdir.Data());
TString r3b_confdir = dir + "gconfig";
gSystem->Setenv("CONFIG_DIR",r3b_confdir.Data());
// In general, the following parts need not be touched
// ========================================================================
// ---- Debug option -------------------------------------------------
gDebug = 0;
// ------------------------------------------------------------------------
// ----- Timer --------------------------------------------------------
TStopwatch timer;
timer.Start();
// ------------------------------------------------------------------------
// ----- Create simulation run ----------------------------------------
FairRunSim* run = new FairRunSim();
run->SetName(fMC.Data()); // Transport engine
run->SetOutputFile(OutFile.Data()); // Output file
FairRuntimeDb* rtdb = run->GetRuntimeDb();
FairLogger::GetLogger()->SetLogScreenLevel("DEBUG");
// R3B Special Physics List in G4 case
if ( (fUserPList == kTRUE ) &&
(fMC.CompareTo("TGeant4") == 0)
){
run->SetUserConfig("g4R3bConfig.C");
run->SetUserCuts("SetCuts.C");
}
// ----- Create media -------------------------------------------------
run->SetMaterials("media_r3b.geo"); // Materials
// Magnetic field map type
Int_t fFieldMap = 0;
// Global Transformations
//- Two ways for a Volume Rotation are supported
//-- 1) Global Rotation (Euler Angles definition)
//-- This represent the composition of : first a rotation about Z axis with
//-- angle phi, then a rotation with theta about the rotated X axis, and
//-- finally a rotation with psi about the new Z axis.
Double_t phi,theta,psi;
//-- 2) Rotation in Ref. Frame of the Volume
//-- Rotation is Using Local Ref. Frame axis angles
Double_t thetaX,thetaY,thetaZ;
//- Global Translation Lab. frame.
Double_t tx,ty,tz;
// ----- Create R3B geometry --------------------------------------------
//R3B Cave definition
FairModule* cave= new R3BCave("CAVE");
cave->SetGeometryFileName("r3b_cave.geo");
run->AddModule(cave);
//R3B Target definition
if (fDetList.FindObject("TARGET") ) {
R3BModule* target= new R3BTarget(Target.Data());
target->SetGeometryFileName(((TObjString*)fDetList.GetValue("TARGET"))->GetString().Data());
run->AddModule(target);
}
//R3B SiTracker Cooling definition
if (fDetList.FindObject("VACVESSELCOOL") ) {
R3BModule* vesselcool= new R3BVacVesselCool(Target.Data());
vesselcool->SetGeometryFileName(((TObjString*)fDetList.GetValue("VACVESSELCOOL"))->GetString().Data());
//.........这里部分代码省略.........
示例7: raw2treeGrid_collection
void raw2treeGrid_collection()
{
// reading RAW data from test LCS
// filling histograms
// fillinf tree
// gROOT->LoadMacro("loadlibs.C");
// loadlibs();
Int_t allData[220][5];
TGrid::Connect("alien://");
TTree *fT0OutTree=new TTree("t0tree","None here");
TAlienCollection *collnum = TAlienCollection::Open("wn.xml");
Int_t numrun;
collnum->Reset();
collnum->Next();
TString buf_runnum;
TString buf_path = collnum->GetTURL() ;
for(int i=0; i<buf_path.Length();i++) {
if(buf_path(i,4)=="/raw") {
buf_runnum = buf_path(i-6,6);
numrun = buf_runnum.Atoi();
break;
}
}
TString names[220];
Int_t chvalue[220], meanchvalue[220];
AliT0LookUpKey* lookkey= new AliT0LookUpKey();
AliT0LookUpValue* lookvalue= new AliT0LookUpValue();
AliCDBManager * man = AliCDBManager::Instance();
man->SetDefaultStorage("raw://");
man->SetRun(numrun);
AliT0Parameters *fParam = AliT0Parameters::Instance();
fParam->Init();
TMap *lookup = fParam->GetMapLookup();
TMapIter *iter = new TMapIter(lookup);
for( Int_t iline=0; iline<212; iline++)
{
lookvalue = ( AliT0LookUpValue*) iter->Next();
lookkey = (AliT0LookUpKey*) lookup->GetValue((TObject*)lookvalue);
if(lookkey){
Int_t key=lookkey->GetKey();
names[key]=lookkey->GetChannelName();
fT0OutTree->Branch(Form("%s",names[key].Data()), &chvalue[key]);
}
else
{printf(" no such value %i \n", iline);}
}
Float_t meanCFD[24], meanQT1[24];
for (int ich=0; ich<24; ich++) {
meanCFD[ich] = fParam->GetCFD(ich);
meanQT1[ich] = fParam->GetQT1(ich);
}
Float_t meanOrA = fParam->GetMeanOrA();
Float_t meanOrC = fParam->GetMeanOrC();
Float_t meanTVDC = fParam->GetMeanVertex();
//new QTC
Float_t qt01mean[28] = {18712.5, 18487.5, 18487.5, 18537.5,
18562.5, 18462.5, 18537.5, 18537.5,
18537.5, 18587.5, 18587.5, 18512.5,
18512.5, 18512.5, 18487.5, 18562.5,
18537.5, 18512.5, 18537.5, 18537.5,
18512.5, 18587.5, 18562.5, 18512.5,
18358, 18350, 18374, 18362};
Float_t qt11mean[28] = {18705, 18495, 18465, 18555,
18555, 18435, 18525, 18525,
18525, 18585, 18585, 18495,
18495, 18525, 18465, 18555,
18525, 18495, 18555, 18495,
18495, 18585, 18585, 18495,
18358, 18350, 18374, 18362};
Int_t ind[26];
for (int iii=0; iii<12; iii++) ind[iii]=25;
for (int iii=12; iii<24; iii++) ind[iii]=57;
UInt_t event;
fT0OutTree->Branch("event", &event);
ULong64_t triggerMask;
fT0OutTree->Branch("triggers", &triggerMask);
TAlienCollection *coll = TAlienCollection::Open("wn.xml");
coll->Reset();
AliRawReader *reader;
while (coll->Next()) {
TString fFileName=coll->GetTURL();
//READ DATA
// TString fFileName=Form("alien:///alice/data/2015/LHC15i/000%i/raw/15000%i028.%i.root", numrun, numrun, chunk);
reader = new AliRawReaderRoot(fFileName);
if(!reader) continue;
reader = new AliRawReaderRoot(fFileName);
if(!reader) continue;
// reader->LoadEquipmentIdsMap("T0map.txt");
reader->RequireHeader(kTRUE);
for (Int_t i0=0; i0<220; i0++) {
chvalue[i0] = 0;
for (Int_t j0=0; j0<5; j0++) allData[i0][j0]=0;
}
//.........这里部分代码省略.........