Skip to content
Snippets Groups Projects
Commit 3bebfb7e authored by Vakhtang Tsulaia's avatar Vakhtang Tsulaia
Browse files

Merge branch 'mr21869ToMaster' into 'master'

Mr21869 to master

See merge request atlas/athena!22033
parents 4501cc80 91dd7954
No related branches found
No related tags found
No related merge requests found
......@@ -528,15 +528,13 @@ StatusCode sTgcDigitizationTool::doDigitization() {
sTgcDigitCollection* digitCollection = 0; //output digits
ATH_MSG_DEBUG("create PRD container of size " << m_idHelper->detectorElement_hash_max());
IdContext tgcContext = m_idHelper->module_context();
float earliestEventTime = 9999;
// nextDetectorElement-->sets an iterator range with the hits of current detector element , returns a bool when done
while(m_thpcsTGC->nextDetectorElement(i, e)) {
// std::map< Identifier, std::pair< std::pair<double, Amg::Vector3D>, const sTGCSimHit*> > merged_SimHit;
std::map< const sTGCSimHit*, int > SimHits; //std::map container to associate if this hit came from the signal (0) or pileup (!0) simEvent
int nhits = 0;
ATH_MSG_VERBOSE("Next Detector Element");
while(i != e){ //loop through the hits on this Detector Element
......@@ -567,7 +565,6 @@ StatusCode sTgcDigitizationTool::doDigitization() {
int eventId = phit.eventId();
std::string stationName= m_idHelper->stationNameString(m_idHelper->stationName(layid));
int isSmall = stationName[2] == 'S';
// int multiPlet = m_idHelper->multilayer(layid);
int gasGap = m_idHelper->gasGap(layid);
ATH_MSG_VERBOSE("Gas Gap " << gasGap );
......@@ -628,45 +625,24 @@ StatusCode sTgcDigitizationTool::doDigitization() {
ATH_MSG_VERBOSE("Local Hit on Wire Surface " << HITONSURFACE_WIRE );
ATH_MSG_VERBOSE("Global Hit on Wire Surface " << G_HITONSURFACE_WIRE );
sTGCSimHit* wireHit = new sTGCSimHit(idHit, (hit.globalTime() + eventTime), G_HITONSURFACE_WIRE, hit.particleEncoding(), hit.globalDirection(), hit.depositEnergy() , hit.trackNumber() );
SimHits[wireHit] = eventId; //Associate the sub event the hit came from
ATH_MSG_VERBOSE("Put hit number " << nhits << " into the map with eventID " << eventId );
} // end of while(i != e)
ATH_MSG_DEBUG("sTgcDigitizationTool::doDigitization hits mapped");
ATH_MSG_DEBUG("sTgcDigitizationTool::doDigitization hits mapped");
// Loop over the hits:
int hitNum = 0;
typedef std::map< const sTGCSimHit*, int >::iterator it_SimHits;
ATH_MSG_VERBOSE("Digitizing " << SimHits.size() << " hits.");
for(it_SimHits it_SimHit = SimHits.begin(); it_SimHit!=SimHits.end(); it_SimHit++ ) {
hitNum++;
double depositEnergy = it_SimHit->first->depositEnergy();
if(depositEnergy<0) {
msg(MSG::ERROR) << "Invalid depositEnergy value " << depositEnergy <<endmsg;
continue;
}
const sTGCSimHit temp_hit = *(it_SimHit->first);
const sTGCSimHit hit(temp_hit.sTGCId(), temp_hit.globalTime(),
temp_hit.globalPosition(),
temp_hit.particleEncoding(),
temp_hit.globalDirection(),
depositEnergy,
temp_hit.particleLink()
const sTGCSimHit temp_hit(hit.sTGCId(), hit.globalTime(),
G_HITONSURFACE_WIRE,
hit.particleEncoding(),
hit.globalDirection(),
hit.depositEnergy(),
hit.particleLink()
);
float globalHitTime = hit.globalTime();
float tof = hit.globalPosition().mag()/CLHEP::c_light;
float globalHitTime = temp_hit.globalTime() + eventTime;
float tof = temp_hit.globalPosition().mag()/CLHEP::c_light;
float bunchTime = globalHitTime - tof;
sTgcDigitCollection* digiHits = 0;
digiHits = m_digitizer->executeDigi(&hit, globalHitTime); //Create all the digits for this particular Sim Hit
digiHits = m_digitizer->executeDigi(&temp_hit, globalHitTime); //Create all the digits for this particular Sim Hit
if(!digiHits)
continue;
......@@ -709,10 +685,11 @@ StatusCode sTgcDigitizationTool::doDigitization() {
bool isDead = 0;
bool isPileup = 0;
ATH_MSG_VERBOSE("SimHits map second: " << it_SimHit->second << " newTime: " << newTime);
if(it_SimHit->second!= 0) //hit not from the main signal subevent
ATH_MSG_VERBOSE("Hit is from the main signal subevent if eventId is zero, eventId = " << eventId << " newTime: " << newTime);
if(eventId != 0) //hit not from the main signal subevent
isPileup = 1;
ATH_MSG_VERBOSE("...Check time 5: " << newTime );
// Create a new digit with updated time and BCTag
sTgcDigit* newDigit = new sTgcDigit(newDigitId, newBcTag, newTime, newCharge, isDead, isPileup);
IdentifierHash coll_hash; //Hash defining the detector element
......@@ -750,9 +727,8 @@ StatusCode sTgcDigitizationTool::doDigitization() {
} // end of loop digiHits
delete digiHits;
digiHits = 0;
}// end of loop(merged_SimHit)
SimHits.clear();
}//while(m_thpcsTGC->nextDetectorElement(i, e))
} // end of while(i != e)
} //end of while(m_thpcsTGC->nextDetectorElement(i, e))
/*********************
* Process Pad Digits *
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment