Example #1
0
void SimulationPlanner::sendEvent (){
    std::cout<<"Sending: event..."<<requiredEventName.toStdString()<<std::endl;

    eventTimer->stop();

    QString eventfilename = requiredEventDir
                            .absoluteFilePath(requiredEventName+".last.xml");
    QFile eventFile(eventfilename);
    if (!eventFile.open(QIODevice::ReadOnly)){
        std::cerr << "Problem to find the file: "+requiredEventName.toStdString()+".last.xml"<<std::endl;
        std::cerr << "No event information can be reached."<<std::endl;
    }
    QString xmlContent = eventFile.readAll();
    eventFile.close();

    QFile file(config->value("simulationpaths/event").toString());
    if(!file.open(QIODevice::WriteOnly | QIODevice::Text)){
        std::cerr << "Problem to find the event file"<<std::endl;
    }
    QTextStream out(&file);
    out << xmlContent;
    file.close();
}
Example #2
0
int main(int argc, char* argv[])
{
	// --- reading of filenames
	cout<<"START"<<endl;
	if (argc < 2) 
	{
		cerr << "usage: " << argv[0] << " <file list>" << endl;
		return 1;
	}

    cout << " reading file names from " << argv[1] << endl;
    ifstream fileList(argv[1]);
    
    if (!fileList.good() || !fileList.is_open())
    {
        cerr << " Error, cannot read file list " << argv[1] << endl;
        return 1;
    }

    //FIXME
    std::vector<std::string> offBranches;  
    offBranches.push_back("eventTree.fEvent.fRecEvent.fBeam");
    offBranches.push_back("eventTree.fEvent.fRawEvent.fBeam");
    std::vector<std::string> onBranches;
    onBranches.push_back("eventTree.fEvent.fRawEvent.fBeam");
    onBranches.push_back("eventTree.fEvent.fRecEvent.fBeam");
    
    // --- creating of handlers 
    // ----- List of handlers 
	HandlerList* HandList = new HandlerList();
	// ----- Handlers

	const int N0 = 3;
	OneWindHandler* arOneWindHandler[N0];
	for (int i = 0; i<N0; i++){
		TString name;
		TString nameBasic = "One_Wind";
		char name2[50];
		sprintf(name2, "_%i", i);
		name = nameBasic + name2;
		arOneWindHandler[i] = new OneWindHandler(name + "Raw.root", false);


        arOneWindHandler[i]->AddStandardCutsRaw();
        if (i==1)
            arOneWindHandler[i]->AddAcceptRapidityCut(0.95);
        if (i==2)
            arOneWindHandler[i]->AddAcceptRapidityCut(0.99);

//        arOneWindHandler[i]->AddS5TracksCloudCut(80,100,200,nTrackInVtxFit);
//		    arOneWindHandler[i]->AddPSDEnergyCut(1470, e28Central);



		HandList->AddHandler(arOneWindHandler[i]);
	}
	
    const int N1=0;//1;
	PtNFluctuationHandler* arHandlerFlucPtNRaw[N1];
    for (int i =0; i<N1; i++){
        TString name;
        TString nameBasic="Full_FlucPt";
        char name2[50];
        sprintf(name2,"_%i",i);
        name = nameBasic + name2;
		arHandlerFlucPtNRaw[i] = new PtNFluctuationHandler(name + "Raw.root", false);
		arHandlerFlucPtNRaw[i]->AddStandardCutsRaw();
		if (i==0 || i==1)
			arHandlerFlucPtNRaw[i]->AddCentrality(0,1);
        if (i==2 || i==3)
            arHandlerFlucPtNRaw[i]->AddCentrality(1,5);
        if (i==4 || i==5)
            arHandlerFlucPtNRaw[i]->AddCentrality(5,10);
        if (i==6 || i==7)
            arHandlerFlucPtNRaw[i]->AddCentrality(10,15);
        if (i==1 || i==3 || i==5 || i==7)
            arHandlerFlucPtNRaw[i]->AddAcceptRapidityCut(0.95);
        else arHandlerFlucPtNRaw[i]->AddAcceptRapidityCut(0.9);



        //arHandlerFlucPtNRaw[i]->AddPSDEnergyCut(0, 80);
//		if (i == 1)
	//		arHandlerFlucPtNRaw[i]->AddAcceptRapidityCut();
//			arHandlerFlucPtNRaw[i]->AddPSDEnergyCut(0, 1850);
//		if (i == 1)
//			arHandlerFlucPtNRaw[i]->AddPSDEnergyCut(0, 4*beamMomentum);
//		if (i == 2)
//			arHandlerFlucPtNRaw[i]->AddPSDEnergyCut(0, 2600);
//		if (i == 3)
//			arHandlerFlucPtNRaw[i]->AddPSDEnergyCut(0, 17 * beamMomentum);


        HandList->AddHandler(arHandlerFlucPtNRaw[i]);
    }

	const int N2 = 0;//3;
	PSDFluctuationHandler* arHandlerFlucPSDRaw[N2];
	for (int i = 0; i<N2; i++){
		TString name;
		TString nameBasic = "Full_FlucPSD";
		char name2[50];
		sprintf(name2, "_%i", i);
		name = nameBasic + name2;
		arHandlerFlucPSDRaw[i] = new PSDFluctuationHandler(name + "Raw.root", false);

		if (i==0 || i==1)
			arHandlerFlucPSDRaw[i]->AddRunNumberCut(0,20445);
		if (i==2 || i==3)
			arHandlerFlucPSDRaw[i]->AddRunNumberCut(20445,20500);
		arHandlerFlucPSDRaw[i]->AddStandardCutsRaw();
		if (i==1 || i==3)
			arHandlerFlucPSDRaw[i]->AddPSDEnergyCut(1850, e28Central);
		HandList->AddHandler(arHandlerFlucPSDRaw[i]);
	}

	const int N3 =0;//21;
	PtNFluctuationHandler* arHandlerEtaFlucPtNRaw[N3];
	for (int i = 0; i<N3; i++){
		TString name;
		TString nameBasic = "Eta_FlucPtRaw";
		char name2[50];
		sprintf(name2, "_%i", i);
		name = nameBasic + name2;
		arHandlerEtaFlucPtNRaw[i] = new PtNFluctuationHandler(name + "Raw.root", false);

        arHandlerEtaFlucPtNRaw[i]->AddRunNumberCut(0,20380);


		arHandlerEtaFlucPtNRaw[i]->AddStandardCutsRaw();

		arHandlerEtaFlucPtNRaw[i]->AddPSDEnergyCut(1850, e28Central);
		//arHandlerEtaFlucPtNRaw[i]->AddEtaCut(2 + i*0.2, 2.5 + i*0.2);
		HandList->AddHandler(arHandlerEtaFlucPtNRaw[i]);
	}

	const int N4 = 0;
	TimeHandler* arTime[N4];
	for (int i =0; i<N4; i++){
		TString name;
		TString nameBasic = "Time";
		char name2[50];
		sprintf(name2, "_%i", i);
		name = nameBasic + name2;
		arTime[i] = new TimeHandler(name + "Raw.root", false);
		arTime[i]->AddStandardCutsRaw();
        if (i==1)
            arTime[i]->AddPSDEnergyCut(0,900, e28Central);

		HandList->AddHandler(arTime[i]);
	}

	const int N6 = 0;
	OneWindHandler* arOneWindHandler1[N6];
	for (int i = 0; i<N6; i++){
        if (i==3) continue;
        if (i==8) continue;

		TString name;
		TString nameBasic = "One_Wind";
		char name2[50];
		sprintf(name2, "_%i", i);
		name = nameBasic + name2;
		arOneWindHandler1[i] = new OneWindHandler(name + "Raw.root", false);

        arOneWindHandler1[i]->Raw();
		if (systemType == ArSc) {
            if (i>0)
                arOneWindHandler1[i]->Remove0BinsEvents();
            if (i>1)
                arOneWindHandler1[i]->RemoveBadRuns();
			if (beamMomentum == 150) {
                if (i>2)
                    arOneWindHandler1[i]->AddRunNumberCut(0,20380);
			}
			if (beamMomentum == 13) {
                if (i>2)
                    arOneWindHandler1[i]->AddRunNumberCut(20551,30000);
			}
		}
        arOneWindHandler1[i]->AddTrigger(T2);
		if (systemType == ArSc) {
            if (i>3)
                arOneWindHandler1[i]->AddWFACut(-100, -200, 4);
            if (i>4)
                arOneWindHandler1[i]->AddWFAT4Cut(0,1000,25);
		}
        if (i>5)
            arOneWindHandler1[i]->AddStrongPBDCut();
        
            arOneWindHandler1[i]->AddFittedVtxCut();
        if (i>8)
            arOneWindHandler1[i]->AddFitQualityCut();
		if (systemType == ArSc){
			if (beamMomentum == 150) {
                if (i>9)
                    arOneWindHandler1[i]->AddZVtxCut(-589.7, -569.7);
                if (i>10)
                    arOneWindHandler1[i]->AddPSDEnergyCut(2800, e16Central);
                if (i>11)
                    arOneWindHandler1[i]->AddPSDEnergyCut(800, 5000, e28Periferal);
                if (i>6)
                    arOneWindHandler1[i]->AddBPD3ClusterSignalCut(3200,8100,2500,7000);
                if (i>14)
                    arOneWindHandler1[i]->AddS5Cut(170);
                if (i>15)
                    arOneWindHandler1[i]->AddS5Cut(50);
                if (i>12)
                    arOneWindHandler1[i]->AddLocalRatioCut(0.25,0,50);
				//this->AddTrackVtxFittedTrackRatioCut(0.25);

			}
			if (beamMomentum == 75){
                if (i>9)
                    arOneWindHandler1[i]->AddZVtxCut(-589.7, -569.7);
                if (i>10)
                    arOneWindHandler1[i]->AddPSDEnergyCut(1300, e16Central);
                if (i>11)
                    arOneWindHandler1[i]->AddPSDEnergyCut(300, 1700, e28Periferal);
                if (i>14)
                    arOneWindHandler1[i]->AddS5Cut(170);
                if (i>15)
                    arOneWindHandler1[i]->AddS5Cut(90);
                if (i>6)
                    arOneWindHandler1[i]->AddBPD3ClusterSignalCut(3800,7200,3600,6800);
                if (i>12)
                    arOneWindHandler1[i]->AddLocalRatioCut(0.17,0,30);

			}
			if (beamMomentum == 13){
                if (i==11) continue;
                if (i>9)
                    arOneWindHandler1[i]->AddZVtxCut(-590, -570);
                if (i>10)
                    arOneWindHandler1[i]->AddPSDEnergyCut(200, e16Central);
                if (i>14)
                    arOneWindHandler1[i]->AddS5Cut(170);
                if (i>6)
                    arOneWindHandler1[i]->AddBPD3ClusterSignalCut(3000,7900,2500,6800);
                if (i>12)
                    arOneWindHandler1[i]->AddLocalRatioCut(0.08,0,6);

			}
			if (beamMomentum == 19) {
                if (i>9)
                    arOneWindHandler1[i]->AddZVtxCut(-589.9, -569.9);
                if (i>10)
                    arOneWindHandler1[i]->AddPSDEnergyCut(350, e16Central);
                if (i>11)
                    arOneWindHandler1[i]->AddPSDEnergyCut(20, 500, e28Periferal);
                if (i>14)
                    arOneWindHandler1[i]->AddS5Cut(170);
                if (i>15)
                    arOneWindHandler1[i]->AddS5Cut(90);
                if (i>6)
                    arOneWindHandler1[i]->AddBPD3ClusterSignalCut(3500, 6500, 3200, 6000);
                if (i>12)
                    arOneWindHandler1[i]->AddLocalRatioCut(0.1,0,10);
			}
			if (beamMomentum == 30) {
                if (i>9)
                    arOneWindHandler1[i]->AddZVtxCut(-589.9, -569.9);
                if (i>10)
                    arOneWindHandler1[i]->AddPSDEnergyCut(600, e16Central);
                if (i>11)
                    arOneWindHandler1[i]->AddPSDEnergyCut(100, 1000, e28Periferal);
				if (i>14)
                    arOneWindHandler1[i]->AddS5Cut(170);
                if (i>15)
                    arOneWindHandler1[i]->AddS5Cut(90);
                if (i>6)
                    arOneWindHandler1[i]->AddBPD3ClusterSignalCut(3400,7400,2800,6600);
                if (i>12)
                    arOneWindHandler1[i]->AddLocalRatioCut(0.1,0,12);
			}
			if (beamMomentum == 40) {
                if (i>9)
                    arOneWindHandler1[i]->AddZVtxCut(-589.8, -569.8);
                if (i>10)
                    arOneWindHandler1[i]->AddPSDEnergyCut(900, e16Central);
                if (i>11)
                    arOneWindHandler1[i]->AddPSDEnergyCut(200, 1000, e28Periferal);
                if (i>14)
                    arOneWindHandler1[i]->AddS5Cut(170);
                if (i>15)
                    arOneWindHandler1[i]->AddS5Cut(90);
                if (i>6)
                    arOneWindHandler1[i]->AddBPD3ClusterSignalCut(3500,8000,3000,7000);
                if (i>12)
                    arOneWindHandler1[i]->AddLocalRatioCut(0.13,0,15);
			}
		}
        if (i>13)
            arOneWindHandler1[i]->AddZeroPositiveTracksCut();

		arOneWindHandler1[i]->AddStandardCutsRaw();
		HandList->AddHandler(arOneWindHandler1[i]);
	}

	const int N7 = 0;
	LRCHandler* arLRCHandler[N7];
	for (int i = 0; i<N7; i++){
		TString name;
		TString nameBasic = "LRC_Wind";
		char name2[50];
		sprintf(name2, "_%i", i);
		name = nameBasic + name2;
		arLRCHandler[i] = new LRCHandler(name + "Raw.root", false);
		arLRCHandler[i]->AddStandardCutsRaw();

		arLRCHandler[i]->AddEtaForward(5.5, 6);
		arLRCHandler[i]->AddEtaBackward(3.2 + i*0.2, 3.7 + i*0.2);
		HandList->AddHandler(arLRCHandler[i]);
	}

	const int N8 = 0;
	PSDHandler* arPSDHandler[N8];
	for (int i = 0; i<N8; i++){
		TString name;
		TString nameBasic = "PSD";
		char name2[50];
		sprintf(name2, "_%i", i);
		name = nameBasic + name2;
		arPSDHandler[i] = new PSDHandler(name + "Raw.root", false);
		arPSDHandler[i]->AddStandardCutsRaw();
		arPSDHandler[i]->AddS5Cut(80);

		if (i==1)
			arPSDHandler[i]->Remove0EPSDEvents(e28Central);

		HandList->AddHandler(arPSDHandler[i]);
	}

	const int N9 = 0;
	PSD0BinsFindHandler* ar0bins[N9];
	for (int i = 0; i<N9; i++){
		TString name;
		TString nameBasic = "0Bins";
		char name2[50];
		sprintf(name2, "_%i", i);
		name = nameBasic + name2;
		ar0bins[i] = new PSD0BinsFindHandler(name + "Raw.root", false);
        ar0bins[i]->Raw();
        if (i==1)
            ar0bins[i]->AddFPGACut(eAll);
 //       ar0bins[i]->Remove0BinsEvents();
		HandList->AddHandler(ar0bins[i]);
	}


	//FIXME: add information about energy and system type inside names of hists!

	cout<<"Initialization"<<endl;
	HandList->Init();
    	int i=0;
	time_t     now;
	struct tm  *ts;
	char       buf[80];
	int nFiles = 0;

    while (true){
        string fileName;
        fileList >> fileName;
        if(!fileList.good())
            break;
        cout << " ->processing " << fileName << endl;
        EventFile eventFile(fileName, eRead, Verbosity::eSilent, offBranches, onBranches);
        Event event;

        cout<<"event loop ... "<<endl;
        // --- loop over events
        
        while (eventFile.Read(event) == eSuccess){
			i++;
//			cout<<"event_event"<<i<<endl;
			// --- working status output
			cout<<i<<"\t";
			if(i%1000==0){
				// Get the current time
				now = time(NULL);          
				// Format and print the time, "ddd yyyy-mm-dd hh:mm:ss zzz" 
				ts = localtime(&now);
				strftime(buf, sizeof(buf), "%a %Y-%m-%d %H:%M:%S %Z", ts);
				printf("running event %5d time: %s\n",(int) i,buf);
			} 
			CutList::eventCutChecking.Reset();
//			cout<<"eat"<<endl;
            HandList->EatEvent(event);
        }
    }      

    delete HandList; 
    
	return 0;
}