Пример #1
0
int main(){
  ScintillatorPlane *s1 = new ScintillatorPlane(2,8,-105.,false,"TopPlane");
  ScintillatorPlane *s2 = new ScintillatorPlane(2,8,105.,false,"BottomPlane");
  RPC *rpc1 = new RPC(2,32,"FirstRpc",-75.);
  RPC *rpc2 = new RPC(3,32,"SecondRpc",-45.);
  RPC *rpc3 = new RPC(4,32,"ThirdRpc",-15.);
  RPC *rpc4 = new RPC(5, 32, "ThirdRpc", 15.);
  RPC *rpc5 = new RPC(6, 32, "SecondRpc", 45.);
  RPC *rpc6 = new RPC(7, 32, "FirstRpc", 75.);


  //std::cout<<"Name : "<< s1->GetName();
  
  SetupManager s;
  s.RegisterScintillatorPlane(s1);
  s.RegisterScintillatorPlane(s2);
  s.RegisterRpc(rpc1);
  // s.RegisterRpc(rpc2);
  // s.RegisterRpc(rpc3);
  // s.RegisterRpc(rpc4);
  // s.RegisterRpc(rpc5);
  // s.RegisterRpc(rpc6);

  // s.Register<ScintillatorPlane,false>(s1);
  // s.Register<ScintillatorPlane,false>(s2);
  // s.Register<RPC,true>(rpc1);
  // s.Register<RPC,true>(rpc2);
  // s.Register(rpc3);
  // s.Register(rpc4);
  // s.Register(rpc5);
  // s.Register(rpc6);

  //s.GetComponentsName();
  //std::cout<<"SetupManager Size  : "<< s.GetSize() << std::endl;
  s.GetComponentsName();
  s.PrintStrips();

}
Пример #2
0
int main(int argc , char *argv[]){

        std::string temp_str = std::to_string(atoi(argv[1]));
        temp_str += ".root";
        Tracking::Tree::instance()->ReadTree(temp_str.c_str(), "BSC_DATA_TREE", 0);

	Detector *rpc1 = new GlassRpc(2,"MT-1",60,31);
	Detector *rpc2 = new GlassRpc(4,"MT-2",-60,31);
        SetupManager *setup = Tomography::SetupManager::instance();
        setup->Register(rpc1);
        setup->Register(rpc2);

        std::cout<<"Size : "<< setup->GetDetectorVector("GLASS").size() << std::endl;

        
        std::vector<Detector*> detVect = setup->GetDetectorVector("GLASS");

#if 0
	for(int k = 0 ; k < detVect.size() ; k++){

        	std::cout<< detVect[k]->GetName() << std::endl;
	        std::cout<< detVect[k]->GetNumOfPlanes() << std::endl;
	        std::cout<< detVect[k]->GetTotalNumOfChannels() << std::endl;
        	std::vector<ScintillatorPlane*> planeVect = detVect[k]->GetScintillatorPlaneVector();

		for(int i = 0 ; i < detVect[k]->GetNumOfPlanes() ; i++){

		        std::cout<<"Plane : " << i << " : " << planeVect[i]->GetNumOfScintillators() << std::endl;
				int numOfStrips = planeVect[i]->GetNumOfScintillators();
		        std::vector<Scintillator*> scintVector = planeVect[i]->GetScintVector();

			  for(int j = 0 ; j < numOfStrips ; j++){

				   std::cout<<"StripName : "<< scintVector[j]->GetName() << std::endl;
	
		          }
	        }
	}

#endif

        Tomography::ScintillatorPlane::SetClusterSize(1);
for(int evNo= 19 ;evNo <20;  evNo++){
std::cout<<"--------------------Event No :  " << evNo << " ---------------------------------"<<std::endl;
        setup->SetEventDetected("GLASS",evNo);
        std::cout<<"Event Detected : "<< setup->EventDetected() << std::endl;
        for(int j = 0 ; j < detVect.size() ; j++){
	    for(int i = 0 ; i < detVect[j]->GetNumOfPlanes() ; i++){
		std::cout<< "Plane num : "<< i <<" : "<< detVect[j]->GetPlane(i)->GetFiredStripsVector().size() << std::endl;
		std::vector<Scintillator*> scintVector = detVect[j]->GetPlane(i)->GetScintVector();
		std::vector<int> stripVect = detVect[j]->GetPlane(i)->GetFiredStripsVector();
		int stripVectorSize = stripVect.size();
		for(int k = 0 ; k < stripVectorSize ; k++){
			std::cout<<"strip no : "<< stripVect[k] << " : Value : " << scintVector[stripVect[k]]->GetValue() << std::endl;
		}
		
		}

	}
        }
	return 0;
  
}
Пример #3
0
int main(int argc, char *argv[]){
	std::string temp_str = std::to_string(atoi(argv[1]));
	temp_str += ".root";
	Tracking::Tree::instance()->ReadTree(temp_str.c_str(), "BSC_DATA_TREE", 0);
	SetupManager *setup = SetupManager::instance();
	Detector *MT1=new GlassRpc(2,"MT1",-75,31);
	Detector *MT2=new GlassRpc(4,"MT2",45,31);
	Detector *TopScint=new TriggeringPlane(2,"TopScint",105,-1);
	Detector *BottomScint=new TriggeringPlane(2,"BottomScint",-105,7);
	int k;
	int topcount=0, bottomcount=0;
	int numerator=0, denominator=0;
	bool shower,rpcFired;
	int NumberOfStripsFired;
	setup->Register(MT1);
	setup->Register(MT2);
	setup->Register(TopScint);
	setup->Register(BottomScint);
	std::vector<Detector*> detVect=setup->GetDetectorVector("GLASS");
	int showercount=0;
	int ClusterSize[4];
	std::vector<Detector*> trgVect=setup->GetDetectorVector("TRG");
	int numOfEvents = Tracking::Tree::instance()->GetNumOfEvents();
	for(int evNo=0;evNo<numOfEvents;++evNo) {
//		std::cout<<"======================= Event no. : "<<evNo<<"===================="<<std::endl;
		setup->SetEventDetected("TRG",evNo);
		shower=false;

		//Printing events with Multihit
		for(int i=0;i<trgVect.size();++i) {
			for(int j=0;j<trgVect[i]->GetNumOfPlanes();++j) {

                          for (int k = 0; k < trgVect[i]->GetPlane(j)->GetNumOfScintillators(); k++) {
                            std::string bName = trgVect[i]->GetPlane(j)->GetScintVector()[k]->GetName();
                            Channel *ch = Tracking::Tree::instance()->GetEntry(bName, evNo);
                            if(ch->size()>1){
                            std::cout <<"Event No : "<< evNo << " : Branch Name : " << bName << " : Multihit VectorSize : " << ch->size()
                                      << " Values : "; //<<std::endl;
                            for (int l = 0; l < ch->size(); l++) {
                              std::cout << ch->at(l) << ", ";
                            }
                            std::cout << std::endl;
                            }
                          }
                        }

		}
	}
		std::cout<<"================================ Mulitihit Printing Done ==========================" << std::endl;
		int count = 0 ;
		for(int evNo=0;evNo<numOfEvents;++evNo) {
			setup->SetEventDetected("TRG",evNo);
		for(int i=0;i<trgVect.size();++i) {

			for(int j=0;j<trgVect[i]->GetNumOfPlanes();++j) {
				bool fired = false;
				//NumberOfStripsFired=trgVect[i]->GetPlane(j)->GetFiredStripsVector().size();
				fired = trgVect[i]->GetPlane(j)->GetFiredStripsVector().size();

				//Printing if some event are there for which either of Scintillators in ScintillatorPlane NOT fired
				if(!fired){
					count++;
					std::cout<<"---- For Event : " << evNo << " : TrgPlane No : "<< i << " : NOT fired " << std::endl;
					for(int k = 0 ; k<trgVect[i]->GetPlane(j)->GetNumOfScintillators() ; k++){
						std::string bName = trgVect[i]->GetPlane(j)->GetScintVector()[k]->GetName();
						Channel *ch = Tracking::Tree::instance()->GetEntry(bName,evNo);
						std::cout<<"Branch Name : "<< bName <<" : Multihit VectorSize : "<<ch->size()<<" Values : ";//<<std::endl;
						for(int l = 0 ; l < ch->size() ; l++){
							std::cout<<ch->at(l)<<", ";
						}
						std::cout<<std::endl;

					}

				}
			}
		}
	}
		if(count)
			std::cout<<std::endl<<"***************** Something Unexpected Happening ***********************" << std::endl<<std::endl;
		else
			std::cout<<std::endl<<"---------- GR8888 , Program running as Expected --------------" << std::endl << std::endl;

}