7 #include <stdair/basic/ProgressStatusSet.hpp>
8 #include <stdair/bom/BomManager.hpp>
9 #include <stdair/bom/EventStruct.hpp>
10 #include <stdair/bom/BookingRequestStruct.hpp>
11 #include <stdair/bom/EventQueue.hpp>
12 #include <stdair/bom/TravelSolutionStruct.hpp>
13 #include <stdair/bom/CancellationStruct.hpp>
14 #include <stdair/factory/FacBom.hpp>
15 #include <stdair/factory/FacBomManager.hpp>
16 #include <stdair/service/Logger.hpp>
28 buildSampleBomStd (stdair::EventQueue& ioEventQueue,
29 stdair::RandomGeneration& ioSharedGenerator,
33 const stdair::AirportCode_T lOrigin (
"SIN");
34 const stdair::AirportCode_T lDestination (
"BKK");
35 const stdair::Date_T lDepDate (2011, 2, 14);
36 const stdair::CabinCode_T lCabin (
"Y");
39 const DemandStreamKey lDemandStreamKey (lOrigin, lDestination, lDepDate,
46 const stdair::MeanValue_T lDemandMean (10.0);
47 const stdair::StdDevValue_T lDemandStdDev (1.0);
48 const DemandDistribution lDemandDistribution (lDemandMean, lDemandStdDev);
51 const stdair::RandomSeed_T& lRequestDateTimeSeed =
52 generateSeed (ioSharedGenerator);
53 const stdair::RandomSeed_T& lDemandCharacteristicsSeed =
54 generateSeed (ioSharedGenerator);
58 lDTDProbDist.insert(ArrivalPatternCumulativeDistribution_T::value_type(-330,
60 lDTDProbDist.insert(ArrivalPatternCumulativeDistribution_T::value_type(-40,
62 lDTDProbDist.insert(ArrivalPatternCumulativeDistribution_T::value_type(-20,
64 lDTDProbDist.insert(ArrivalPatternCumulativeDistribution_T::value_type(-1,
68 lPOSProbDist.insert (POSProbabilityMassFunction_T::value_type (
"BKK", 0.3));
69 lPOSProbDist.insert (POSProbabilityMassFunction_T::value_type (
"SIN", 0.7));
72 lChannelProbDist.insert (ChannelProbabilityMassFunction_T::value_type (
"DF",
74 lChannelProbDist.insert (ChannelProbabilityMassFunction_T::value_type (
"DN",
76 lChannelProbDist.insert (ChannelProbabilityMassFunction_T::value_type (
"IF",
78 lChannelProbDist.insert (ChannelProbabilityMassFunction_T::value_type (
"IN",
82 lTripProbDist.insert (TripTypeProbabilityMassFunction_T::value_type (
"RO",
84 lTripProbDist.insert (TripTypeProbabilityMassFunction_T::value_type (
"RI",
86 lTripProbDist.insert (TripTypeProbabilityMassFunction_T::value_type (
"OW",
90 lStayProbDist.insert(StayDurationProbabilityMassFunction_T::value_type(0,
92 lStayProbDist.insert(StayDurationProbabilityMassFunction_T::value_type(1,
94 lStayProbDist.insert(StayDurationProbabilityMassFunction_T::value_type(2,
96 lStayProbDist.insert(StayDurationProbabilityMassFunction_T::value_type(3,
98 lStayProbDist.insert(StayDurationProbabilityMassFunction_T::value_type(4,
100 lStayProbDist.insert(StayDurationProbabilityMassFunction_T::value_type(5,
104 lFFProbDist.insert(FrequentFlyerProbabilityMassFunction_T::value_type(
"P",
106 lFFProbDist.insert(FrequentFlyerProbabilityMassFunction_T::value_type(
"G",
108 lFFProbDist.insert(FrequentFlyerProbabilityMassFunction_T::value_type(
"S",
110 lFFProbDist.insert(FrequentFlyerProbabilityMassFunction_T::value_type(
"M",
112 lFFProbDist.insert(FrequentFlyerProbabilityMassFunction_T::value_type(
"N",
116 lPrefDepTimeProbDist.
117 insert (PreferredDepartureTimeContinuousDistribution_T::value_type (6, 0));
118 lPrefDepTimeProbDist.
119 insert (PreferredDepartureTimeContinuousDistribution_T::value_type (7,
121 lPrefDepTimeProbDist.
122 insert (PreferredDepartureTimeContinuousDistribution_T::value_type (9,
124 lPrefDepTimeProbDist.
125 insert (PreferredDepartureTimeContinuousDistribution_T::value_type (17,
127 lPrefDepTimeProbDist.
128 insert (PreferredDepartureTimeContinuousDistribution_T::value_type (19,
130 lPrefDepTimeProbDist.
131 insert (PreferredDepartureTimeContinuousDistribution_T::value_type (20,
133 lPrefDepTimeProbDist.
134 insert (PreferredDepartureTimeContinuousDistribution_T::value_type (22,
138 lTimeValueProbDist.insert(ValueOfTimeContinuousDistribution_T::value_type(15,
140 lTimeValueProbDist.insert(ValueOfTimeContinuousDistribution_T::value_type(60,
144 const stdair::WTP_T lWTP (1000.0);
148 DemandStream& lDemandStream =
149 createDemandStream (ioEventQueue, lDemandStreamKey, lDTDProbDist,
150 lPOSProbDist, lChannelProbDist, lTripProbDist,
151 lStayProbDist, lFFProbDist, lPrefDepTimeProbDist,
152 lWTP, lTimeValueProbDist, lDemandDistribution,
153 ioSharedGenerator.getBaseGenerator(),
154 lRequestDateTimeSeed,
155 lDemandCharacteristicsSeed, iPOSProbMass);
159 const stdair::NbOfRequests_T& lExpectedTotalNbOfEvents =
165 ioEventQueue.addStatus (stdair::EventType::BKG_REQ,
166 lExpectedTotalNbOfEvents);
170 DemandStream& DemandManager::createDemandStream
171 (stdair::EventQueue& ioEventQueue,
172 const DemandStreamKey& iKey,
180 const stdair::WTP_T& iMinWTP,
182 const DemandDistribution& iDemandDistribution,
183 stdair::BaseGenerator_T& ioSharedGenerator,
184 const stdair::RandomSeed_T& iRequestDateTimeSeed,
185 const stdair::RandomSeed_T& iDemandCharacteristicsSeed,
188 DemandStream& oDemandStream =
189 stdair::FacBom<DemandStream>::instance().create (iKey);
191 oDemandStream.setAll (iArrivalPattern, iPOSProbMass,
192 iChannelProbMass, iTripTypeProbMass,
193 iStayDurationProbMass, iFrequentFlyerProbMass,
194 iPreferredDepartureTimeContinuousDistribution,
195 iMinWTP, iValueOfTimeContinuousDistribution,
196 iDemandDistribution, ioSharedGenerator,
197 iRequestDateTimeSeed, iDemandCharacteristicsSeed,
198 iDefaultPOSProbablityMass);
201 stdair::FacBomManager::linkWithParent (ioEventQueue, oDemandStream);
204 stdair::FacBomManager::addToListAndMap (ioEventQueue, oDemandStream);
206 return oDemandStream;
211 createDemandCharacteristics (stdair::EventQueue& ioEventQueue,
212 stdair::RandomGeneration& ioSharedGenerator,
214 const DemandStruct& iDemand) {
215 stdair::BaseGenerator_T& lSharedGenerator =
216 ioSharedGenerator.getBaseGenerator();
219 const stdair::DatePeriod_T lDateRange = iDemand._dateRange;
220 for (boost::gregorian::day_iterator itDate = lDateRange.begin();
221 itDate != lDateRange.end(); ++itDate) {
222 const stdair::Date_T& currentDate = *itDate;
225 const unsigned short currentDoW = currentDate.day_of_week().as_number();
230 const stdair::DoWStruct& lDoWList = iDemand._dow;
231 const bool isDoWActive = lDoWList.getStandardDayOfWeek (currentDoW);
233 if (isDoWActive ==
true) {
234 const DemandStreamKey lDemandStreamKey (iDemand._origin,
235 iDemand._destination,
242 const DemandDistribution lDemandDistribution (iDemand._demandMean,
243 iDemand._demandStdDev);
246 const stdair::RandomSeed_T& lRequestDateTimeSeed =
247 generateSeed (ioSharedGenerator);
248 const stdair::RandomSeed_T& lDemandCharacteristicsSeed =
249 generateSeed (ioSharedGenerator);
252 DemandStream& lDemandStream =
253 createDemandStream (ioEventQueue, lDemandStreamKey,
254 iDemand._dtdProbDist, iDemand._posProbDist,
255 iDemand._channelProbDist,
256 iDemand._tripProbDist,
257 iDemand._stayProbDist, iDemand._ffProbDist,
258 iDemand._prefDepTimeProbDist,
260 iDemand._timeValueProbDist,
261 lDemandDistribution, lSharedGenerator,
262 lRequestDateTimeSeed,
263 lDemandCharacteristicsSeed,
268 const stdair::NbOfRequests_T& lExpectedTotalNbOfEvents =
269 lDemandStream.getMeanNumberOfRequests();
275 ioEventQueue.addStatus (stdair::EventType::BKG_REQ,
276 lExpectedTotalNbOfEvents);
282 stdair::RandomSeed_T DemandManager::
283 generateSeed (stdair::RandomGeneration& ioSharedGenerator) {
284 stdair::RealNumber_T lVariateUnif = ioSharedGenerator() * 1e9;
285 stdair::RandomSeed_T oSeed =
static_cast<stdair::RandomSeed_T
>(lVariateUnif);
290 const bool DemandManager::
291 stillHavingRequestsToBeGenerated (
const stdair::EventQueue& iEventQueue,
292 const stdair::DemandStreamKeyStr_T& iKey,
293 stdair::ProgressStatusSet& ioPSS,
294 const stdair::DemandGenerationMethod& iDemandGenerationMethod) {
296 const DemandStream& lDemandStream =
297 stdair::BomManager::getObject<DemandStream> (iEventQueue, iKey);
300 stdair::ProgressStatus
301 lProgressStatus (lDemandStream.getNumberOfRequestsGeneratedSoFar(),
302 lDemandStream.getMeanNumberOfRequests(),
303 lDemandStream.getTotalNumberOfRequestsToBeGenerated());
304 ioPSS.setSpecificGeneratorStatus (lProgressStatus, iKey);
306 return lDemandStream.stillHavingRequestsToBeGenerated (iDemandGenerationMethod);
310 stdair::BookingRequestPtr_T DemandManager::
311 generateNextRequest (stdair::EventQueue& ioEventQueue,
312 stdair::RandomGeneration& ioGenerator,
313 const stdair::DemandStreamKeyStr_T& iKey,
314 const stdair::DemandGenerationMethod& iDemandGenerationMethod) {
317 DemandStream& lDemandStream =
318 stdair::BomManager::getObject<DemandStream> (ioEventQueue, iKey);
321 stdair::BookingRequestPtr_T lBookingRequest =
322 lDemandStream.generateNextRequest (ioGenerator,
323 iDemandGenerationMethod);
326 stdair::EventStruct lEventStruct (stdair::EventType::BKG_REQ,
336 ioEventQueue.addEvent (lEventStruct);
338 return lBookingRequest;
342 stdair::Count_T DemandManager::
343 generateFirstRequests (stdair::EventQueue& ioEventQueue,
344 stdair::RandomGeneration& ioGenerator,
345 const stdair::DemandGenerationMethod& iDemandGenerationMethod) {
348 stdair::NbOfRequests_T lActualTotalNbOfEvents = 0.0;
352 stdair::BomManager::getList<DemandStream> (ioEventQueue);
354 for (DemandStreamList_T::const_iterator itDemandStream =
355 lDemandStreamList.begin();
356 itDemandStream != lDemandStreamList.end(); ++itDemandStream) {
357 DemandStream* lDemandStream_ptr = *itDemandStream;
358 assert (lDemandStream_ptr != NULL);
360 lDemandStream_ptr->setBoolFirstDateTimeRequest(
true);
364 const stdair::NbOfRequests_T& lActualNbOfEvents =
365 lDemandStream_ptr->getTotalNumberOfRequestsToBeGenerated();
366 lActualTotalNbOfEvents += lActualNbOfEvents;
369 const DemandStreamKey& lKey = lDemandStream_ptr->getKey();
373 ioEventQueue.updateStatus (stdair::EventType::BKG_REQ, lActualNbOfEvents);
376 const bool stillHavingRequestsToBeGenerated =
377 lDemandStream_ptr->stillHavingRequestsToBeGenerated (iDemandGenerationMethod);
379 if (stillHavingRequestsToBeGenerated) {
382 generateNextRequest (ioEventQueue, ioGenerator, lKey.toString(),
383 iDemandGenerationMethod);
388 ioEventQueue.setActualTotalNbOfEvents (lActualTotalNbOfEvents);
391 const stdair::Count_T oTotalNbOfEvents = std::floor (lActualTotalNbOfEvents);
394 return oTotalNbOfEvents;
398 void DemandManager::reset (stdair::EventQueue& ioEventQueue,
399 stdair::BaseGenerator_T& ioShareGenerator) {
407 stdair::BomManager::getList<DemandStream> (ioEventQueue);
408 for (DemandStreamList_T::const_iterator itDS = lDemandStreamList.begin();
409 itDS != lDemandStreamList.end(); ++itDS) {
410 DemandStream* lCurrentDS_ptr = *itDS;
411 assert (lCurrentDS_ptr != NULL);
413 lCurrentDS_ptr->reset (ioShareGenerator);
423 ioEventQueue.reset();
429 generateCancellation (stdair::EventQueue& ioEventQueue,
430 stdair::RandomGeneration& ioGenerator,
431 const stdair::TravelSolutionStruct& iTravelSolution,
432 const stdair::PartySize_T& iPartySize,
433 const stdair::DateTime_T& iRequestTime,
434 const stdair::Date_T& iDepartureDate) {
439 double lRandomNumber = ioGenerator();
441 if (lRandomNumber >= 0.5) {
444 lRandomNumber /= 0.5;
447 const stdair::Time_T lMidNight =
448 boost::posix_time::hours (0);
449 const stdair::DateTime_T lDepartureDateTime =
450 boost::posix_time::ptime (iDepartureDate, lMidNight);
453 const stdair::Duration_T lTimeToDeparture = lDepartureDateTime-iRequestTime;
456 const long lTimeToDepartureInSeconds = lTimeToDeparture.total_seconds();
457 const long lCancellationTimeToDepartureInSeconds =
458 static_cast<long> (lTimeToDepartureInSeconds * lRandomNumber);
459 const stdair::Duration_T lCancellationTimeToDeparture (0, 0, lCancellationTimeToDepartureInSeconds);
462 const stdair::DateTime_T lCancellationTime =
463 lDepartureDateTime - lCancellationTimeToDeparture;
466 const stdair::SegmentPath_T lSegmentPath = iTravelSolution.getSegmentPath();
469 const stdair::FareOptionStruct& lChosenFareOption =
470 iTravelSolution.getChosenFareOption ();
471 const stdair::ClassList_StringList_T& lClassPath =
472 lChosenFareOption.getClassPath();
473 std::ostringstream oStr;
474 for (stdair::ClassList_StringList_T::const_iterator itClassList =
475 lClassPath.begin(); itClassList != lClassPath.end(); ++itClassList) {
476 const stdair::ClassList_String_T& lClassList = *itClassList;
477 assert (lClassList.size() > 0);
478 oStr << lClassList.at(0);
480 const stdair::ClassList_String_T lClassList_String = oStr.str();
483 stdair::CancellationPtr_T lCancellation_ptr =
484 stdair::CancellationPtr_T
485 (
new stdair::CancellationStruct (lSegmentPath, lClassList_String,
486 iPartySize, lCancellationTime));
489 stdair::EventStruct lEventStruct (stdair::EventType::CX, lCancellation_ptr);
498 ioEventQueue.addEvent (lEventStruct);
505 buildSampleBom (stdair::EventQueue& ioEventQueue,
506 stdair::RandomGeneration& ioSharedGenerator,
511 lDTDProbDist.insert(ArrivalPatternCumulativeDistribution_T::value_type(-330,
513 lDTDProbDist.insert(ArrivalPatternCumulativeDistribution_T::value_type(-150,
515 lDTDProbDist.insert(ArrivalPatternCumulativeDistribution_T::value_type(-92,
517 lDTDProbDist.insert(ArrivalPatternCumulativeDistribution_T::value_type(-55,
519 lDTDProbDist.insert(ArrivalPatternCumulativeDistribution_T::value_type(-34,
521 lDTDProbDist.insert(ArrivalPatternCumulativeDistribution_T::value_type(-21,
523 lDTDProbDist.insert(ArrivalPatternCumulativeDistribution_T::value_type(-12,
525 lDTDProbDist.insert(ArrivalPatternCumulativeDistribution_T::value_type(-6,
527 lDTDProbDist.insert(ArrivalPatternCumulativeDistribution_T::value_type(-3,
529 lDTDProbDist.insert(ArrivalPatternCumulativeDistribution_T::value_type(-1,
531 lDTDProbDist.insert(ArrivalPatternCumulativeDistribution_T::value_type(0,
536 lChannelProbDist.insert (ChannelProbabilityMassFunction_T::value_type (
"DF",
538 lChannelProbDist.insert (ChannelProbabilityMassFunction_T::value_type (
"DN",
540 lChannelProbDist.insert (ChannelProbabilityMassFunction_T::value_type (
"IF",
542 lChannelProbDist.insert (ChannelProbabilityMassFunction_T::value_type (
"IN",
547 lTripProbDist.insert (TripTypeProbabilityMassFunction_T::value_type (
"RO",
549 lTripProbDist.insert (TripTypeProbabilityMassFunction_T::value_type (
"RI",
551 lTripProbDist.insert (TripTypeProbabilityMassFunction_T::value_type (
"OW",
556 lStayProbDist.insert(StayDurationProbabilityMassFunction_T::value_type(0,
558 lStayProbDist.insert(StayDurationProbabilityMassFunction_T::value_type(1,
560 lStayProbDist.insert(StayDurationProbabilityMassFunction_T::value_type(2,
562 lStayProbDist.insert(StayDurationProbabilityMassFunction_T::value_type(3,
564 lStayProbDist.insert(StayDurationProbabilityMassFunction_T::value_type(4,
566 lStayProbDist.insert(StayDurationProbabilityMassFunction_T::value_type(5,
571 lFFProbDist.insert(FrequentFlyerProbabilityMassFunction_T::value_type(
"P",
573 lFFProbDist.insert(FrequentFlyerProbabilityMassFunction_T::value_type(
"G",
575 lFFProbDist.insert(FrequentFlyerProbabilityMassFunction_T::value_type(
"S",
577 lFFProbDist.insert(FrequentFlyerProbabilityMassFunction_T::value_type(
"M",
579 lFFProbDist.insert(FrequentFlyerProbabilityMassFunction_T::value_type(
"N",
584 lTimeValueProbDist.insert(ValueOfTimeContinuousDistribution_T::value_type(15,
586 lTimeValueProbDist.insert(ValueOfTimeContinuousDistribution_T::value_type(60,
592 const stdair::AirportCode_T lSINOrigin (
"SIN");
593 const stdair::AirportCode_T lBKKDestination (
"BKK");
594 const stdair::Date_T lDepDate (2010, 2, 8);
595 const stdair::CabinCode_T lCabin (
"Y");
598 const DemandStreamKey lSINBKKDemandStreamKey (lSINOrigin, lBKKDestination, lDepDate,
605 const stdair::MeanValue_T lSINBKKDemandMean (60.0);
606 const stdair::StdDevValue_T lSINBKKDemandStdDev (4.0);
607 const DemandDistribution lSINBKKDemandDistribution (lSINBKKDemandMean, lSINBKKDemandStdDev);
610 const stdair::RandomSeed_T& lSINBKKRequestDateTimeSeed =
611 generateSeed (ioSharedGenerator);
612 const stdair::RandomSeed_T& lSINBKKDemandCharacteristicsSeed =
613 generateSeed (ioSharedGenerator);
618 lSINBKKPOSProbDist.insert (POSProbabilityMassFunction_T::value_type (
"SIN", 1.0));
619 lSINBKKPOSProbDist.insert (POSProbabilityMassFunction_T::value_type (
"BKK", 0.0));
623 lSINPrefDepTimeProbDist.
624 insert (PreferredDepartureTimeContinuousDistribution_T::value_type (6, 0));
625 lSINPrefDepTimeProbDist.
626 insert (PreferredDepartureTimeContinuousDistribution_T::value_type (8,
628 lSINPrefDepTimeProbDist.
629 insert (PreferredDepartureTimeContinuousDistribution_T::value_type (10,
631 lSINPrefDepTimeProbDist.
632 insert (PreferredDepartureTimeContinuousDistribution_T::value_type (12,
634 lSINPrefDepTimeProbDist.
635 insert (PreferredDepartureTimeContinuousDistribution_T::value_type (14,
639 const stdair::WTP_T lSINBKKWTP (400.0);
643 DemandStream& lSINBKKDemandStream =
644 createDemandStream (ioEventQueue, lSINBKKDemandStreamKey, lDTDProbDist,
645 lSINBKKPOSProbDist, lChannelProbDist, lTripProbDist,
646 lStayProbDist, lFFProbDist, lSINPrefDepTimeProbDist,
647 lSINBKKWTP, lTimeValueProbDist, lSINBKKDemandDistribution,
648 ioSharedGenerator.getBaseGenerator(),
649 lSINBKKRequestDateTimeSeed,
650 lSINBKKDemandCharacteristicsSeed, iPOSProbMass);
654 const stdair::NbOfRequests_T& lSINBKKExpectedNbOfEvents =
660 const stdair::AirportCode_T lBKKOrigin (
"BKK");
661 const stdair::AirportCode_T lHKGDestination (
"HKG");
664 const DemandStreamKey lBKKHKGDemandStreamKey (lBKKOrigin, lHKGDestination, lDepDate,
671 const stdair::MeanValue_T lBKKHKGDemandMean (60.0);
672 const stdair::StdDevValue_T lBKKHKGDemandStdDev (4.0);
673 const DemandDistribution lBKKHKGDemandDistribution (lBKKHKGDemandMean, lBKKHKGDemandStdDev);
676 const stdair::RandomSeed_T& lBKKHKGRequestDateTimeSeed =
677 generateSeed (ioSharedGenerator);
678 const stdair::RandomSeed_T& lBKKHKGDemandCharacteristicsSeed =
679 generateSeed (ioSharedGenerator);
684 lBKKHKGPOSProbDist.insert (POSProbabilityMassFunction_T::value_type (
"BKK", 1.0));
685 lBKKHKGPOSProbDist.insert (POSProbabilityMassFunction_T::value_type (
"HKG", 0.0));
689 lBKKPrefDepTimeProbDist.
690 insert (PreferredDepartureTimeContinuousDistribution_T::value_type (8, 0));
691 lBKKPrefDepTimeProbDist.
692 insert (PreferredDepartureTimeContinuousDistribution_T::value_type (10,
694 lBKKPrefDepTimeProbDist.
695 insert (PreferredDepartureTimeContinuousDistribution_T::value_type (1,
697 lBKKPrefDepTimeProbDist.
698 insert (PreferredDepartureTimeContinuousDistribution_T::value_type (14,
700 lBKKPrefDepTimeProbDist.
701 insert (PreferredDepartureTimeContinuousDistribution_T::value_type (16,
705 const stdair::WTP_T lBKKHKGWTP (400.0);
709 DemandStream& lBKKHKGDemandStream =
710 createDemandStream (ioEventQueue, lBKKHKGDemandStreamKey, lDTDProbDist,
711 lBKKHKGPOSProbDist, lChannelProbDist, lTripProbDist,
712 lStayProbDist, lFFProbDist, lBKKPrefDepTimeProbDist,
713 lBKKHKGWTP, lTimeValueProbDist, lBKKHKGDemandDistribution,
714 ioSharedGenerator.getBaseGenerator(),
715 lBKKHKGRequestDateTimeSeed,
716 lBKKHKGDemandCharacteristicsSeed, iPOSProbMass);
720 const stdair::NbOfRequests_T& lBKKHKGExpectedNbOfEvents =
728 const DemandStreamKey lSINHKGDemandStreamKey (lSINOrigin, lHKGDestination, lDepDate,
735 const stdair::MeanValue_T lSINHKGDemandMean (60.0);
736 const stdair::StdDevValue_T lSINHKGDemandStdDev (4.0);
737 const DemandDistribution lSINHKGDemandDistribution (lSINHKGDemandMean, lSINHKGDemandStdDev);
740 const stdair::RandomSeed_T& lSINHKGRequestDateTimeSeed =
741 generateSeed (ioSharedGenerator);
742 const stdair::RandomSeed_T& lSINHKGDemandCharacteristicsSeed =
743 generateSeed (ioSharedGenerator);
748 lSINHKGPOSProbDist.insert (POSProbabilityMassFunction_T::value_type (
"SIN", 1.0));
749 lSINHKGPOSProbDist.insert (POSProbabilityMassFunction_T::value_type (
"HKG", 0.0));
752 const stdair::WTP_T lSINHKGWTP (750.0);
756 DemandStream& lSINHKGDemandStream =
757 createDemandStream (ioEventQueue, lSINHKGDemandStreamKey, lDTDProbDist,
758 lSINHKGPOSProbDist, lChannelProbDist, lTripProbDist,
759 lStayProbDist, lFFProbDist, lSINPrefDepTimeProbDist,
760 lSINHKGWTP, lTimeValueProbDist, lSINHKGDemandDistribution,
761 ioSharedGenerator.getBaseGenerator(),
762 lSINHKGRequestDateTimeSeed,
763 lSINHKGDemandCharacteristicsSeed, iPOSProbMass);
767 const stdair::NbOfRequests_T& lSINHKGExpectedNbOfEvents =
775 const stdair::NbOfRequests_T lExpectedTotalNbOfEvents =
776 lSINBKKExpectedNbOfEvents + lBKKHKGExpectedNbOfEvents + lSINHKGExpectedNbOfEvents;
777 ioEventQueue.addStatus (stdair::EventType::BKG_REQ,
778 lExpectedTotalNbOfEvents);